Skip to content

Commit

Permalink
Modified marshalling types to no longer rely on ArithmetizationParams…
Browse files Browse the repository at this point in the history
…. [SyncWith: crypto3-zk#292] (#86)

Co-authored-by: Martun Karapetyan <martun.karapetyan@gmail.com>
  • Loading branch information
Iluvmagick and martun authored Feb 19, 2024
1 parent 2360406 commit 9fac26d
Show file tree
Hide file tree
Showing 9 changed files with 451 additions and 373 deletions.
23 changes: 12 additions & 11 deletions .github/workflows/pull-request-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,16 @@ jobs:

targets: ${{ inputs.targets }}

matrix-test-mac:
name: Mac Reusable Crypto3 Testing
needs:
- handle-syncwith
uses: NilFoundation/ci-cd/.github/workflows/reusable-crypto3-testing-mac.yml@v1.2.0

secrets: inherit
with:
submodules-refs: ${{ needs.handle-syncwith.outputs.prs-refs }}

targets: ${{ inputs.targets }}
# Temporarily disabling this, most of our tests fail on mac, we have a separate task/issue for fixing this.
# matrix-test-mac:
# name: Mac Reusable Crypto3 Testing
# needs:
# - handle-syncwith
# uses: NilFoundation/ci-cd/.github/workflows/reusable-crypto3-testing-mac.yml@v1.2.0
#
# secrets: inherit
# with:
# submodules-refs: ${{ needs.handle-syncwith.outputs.prs-refs }}
#
# targets: ${{ inputs.targets }}

Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,12 @@ namespace nil {
){
auto fixed_values = make_commitment<Endianness, typename CommonDataType::commitment_scheme_type>(std::get<0>(filled_common_data.value()));

typename CommonDataType::columns_rotations_type columns_rotations;
typename CommonDataType::columns_rotations_type columns_rotations(
std::get<1>(filled_common_data.value()).value().size()
);
for(size_t i = 0; i < std::get<1>(filled_common_data.value()).value().size(); i++){
auto filled_column = std::get<1>(filled_common_data.value()).value().at(i);
for(size_t j = 0; j < filled_column.value().size(); j++){
for(size_t j = 0; j < filled_column.value().size(); j++) {
columns_rotations[i].insert(filled_column.value()[j].value());
}
}
Expand Down
234 changes: 157 additions & 77 deletions include/nil/crypto3/marshalling/zk/types/plonk/assignment_table.hpp

Large diffs are not rendered by default.

156 changes: 66 additions & 90 deletions test/detail/circuits.hpp

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions test/merkle_proof.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ generate_random_data(std::size_t leaf_number) {
return v;
}

template<typename Endianness, typename Hash, std::size_t Arity, std::size_t LeafSize = 32>
template<typename Endianness, typename Hash, std::size_t Arity, std::size_t LeafSize = 64>
void test_merkle_proof(std::size_t tree_depth) {

using namespace nil::crypto3::marshalling;
Expand Down Expand Up @@ -145,7 +145,7 @@ using HashTypes = boost::mpl::list<
std::srand(std::time(0));
test_merkle_proof<nil::marshalling::option::big_endian, HashType, 2>(5);
test_merkle_proof<nil::marshalling::option::big_endian, HashType, 2>(10);
test_merkle_proof<nil::marshalling::option::big_endian, HashType, 2, 300>(15);
test_merkle_proof<nil::marshalling::option::big_endian, HashType, 2, 320>(15);
}

// Poseidon hash function supports only Arity 2.
Expand Down
90 changes: 49 additions & 41 deletions test/placeholder_common_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,13 +216,10 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit1)
constexpr static const std::size_t constant_columns = constant_columns_1;
constexpr static const std::size_t selector_columns = selector_columns_1;

using arithmetization_params =
plonk_arithmetization_params<witness_columns, public_input_columns, constant_columns, selector_columns>;

constexpr static const std::size_t lambda = 40;
constexpr static const std::size_t m = 2;
};
typedef placeholder_circuit_params<field_type, typename placeholder_test_params::arithmetization_params> circuit_params;
typedef placeholder_circuit_params<field_type> circuit_params;
using transcript_type = typename transcript::fiat_shamir_heuristic_sequential<transcript_hash_type>;

using lpc_params_type = commitments::list_polynomial_commitment_params<
Expand All @@ -241,7 +238,12 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit1)
BOOST_AUTO_TEST_CASE(prover_test) {
auto circuit = circuit_test_1<field_type>();

plonk_table_description<field_type, typename circuit_params::arithmetization_params> desc;
plonk_table_description<field_type> desc(
placeholder_test_params::witness_columns,
placeholder_test_params::public_input_columns,
placeholder_test_params::constant_columns,
placeholder_test_params::selector_columns
);

desc.rows_amount = placeholder_test_params::table_rows;
desc.usable_rows_amount = placeholder_test_params::usable_rows;
Expand Down Expand Up @@ -288,16 +290,10 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit2)
constexpr static const std::size_t constant_columns = 0;
constexpr static const std::size_t selector_columns = 2;

