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;
40constexpr size_t kVersion = 4;
48 const typename Field::Elt& root_y,
size_t root_order) {
51 using Elt2 =
typename Field2::Elt;
55 const Field2 base_2(base);
56 const Elt2 omega{root_x, root_y};
57 const FftExtConvolutionFactory fft(base, base_2, omega, root_order);
58 const RSFactory rsf(fft, base);
62 Transcript tp((uint8_t*)
"zk_test", 7, kVersion);
65 prover.commit(zkpr, W, tp, rng);
66 EXPECT_TRUE(prover.prove(zkpr, W, tp));
67 log(INFO,
"ZK Prover done");
69 std::vector<uint8_t> zbuf;
70 zkpr.write(zbuf, base);
71 log(INFO,
"zkp len: %zu bytes", zbuf.size());
77 EXPECT_TRUE(zkpv.read(rb, base));
81 Transcript tv((uint8_t*)
"zk_test", 7, kVersion);
82 verifier.recv_commitment(zkpv, tv);
83 EXPECT_TRUE(verifier.verify(zkpv, pub, tv));
84 log(INFO,
"ZK Verify done");
95 using Elt2 =
typename Field2::Elt;
99 const Field2 base_2(base);
100 const Elt2 omega{root_x, root_y};
101 const FftExtConvolutionFactory fft(base, base_2, omega, root_order);
102 const RSFactory rsf(fft, base);
106 Transcript tp((uint8_t*)
"zk_test", 7, kVersion);
109 prover.commit(zkpr, W, tp, rng);
110 bool p_ok = prover.prove(zkpr, W, tp);
115template <
class Field>
118 uint64_t omega_order,
const Field& F) {
121 FftConvolutionFactory fft(F, omega, omega_order);
123 const RSFactory rsf(fft, F);
127 Transcript tp((uint8_t*)
"zk_test", 7, kVersion);
130 prover.commit(zkpr, W, tp, rng);
131 EXPECT_TRUE(prover.prove(zkpr, W, tp));
133 log(INFO,
"ZK Prover done");
135 std::vector<uint8_t> zbuf;
137 log(INFO,
"zkp len: %zu bytes", zbuf.size());
143 EXPECT_TRUE(zkpv.read(rb, F));
147 Transcript tv((uint8_t*)
"zk_test", 7, kVersion);
148 verifier.recv_commitment(zkpv, tv);
149 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:70
Definition zk_prover.h:53
Definition zk_verifier.h:41