Skip to content

Commit

Permalink
Minor formatting changes #254
Browse files Browse the repository at this point in the history
  • Loading branch information
nemothenoone authored and x-mass committed Jun 11, 2024
1 parent abc2538 commit 1b10915
Show file tree
Hide file tree
Showing 9 changed files with 1,254 additions and 1,208 deletions.
40 changes: 20 additions & 20 deletions libs/parallel-zk/test/commitment/fold_polynomial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ void test_fold_polynomial() {

std::size_t d_log = boost::static_log2<d>::value;
std::vector<std::shared_ptr<math::evaluation_domain<FieldType>>> D =
math::calculate_domain_set<FieldType>(d_log, 1);
math::calculate_domain_set<FieldType>(d_log, 1);

math::polynomial<typename FieldType::value_type> f = {{1u, 3u, 4u, 3u}};

Expand All @@ -70,12 +70,12 @@ void test_fold_polynomial() {
typename FieldType::value_type alpha = algebra::random_element<FieldType>();

math::polynomial<typename FieldType::value_type> f_next =
zk::commitments::detail::fold_polynomial<FieldType>(f, alpha);
zk::commitments::detail::fold_polynomial<FieldType>(f, alpha);

BOOST_CHECK_EQUAL(f_next.degree(), f.degree() / 2);
std::vector<std::pair<typename FieldType::value_type, typename FieldType::value_type>> interpolation_points {
std::make_pair(omega, f.evaluate(omega)),
std::make_pair(-omega, f.evaluate(-omega)),
std::vector<std::pair<typename FieldType::value_type, typename FieldType::value_type>> interpolation_points{
std::make_pair(omega, f.evaluate(omega)),
std::make_pair(-omega, f.evaluate(-omega)),
};

math::polynomial<typename FieldType::value_type> interpolant = math::lagrange_interpolation(interpolation_points);
Expand All @@ -94,7 +94,7 @@ void test_fold_polynomial_dfs() {

std::size_t d_log = boost::static_log2<d>::value;
std::vector<std::shared_ptr<math::evaluation_domain<FieldType>>> D =
math::calculate_domain_set<FieldType>(d_log, 2);
math::calculate_domain_set<FieldType>(d_log, 2);

math::polynomial<typename FieldType::value_type> f = {{1u, 3u, 4u, 3u}};

Expand All @@ -114,7 +114,7 @@ void test_fold_polynomial_dfs() {
}

math::polynomial_dfs<typename FieldType::value_type> f_next_dfs =
zk::commitments::detail::fold_polynomial<FieldType>(f_dfs, alpha, D[0]);
zk::commitments::detail::fold_polynomial<FieldType>(f_dfs, alpha, D[0]);
std::vector<typename FieldType::value_type> f_next_vector(f_next_dfs.begin(), f_next_dfs.end());
D[1]->inverse_fft(f_next_vector);
math::polynomial<typename FieldType::value_type> f_next(f_next_vector.size());
Expand All @@ -123,9 +123,9 @@ void test_fold_polynomial_dfs() {
}

BOOST_CHECK_EQUAL(f_next.degree(), f.degree() / 2);
std::vector<std::pair<typename FieldType::value_type, typename FieldType::value_type>> interpolation_points {
std::make_pair(omega, f.evaluate(omega)),
std::make_pair(-omega, f.evaluate(-omega)),
std::vector<std::pair<typename FieldType::value_type, typename FieldType::value_type>> interpolation_points{
std::make_pair(omega, f.evaluate(omega)),
std::make_pair(-omega, f.evaluate(-omega)),
};

math::polynomial<typename FieldType::value_type> interpolant = math::lagrange_interpolation(interpolation_points);
Expand All @@ -136,21 +136,21 @@ void test_fold_polynomial_dfs() {

BOOST_AUTO_TEST_SUITE(fold_polynomial_test_suite)

BOOST_AUTO_TEST_CASE(fold_polynomial_test) {
test_fold_polynomial<algebra::curves::mnt4<298>>();
BOOST_AUTO_TEST_CASE(fold_polynomial_test) {
test_fold_polynomial<algebra::curves::mnt4<298>>();

test_fold_polynomial<algebra::curves::pallas>();
test_fold_polynomial<algebra::curves::pallas>();

test_fold_polynomial<algebra::curves::vesta>();
}
test_fold_polynomial<algebra::curves::vesta>();
}

BOOST_AUTO_TEST_CASE(fold_polynomial_dfs_test) {
BOOST_AUTO_TEST_CASE(fold_polynomial_dfs_test) {

test_fold_polynomial_dfs<algebra::curves::mnt4<298>>();
test_fold_polynomial_dfs<algebra::curves::mnt4<298>>();

test_fold_polynomial_dfs<algebra::curves::pallas>();
test_fold_polynomial_dfs<algebra::curves::pallas>();

test_fold_polynomial_dfs<algebra::curves::vesta>();
}
test_fold_polynomial_dfs<algebra::curves::vesta>();
}

BOOST_AUTO_TEST_SUITE_END()
93 changes: 48 additions & 45 deletions libs/parallel-zk/test/commitment/fri.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,67 +80,70 @@ inline std::vector<std::size_t> generate_random_step_list(const std::size_t r, c

BOOST_AUTO_TEST_SUITE(fri_test_suite)

BOOST_AUTO_TEST_CASE(fri_basic_test) {
BOOST_AUTO_TEST_CASE(fri_basic_test) {

// setup
using curve_type = algebra::curves::pallas;
using FieldType = typename curve_type::base_field_type;
// setup
using curve_type = algebra::curves::pallas;
using FieldType = typename curve_type::base_field_type;

typedef hashes::sha2<256> merkle_hash_type;
typedef hashes::sha2<256> transcript_hash_type;
typedef hashes::sha2<256> merkle_hash_type;
typedef hashes::sha2<256> transcript_hash_type;

constexpr static const std::size_t d = 16;
constexpr static const std::size_t d = 16;

constexpr static const std::size_t r = boost::static_log2<d>::value;
constexpr static const std::size_t m = 2;
constexpr static const std::size_t lambda = 40;
constexpr static const std::size_t r = boost::static_log2<d>::value;
constexpr static const std::size_t m = 2;
constexpr static const std::size_t lambda = 40;

typedef zk::commitments::fri<FieldType, merkle_hash_type, transcript_hash_type, m> fri_type;
typedef zk::commitments::fri<FieldType, merkle_hash_type, transcript_hash_type, m> fri_type;

static_assert(zk::is_commitment<fri_type>::value);
static_assert(!zk::is_commitment<merkle_hash_type>::value);
static_assert(zk::is_commitment<fri_type>::value);
static_assert(!zk::is_commitment<merkle_hash_type>::value);

typedef typename fri_type::proof_type proof_type;
typedef typename fri_type::params_type params_type;
typedef typename fri_type::proof_type proof_type;
typedef typename fri_type::params_type params_type;


constexpr static const std::size_t d_extended = d;
std::size_t extended_log = boost::static_log2<d_extended>::value;
std::vector<std::shared_ptr<math::evaluation_domain<FieldType>>> D =
math::calculate_domain_set<FieldType>(extended_log, r);
constexpr static const std::size_t d_extended = d;
std::size_t extended_log = boost::static_log2<d_extended>::value;
std::vector<std::shared_ptr<math::evaluation_domain<FieldType>>> D =
math::calculate_domain_set<FieldType>(extended_log, r);

params_type params(
d - 1, // max_degree
D,
generate_random_step_list(r, 1),
2, //expand_factor
lambda,
true,
0xFFFFF
);
params_type params(
d - 1, // max_degree
D,
generate_random_step_list(r, 1),
2, //expand_factor
lambda,
true,
0xFFFFF
);

BOOST_CHECK(D[1]->m == D[0]->m / 2);
BOOST_CHECK(D[1]->get_domain_element(1) == D[0]->get_domain_element(1).squared());
BOOST_CHECK(D[1]->m == D[0]->m / 2);
BOOST_CHECK(D[1]->get_domain_element(1) == D[0]->get_domain_element(1).squared());

// commit
math::polynomial<typename FieldType::value_type> f = {{1u, 3u, 4u, 1u, 5u, 6u, 7u, 2u, 8u, 7u, 5u, 6u, 1u, 2u, 1u, 1u}};
// commit
math::polynomial<typename FieldType::value_type> f = {
{1u, 3u, 4u, 1u, 5u, 6u, 7u, 2u, 8u, 7u, 5u, 6u, 1u, 2u, 1u, 1u}};

typename fri_type::merkle_tree_type tree = zk::algorithms::precommit<fri_type>(f, params.D[0], params.step_list[0]);
auto root = zk::algorithms::commit<fri_type>(tree);
typename fri_type::merkle_tree_type tree = zk::algorithms::precommit<fri_type>(f, params.D[0],
params.step_list[0]);
auto root = zk::algorithms::commit<fri_type>(tree);

// eval
std::vector<std::uint8_t> init_blob {0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u, 8u, 9u};
zk::transcript::fiat_shamir_heuristic_sequential<transcript_hash_type> transcript(init_blob);
// eval
std::vector<std::uint8_t> init_blob{0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u, 8u, 9u};
zk::transcript::fiat_shamir_heuristic_sequential<transcript_hash_type> transcript(init_blob);

proof_type proof = zk::algorithms::proof_eval<fri_type>(f, tree, params, transcript);
proof_type proof = zk::algorithms::proof_eval<fri_type>(f, tree, params, transcript);

// verify
zk::transcript::fiat_shamir_heuristic_sequential<transcript_hash_type> transcript_verifier(init_blob);
// verify
zk::transcript::fiat_shamir_heuristic_sequential<transcript_hash_type> transcript_verifier(init_blob);

BOOST_CHECK(zk::algorithms::verify_eval<fri_type>(proof, root, params, transcript_verifier));
BOOST_CHECK(zk::algorithms::verify_eval<fri_type>(proof, root, params, transcript_verifier));

typename FieldType::value_type verifier_next_challenge = transcript_verifier.template challenge<FieldType>();
typename FieldType::value_type prover_next_challenge = transcript.template challenge<FieldType>();
BOOST_CHECK(verifier_next_challenge == prover_next_challenge);
}

typename FieldType::value_type verifier_next_challenge = transcript_verifier.template challenge<FieldType>();
typename FieldType::value_type prover_next_challenge = transcript.template challenge<FieldType>();
BOOST_CHECK(verifier_next_challenge == prover_next_challenge);
}
BOOST_AUTO_TEST_SUITE_END()
Loading

0 comments on commit 1b10915

Please sign in to comment.