Skip to content

Commit 7743f9a

Browse files
committed
Decrease sparse commitment size
1 parent 1eb023e commit 7743f9a

File tree

6 files changed

+271
-125
lines changed

6 files changed

+271
-125
lines changed

circ_blocks/examples/zxc.rs

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1308,16 +1308,29 @@ fn run_spartan_proof<S: SpartanExtensionField>(
13081308
println!("Generating Circuits...");
13091309
// --
13101310
// BLOCK INSTANCES
1311+
// block_inst is used by sumcheck. Every block has the same number of variables
13111312
let (block_num_vars, block_num_cons, block_num_non_zero_entries, mut block_inst) =
1312-
Instance::gen_block_inst::<true>(
1313-
block_num_instances_bound,
1314-
num_vars,
1315-
&ctk.args,
1316-
num_inputs_unpadded,
1317-
&block_num_phy_ops,
1318-
&block_num_vir_ops,
1319-
&ctk.num_vars_per_block,
1320-
&rtk.block_num_proofs,
1313+
Instance::gen_block_inst::<true, false>(
1314+
block_num_instances_bound,
1315+
num_vars,
1316+
&ctk.args,
1317+
num_inputs_unpadded,
1318+
&block_num_phy_ops,
1319+
&block_num_vir_ops,
1320+
&ctk.num_vars_per_block,
1321+
&rtk.block_num_proofs,
1322+
);
1323+
// block_inst is used by commitment. Every block has different number of variables
1324+
let (_, _, _, block_inst_for_commit) =
1325+
Instance::<S>::gen_block_inst::<true, true>(
1326+
block_num_instances_bound,
1327+
num_vars,
1328+
&ctk.args,
1329+
num_inputs_unpadded,
1330+
&block_num_phy_ops,
1331+
&block_num_vir_ops,
1332+
&ctk.num_vars_per_block,
1333+
&rtk.block_num_proofs,
13211334
);
13221335
println!("Finished Block");
13231336

@@ -1355,7 +1368,7 @@ fn run_spartan_proof<S: SpartanExtensionField>(
13551368
println!("Comitting Circuits...");
13561369
// block_comm_map records the sparse_polys committed in each commitment
13571370
// Note that A, B, C are committed separately, so sparse_poly[3*i+2] corresponds to poly C of instance i
1358-
let (block_comm_map, block_comm_list, block_decomm_list) = SNARK::multi_encode(&block_inst);
1371+
let (block_comm_map, block_comm_list, block_decomm_list) = SNARK::multi_encode(&block_inst_for_commit);
13591372
println!("Finished Block");
13601373
let (pairwise_check_comm, pairwise_check_decomm) = SNARK::encode(&pairwise_check_inst);
13611374
println!("Finished Pairwise");

spartan_parallel/examples/interface.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,21 @@ fn main() {
135135
println!("Generating Circuits...");
136136
// --
137137
// BLOCK INSTANCES
138+
// block_inst is used by sumcheck. Every block has the same number of variables
138139
let (block_num_vars, block_num_cons, block_num_non_zero_entries, mut block_inst) =
139-
Instance::gen_block_inst::<true>(
140+
Instance::gen_block_inst::<true, false>(
141+
block_num_instances_bound,
142+
num_vars,
143+
&ctk.args,
144+
num_inputs_unpadded,
145+
&block_num_phy_ops,
146+
&block_num_vir_ops,
147+
&ctk.num_vars_per_block,
148+
&rtk.block_num_proofs,
149+
);
150+
// block_inst is used by commitment. Every block has different number of variables
151+
let (_, _, _, block_inst_for_commit) =
152+
Instance::<ScalarExt2>::gen_block_inst::<true, true>(
140153
block_num_instances_bound,
141154
num_vars,
142155
&ctk.args,
@@ -185,7 +198,7 @@ fn main() {
185198
println!("Comitting Circuits...");
186199
// block_comm_map records the sparse_polys committed in each commitment
187200
// Note that A, B, C are committed separately, so sparse_poly[3*i+2] corresponds to poly C of instance i
188-
let (block_comm_map, block_comm_list, block_decomm_list) = SNARK::multi_encode(&block_inst);
201+
let (block_comm_map, block_comm_list, block_decomm_list) = SNARK::multi_encode(&block_inst_for_commit);
189202
println!("Finished Block");
190203
let (pairwise_check_comm, pairwise_check_decomm) = SNARK::encode(&pairwise_check_inst);
191204
println!("Finished Pairwise");

0 commit comments

Comments
 (0)