using arithmetization_params =
plonk_arithmetization_params<witness_columns, public_input_columns, constant_columns, selector_columns>;

constexpr static const std::size_t lambda = 1;
constexpr static const std::size_t m = 2;
};
using circuit_t_params = placeholder_circuit_params<
field_type,
typename placeholder_test_params::arithmetization_params
>;
using circuit_t_params = placeholder_circuit_params<field_type>;

using transcript_type = typename transcript::fiat_shamir_heuristic_sequential<typename placeholder_test_params::transcript_hash_type>;

Expand All @@ -318,7 +314,12 @@ BOOST_AUTO_TEST_CASE(common_data_marshalling_test) {
auto pi0 = nil::crypto3::algebra::random_element<field_type>();
auto circuit = circuit_test_t<field_type>(pi0, test_global_alg_rnd_engine<field_type>, test_global_rnd_engine);

plonk_table_description<field_type, typename circuit_t_params::arithmetization_params> desc;
plonk_table_description<field_type> desc(
placeholder_test_params::witness_columns,
placeholder_test_params::public_input_columns,
placeholder_test_params::constant_columns,
placeholder_test_params::selector_columns
);
desc.rows_amount = table_rows;
desc.usable_rows_amount = usable_rows;

Expand Down Expand Up @@ -364,14 +365,11 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit3)
constexpr static const std::size_t constant_columns = constant_columns_3;
constexpr static const std::size_t selector_columns = selector_columns_3;

using arithmetization_params =
plonk_arithmetization_params<witness_columns, public_input_columns, constant_columns, selector_columns>;

constexpr static const std::size_t lambda = 40;
constexpr static const std::size_t m = 2;
};

using circuit_params = placeholder_circuit_params<field_type, typename placeholder_test_params::arithmetization_params>;
using circuit_params = placeholder_circuit_params<field_type>;
using transcript_type = typename transcript::fiat_shamir_heuristic_sequential<typename placeholder_test_params::transcript_hash_type>;
using lpc_params_type = commitments::list_polynomial_commitment_params<
typename placeholder_test_params::merkle_hash_type,
Expand All @@ -389,7 +387,12 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit3)
BOOST_FIXTURE_TEST_CASE(proof_marshalling_test, test_initializer) {
auto circuit = circuit_test_3<field_type>();

plonk_table_description<field_type, typename circuit_params::arithmetization_params> desc;
plonk_table_description<field_type> desc(
placeholder_test_params::witness_columns,
placeholder_test_params::public_input_columns,
placeholder_test_params::constant_columns,
placeholder_test_params::selector_columns
);

desc.rows_amount = table_rows;
desc.usable_rows_amount = usable_rows;
Expand Down Expand Up @@ -439,14 +442,11 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit4)
constexpr static const std::size_t constant_columns = constant_columns_4;
constexpr static const std::size_t selector_columns = selector_columns_4;

using arithmetization_params =
plonk_arithmetization_params<witness_columns, public_input_columns, constant_columns, selector_columns>;

constexpr static const std::size_t lambda = 40;
constexpr static const std::size_t m = 2;
};

using circuit_params = placeholder_circuit_params<field_type, typename placeholder_test_params::arithmetization_params>;
using circuit_params = placeholder_circuit_params<field_type>;
using transcript_type = typename transcript::fiat_shamir_heuristic_sequential<typename placeholder_test_params::transcript_hash_type>;
using lpc_params_type = commitments::list_polynomial_commitment_params<
typename placeholder_test_params::merkle_hash_type,
Expand All @@ -464,7 +464,12 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit4)
BOOST_FIXTURE_TEST_CASE(proof_marshalling_test, test_initializer) {
auto circuit = circuit_test_4<field_type>();

plonk_table_description<field_type, typename circuit_params::arithmetization_params> desc;
plonk_table_description<field_type> desc(
placeholder_test_params::witness_columns,
placeholder_test_params::public_input_columns,
placeholder_test_params::constant_columns,
placeholder_test_params::selector_columns
);

desc.rows_amount = table_rows;
desc.usable_rows_amount = usable_rows;
Expand Down Expand Up @@ -516,16 +521,10 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit5)
constexpr static const std::size_t constant_columns = 0;
constexpr static const std::size_t selector_columns = 2;

