Skip to content

Commit 8bb5ed5

Browse files
committed
Append commitments
1 parent 2230559 commit 8bb5ed5

File tree

1 file changed

+63
-1
lines changed

1 file changed

+63
-1
lines changed

spartan_parallel/src/lib.rs

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1574,11 +1574,23 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
15741574
let (perm_exec_w2_prover, perm_exec_w2_v_comm) = Self::mat_to_prove_wit_sec(perm_exec_w2, &poly_pp);
15751575
let (perm_exec_w3_prover, perm_exec_w3_v_comm) = Self::mat_to_prove_wit_sec(perm_exec_w3, &poly_pp);
15761576
let (perm_exec_w3_shifted_prover, perm_exec_w3_shifted_v_comm) = Self::mat_to_prove_wit_sec(perm_exec_w3_shifted_mat, &poly_pp);
1577-
15781577
let (block_w2_prover, block_w2_v_comm) = Self::mats_to_prove_wit_sec(block_w2, &poly_pp);
15791578
let (block_w3_prover, block_w3_v_comm) = Self::mats_to_prove_wit_sec(block_w3, &poly_pp);
15801579
let (block_w3_shifted_prover, block_w3_shifted_v_comm) = Self::mats_to_prove_wit_sec(block_w3_shifted_mat, &poly_pp);
15811580

