85 constexpr size_t EXPECTED_TOTAL_TRANSCRIPTS = 12;
86 constexpr size_t EXPECTED_NUM_CIRCUITS = 7;
93 std::vector<size_t> indices_before_accumulation;
94 std::vector<size_t> indices_after_accumulation;
97 constexpr size_t NUM_APP_CIRCUITS = 2;
98 PrivateFunctionExecutionMockCircuitProducer circuit_producer(NUM_APP_CIRCUITS);
99 const size_t num_circuits = circuit_producer.total_num_circuits;
100 ASSERT_EQ(num_circuits, EXPECTED_NUM_CIRCUITS) <<
"Circuit count mismatch - test assumptions invalid";
102 Chonk ivc{ num_circuits };
104 for (
size_t j = 0; j < num_circuits; ++j) {
106 circuit_producer.construct_and_accumulate_next_circuit(ivc);
111 size_t total_transcripts = index_after_ivc - index_before_ivc;
114 EXPECT_EQ(total_transcripts, EXPECTED_TOTAL_TRANSCRIPTS)
115 <<
"Total transcript count during 2-app IVC accumulation changed. "
116 <<
"If intentional, update EXPECTED_TOTAL_TRANSCRIPTS. "
117 <<
"Unexpected changes may indicate security-relevant transcript isolation issues.";
120 for (
size_t i = 0; i < num_circuits; ++i) {
121 size_t circuit_transcripts = indices_after_accumulation[i] - indices_before_accumulation[i];
122 EXPECT_EQ(circuit_transcripts, EXPECTED_CIRCUIT_TRANSCRIPTS[i])
123 <<
"Circuit " << i <<
" transcript count changed from " << EXPECTED_CIRCUIT_TRANSCRIPTS[i] <<
" to "
124 << circuit_transcripts;
128 auto proof = ivc.
prove();
129 auto vk_and_hash = ivc.get_hiding_kernel_vk_and_hash();
131 EXPECT_TRUE(verifier.
verify(proof)) <<
"IVC proof should verify";
150 constexpr size_t NUM_APP_CIRCUITS = 1;
151 PrivateFunctionExecutionMockCircuitProducer circuit_producer(NUM_APP_CIRCUITS);
152 const size_t num_circuits = circuit_producer.total_num_circuits;
153 Chonk ivc{ num_circuits };
155 for (
size_t j = 0; j < num_circuits; ++j) {
156 circuit_producer.construct_and_accumulate_next_circuit(ivc);
159 auto proof = ivc.
prove();
160 auto vk_and_hash = ivc.get_hiding_kernel_vk_and_hash();
170 RecursiveVerifier verifier(stdlib_vk_and_hash);
172 [[maybe_unused]]
auto output = verifier.verify(stdlib_proof);
175 size_t transcripts_created = index_after_verify - index_before_verify;
178 constexpr size_t EXPECTED_TRANSCRIPTS_DURING_RECURSIVE_VERIFY = 2;
179 EXPECT_EQ(transcripts_created, EXPECTED_TRANSCRIPTS_DURING_RECURSIVE_VERIFY)
180 <<
"ChonkRecursiveVerifier transcript count changed. "
181 <<
"If intentional, update EXPECTED_TRANSCRIPTS_DURING_RECURSIVE_VERIFY. "
182 <<
"Unexpected changes may indicate security-relevant transcript isolation issues.";