15#ifndef PRIVACY_PROOFS_ZK_LIB_ZK_ZK_TESTING_H_
16#define PRIVACY_PROOFS_ZK_LIB_ZK_ZK_TESTING_H_
22#include "algebra/convolution.h"
23#include "algebra/fp2.h"
24#include "algebra/reed_solomon.h"
25#include "arrays/dense.h"
26#include "random/secure_random_engine.h"
27#include "random/transcript.h"
28#include "sumcheck/circuit.h"
30#include "util/readbuffer.h"
31#include "zk/zk_proof.h"
32#include "zk/zk_prover.h"
33#include "zk/zk_verifier.h"
34#include "gtest/gtest.h"
38constexpr size_t kLigeroRate = 4;
39constexpr size_t kLigeroNreq = 189;
47 const typename Field::Elt& root_y,
size_t root_order) {
50 using Elt2 =
typename Field2::Elt;
54 const Field2 base_2(base);
55 const Elt2 omega{root_x, root_y};
56 const FftExtConvolutionFactory fft(base, base_2, omega, root_order);
57 const RSFactory rsf(fft, base);
64 prover.commit(zkpr, W, tp, rng);
65 EXPECT_TRUE(prover.prove(zkpr, W, tp));
66 log(INFO,
"ZK Prover done");
68 std::vector<uint8_t> zbuf;
69 zkpr.write(zbuf, base);
70 log(INFO,
"zkp len: %zu bytes", zbuf.size());
76 EXPECT_TRUE(zkpv.read(rb, base));
81 verifier.recv_commitment(zkpv, tv);
82 EXPECT_TRUE(verifier.verify(zkpv, pub, tv));
83 log(INFO,
"ZK Verify done");
94 using Elt2 =
typename Field2::Elt;
98 const Field2 base_2(base);
99 const Elt2 omega{root_x, root_y};
100 const FftExtConvolutionFactory fft(base, base_2, omega, root_order);
101 const RSFactory rsf(fft, base);
108 prover.commit(zkpr, W, tp, rng);
109 bool p_ok = prover.prove(zkpr, W, tp);
114template <
class Field>
117 uint64_t omega_order,
const Field& F) {
120 FftConvolutionFactory fft(F, omega, omega_order);
122 const RSFactory rsf(fft, F);
129 prover.commit(zkpr, W, tp, rng);
130 EXPECT_TRUE(prover.prove(zkpr, W, tp));
132 log(INFO,
"ZK Prover done");
134 std::vector<uint8_t> zbuf;
136 log(INFO,
"zkp len: %zu bytes", zbuf.size());
142 EXPECT_TRUE(zkpv.read(rb, F));
147 verifier.recv_commitment(zkpv, tv);
148 EXPECT_TRUE(verifier.verify(zkpv, pub, tv));
Definition convolution.h:109
Definition convolution.h:195
Definition readbuffer.h:26
Definition reed_solomon.h:133
Definition secure_random_engine.h:29
Definition transcript.h:65
Definition zk_prover.h:53
Definition zk_verifier.h:41