1581+
// Append commmitments to transcript
1582+
for comm in vec![
1583+
perm_exec_w2_v_comm,
1584+
perm_exec_w3_v_comm,
1585+
perm_exec_w3_shifted_v_comm,
1586+
]
1587+
.into_iter()
1588+
.chain(block_w2_v_comm.into_iter())
1589+
.chain(block_w3_v_comm.into_iter())
1590+
.chain(block_w3_shifted_v_comm.into_iter()) {
1591+
Pcs::write_commitment(comm, transcript);
1592+
}
1593+
15821594
(
15831595
comb_tau,
15841596
comb_r,
@@ -1728,6 +1740,10 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
17281740
let timer_commit = Timer::new("input_commit");
17291741
let (block_vars_prover, block_vars_v_comm_list) = Self::mats_to_prove_wit_sec(block_vars_mat, &poly_pp);
17301742
let (exec_inputs_prover, exec_inputs_v_comm) = Self::mat_to_prove_wit_sec(exec_inputs_list, &poly_pp);
1743+
for comm in block_vars_v_comm_list.into_iter().chain(vec![exec_inputs_v_comm].into_iter()) {
1744+
Pcs::write_commitment(comm, transcript);
1745+
}
1746+
17311747
let init_phy_mems_prover = if total_num_init_phy_mem_accesses > 0 {
17321748
Self::mat_to_prover_wit_sec_no_commit(init_phy_mems_list)
17331749
} else {
@@ -1744,6 +1760,14 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
17441760
let addr_phy_mems_shifted_list = vec![addr_phy_mems_list[1..].to_vec(), vec![vec![E::ZERO; PHY_MEM_WIDTH]]].concat();
17451761
let (addr_phy_mems_prover, addr_phy_mems_v_comm) = Self::mat_to_prove_wit_sec(addr_phy_mems_list, &poly_pp);
17461762
let (addr_phy_mems_shifted_prover, addr_phy_mems_shifted_v_comm) = Self::mat_to_prove_wit_sec(addr_phy_mems_shifted_list, &poly_pp);
1763+
1764+
for comm in vec![
1765+
addr_phy_mems_v_comm,
1766+
addr_phy_mems_shifted_v_comm,
1767+
] {
1768+
Pcs::write_commitment(comm, transcript);
1769+
}
1770+
17471771
(addr_phy_mems_prover, Some(addr_phy_mems_v_comm), addr_phy_mems_shifted_prover, Some(addr_phy_mems_shifted_v_comm))
17481772
} else {
17491773
(ProverWitnessSecInfo::dummy(), None, ProverWitnessSecInfo::dummy(), None)
@@ -1756,6 +1780,15 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
17561780
let (addr_vir_mems_prover, addr_vir_mems_v_comm) = Self::mat_to_prove_wit_sec(addr_vir_mems_list, &poly_pp);
17571781
let (addr_vir_mems_shifted_prover, addr_vir_mems_shifted_v_comm) = Self::mat_to_prove_wit_sec(addr_vir_mems_shifted_list, &poly_pp);
17581782
let (addr_ts_bits_prover, addr_ts_bits_v_comm) = Self::mat_to_prove_wit_sec(addr_ts_bits_list, &poly_pp);
1783+
1784+
for comm in vec![
1785+
addr_vir_mems_v_comm,
1786+
addr_vir_mems_shifted_v_comm,
1787+
addr_ts_bits_v_comm,
1788+
] {
1789+
Pcs::write_commitment(comm, transcript);
1790+
}
1791+
17591792
(
17601793
addr_vir_mems_prover,
17611794
Some(addr_vir_mems_v_comm),
@@ -2730,6 +2763,19 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
27302763
)
27312764
};
27322765

2766+
// Append commmitments to transcript
2767+
for comm in vec![
2768+
self.perm_exec_w2_comm,
2769+
self.perm_exec_w3_comm,
2770+
self.perm_exec_w3_shifted_comm,
2771+
]
2772+
.into_iter()
2773+
.chain(self.block_w2_comm_list.into_iter())
2774+
.chain(self.block_w3_comm_list.into_iter())
2775+
.chain(self.block_w3_shifted_comm_list.into_iter()) {
2776+
Pcs::write_commitment(comm, transcript);
2777+
}
2778+
27332779
let (init_phy_mem_w2_verifier, init_phy_mem_w3_verifier, init_phy_mem_w3_shifted_verifier) = {
27342780
if total_num_init_phy_mem_accesses > 0 {
27352781
(
@@ -2808,6 +2854,10 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
28082854
)
28092855
};
28102856

2857+
for comm in self.block_vars_comm_list.into_iter().chain(vec![self.exec_inputs_comm]) {
2858+
Pcs::write_commitment(comm, transcript);
2859+
}
2860+
28112861
let init_phy_mems_verifier = {
28122862
if input_stack.len() > 0 {
28132863
assert_eq!(
@@ -2879,6 +2929,12 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
28792929

28802930
let (addr_phy_mems_verifier, addr_phy_mems_shifted_verifier) = {
28812931
if total_num_phy_mem_accesses > 0 {
2932+
for comm in vec![
2933+
self.addr_phy_mems_comm,
2934+
self.addr_phy_mems_shifted_comm,
2935+
] {
2936+
Pcs::write_commitment(comm, transcript);
2937+
}
28822938
(
28832939
VerifierWitnessSecInfo::new(vec![PHY_MEM_WIDTH], &vec![total_num_phy_mem_accesses]),
28842940
VerifierWitnessSecInfo::new(vec![PHY_MEM_WIDTH], &vec![total_num_phy_mem_accesses]),
@@ -2893,6 +2949,12 @@ impl<E: ExtensionField + Send + Sync, Pcs: PolynomialCommitmentScheme<E>> SNARK<
28932949

28942950
let (addr_vir_mems_verifier, addr_vir_mems_shifted_verifier, addr_ts_bits_verifier) = {
28952951
if total_num_vir_mem_accesses > 0 {
2952+
for comm in vec![
2953+
self.addr_vir_mems_comm,
2954+
self.addr_vir_mems_shifted_comm,
2955+
] {
2956+
Pcs::write_commitment(comm, transcript);
2957+
}
28962958
(
28972959
VerifierWitnessSecInfo::new(vec![VIR_MEM_WIDTH], &vec![total_num_vir_mem_accesses]),
28982960
VerifierWitnessSecInfo::new(vec![VIR_MEM_WIDTH], &vec![total_num_vir_mem_accesses]),

0 commit comments

Comments
 (0)