using arithmetization_params =
plonk_arithmetization_params<witness_columns, public_input_columns, constant_columns, selector_columns>;

constexpr static const std::size_t lambda = 1;
constexpr static const std::size_t m = 2;
};
using circuit_t_params = placeholder_circuit_params<
field_type,
typename placeholder_test_params::arithmetization_params
>;
using circuit_t_params = placeholder_circuit_params<field_type>;

using transcript_type = typename transcript::fiat_shamir_heuristic_sequential<typename placeholder_test_params::transcript_hash_type>;

Expand All @@ -547,7 +546,12 @@ BOOST_AUTO_TEST_CASE(common_data_marshalling_test) {
auto pi1 = nil::crypto3::algebra::random_element<field_type>();
auto circuit = circuit_test_t<field_type>(pi0, pi1, test_global_alg_rnd_engine<field_type>);

plonk_table_description<field_type, typename circuit_t_params::arithmetization_params> desc;
plonk_table_description<field_type> desc(
placeholder_test_params::witness_columns,
placeholder_test_params::public_input_columns,
placeholder_test_params::constant_columns,
placeholder_test_params::selector_columns
);
desc.rows_amount = table_rows;
desc.usable_rows_amount = usable_rows;

Expand Down Expand Up @@ -595,14 +599,11 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit6)
constexpr static const std::size_t constant_columns = constant_columns_6;
constexpr static const std::size_t selector_columns = selector_columns_6;

using arithmetization_params =
plonk_arithmetization_params<witness_columns, public_input_columns, constant_columns, selector_columns>;

constexpr static const std::size_t lambda = 40;
constexpr static const std::size_t m = 2;
};

using circuit_params = placeholder_circuit_params<field_type, typename placeholder_test_params::arithmetization_params>;
using circuit_params = placeholder_circuit_params<field_type>;
using transcript_type = typename transcript::fiat_shamir_heuristic_sequential<typename placeholder_test_params::transcript_hash_type>;
using lpc_params_type = commitments::list_polynomial_commitment_params<
typename placeholder_test_params::merkle_hash_type,
Expand All @@ -620,7 +621,12 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit6)
BOOST_FIXTURE_TEST_CASE(proof_marshalling_test, test_initializer) {
auto circuit = circuit_test_6<field_type>();

plonk_table_description<field_type, typename circuit_params::arithmetization_params> desc;
plonk_table_description<field_type> desc(
placeholder_test_params::witness_columns,
placeholder_test_params::public_input_columns,
placeholder_test_params::constant_columns,
placeholder_test_params::selector_columns
);

desc.rows_amount = table_rows;
desc.usable_rows_amount = usable_rows;
Expand Down Expand Up @@ -667,14 +673,11 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit7)
constexpr static const std::size_t constant_columns = constant_columns_7;
constexpr static const std::size_t selector_columns = selector_columns_7;

using arithmetization_params =
plonk_arithmetization_params<witness_columns, public_input_columns, constant_columns, selector_columns>;

constexpr static const std::size_t lambda = 40;
constexpr static const std::size_t m = 2;
};

using circuit_params = placeholder_circuit_params<field_type, typename placeholder_test_params::arithmetization_params>;
using circuit_params = placeholder_circuit_params<field_type>;
using transcript_type = typename transcript::fiat_shamir_heuristic_sequential<typename placeholder_test_params::transcript_hash_type>;
using lpc_params_type = commitments::list_polynomial_commitment_params<
typename placeholder_test_params::merkle_hash_type,
Expand All @@ -691,7 +694,12 @@ BOOST_AUTO_TEST_SUITE(placeholder_circuit7)

BOOST_FIXTURE_TEST_CASE(proof_marshalling_test, test_initializer) {
auto circuit = circuit_test_7<field_type>();
plonk_table_description<field_type, typename circuit_params::arithmetization_params> desc;
plonk_table_description<field_type> desc(
placeholder_test_params::witness_columns,
placeholder_test_params::public_input_columns,
placeholder_test_params::constant_columns,
placeholder_test_params::selector_columns
);

desc.rows_amount = circuit.table_rows;
desc.usable_rows_amount = circuit.usable_rows;
Expand Down
Loading

0 comments on commit 9fac26d

Please sign in to comment.