From 0944a30c671b4f789432fcfa051e2543ae50ca00 Mon Sep 17 00:00:00 2001 From: codygunton Date: Wed, 28 Feb 2024 21:17:24 +0000 Subject: [PATCH 01/18] Delete compute_commitment_key --- .../barretenberg/protogalaxy/decider_prover.cpp | 3 +-- .../barretenberg/protogalaxy/decider_prover.hpp | 1 - .../src/barretenberg/ultra_honk/ultra_composer.cpp | 14 +------------- .../src/barretenberg/ultra_honk/ultra_composer.hpp | 10 ---------- 4 files changed, 2 insertions(+), 26 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp index 522b6e1d8e6a..8cd83c229ad1 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp @@ -14,11 +14,10 @@ namespace bb { * */ template DeciderProver_::DeciderProver_(const std::shared_ptr& inst, - const std::shared_ptr& commitment_key, const std::shared_ptr& transcript) : accumulator(std::move(inst)) , transcript(transcript) - , commitment_key(commitment_key) + , commitment_key(inst->proving_key->commitment_key) {} /** diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.hpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.hpp index 43d0b602bcce..9c9adc57a85d 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.hpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.hpp @@ -25,7 +25,6 @@ template class DeciderProver_ { public: explicit DeciderProver_(const std::shared_ptr&, - const std::shared_ptr&, const std::shared_ptr& transcript = std::make_shared()); BB_PROFILE void execute_preamble_round(); diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp index 334f60bf8c60..9a099d340a61 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp @@ -37,19 +37,7 @@ template DeciderProver_ UltraComposer_::create_decider_prover(const std::shared_ptr& accumulator, const std::shared_ptr& transcript) { - commitment_key = compute_commitment_key(accumulator->instance_size); - DeciderProver_ output_state(accumulator, commitment_key, transcript); - - return output_state; -} - -template -DeciderProver_ UltraComposer_::create_decider_prover( - const std::shared_ptr& accumulator, - const std::shared_ptr& commitment_key, - const std::shared_ptr& transcript) -{ - DeciderProver_ output_state(accumulator, commitment_key, transcript); + DeciderProver_ output_state(accumulator, transcript); return output_state; } diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp index dfa23c933497..13f5979395c3 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp @@ -52,12 +52,6 @@ template class UltraComposer_ { UltraComposer_& operator=(UltraComposer_ const& other) noexcept = default; ~UltraComposer_() = default; - std::shared_ptr compute_commitment_key(size_t circuit_size) - { - commitment_key = std::make_shared(circuit_size + 1); - return commitment_key; - }; - std::shared_ptr create_instance(CircuitBuilder& circuit); UltraProver_ create_prover(const std::shared_ptr&, @@ -70,10 +64,6 @@ template class UltraComposer_ { DeciderProver_ create_decider_prover( const std::shared_ptr&, const std::shared_ptr& transcript = std::make_shared()); - DeciderProver_ create_decider_prover( - const std::shared_ptr&, - const std::shared_ptr&, - const std::shared_ptr& transcript = std::make_shared()); DeciderVerifier_ create_decider_verifier( const std::shared_ptr&, From d4f49c97940e8bceadb723588d355a7f3a376e73 Mon Sep 17 00:00:00 2001 From: codygunton Date: Wed, 28 Feb 2024 21:18:44 +0000 Subject: [PATCH 02/18] Delete commitment key --- barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp index 13f5979395c3..dddb9babc298 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp @@ -37,8 +37,6 @@ template class UltraComposer_ { // The crs_factory holds the path to the srs and exposes methods to extract the srs elements std::shared_ptr crs_factory_; - // The commitment key is passed to the prover but also used herein to compute the verfication key commitments - std::shared_ptr commitment_key; UltraComposer_() { crs_factory_ = bb::srs::get_bn254_crs_factory(); } From a673bd2264f7652b508f94ecf6642a171daf6a9b Mon Sep 17 00:00:00 2001 From: codygunton Date: Wed, 28 Feb 2024 21:33:42 +0000 Subject: [PATCH 03/18] Remove CRS factory --- barretenberg/cpp/src/barretenberg/flavor/flavor.hpp | 1 + .../recursion/honk/verifier/merge_verifier.test.cpp | 1 - .../ultra_honk/goblin_ultra_composer.test.cpp | 2 -- .../cpp/src/barretenberg/ultra_honk/ultra_composer.cpp | 6 ++++-- .../cpp/src/barretenberg/ultra_honk/ultra_composer.hpp | 10 +--------- .../barretenberg/ultra_honk/ultra_composer.test.cpp | 2 +- 6 files changed, 7 insertions(+), 15 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp b/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp index 640a9f688695..86cc278b8ac7 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp @@ -151,6 +151,7 @@ template class VerificationKey_ : public Preco this->log_circuit_size = numeric::get_msb(circuit_size); this->num_public_inputs = num_public_inputs; }; + template VerificationKey_(const ProvingKeyPtr& proving_key) { this->circuit_size = proving_key->circuit_size; diff --git a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp index bd227b91a67e..909e0a2d8ea0 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp @@ -49,7 +49,6 @@ class RecursiveMergeVerifierTest : public testing::Test { GoblinMockCircuits::construct_simple_initial_circuit(sample_circuit); // Generate a proof over the inner circuit - InnerComposer inner_composer; MergeProver merge_prover{ op_queue }; auto merge_proof = merge_prover.construct_proof(); diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/goblin_ultra_composer.test.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/goblin_ultra_composer.test.cpp index ddc3cd4bd728..3e9c2470d4b0 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/goblin_ultra_composer.test.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/goblin_ultra_composer.test.cpp @@ -136,8 +136,6 @@ TEST_F(GoblinUltraHonkComposerTests, MultipleCircuitsMergeOnly) generate_test_circuit(builder); - auto composer = GoblinUltraComposer(); - // Construct and verify Goblin ECC op queue Merge proof auto merge_verified = construct_and_verify_merge_proof(op_queue); EXPECT_TRUE(merge_verified); diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp index 9a099d340a61..89cdaf7d5985 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp @@ -27,7 +27,8 @@ UltraVerifier_ UltraComposer_::create_verifier(const std::shared { auto& verification_key = instance->verification_key; UltraVerifier_ output_state(transcript, verification_key); - auto pcs_verification_key = std::make_unique(verification_key->circuit_size, crs_factory_); + auto pcs_verification_key = std::make_unique( + verification_key->circuit_size, instance->proving_key->commitment_key->crs_factory); output_state.pcs_verification_key = std::move(pcs_verification_key); return output_state; @@ -48,7 +49,8 @@ DeciderVerifier_ UltraComposer_::create_decider_verifier(const s { auto& verification_key = accumulator->verification_key; DeciderVerifier_ output_state(transcript, verification_key); - auto pcs_verification_key = std::make_unique(accumulator->instance_size, crs_factory_); + auto pcs_verification_key = std::make_unique( + accumulator->instance_size, accumulator->proving_key->commitment_key->crs_factory); output_state.pcs_verification_key = std::move(pcs_verification_key); return output_state; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp index dddb9babc298..90cb7837fc94 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp @@ -35,15 +35,7 @@ template class UltraComposer_ { static constexpr std::string_view NAME_STRING = "UltraHonk"; static constexpr size_t NUM_WIRES = CircuitBuilder::NUM_WIRES; - // The crs_factory holds the path to the srs and exposes methods to extract the srs elements - std::shared_ptr crs_factory_; - - UltraComposer_() { crs_factory_ = bb::srs::get_bn254_crs_factory(); } - - explicit UltraComposer_(std::shared_ptr crs_factory) - : crs_factory_(std::move(crs_factory)) - {} - + UltraComposer_() = default; UltraComposer_(UltraComposer_&& other) noexcept = default; UltraComposer_(UltraComposer_ const& other) noexcept = default; UltraComposer_& operator=(UltraComposer_&& other) noexcept = default; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.test.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.test.cpp index 7acc891f7f9b..205647968c9f 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.test.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.test.cpp @@ -137,7 +137,7 @@ TEST_F(UltraHonkComposerTests, XorConstraint) circuit_builder.create_gates_from_plookup_accumulators( plookup::MultiTableId::UINT32_XOR, lookup_accumulators, left_witness_index, right_witness_index); - auto composer = UltraComposer(bb::srs::get_bn254_crs_factory()); + UltraComposer composer; prove_and_verify(circuit_builder, composer, /*expected_result=*/true); } From dc8f5ea080d8b7c1bacbd427194bfb7500bcbf6c Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 03:43:40 +0000 Subject: [PATCH 04/18] Provide commitment key to decider --- .../cpp/src/barretenberg/protogalaxy/decider_prover.cpp | 2 +- .../src/barretenberg/protogalaxy/protogalaxy_prover.cpp | 2 ++ .../src/barretenberg/protogalaxy/protogalaxy_prover.hpp | 3 ++- .../barretenberg/sumcheck/instance/prover_instance.hpp | 4 ++++ .../cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp | 3 +-- .../cpp/src/barretenberg/ultra_honk/ultra_composer.cpp | 9 +++++---- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp index 8cd83c229ad1..8dc480c8f616 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_prover.cpp @@ -17,7 +17,7 @@ DeciderProver_::DeciderProver_(const std::shared_ptr& inst, const std::shared_ptr& transcript) : accumulator(std::move(inst)) , transcript(transcript) - , commitment_key(inst->proving_key->commitment_key) + , commitment_key(inst->commitment_key) {} /** diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp index 378f6aee6fba..3dc8bd64e1af 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp @@ -183,10 +183,12 @@ std::shared_ptr ProtoGalaxyProver_ lagranges{ FF(1) - challenge, challenge }; + // WORKTODO: bad pattern; can't copy construct but can assign to commitment_key member, confusing state auto next_accumulator = std::make_shared(); next_accumulator->is_accumulator = true; next_accumulator->instance_size = instances[0]->instance_size; next_accumulator->log_instance_size = instances[0]->log_instance_size; + next_accumulator->commitment_key = instances[0]->commitment_key; // Compute the next target sum and send the next folding parameters to the verifier FF next_target_sum = diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp index d5a142e74332..897ae9b4f2a9 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp @@ -15,7 +15,8 @@ namespace bb { template struct ProtogalaxyProofConstructionState { using FF = typename ProverInstances_::FF; - using Instance = typename ProverInstances_::Instance; + using ProverInstance = typename ProverInstances_::Instance; + using Instance = ProverInstance; std::shared_ptr accumulator; Polynomial perturbator; diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp index c6d9d94d1e46..2b8faedd80f2 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp @@ -34,6 +34,9 @@ template class ProverInstance_ { public: std::shared_ptr proving_key; + // commitment_key needs to be here, and not accessed through the proving key, since somtimes the proving key is + // uninitialized in the proving key + std::shared_ptr commitment_key; std::shared_ptr verification_key; ProverPolynomials prover_polynomials; @@ -93,6 +96,7 @@ template class ProverInstance_ { populate_memory_read_write_records(circuit, proving_key); verification_key = std::make_shared(proving_key); + commitment_key = proving_key->commitment_key; } ProverInstance_() = default; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp index 42f5757c1e39..504a2021d667 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp @@ -67,10 +67,9 @@ template class ProtoGalaxyTests : public testing::Test { auto folding_verifier = composer.create_folding_verifier(); auto proof = folding_prover.fold_instances(); - auto next_accumulator = proof.accumulator; auto res = folding_verifier.verify_folding_proof(proof.folding_data); EXPECT_EQ(res, expected_result); - return next_accumulator; + return proof.accumulcator; } static void check_accumulator_target_sum_manual(std::shared_ptr& accumulator, bool expected_result) diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp index 89cdaf7d5985..c59e9559f94c 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp @@ -47,10 +47,11 @@ template DeciderVerifier_ UltraComposer_::create_decider_verifier(const std::shared_ptr& accumulator, const std::shared_ptr& transcript) { - auto& verification_key = accumulator->verification_key; - DeciderVerifier_ output_state(transcript, verification_key); - auto pcs_verification_key = std::make_unique( - accumulator->instance_size, accumulator->proving_key->commitment_key->crs_factory); + DeciderVerifier_ output_state(transcript, accumulator->verification_key); + // WORKTODO: HACK: this function changes in Mara's PR; need to put crs factory in verifier instance after that. + srs::init_crs_factory("../srs_db/ignition"); + auto pcs_verification_key = + std::make_unique(accumulator->instance_size, srs::get_bn254_crs_factory()); output_state.pcs_verification_key = std::move(pcs_verification_key); return output_state; From 5404cac8437b0112e544e3d3945424df4d1ff8ee Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 03:48:18 +0000 Subject: [PATCH 05/18] Fix typo and clarify --- .../cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp index 504a2021d667..c6a272f1e9a3 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/protogalaxy.test.cpp @@ -66,10 +66,10 @@ template class ProtoGalaxyTests : public testing::Test { auto folding_prover = composer.create_folding_prover(instances); auto folding_verifier = composer.create_folding_verifier(); - auto proof = folding_prover.fold_instances(); - auto res = folding_verifier.verify_folding_proof(proof.folding_data); - EXPECT_EQ(res, expected_result); - return proof.accumulcator; + auto folding_result = folding_prover.fold_instances(); + auto verified = folding_verifier.verify_folding_proof(folding_result.folding_data); + EXPECT_EQ(verified, expected_result); + return folding_result.accumulator; } static void check_accumulator_target_sum_manual(std::shared_ptr& accumulator, bool expected_result) From 8eeea852f3661f2490967a96e9e5620b20ffdd2b Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 04:02:51 +0000 Subject: [PATCH 06/18] Clarify comment --- .../src/barretenberg/sumcheck/instance/prover_instance.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp index 2b8faedd80f2..ba6e1546650d 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp @@ -34,8 +34,8 @@ template class ProverInstance_ { public: std::shared_ptr proving_key; - // commitment_key needs to be here, and not accessed through the proving key, since somtimes the proving key is - // uninitialized in the proving key + // commitment_key needs to be here, and not accessed through the proving key, since sometimes the proving key is + // null std::shared_ptr commitment_key; std::shared_ptr verification_key; From 0d90615a47e72e49eea52638fcfc31c5c5962539 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 05:19:49 +0000 Subject: [PATCH 07/18] These are all unused --- .../cpp/src/barretenberg/ultra_honk/ultra_composer.hpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp index 90cb7837fc94..1b506317dd3a 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp @@ -30,11 +30,6 @@ template class UltraComposer_ { using ProverInstances = ProverInstances_; using VerifierInstances = VerifierInstances_; - // offset due to placing zero wires at the start of execution trace - static constexpr size_t num_zero_rows = Flavor::has_zero_row ? 1 : 0; - static constexpr std::string_view NAME_STRING = "UltraHonk"; - static constexpr size_t NUM_WIRES = CircuitBuilder::NUM_WIRES; - UltraComposer_() = default; UltraComposer_(UltraComposer_&& other) noexcept = default; UltraComposer_(UltraComposer_ const& other) noexcept = default; From 1b5099650a87497341e3bbdcb4ab024db128da7f Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 05:20:43 +0000 Subject: [PATCH 08/18] Don't need to specify defaults. --- .../cpp/src/barretenberg/ultra_honk/ultra_composer.hpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp index 1b506317dd3a..504ccf4dbadd 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp @@ -30,13 +30,6 @@ template class UltraComposer_ { using ProverInstances = ProverInstances_; using VerifierInstances = VerifierInstances_; - UltraComposer_() = default; - UltraComposer_(UltraComposer_&& other) noexcept = default; - UltraComposer_(UltraComposer_ const& other) noexcept = default; - UltraComposer_& operator=(UltraComposer_&& other) noexcept = default; - UltraComposer_& operator=(UltraComposer_ const& other) noexcept = default; - ~UltraComposer_() = default; - std::shared_ptr create_instance(CircuitBuilder& circuit); UltraProver_ create_prover(const std::shared_ptr&, From 654411b340f894759a88a553455b22f3027cabfd Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 05:31:01 +0000 Subject: [PATCH 09/18] Remove NUM_FOLDING; class has no data now --- .../cpp/src/barretenberg/sumcheck/instance/instances.hpp | 7 ++++--- .../barretenberg/sumcheck/instance/verifier_instance.hpp | 2 +- .../cpp/src/barretenberg/ultra_honk/ultra_composer.hpp | 5 ++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp index a84f89db403b..9d145d6c7906 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp @@ -4,9 +4,9 @@ namespace bb { -template struct ProverInstances_ { +template struct ProverInstances_ { public: - static_assert(NUM_ > 0, "Must have at least one prover instance"); + static_assert(NUM_ > 1, "Must have at least one prover instance"); // WORKTODO using Flavor = Flavor_; using FF = typename Flavor::FF; static constexpr size_t NUM = NUM_; @@ -84,7 +84,8 @@ template struct ProverInstances_ { } }; -template struct VerifierInstances_ { +template struct VerifierInstances_ { + static_assert(NUM_ > 1, "Must have at least one prover instance"); // WORKTODO using Flavor = Flavor_; using VerificationKey = typename Flavor::VerificationKey; using Instance = VerifierInstance_; diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp index 9ba56880f84c..397f3a16ca26 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp @@ -3,7 +3,7 @@ #include "barretenberg/relations/relation_parameters.hpp" namespace bb { -template class VerifierInstance_ { +template class VerifierInstance_ { public: using FF = typename Flavor::FF; using VerificationKey = typename Flavor::VerificationKey; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp index 504ccf4dbadd..3b4d2a4ee380 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp @@ -26,9 +26,8 @@ template class UltraComposer_ { using Transcript = typename Flavor::Transcript; using CRSFactory = srs::factories::CrsFactory; - static constexpr size_t NUM_FOLDING = 2; - using ProverInstances = ProverInstances_; - using VerifierInstances = VerifierInstances_; + using ProverInstances = ProverInstances_; + using VerifierInstances = VerifierInstances_; std::shared_ptr create_instance(CircuitBuilder& circuit); From 92d91078c930fedda9d4155b5552bc74d32d0b9a Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 15:02:49 +0000 Subject: [PATCH 10/18] Reference issue on Pg state --- .../cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp index 3dc8bd64e1af..6bc1346e0fda 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.cpp @@ -183,7 +183,7 @@ std::shared_ptr ProtoGalaxyProver_ lagranges{ FF(1) - challenge, challenge }; - // WORKTODO: bad pattern; can't copy construct but can assign to commitment_key member, confusing state + // TODO(https://github.com/AztecProtocol/barretenberg/issues/881): bad pattern auto next_accumulator = std::make_shared(); next_accumulator->is_accumulator = true; next_accumulator->instance_size = instances[0]->instance_size; From 8393fa22f6f276a214ad10e86bb7ce3f64092267 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 15:04:03 +0000 Subject: [PATCH 11/18] Improve error message --- .../cpp/src/barretenberg/sumcheck/instance/instances.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp index 9d145d6c7906..4bf647d2cfcb 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp @@ -6,7 +6,7 @@ namespace bb { template struct ProverInstances_ { public: - static_assert(NUM_ > 1, "Must have at least one prover instance"); // WORKTODO + static_assert(NUM_ > 1, "Must have at least two prover instances"); using Flavor = Flavor_; using FF = typename Flavor::FF; static constexpr size_t NUM = NUM_; @@ -85,7 +85,7 @@ template struct ProverInstances_ { }; template struct VerifierInstances_ { - static_assert(NUM_ > 1, "Must have at least one prover instance"); // WORKTODO + static_assert(NUM_ > 1, "Must have at least two prover instances"); using Flavor = Flavor_; using VerificationKey = typename Flavor::VerificationKey; using Instance = VerifierInstance_; From aefafae67be446dc213f37c4cb5aa7a1a5a5e418 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 15:53:00 +0000 Subject: [PATCH 12/18] Move decider ver creation out of composer. --- .../barretenberg/protogalaxy/decider_verifier.cpp | 1 + .../barretenberg/protogalaxy/decider_verifier.hpp | 2 ++ .../src/barretenberg/ultra_honk/ultra_composer.cpp | 14 +++----------- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp index e685f8930ecb..6e0a183da87b 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp @@ -11,6 +11,7 @@ DeciderVerifier_::DeciderVerifier_(const std::shared_ptr& tr const std::shared_ptr& accumulator) : accumulator(accumulator) , transcript(transcript) + , commitment_key(accumulator->verification_key->commitment_key) {} template DeciderVerifier_::DeciderVerifier_() diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp index 3969b89d96c1..91dc92d5132e 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp @@ -10,6 +10,7 @@ namespace bb { template class DeciderVerifier_ { using FF = typename Flavor::FF; using Commitment = typename Flavor::Commitment; + using CommitmentKey = typename Flavor::CommitmentKey; using VerificationKey = typename Flavor::VerificationKey; using VerifierCommitmentKey = typename Flavor::VerifierCommitmentKey; using Transcript = typename Flavor::Transcript; @@ -27,6 +28,7 @@ template class DeciderVerifier_ { std::shared_ptr accumulator; std::shared_ptr pcs_verification_key; std::shared_ptr transcript; + std::shared_ptr commitment_key; // WORKTODO }; using DeciderVerifier = DeciderVerifier_; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp index e64ac257ce0a..d0b8ac26294d 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp @@ -45,23 +45,15 @@ template DeciderProver_ UltraComposer_::create_decider_prover(const std::shared_ptr& accumulator, const std::shared_ptr& transcript) { - DeciderProver_ output_state(accumulator, transcript); - - return output_state; + return DeciderProver_(accumulator, transcript); + ; } template DeciderVerifier_ UltraComposer_::create_decider_verifier( const std::shared_ptr& accumulator, const std::shared_ptr& transcript) { - DeciderVerifier_ output_state(transcript, accumulator); - // WORKTODO: HACK: this function changes in Mara's PR; need to put crs factory in verifier instance after that. - srs::init_crs_factory("../srs_db/ignition"); - auto pcs_verification_key = - std::make_unique(accumulator->instance_size, srs::get_bn254_crs_factory()); - output_state.pcs_verification_key = std::move(pcs_verification_key); - - return output_state; + return DeciderVerifier_(transcript, accumulator); } template class UltraComposer_; From 4def8a07d09852108d100e22e91dfa70e497f930 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 22:13:37 +0000 Subject: [PATCH 13/18] Fix client ivc; move pcs vk into verifier inst and vk. --- .../commitment_key.test.hpp | 3 +-- .../commitment_schemes/verification_key.hpp | 24 ++++++------------- .../cpp/src/barretenberg/flavor/ecc_vm.hpp | 2 +- .../cpp/src/barretenberg/flavor/flavor.hpp | 9 +++---- .../flavor/generated/avm_flavor.hpp | 2 +- .../flavor/generated/toy_flavor.hpp | 2 +- .../barretenberg/flavor/goblin_translator.hpp | 2 +- .../src/barretenberg/flavor/goblin_ultra.hpp | 2 +- .../cpp/src/barretenberg/flavor/ultra.hpp | 2 +- .../protogalaxy/decider_verifier.cpp | 7 +++--- .../protogalaxy/decider_verifier.hpp | 1 - .../honk/verifier/goblin_verifier.test.cpp | 4 ++-- .../honk/verifier/merge_verifier.test.cpp | 2 +- .../protogalaxy_recursive_verifier.test.cpp | 2 +- .../recursion/honk/verifier/verifier.test.cpp | 4 ++-- .../sumcheck/instance/verifier_instance.hpp | 8 ++++++- .../goblin_translator_composer.cpp | 2 +- .../ultra_honk/merge_verifier.cpp | 2 +- .../ultra_honk/ultra_composer.cpp | 7 +----- .../ultra_honk/ultra_verifier.cpp | 5 +--- .../ultra_honk/ultra_verifier.hpp | 1 - .../vm/generated/avm_composer.cpp | 2 +- .../vm/generated/toy_composer.cpp | 2 +- 23 files changed, 42 insertions(+), 55 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp b/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp index 4df728ba6b9f..0fd4e33ee7ac 100644 --- a/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp +++ b/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp @@ -39,10 +39,9 @@ template <> inline std::shared_ptr> CreateVerifierCommitmentKey< VerifierCommitmentKey>() { - constexpr size_t n = 4096; std::shared_ptr> crs_factory( new bb::srs::factories::FileCrsFactory("../srs_db/ignition", 4096)); - return std::make_shared>(n, crs_factory); + return std::make_shared>(); } // For IPA template <> diff --git a/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp b/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp index 774bcf2d7715..a4dba0777ab3 100644 --- a/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp +++ b/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp @@ -13,8 +13,7 @@ #include "barretenberg/numeric/bitop/pow.hpp" #include "barretenberg/polynomials/polynomial.hpp" #include "barretenberg/polynomials/polynomial_arithmetic.hpp" -#include "barretenberg/srs/factories/crs_factory.hpp" -#include "barretenberg/srs/factories/file_crs_factory.hpp" +#include "barretenberg/srs/global_crs.hpp" #include #include @@ -35,19 +34,13 @@ template <> class VerifierCommitmentKey { using Commitment = typename Curve::AffineElement; public: - VerifierCommitmentKey() = delete; + std::shared_ptr> srs; - /** - * @brief Construct a new Kate Verification Key object from existing SRS - * - * @param num_points - * @param srs verifier G2 point - */ - VerifierCommitmentKey( - [[maybe_unused]] size_t num_points, // TODO(https://github.com/AztecProtocol/barretenberg/issues/874) - std::shared_ptr> crs_factory) - : srs(crs_factory->get_verifier_crs()) - {} + VerifierCommitmentKey() + { + srs::init_crs_factory("../srs_db/ignition"); + srs = srs::get_crs_factory()->get_verifier_crs(); + }; /** * @brief verifies a pairing equation over 2 points using the verifier SRS @@ -65,9 +58,6 @@ template <> class VerifierCommitmentKey { return (result == Curve::TargetField::one()); } - - std::shared_ptr> crs_factory; - std::shared_ptr> srs; }; /** diff --git a/barretenberg/cpp/src/barretenberg/flavor/ecc_vm.hpp b/barretenberg/cpp/src/barretenberg/flavor/ecc_vm.hpp index 224a79dee722..72f62b589fe1 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/ecc_vm.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/ecc_vm.hpp @@ -329,7 +329,7 @@ template class ECCVMBa * resolve that, and split out separate PrecomputedPolynomials/Commitments data for clarity but also for * portability of our circuits. */ - using VerificationKey = VerificationKey_, CommitmentKey>; + using VerificationKey = VerificationKey_, VerifierCommitmentKey>; /** * @brief A container for polynomials produced after the first round of sumcheck. diff --git a/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp b/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp index 0c4bbd76c521..c40a3834b6b8 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp @@ -73,6 +73,7 @@ #include "barretenberg/polynomials/univariate.hpp" #include "barretenberg/proof_system/types/circuit_type.hpp" #include +#include #include #include @@ -82,7 +83,7 @@ namespace bb { * @brief Base class template containing circuit-specifying data. * */ -class PrecomputedEntitiesBase { +class PrecomputedEntitiesBase { // WORKTODO: utility? public: size_t circuit_size; size_t log_circuit_size; @@ -142,10 +143,10 @@ class ProvingKey_ : public PrecomputedPolynomials, public WitnessPolynomials { * * @tparam PrecomputedEntities An instance of PrecomputedEntities_ with affine_element data type and handle type. */ -template +template class VerificationKey_ : public PrecomputedCommitments { public: - std::shared_ptr commitment_key; + std::shared_ptr pcs_verification_key; // WORKTODO: asymmetrical naming VerificationKey_() = default; VerificationKey_(const size_t circuit_size, const size_t num_public_inputs) @@ -160,7 +161,7 @@ class VerificationKey_ : public PrecomputedCommitments { this->circuit_size = proving_key->circuit_size; this->log_circuit_size = numeric::get_msb(this->circuit_size); this->num_public_inputs = proving_key->num_public_inputs; - this->commitment_key = proving_key->commitment_key; + this->pcs_verification_key = std::make_shared(); for (auto [polynomial, commitment] : zip_view(proving_key->get_precomputed_polynomials(), this->get_all())) { commitment = proving_key->commitment_key->commit(polynomial); diff --git a/barretenberg/cpp/src/barretenberg/flavor/generated/avm_flavor.hpp b/barretenberg/cpp/src/barretenberg/flavor/generated/avm_flavor.hpp index a2b3f38d745d..9e32dca00fac 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/generated/avm_flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/generated/avm_flavor.hpp @@ -525,7 +525,7 @@ class AvmFlavor { RefArray get_table_column_wires() { return {}; }; }; - using VerificationKey = VerificationKey_, CommitmentKey>; + using VerificationKey = VerificationKey_, VerifierCommitmentKey>; using FoldedPolynomials = AllEntities>; diff --git a/barretenberg/cpp/src/barretenberg/flavor/generated/toy_flavor.hpp b/barretenberg/cpp/src/barretenberg/flavor/generated/toy_flavor.hpp index a7dcbd38fac4..b776a68cd46e 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/generated/toy_flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/generated/toy_flavor.hpp @@ -212,7 +212,7 @@ class ToyFlavor { RefArray get_table_column_wires() { return {}; }; }; - using VerificationKey = VerificationKey_, CommitmentKey>; + using VerificationKey = VerificationKey_, VerifierCommitmentKey>; using FoldedPolynomials = AllEntities>; diff --git a/barretenberg/cpp/src/barretenberg/flavor/goblin_translator.hpp b/barretenberg/cpp/src/barretenberg/flavor/goblin_translator.hpp index 0a5274f44c18..16ea236f8f64 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/goblin_translator.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/goblin_translator.hpp @@ -934,7 +934,7 @@ class GoblinTranslatorFlavor { * resolve that, and split out separate PrecomputedPolynomials/Commitments data for clarity but also for * portability of our circuits. */ - using VerificationKey = VerificationKey_, CommitmentKey>; + using VerificationKey = VerificationKey_, VerifierCommitmentKey>; /** * @brief A field element for each entity of the flavor. These entities represent the prover polynomials diff --git a/barretenberg/cpp/src/barretenberg/flavor/goblin_ultra.hpp b/barretenberg/cpp/src/barretenberg/flavor/goblin_ultra.hpp index c7b5d24d7f6d..3a68c154cb53 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/goblin_ultra.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/goblin_ultra.hpp @@ -287,7 +287,7 @@ class GoblinUltraFlavor { * circuits. * @todo TODO(https://github.com/AztecProtocol/barretenberg/issues/876) */ - using VerificationKey = VerificationKey_, CommitmentKey>; + using VerificationKey = VerificationKey_, VerifierCommitmentKey>; /** * @brief A container for storing the partially evaluated multivariates produced by sumcheck. diff --git a/barretenberg/cpp/src/barretenberg/flavor/ultra.hpp b/barretenberg/cpp/src/barretenberg/flavor/ultra.hpp index dabcd6476f97..a2323eba35f4 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/ultra.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/ultra.hpp @@ -290,7 +290,7 @@ class UltraFlavor { * that, and split out separate PrecomputedPolynomials/Commitments data for clarity but also for portability of our * circuits. */ - using VerificationKey = VerificationKey_, CommitmentKey>; + using VerificationKey = VerificationKey_, VerifierCommitmentKey>; /** * @brief A field element for each entity of the flavor. These entities represent the prover polynomials diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp index 6e0a183da87b..d140292bc4b3 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp @@ -10,12 +10,13 @@ template DeciderVerifier_::DeciderVerifier_(const std::shared_ptr& transcript, const std::shared_ptr& accumulator) : accumulator(accumulator) + , pcs_verification_key(accumulator->verification_key->pcs_verification_key) , transcript(transcript) - , commitment_key(accumulator->verification_key->commitment_key) {} + template DeciderVerifier_::DeciderVerifier_() - : pcs_verification_key(std::make_unique(0, bb::srs::get_bn254_crs_factory())) + : pcs_verification_key(std::make_unique()) , transcript(std::make_shared()) {} @@ -53,7 +54,7 @@ template bool DeciderVerifier_::verify_proof(const Hon multivariate_challenge, transcript); - auto verified = pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); + auto verified = accumulator->pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); return sumcheck_verified.value() && verified; } diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp index 91dc92d5132e..a7882e9f2516 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp @@ -28,7 +28,6 @@ template class DeciderVerifier_ { std::shared_ptr accumulator; std::shared_ptr pcs_verification_key; std::shared_ptr transcript; - std::shared_ptr commitment_key; // WORKTODO }; using DeciderVerifier = DeciderVerifier_; diff --git a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/goblin_verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/goblin_verifier.test.cpp index 1a37b1fa092b..e37b54487cff 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/goblin_verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/goblin_verifier.test.cpp @@ -193,8 +193,8 @@ template class GoblinRecursiveVerifierTest : public testi // verifier and check that the result agrees. auto native_verifier = inner_composer.create_verifier(instance->verification_key); auto native_result = native_verifier.verify_proof(inner_proof); - auto recursive_result = native_verifier.pcs_verification_key->pairing_check(pairing_points[0].get_value(), - pairing_points[1].get_value()); + auto recursive_result = native_verifier.key->pcs_verification_key->pairing_check(pairing_points[0].get_value(), + pairing_points[1].get_value()); EXPECT_EQ(recursive_result, native_result); // Check 2: Ensure that the underlying native and recursive verification algorithms agree by ensuring diff --git a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp index 7d5f3f68972c..9b4ee8d37e12 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/merge_verifier.test.cpp @@ -64,7 +64,7 @@ class RecursiveMergeVerifierTest : public testing::Test { // verifier and check that the result agrees. MergeVerifier native_verifier; bool verified_native = native_verifier.verify_proof(merge_proof); - VerifierCommitmentKey pcs_verification_key(0, srs::get_bn254_crs_factory()); + VerifierCommitmentKey pcs_verification_key; auto verified_recursive = pcs_verification_key.pairing_check(pairing_points[0].get_value(), pairing_points[1].get_value()); EXPECT_EQ(verified_native, verified_recursive); diff --git a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp index 6e2f1f5f3ceb..ef635a655c2a 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp @@ -278,7 +278,7 @@ template class ProtoGalaxyRecursiveTests : public tes // decider verifier and check that the result agrees. DeciderVerifier native_decider_verifier = composer.create_decider_verifier(verifier_accumulator); auto native_result = native_decider_verifier.verify_proof(decider_proof); - auto recursive_result = native_decider_verifier.pcs_verification_key->pairing_check( + auto recursive_result = native_decider_verifier.key->pcs_verification_key->pairing_check( pairing_points[0].get_value(), pairing_points[1].get_value()); EXPECT_EQ(native_result, recursive_result); diff --git a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/verifier.test.cpp index 384405d12722..3dda0156beee 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/verifier.test.cpp @@ -177,8 +177,8 @@ template class RecursiveVerifierTest : public testing::Te // verifier and check that the result agrees. auto native_verifier = inner_composer.create_verifier(instance->verification_key); auto native_result = native_verifier.verify_proof(inner_proof); - auto recursive_result = native_verifier.pcs_verification_key->pairing_check(pairing_points[0].get_value(), - pairing_points[1].get_value()); + auto recursive_result = native_verifier.key->pcs_verification_key->pairing_check(pairing_points[0].get_value(), + pairing_points[1].get_value()); EXPECT_EQ(recursive_result, native_result); // Check 2: Ensure that the underlying native and recursive verification algorithms agree by ensuring diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp index 842623aae430..736633d81689 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp @@ -14,11 +14,15 @@ template class VerifierInstance_ { public: using FF = typename Flavor::FF; using VerificationKey = typename Flavor::VerificationKey; + using VerifierCommitmentKey = typename Flavor::VerifierCommitmentKey; using WitnessCommitments = typename Flavor::WitnessCommitments; using CommitmentLabels = typename Flavor::CommitmentLabels; using RelationSeparator = typename Flavor::RelationSeparator; std::shared_ptr verification_key; + // TODO(https://github.com/AztecProtocol/barretenberg/issues/881): Access throutgh vk by making sure vk is + // initialized in Proptogalaxy? + std::shared_ptr pcs_verification_key; std::vector public_inputs; size_t pub_inputs_offset = 0; size_t public_input_size; @@ -34,9 +38,11 @@ template class VerifierInstance_ { WitnessCommitments witness_commitments; CommitmentLabels commitment_labels; - VerifierInstance_() = default; + VerifierInstance_() + : pcs_verification_key(std::make_shared()){}; VerifierInstance_(std::shared_ptr vk) : verification_key(std::move(vk)) + , pcs_verification_key(std::make_shared()) {} }; } // namespace bb \ No newline at end of file diff --git a/barretenberg/cpp/src/barretenberg/translator_vm/goblin_translator_composer.cpp b/barretenberg/cpp/src/barretenberg/translator_vm/goblin_translator_composer.cpp index 24767656fd65..8178fe972cc5 100644 --- a/barretenberg/cpp/src/barretenberg/translator_vm/goblin_translator_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/translator_vm/goblin_translator_composer.cpp @@ -223,7 +223,7 @@ GoblinTranslatorVerifier GoblinTranslatorComposer::create_verifier(const Circuit GoblinTranslatorVerifier output_state(verification_key); - auto pcs_verification_key = std::make_unique(verification_key->circuit_size, crs_factory_); + auto pcs_verification_key = std::make_unique(); output_state.pcs_verification_key = std::move(pcs_verification_key); output_state.transcript = transcript; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/merge_verifier.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/merge_verifier.cpp index 16df9c30fab9..9ce6bada4820 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/merge_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/merge_verifier.cpp @@ -5,7 +5,7 @@ namespace bb { template MergeVerifier_::MergeVerifier_() : transcript(std::make_shared()) - , pcs_verification_key(std::make_unique(0, bb::srs::get_bn254_crs_factory())){}; + , pcs_verification_key(std::make_unique()){}; /** * @brief Verify proper construction of the aggregate Goblin ECC op queue polynomials T_i^(j), j = 1,2,3,4. diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp index d0b8ac26294d..79b41ab954b9 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp @@ -33,12 +33,7 @@ template UltraVerifier_ UltraComposer_::create_verifier(const std::shared_ptr& verification_key, const std::shared_ptr& transcript) { - UltraVerifier_ output_state(transcript, verification_key); - auto pcs_verification_key = std::make_unique(verification_key->circuit_size, - verification_key->commitment_key->crs_factory); - output_state.pcs_verification_key = std::move(pcs_verification_key); - - return output_state; + return UltraVerifier_(transcript, verification_key); } template diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp index e9e0a900f970..08ace233814e 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.cpp @@ -20,20 +20,17 @@ UltraVerifier_::UltraVerifier_(const std::shared_ptr& transc template UltraVerifier_::UltraVerifier_(const std::shared_ptr& verifier_key) : key(verifier_key) - , pcs_verification_key(std::make_unique(0, bb::srs::get_bn254_crs_factory())) , transcript(std::make_shared()) {} template UltraVerifier_::UltraVerifier_(UltraVerifier_&& other) : key(std::move(other.key)) - , pcs_verification_key(std::move(other.pcs_verification_key)) {} template UltraVerifier_& UltraVerifier_::operator=(UltraVerifier_&& other) { key = other.key; - pcs_verification_key = (std::move(other.pcs_verification_key)); commitments.clear(); return *this; } @@ -155,7 +152,7 @@ template bool UltraVerifier_::verify_proof(const HonkP multivariate_challenge, transcript); - auto verified = pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); + auto verified = key->pcs_verification_key->pairing_check(pairing_points[0], pairing_points[1]); return sumcheck_verified.value() && verified; } diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.hpp index 9e6df95ebb85..d9f179718489 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_verifier.hpp @@ -28,7 +28,6 @@ template class UltraVerifier_ { std::shared_ptr key; std::map commitments; - std::shared_ptr pcs_verification_key; std::shared_ptr transcript; }; diff --git a/barretenberg/cpp/src/barretenberg/vm/generated/avm_composer.cpp b/barretenberg/cpp/src/barretenberg/vm/generated/avm_composer.cpp index e0d075cc5bf2..8ed61fbdd8f9 100644 --- a/barretenberg/cpp/src/barretenberg/vm/generated/avm_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/generated/avm_composer.cpp @@ -42,7 +42,7 @@ AvmVerifier AvmComposer::create_verifier(CircuitConstructor& circuit_constructor AvmVerifier output_state(verification_key); - auto pcs_verification_key = std::make_unique(verification_key->circuit_size, crs_factory_); + auto pcs_verification_key = std::make_unique(); output_state.pcs_verification_key = std::move(pcs_verification_key); diff --git a/barretenberg/cpp/src/barretenberg/vm/generated/toy_composer.cpp b/barretenberg/cpp/src/barretenberg/vm/generated/toy_composer.cpp index 379a7949bf72..d74579371172 100644 --- a/barretenberg/cpp/src/barretenberg/vm/generated/toy_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/generated/toy_composer.cpp @@ -42,7 +42,7 @@ ToyVerifier ToyComposer::create_verifier(CircuitConstructor& circuit_constructor ToyVerifier output_state(verification_key); - auto pcs_verification_key = std::make_unique(verification_key->circuit_size, crs_factory_); + auto pcs_verification_key = std::make_unique(); output_state.pcs_verification_key = std::move(pcs_verification_key); From 554138183009bf3354971ccce9633dbc8a4110c5 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 22:22:46 +0000 Subject: [PATCH 14/18] Improve testing workflow --- barretenberg/cpp/scripts/bb-tests.sh | 24 ++++++++++---------- barretenberg/cpp/scripts/ultra_honk_tests.sh | 21 +++++++++++++++++ 2 files changed, 33 insertions(+), 12 deletions(-) create mode 100755 barretenberg/cpp/scripts/ultra_honk_tests.sh diff --git a/barretenberg/cpp/scripts/bb-tests.sh b/barretenberg/cpp/scripts/bb-tests.sh index 0c0d27ed9227..7fec445536fb 100755 --- a/barretenberg/cpp/scripts/bb-tests.sh +++ b/barretenberg/cpp/scripts/bb-tests.sh @@ -11,8 +11,19 @@ IMAGE_URI=$(calculate_image_uri $REPOSITORY) retry docker pull $IMAGE_URI TESTS=( - client_ivc_tests + srs_tests + flavor_tests + relations_tests + transcript_tests commitment_schemes_tests + sumcheck_tests + eccvm_tests + translator_vm_tests + protogalaxy_tests + ultra_honk_tests + goblin_tests + client_ivc_tests + dsl_tests crypto_aes128_tests crypto_blake2s_tests crypto_blake3s_tests @@ -22,23 +33,12 @@ TESTS=( crypto_poseidon2_tests crypto_schnorr_tests crypto_sha256_tests - dsl_tests ecc_tests - eccvm_tests - flavor_tests - goblin_tests join_split_example_proofs_inner_proof_data_tests join_split_example_proofs_notes_tests numeric_tests plonk_tests polynomials_tests - protogalaxy_tests - relations_tests - srs_tests - sumcheck_tests - transcript_tests - translator_vm_tests - ultra_honk_tests vm_tests ) TESTS_STR="${TESTS[@]}" diff --git a/barretenberg/cpp/scripts/ultra_honk_tests.sh b/barretenberg/cpp/scripts/ultra_honk_tests.sh new file mode 100755 index 000000000000..850a16f39d71 --- /dev/null +++ b/barretenberg/cpp/scripts/ultra_honk_tests.sh @@ -0,0 +1,21 @@ +set -eu + +# Move above script dir. +cd $(dirname $0)/.. + +cmake --preset clang16 +cmake --build --preset clang16 + +cd build/ + +./bin/client_ivc_tests +./bin/commitment_schemes_tests +./bin/dsl_tests +./bin/flavor_tests +./bin/goblin_tests +./bin/protogalaxy_tests +./bin/relations_tests +./bin/srs_tests +./bin/sumcheck_tests +./bin/transcript_tests +./bin/ultra_honk_tests \ No newline at end of file From 696a6af18f8f4e74895f53826e7175d9f81e5ea3 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 22:27:10 +0000 Subject: [PATCH 15/18] Remove unused aliases --- .../cpp/src/barretenberg/ultra_honk/ultra_composer.hpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp index c42c2da170a1..c87071ccb720 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.hpp @@ -17,15 +17,11 @@ template class UltraComposer_ { using CircuitBuilder = typename Flavor::CircuitBuilder; using ProvingKey = typename Flavor::ProvingKey; using VerificationKey = typename Flavor::VerificationKey; - using PCS = typename Flavor::PCS; using CommitmentKey = typename Flavor::CommitmentKey; using VerifierCommitmentKey = typename Flavor::VerifierCommitmentKey; using ProverInstance = ProverInstance_; using VerifierInstance = VerifierInstance_; - using FF = typename Flavor::FF; using Transcript = typename Flavor::Transcript; - using CRSFactory = srs::factories::CrsFactory; - using ProverInstances = ProverInstances_; using VerifierInstances = VerifierInstances_; From 21c98c1883ecf6c52a0faa6260a9bb2562015251 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 22:40:54 +0000 Subject: [PATCH 16/18] Cleanup pass --- barretenberg/cpp/src/barretenberg/flavor/flavor.hpp | 4 ++-- .../src/barretenberg/sumcheck/instance/prover_instance.hpp | 4 ++-- .../src/barretenberg/sumcheck/instance/verifier_instance.hpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp b/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp index c40a3834b6b8..087b5f0ff7f3 100644 --- a/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp +++ b/barretenberg/cpp/src/barretenberg/flavor/flavor.hpp @@ -83,7 +83,7 @@ namespace bb { * @brief Base class template containing circuit-specifying data. * */ -class PrecomputedEntitiesBase { // WORKTODO: utility? +class PrecomputedEntitiesBase { public: size_t circuit_size; size_t log_circuit_size; @@ -146,7 +146,7 @@ class ProvingKey_ : public PrecomputedPolynomials, public WitnessPolynomials { template class VerificationKey_ : public PrecomputedCommitments { public: - std::shared_ptr pcs_verification_key; // WORKTODO: asymmetrical naming + std::shared_ptr pcs_verification_key; VerificationKey_() = default; VerificationKey_(const size_t circuit_size, const size_t num_public_inputs) diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp index 798395df3a6f..2244119876cb 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp @@ -33,8 +33,8 @@ template class ProverInstance_ { public: std::shared_ptr proving_key; - // commitment_key needs to be here, and not accessed through the proving key, since sometimes the proving key is - // null + // currently commitment_key needs to be here, and not accessed through the proving key, since sometimes the proving + // key is null during protogalaxy proving (TODO(https://github.com/AztecProtocol/barretenberg/issues/881)?) std::shared_ptr commitment_key; std::shared_ptr verification_key; diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp index 736633d81689..983dc37dd4e7 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/verifier_instance.hpp @@ -20,8 +20,8 @@ template class VerifierInstance_ { using RelationSeparator = typename Flavor::RelationSeparator; std::shared_ptr verification_key; - // TODO(https://github.com/AztecProtocol/barretenberg/issues/881): Access throutgh vk by making sure vk is - // initialized in Proptogalaxy? + // TODO(https://github.com/AztecProtocol/barretenberg/issues/881)?: Access throutgh vk by making sure vk is + // initialized in Protogalaxy? std::shared_ptr pcs_verification_key; std::vector public_inputs; size_t pub_inputs_offset = 0; From 657c971ed0bdc95c57615ad5de908cabd5e125e0 Mon Sep 17 00:00:00 2001 From: codygunton Date: Thu, 29 Feb 2024 23:17:05 +0000 Subject: [PATCH 17/18] Fix Pg recursion test. --- barretenberg/cpp/scripts/bb-tests.sh | 2 +- barretenberg/cpp/scripts/ultra_honk_tests.sh | 17 +++++++++-------- .../protogalaxy_recursive_verifier.test.cpp | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/barretenberg/cpp/scripts/bb-tests.sh b/barretenberg/cpp/scripts/bb-tests.sh index 7fec445536fb..f9dbe34fabcb 100755 --- a/barretenberg/cpp/scripts/bb-tests.sh +++ b/barretenberg/cpp/scripts/bb-tests.sh @@ -11,7 +11,6 @@ IMAGE_URI=$(calculate_image_uri $REPOSITORY) retry docker pull $IMAGE_URI TESTS=( - srs_tests flavor_tests relations_tests transcript_tests @@ -39,6 +38,7 @@ TESTS=( numeric_tests plonk_tests polynomials_tests + srs_tests vm_tests ) TESTS_STR="${TESTS[@]}" diff --git a/barretenberg/cpp/scripts/ultra_honk_tests.sh b/barretenberg/cpp/scripts/ultra_honk_tests.sh index 850a16f39d71..654ba280c92b 100755 --- a/barretenberg/cpp/scripts/ultra_honk_tests.sh +++ b/barretenberg/cpp/scripts/ultra_honk_tests.sh @@ -8,14 +8,15 @@ cmake --build --preset clang16 cd build/ -./bin/client_ivc_tests -./bin/commitment_schemes_tests -./bin/dsl_tests ./bin/flavor_tests -./bin/goblin_tests -./bin/protogalaxy_tests ./bin/relations_tests -./bin/srs_tests -./bin/sumcheck_tests ./bin/transcript_tests -./bin/ultra_honk_tests \ No newline at end of file +./bin/commitment_schemes_tests +./bin/sumcheck_tests +./bin/eccvm_tests +./bin/translator_vm_tests +./bin/protogalaxy_tests +./bin/ultra_honk_tests +./bin/goblin_tests +./bin/client_ivc_tests +./bin/stdlib_recursion_tests \ No newline at end of file diff --git a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp index ef635a655c2a..55eb6116770b 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/recursion/honk/verifier/protogalaxy_recursive_verifier.test.cpp @@ -278,7 +278,7 @@ template class ProtoGalaxyRecursiveTests : public tes // decider verifier and check that the result agrees. DeciderVerifier native_decider_verifier = composer.create_decider_verifier(verifier_accumulator); auto native_result = native_decider_verifier.verify_proof(decider_proof); - auto recursive_result = native_decider_verifier.key->pcs_verification_key->pairing_check( + auto recursive_result = native_decider_verifier.accumulator->pcs_verification_key->pairing_check( pairing_points[0].get_value(), pairing_points[1].get_value()); EXPECT_EQ(native_result, recursive_result); From 2984b27943fda73171fd461b5f4578f2fceb4677 Mon Sep 17 00:00:00 2001 From: codygunton Date: Fri, 1 Mar 2024 20:30:15 +0000 Subject: [PATCH 18/18] Respond to review --- .../commitment_schemes/commitment_key.test.hpp | 17 +++++++---------- .../commitment_schemes/verification_key.hpp | 2 +- .../protogalaxy/decider_verifier.hpp | 1 - .../protogalaxy/protogalaxy_prover.hpp | 3 +-- .../barretenberg/ultra_honk/ultra_composer.cpp | 1 - 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp b/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp index 0fd4e33ee7ac..e91b61bbad5d 100644 --- a/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp +++ b/barretenberg/cpp/src/barretenberg/commitment_schemes/commitment_key.test.hpp @@ -11,20 +11,20 @@ namespace bb { +constexpr size_t COMMITMENT_TEST_NUM_POINTS = 4096; + template inline std::shared_ptr CreateCommitmentKey(); template <> inline std::shared_ptr> CreateCommitmentKey>() { srs::init_crs_factory("../srs_db/ignition"); - constexpr size_t n = 4096; - return std::make_shared>(n); + return std::make_shared>(COMMITMENT_TEST_NUM_POINTS); } // For IPA template <> inline std::shared_ptr> CreateCommitmentKey>() { srs::init_grumpkin_crs_factory("../srs_db/grumpkin"); - constexpr size_t n = 4096; - return std::make_shared>(n); + return std::make_shared>(COMMITMENT_TEST_NUM_POINTS); } template inline std::shared_ptr CreateCommitmentKey() @@ -39,8 +39,6 @@ template <> inline std::shared_ptr> CreateVerifierCommitmentKey< VerifierCommitmentKey>() { - std::shared_ptr> crs_factory( - new bb::srs::factories::FileCrsFactory("../srs_db/ignition", 4096)); return std::make_shared>(); } // For IPA @@ -48,10 +46,9 @@ template <> inline std::shared_ptr> CreateVerifierCommitmentKey< VerifierCommitmentKey>() { - constexpr size_t n = 4096; - std::shared_ptr> crs_factory( - new bb::srs::factories::FileCrsFactory("../srs_db/grumpkin", 4096)); - return std::make_shared>(n, crs_factory); + auto crs_factory = std::make_shared>("../srs_db/grumpkin", + COMMITMENT_TEST_NUM_POINTS); + return std::make_shared>(COMMITMENT_TEST_NUM_POINTS, crs_factory); } template inline std::shared_ptr CreateVerifierCommitmentKey() // requires std::default_initializable diff --git a/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp b/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp index a4dba0777ab3..d84914980010 100644 --- a/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp +++ b/barretenberg/cpp/src/barretenberg/commitment_schemes/verification_key.hpp @@ -80,7 +80,7 @@ template <> class VerifierCommitmentKey { * @param num_points specifies the length of the SRS * @param path is the location to the SRS file */ - VerifierCommitmentKey(size_t num_points, std::shared_ptr> crs_factory) + VerifierCommitmentKey(size_t num_points, const std::shared_ptr>& crs_factory) : pippenger_runtime_state(num_points) , srs(crs_factory->get_verifier_crs(num_points)) diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp index a7882e9f2516..3969b89d96c1 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.hpp @@ -10,7 +10,6 @@ namespace bb { template class DeciderVerifier_ { using FF = typename Flavor::FF; using Commitment = typename Flavor::Commitment; - using CommitmentKey = typename Flavor::CommitmentKey; using VerificationKey = typename Flavor::VerificationKey; using VerifierCommitmentKey = typename Flavor::VerifierCommitmentKey; using Transcript = typename Flavor::Transcript; diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp index 2f5294afb218..f1b41ae42b2d 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp @@ -16,9 +16,8 @@ namespace bb { template struct ProtogalaxyProofConstructionState { using FF = typename ProverInstances_::FF; using ProverInstance = typename ProverInstances_::Instance; - using Instance = ProverInstance; - std::shared_ptr accumulator; + std::shared_ptr accumulator; Polynomial perturbator; std::vector deltas; Univariate combiner_quotient; diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp index 79b41ab954b9..3cdeefdac7d4 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_composer.cpp @@ -41,7 +41,6 @@ DeciderProver_ UltraComposer_::create_decider_prover(const std:: const std::shared_ptr& transcript) { return DeciderProver_(accumulator, transcript); - ; } template