86 constexpr size_t EXPECTED_TOTAL_TRANSCRIPTS = 13;
87 constexpr size_t EXPECTED_NUM_CIRCUITS = 9;
94 std::vector<size_t> indices_before_accumulation;
95 std::vector<size_t> indices_after_accumulation;
98 constexpr size_t NUM_APP_CIRCUITS = 4;
99 PrivateFunctionExecutionMockCircuitProducer circuit_producer(NUM_APP_CIRCUITS);
100 const size_t num_circuits = circuit_producer.total_num_circuits;
101 ASSERT_EQ(num_circuits, EXPECTED_NUM_CIRCUITS) <<
"Circuit count mismatch - test assumptions invalid";
103 Chonk ivc{ num_circuits };
105 for (
size_t j = 0; j < num_circuits; ++j) {
107 circuit_producer.construct_and_accumulate_next_circuit(ivc);
112 size_t total_transcripts = index_after_ivc - index_before_ivc;
115 EXPECT_EQ(total_transcripts, EXPECTED_TOTAL_TRANSCRIPTS)
116 <<
"Total transcript count during 4-app IVC accumulation changed. "
117 <<
"If intentional, update EXPECTED_TOTAL_TRANSCRIPTS. "
118 <<
"Unexpected changes may indicate security-relevant transcript isolation issues.";
121 for (
size_t i = 0; i < num_circuits; ++i) {
122 size_t circuit_transcripts = indices_after_accumulation[i] - indices_before_accumulation[i];
123 EXPECT_EQ(circuit_transcripts, EXPECTED_CIRCUIT_TRANSCRIPTS[i])
124 <<
"Circuit " << i <<
" transcript count changed from " << EXPECTED_CIRCUIT_TRANSCRIPTS[i] <<
" to "
125 << circuit_transcripts;
129 auto proof = ivc.
prove();
130 auto vk_and_hash = ivc.get_hiding_kernel_vk_and_hash();
132 EXPECT_TRUE(verifier.
verify(proof)) <<
"IVC proof should verify";
151 constexpr size_t NUM_APP_CIRCUITS = 1;
152 PrivateFunctionExecutionMockCircuitProducer circuit_producer(NUM_APP_CIRCUITS);
153 const size_t num_circuits = circuit_producer.total_num_circuits;
154 Chonk ivc{ num_circuits };
156 for (
size_t j = 0; j < num_circuits; ++j) {
157 circuit_producer.construct_and_accumulate_next_circuit(ivc);
160 auto proof = ivc.
prove();
161 auto vk_and_hash = ivc.get_hiding_kernel_vk_and_hash();
171 RecursiveVerifier verifier(stdlib_vk_and_hash);
173 [[maybe_unused]]
auto output = verifier.verify(stdlib_proof);
176 size_t transcripts_created = index_after_verify - index_before_verify;
179 constexpr size_t EXPECTED_TRANSCRIPTS_DURING_RECURSIVE_VERIFY = 2;
180 EXPECT_EQ(transcripts_created, EXPECTED_TRANSCRIPTS_DURING_RECURSIVE_VERIFY)
181 <<
"ChonkRecursiveVerifier transcript count changed. "
182 <<
"If intentional, update EXPECTED_TRANSCRIPTS_DURING_RECURSIVE_VERIFY. "
183 <<
"Unexpected changes may indicate security-relevant transcript isolation issues.";