From 343f4497a35e7efb14b02a67ee689a7362d2ac91 Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 18:46:18 +0100 Subject: [PATCH 1/8] chore: remove fixed-length keccak256 --- .../dsl/acir_format/acir_format.cpp | 3 - .../dsl/acir_format/acir_format.hpp | 2 - .../dsl/acir_format/keccak_constraint.cpp | 33 ---------- .../dsl/acir_format/keccak_constraint.hpp | 10 --- .../dsl/acir_format/serde/acir.hpp | 62 ------------------- .../noir-repo/acvm-repo/acir/codegen/acir.cpp | 52 +--------------- .../opcodes/black_box_function_call.rs | 7 --- .../acvm-repo/acvm/src/pwg/blackbox/mod.rs | 8 --- 8 files changed, 1 insertion(+), 176 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp index 75db931222c..f45386fc979 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp @@ -62,9 +62,6 @@ void build_constraints(Builder& builder, AcirFormat const& constraint_system, bo } // Add keccak constraints - for (const auto& constraint : constraint_system.keccak_constraints) { - create_keccak_constraints(builder, constraint); - } for (const auto& constraint : constraint_system.keccak_var_constraints) { create_keccak_var_constraints(builder, constraint); } diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp index c5b64473d80..e6bd245e6d6 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp @@ -42,7 +42,6 @@ struct AcirFormat { std::vector ecdsa_r1_constraints; std::vector blake2s_constraints; std::vector blake3_constraints; - std::vector keccak_constraints; std::vector keccak_var_constraints; std::vector keccak_permutations; std::vector pedersen_constraints; @@ -75,7 +74,6 @@ struct AcirFormat { ecdsa_r1_constraints, blake2s_constraints, blake3_constraints, - keccak_constraints, keccak_var_constraints, keccak_permutations, pedersen_constraints, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp index 205021739fa..3a4bd3a839c 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp @@ -5,39 +5,6 @@ namespace acir_format { -template void create_keccak_constraints(Builder& builder, const KeccakConstraint& constraint) -{ - using byte_array_ct = bb::stdlib::byte_array; - using field_ct = bb::stdlib::field_t; - - // Create byte array struct - byte_array_ct arr(&builder); - - // Get the witness assignment for each witness index - // Write the witness assignment to the byte_array - for (const auto& witness_index_num_bits : constraint.inputs) { - auto witness_index = witness_index_num_bits.witness; - auto num_bits = witness_index_num_bits.num_bits; - - // XXX: The implementation requires us to truncate the element to the nearest byte and not bit - auto num_bytes = round_to_nearest_byte(num_bits); - - field_ct element = field_ct::from_witness_index(&builder, witness_index); - byte_array_ct element_bytes(element, num_bytes); - - arr.write(element_bytes); - } - - byte_array_ct output_bytes = bb::stdlib::keccak::hash(arr); - - // Convert byte array to vector of field_t - auto bytes = output_bytes.bytes(); - - for (size_t i = 0; i < bytes.size(); ++i) { - builder.assert_equal(bytes[i].normalize().witness_index, constraint.result[i]); - } -} - template void create_keccak_var_constraints(Builder& builder, const KeccakVarConstraint& constraint) { using byte_array_ct = bb::stdlib::byte_array; diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp index 4524e35862b..d30f5fe0113 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp @@ -24,15 +24,6 @@ struct Keccakf1600 { friend bool operator==(Keccakf1600 const& lhs, Keccakf1600 const& rhs) = default; }; -struct KeccakConstraint { - std::vector inputs; - std::vector result; - - // For serialization, update with any new fields - MSGPACK_FIELDS(inputs, result); - friend bool operator==(KeccakConstraint const& lhs, KeccakConstraint const& rhs) = default; -}; - struct KeccakVarConstraint { std::vector inputs; std::vector result; @@ -43,7 +34,6 @@ struct KeccakVarConstraint { friend bool operator==(KeccakVarConstraint const& lhs, KeccakVarConstraint const& rhs) = default; }; -template void create_keccak_constraints(Builder& builder, const KeccakConstraint& constraint); template void create_keccak_var_constraints(Builder& builder, const KeccakVarConstraint& constraint); template void create_keccak_permutations(Builder& builder, const Keccakf1600& constraint); diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp index 35db8753546..c530ead7950 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp @@ -157,15 +157,6 @@ struct BlackBoxFuncCall { static EmbeddedCurveAdd bincodeDeserialize(std::vector); }; - struct Keccak256 { - std::vector inputs; - std::vector outputs; - - friend bool operator==(const Keccak256&, const Keccak256&); - std::vector bincodeSerialize() const; - static Keccak256 bincodeDeserialize(std::vector); - }; - struct Keccak256VariableLength { std::vector inputs; Program::FunctionInput var_message_size; @@ -288,7 +279,6 @@ struct BlackBoxFuncCall { EcdsaSecp256r1, FixedBaseScalarMul, EmbeddedCurveAdd, - Keccak256, Keccak256VariableLength, Keccakf1600, RecursiveAggregation, @@ -2949,58 +2939,6 @@ Program::BlackBoxFuncCall::EmbeddedCurveAdd serde::Deserializable< namespace Program { -inline bool operator==(const BlackBoxFuncCall::Keccak256& lhs, const BlackBoxFuncCall::Keccak256& rhs) -{ - if (!(lhs.inputs == rhs.inputs)) { - return false; - } - if (!(lhs.outputs == rhs.outputs)) { - return false; - } - return true; -} - -inline std::vector BlackBoxFuncCall::Keccak256::bincodeSerialize() const -{ - auto serializer = serde::BincodeSerializer(); - serde::Serializable::serialize(*this, serializer); - return std::move(serializer).bytes(); -} - -inline BlackBoxFuncCall::Keccak256 BlackBoxFuncCall::Keccak256::bincodeDeserialize(std::vector input) -{ - auto deserializer = serde::BincodeDeserializer(input); - auto value = serde::Deserializable::deserialize(deserializer); - if (deserializer.get_buffer_offset() < input.size()) { - throw_or_abort("Some input bytes were not read"); - } - return value; -} - -} // end of namespace Program - -template <> -template -void serde::Serializable::serialize( - const Program::BlackBoxFuncCall::Keccak256& obj, Serializer& serializer) -{ - serde::Serializable::serialize(obj.inputs, serializer); - serde::Serializable::serialize(obj.outputs, serializer); -} - -template <> -template -Program::BlackBoxFuncCall::Keccak256 serde::Deserializable::deserialize( - Deserializer& deserializer) -{ - Program::BlackBoxFuncCall::Keccak256 obj; - obj.inputs = serde::Deserializable::deserialize(deserializer); - obj.outputs = serde::Deserializable::deserialize(deserializer); - return obj; -} - -namespace Program { - inline bool operator==(const BlackBoxFuncCall::Keccak256VariableLength& lhs, const BlackBoxFuncCall::Keccak256VariableLength& rhs) { diff --git a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp index e4203b579b0..faada7f4a60 100644 --- a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp +++ b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp @@ -157,15 +157,6 @@ namespace Program { static EmbeddedCurveAdd bincodeDeserialize(std::vector); }; - struct Keccak256 { - std::vector inputs; - std::vector outputs; - - friend bool operator==(const Keccak256&, const Keccak256&); - std::vector bincodeSerialize() const; - static Keccak256 bincodeDeserialize(std::vector); - }; - struct Keccak256VariableLength { std::vector inputs; Program::FunctionInput var_message_size; @@ -275,7 +266,7 @@ namespace Program { static Sha256Compression bincodeDeserialize(std::vector); }; - std::variant value; + std::variant value; friend bool operator==(const BlackBoxFuncCall&, const BlackBoxFuncCall&); std::vector bincodeSerialize() const; @@ -2578,47 +2569,6 @@ Program::BlackBoxFuncCall::EmbeddedCurveAdd serde::Deserializable BlackBoxFuncCall::Keccak256::bincodeSerialize() const { - auto serializer = serde::BincodeSerializer(); - serde::Serializable::serialize(*this, serializer); - return std::move(serializer).bytes(); - } - - inline BlackBoxFuncCall::Keccak256 BlackBoxFuncCall::Keccak256::bincodeDeserialize(std::vector input) { - auto deserializer = serde::BincodeDeserializer(input); - auto value = serde::Deserializable::deserialize(deserializer); - if (deserializer.get_buffer_offset() < input.size()) { - throw serde::deserialization_error("Some input bytes were not read"); - } - return value; - } - -} // end of namespace Program - -template <> -template -void serde::Serializable::serialize(const Program::BlackBoxFuncCall::Keccak256 &obj, Serializer &serializer) { - serde::Serializable::serialize(obj.inputs, serializer); - serde::Serializable::serialize(obj.outputs, serializer); -} - -template <> -template -Program::BlackBoxFuncCall::Keccak256 serde::Deserializable::deserialize(Deserializer &deserializer) { - Program::BlackBoxFuncCall::Keccak256 obj; - obj.inputs = serde::Deserializable::deserialize(deserializer); - obj.outputs = serde::Deserializable::deserialize(deserializer); - return obj; -} - namespace Program { inline bool operator==(const BlackBoxFuncCall::Keccak256VariableLength &lhs, const BlackBoxFuncCall::Keccak256VariableLength &rhs) { diff --git a/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs b/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs index 8a0c4692282..f0199edb115 100644 --- a/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs +++ b/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs @@ -86,10 +86,6 @@ pub enum BlackBoxFuncCall { input2_y: FunctionInput, outputs: (Witness, Witness), }, - Keccak256 { - inputs: Vec, - outputs: Vec, - }, Keccak256VariableLength { inputs: Vec, /// This is the number of bytes to take @@ -188,7 +184,6 @@ impl BlackBoxFuncCall { BlackBoxFuncCall::EcdsaSecp256r1 { .. } => BlackBoxFunc::EcdsaSecp256r1, BlackBoxFuncCall::FixedBaseScalarMul { .. } => BlackBoxFunc::FixedBaseScalarMul, BlackBoxFuncCall::EmbeddedCurveAdd { .. } => BlackBoxFunc::EmbeddedCurveAdd, - BlackBoxFuncCall::Keccak256 { .. } => BlackBoxFunc::Keccak256, BlackBoxFuncCall::Keccak256VariableLength { .. } => BlackBoxFunc::Keccak256, BlackBoxFuncCall::Keccakf1600 { .. } => BlackBoxFunc::Keccakf1600, BlackBoxFuncCall::RecursiveAggregation { .. } => BlackBoxFunc::RecursiveAggregation, @@ -212,7 +207,6 @@ impl BlackBoxFuncCall { BlackBoxFuncCall::SHA256 { inputs, .. } | BlackBoxFuncCall::Blake2s { inputs, .. } | BlackBoxFuncCall::Blake3 { inputs, .. } - | BlackBoxFuncCall::Keccak256 { inputs, .. } | BlackBoxFuncCall::Keccakf1600 { inputs, .. } | BlackBoxFuncCall::PedersenCommitment { inputs, .. } | BlackBoxFuncCall::PedersenHash { inputs, .. } @@ -312,7 +306,6 @@ impl BlackBoxFuncCall { BlackBoxFuncCall::SHA256 { outputs, .. } | BlackBoxFuncCall::Blake2s { outputs, .. } | BlackBoxFuncCall::Blake3 { outputs, .. } - | BlackBoxFuncCall::Keccak256 { outputs, .. } | BlackBoxFuncCall::Keccakf1600 { outputs, .. } | BlackBoxFuncCall::Keccak256VariableLength { outputs, .. } | BlackBoxFuncCall::Poseidon2Permutation { outputs, .. } diff --git a/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs b/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs index 6ee926043cd..b3f01effb87 100644 --- a/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs +++ b/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs @@ -95,14 +95,6 @@ pub(crate) fn solve( blake3, bb_func.get_black_box_func(), ), - BlackBoxFuncCall::Keccak256 { inputs, outputs } => solve_generic_256_hash_opcode( - initial_witness, - inputs, - None, - outputs, - keccak256, - bb_func.get_black_box_func(), - ), BlackBoxFuncCall::Keccak256VariableLength { inputs, var_message_size, outputs } => { solve_generic_256_hash_opcode( initial_witness, From e32d9491a01d92995ef613cf5153fe4f6cac980b Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 18:51:40 +0100 Subject: [PATCH 2/8] chore: cleanup --- noir/noir-repo/acvm-repo/acir/codegen/acir.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp index faada7f4a60..66c5aa3bd3d 100644 --- a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp +++ b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp @@ -2595,14 +2595,6 @@ namespace Program { } // end of namespace Program -template <> -template -void serde::Serializable::serialize(const Program::BlackBoxFuncCall::Keccak256VariableLength &obj, Serializer &serializer) { - serde::Serializable::serialize(obj.inputs, serializer); - serde::Serializable::serialize(obj.var_message_size, serializer); - serde::Serializable::serialize(obj.outputs, serializer); -} - template <> template Program::BlackBoxFuncCall::Keccak256VariableLength serde::Deserializable::deserialize(Deserializer &deserializer) { From fcaf1ddc78092ea22084b86a6d6f5b75c3ea6a11 Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 18:54:54 +0100 Subject: [PATCH 3/8] chore: remove remaining reference to `Keccak256` --- .../dsl/acir_format/acir_to_constraint_buf.hpp | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp index c3b35c2c88c..f2ef5e83bcd 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp @@ -234,17 +234,6 @@ void handle_blackbox_func_call(Program::Opcode::BlackBoxFuncCall const& arg, Aci .result_x = arg.outputs[0].value, .result_y = arg.outputs[1].value, }); - } else if constexpr (std::is_same_v) { - af.keccak_constraints.push_back(KeccakConstraint{ - .inputs = map(arg.inputs, - [](auto& e) { - return HashInput{ - .witness = e.witness.value, - .num_bits = e.num_bits, - }; - }), - .result = map(arg.outputs, [](auto& e) { return e.value; }), - }); } else if constexpr (std::is_same_v) { af.keccak_var_constraints.push_back(KeccakVarConstraint{ .inputs = map(arg.inputs, From 89e787917f6a9023bc76fc35672fd14e3c224cb1 Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 18:59:42 +0100 Subject: [PATCH 4/8] chore!: rename `Keccak256VarLength` to `Keccak256` --- .../dsl/acir_format/acir_format.cpp | 4 +-- .../dsl/acir_format/acir_format.hpp | 4 +-- .../dsl/acir_format/acir_format.test.cpp | 10 ++----- .../acir_format/acir_to_constraint_buf.hpp | 4 +-- .../dsl/acir_format/block_constraint.test.cpp | 1 - .../dsl/acir_format/ec_operations.test.cpp | 1 - .../dsl/acir_format/ecdsa_secp256k1.test.cpp | 3 -- .../dsl/acir_format/ecdsa_secp256r1.test.cpp | 4 --- .../dsl/acir_format/keccak_constraint.cpp | 6 +--- .../dsl/acir_format/keccak_constraint.hpp | 6 ++-- .../acir_format/poseidon2_constraint.test.cpp | 3 +- .../acir_format/recursion_constraint.test.cpp | 2 -- .../dsl/acir_format/serde/acir.hpp | 30 +++++++++---------- .../acir_format/sha256_constraint.test.cpp | 3 +- .../noir-repo/acvm-repo/acir/codegen/acir.cpp | 22 +++++++------- .../opcodes/black_box_function_call.rs | 8 ++--- .../acvm-repo/acvm/src/pwg/blackbox/mod.rs | 2 +- .../ssa/acir_gen/acir_ir/generated_acir.rs | 6 +--- 18 files changed, 45 insertions(+), 74 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp index f45386fc979..3bafc86f92b 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp @@ -62,8 +62,8 @@ void build_constraints(Builder& builder, AcirFormat const& constraint_system, bo } // Add keccak constraints - for (const auto& constraint : constraint_system.keccak_var_constraints) { - create_keccak_var_constraints(builder, constraint); + for (const auto& constraint : constraint_system.keccak_constraints) { + create_keccak_constraints(builder, constraint); } for (const auto& constraint : constraint_system.keccak_permutations) { create_keccak_permutations(builder, constraint); diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp index e6bd245e6d6..c91d98c6fcd 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.hpp @@ -42,7 +42,7 @@ struct AcirFormat { std::vector ecdsa_r1_constraints; std::vector blake2s_constraints; std::vector blake3_constraints; - std::vector keccak_var_constraints; + std::vector keccak_constraints; std::vector keccak_permutations; std::vector pedersen_constraints; std::vector pedersen_hash_constraints; @@ -74,7 +74,7 @@ struct AcirFormat { ecdsa_r1_constraints, blake2s_constraints, blake3_constraints, - keccak_var_constraints, + keccak_constraints, keccak_permutations, pedersen_constraints, pedersen_hash_constraints, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.test.cpp index cf36bbd1c0b..5d2fae4d988 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.test.cpp @@ -43,7 +43,6 @@ TEST_F(AcirFormatTests, TestASingleConstraintNoPubInputs) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -159,7 +158,6 @@ TEST_F(AcirFormatTests, TestLogicGateFromNoirCircuit) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -227,7 +225,6 @@ TEST_F(AcirFormatTests, TestSchnorrVerifyPass) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -322,7 +319,6 @@ TEST_F(AcirFormatTests, TestSchnorrVerifySmallRange) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -388,7 +384,7 @@ TEST_F(AcirFormatTests, TestVarKeccak) HashInput input3; input3.witness = 2; input3.num_bits = 8; - KeccakVarConstraint keccak; + KeccakConstraint keccak; keccak.inputs = { input1, input2, input3 }; keccak.var_message_size = 3; keccak.result = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, @@ -435,8 +431,7 @@ TEST_F(AcirFormatTests, TestVarKeccak) .ecdsa_r1_constraints = {}, .blake2s_constraints = {}, .blake3_constraints = {}, - .keccak_constraints = {}, - .keccak_var_constraints = { keccak }, + .keccak_constraints = { keccak }, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -483,7 +478,6 @@ TEST_F(AcirFormatTests, TestKeccakPermutation) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = { keccak_permutation }, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp index f2ef5e83bcd..0034d4cae83 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_to_constraint_buf.hpp @@ -234,8 +234,8 @@ void handle_blackbox_func_call(Program::Opcode::BlackBoxFuncCall const& arg, Aci .result_x = arg.outputs[0].value, .result_y = arg.outputs[1].value, }); - } else if constexpr (std::is_same_v) { - af.keccak_var_constraints.push_back(KeccakVarConstraint{ + } else if constexpr (std::is_same_v) { + af.keccak_constraints.push_back(KeccakConstraint{ .inputs = map(arg.inputs, [](auto& e) { return HashInput{ diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/block_constraint.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/block_constraint.test.cpp index 3054120b4ba..88d54261ea8 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/block_constraint.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/block_constraint.test.cpp @@ -122,7 +122,6 @@ TEST_F(UltraPlonkRAM, TestBlockConstraint) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ec_operations.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ec_operations.test.cpp index efcfd7ceace..479d42a2f3c 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ec_operations.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ec_operations.test.cpp @@ -62,7 +62,6 @@ TEST_F(EcOperations, TestECOperations) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.test.cpp index 6d8135cf36f..1986460b53c 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.test.cpp @@ -102,7 +102,6 @@ TEST_F(ECDSASecp256k1, TestECDSAConstraintSucceed) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -151,7 +150,6 @@ TEST_F(ECDSASecp256k1, TestECDSACompilesForVerifier) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -195,7 +193,6 @@ TEST_F(ECDSASecp256k1, TestECDSAConstraintFail) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256r1.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256r1.test.cpp index 17720a6dd5d..462172d3c4e 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256r1.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256r1.test.cpp @@ -136,7 +136,6 @@ TEST(ECDSASecp256r1, test_hardcoded) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -187,7 +186,6 @@ TEST(ECDSASecp256r1, TestECDSAConstraintSucceed) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -236,7 +234,6 @@ TEST(ECDSASecp256r1, TestECDSACompilesForVerifier) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -280,7 +277,6 @@ TEST(ECDSASecp256r1, TestECDSAConstraintFail) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp index 3a4bd3a839c..2563204adde 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp @@ -5,7 +5,7 @@ namespace acir_format { -template void create_keccak_var_constraints(Builder& builder, const KeccakVarConstraint& constraint) +template void create_keccak_constraints(Builder& builder, const KeccakConstraint& constraint) { using byte_array_ct = bb::stdlib::byte_array; using field_ct = bb::stdlib::field_t; @@ -62,15 +62,11 @@ template void create_keccak_permutations(Builder& builder, co } template void create_keccak_constraints(UltraCircuitBuilder& builder, const KeccakConstraint& constraint); -template void create_keccak_var_constraints(UltraCircuitBuilder& builder, - const KeccakVarConstraint& constraint); template void create_keccak_permutations(UltraCircuitBuilder& builder, const Keccakf1600& constraint); template void create_keccak_constraints(GoblinUltraCircuitBuilder& builder, const KeccakConstraint& constraint); -template void create_keccak_var_constraints(GoblinUltraCircuitBuilder& builder, - const KeccakVarConstraint& constraint); template void create_keccak_permutations(GoblinUltraCircuitBuilder& builder, const Keccakf1600& constraint); diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp index d30f5fe0113..6ce3ccdc5f2 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp @@ -24,17 +24,17 @@ struct Keccakf1600 { friend bool operator==(Keccakf1600 const& lhs, Keccakf1600 const& rhs) = default; }; -struct KeccakVarConstraint { +struct KeccakConstraint { std::vector inputs; std::vector result; uint32_t var_message_size; // For serialization, update with any new fields MSGPACK_FIELDS(inputs, result, var_message_size); - friend bool operator==(KeccakVarConstraint const& lhs, KeccakVarConstraint const& rhs) = default; + friend bool operator==(KeccakConstraint const& lhs, KeccakConstraint const& rhs) = default; }; -template void create_keccak_var_constraints(Builder& builder, const KeccakVarConstraint& constraint); +template void create_keccak_constraints(Builder& builder, const KeccakConstraint& constraint); template void create_keccak_permutations(Builder& builder, const Keccakf1600& constraint); } // namespace acir_format diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/poseidon2_constraint.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/poseidon2_constraint.test.cpp index a7b02619734..7ca36a78414 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/poseidon2_constraint.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/poseidon2_constraint.test.cpp @@ -42,7 +42,6 @@ TEST_F(Poseidon2Tests, TestPoseidon2Permutation) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -79,4 +78,4 @@ TEST_F(Poseidon2Tests, TestPoseidon2Permutation) EXPECT_EQ(verifier.verify_proof(proof), true); } -} // namespace acir_format::tests \ No newline at end of file +} // namespace acir_format::tests diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/recursion_constraint.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/recursion_constraint.test.cpp index bc1febd7409..d35e15768fa 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/recursion_constraint.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/recursion_constraint.test.cpp @@ -94,7 +94,6 @@ Builder create_inner_circuit() .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -251,7 +250,6 @@ Builder create_outer_circuit(std::vector& inner_circuits) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp index c530ead7950..3e01fd1f155 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/serde/acir.hpp @@ -157,14 +157,14 @@ struct BlackBoxFuncCall { static EmbeddedCurveAdd bincodeDeserialize(std::vector); }; - struct Keccak256VariableLength { + struct Keccak256 { std::vector inputs; Program::FunctionInput var_message_size; std::vector outputs; - friend bool operator==(const Keccak256VariableLength&, const Keccak256VariableLength&); + friend bool operator==(const Keccak256&, const Keccak256&); std::vector bincodeSerialize() const; - static Keccak256VariableLength bincodeDeserialize(std::vector); + static Keccak256 bincodeDeserialize(std::vector); }; struct Keccakf1600 { @@ -279,7 +279,7 @@ struct BlackBoxFuncCall { EcdsaSecp256r1, FixedBaseScalarMul, EmbeddedCurveAdd, - Keccak256VariableLength, + Keccak256, Keccakf1600, RecursiveAggregation, BigIntAdd, @@ -2939,8 +2939,7 @@ Program::BlackBoxFuncCall::EmbeddedCurveAdd serde::Deserializable< namespace Program { -inline bool operator==(const BlackBoxFuncCall::Keccak256VariableLength& lhs, - const BlackBoxFuncCall::Keccak256VariableLength& rhs) +inline bool operator==(const BlackBoxFuncCall::Keccak256& lhs, const BlackBoxFuncCall::Keccak256& rhs) { if (!(lhs.inputs == rhs.inputs)) { return false; @@ -2954,18 +2953,17 @@ inline bool operator==(const BlackBoxFuncCall::Keccak256VariableLength& lhs, return true; } -inline std::vector BlackBoxFuncCall::Keccak256VariableLength::bincodeSerialize() const +inline std::vector BlackBoxFuncCall::Keccak256::bincodeSerialize() const { auto serializer = serde::BincodeSerializer(); - serde::Serializable::serialize(*this, serializer); + serde::Serializable::serialize(*this, serializer); return std::move(serializer).bytes(); } -inline BlackBoxFuncCall::Keccak256VariableLength BlackBoxFuncCall::Keccak256VariableLength::bincodeDeserialize( - std::vector input) +inline BlackBoxFuncCall::Keccak256 BlackBoxFuncCall::Keccak256::bincodeDeserialize(std::vector input) { auto deserializer = serde::BincodeDeserializer(input); - auto value = serde::Deserializable::deserialize(deserializer); + auto value = serde::Deserializable::deserialize(deserializer); if (deserializer.get_buffer_offset() < input.size()) { throw_or_abort("Some input bytes were not read"); } @@ -2976,8 +2974,8 @@ inline BlackBoxFuncCall::Keccak256VariableLength BlackBoxFuncCall::Keccak256Vari template <> template -void serde::Serializable::serialize( - const Program::BlackBoxFuncCall::Keccak256VariableLength& obj, Serializer& serializer) +void serde::Serializable::serialize( + const Program::BlackBoxFuncCall::Keccak256& obj, Serializer& serializer) { serde::Serializable::serialize(obj.inputs, serializer); serde::Serializable::serialize(obj.var_message_size, serializer); @@ -2986,10 +2984,10 @@ void serde::Serializable::se template <> template -Program::BlackBoxFuncCall::Keccak256VariableLength serde::Deserializable< - Program::BlackBoxFuncCall::Keccak256VariableLength>::deserialize(Deserializer& deserializer) +Program::BlackBoxFuncCall::Keccak256 serde::Deserializable::deserialize( + Deserializer& deserializer) { - Program::BlackBoxFuncCall::Keccak256VariableLength obj; + Program::BlackBoxFuncCall::Keccak256 obj; obj.inputs = serde::Deserializable::deserialize(deserializer); obj.var_message_size = serde::Deserializable::deserialize(deserializer); obj.outputs = serde::Deserializable::deserialize(deserializer); diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/sha256_constraint.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/sha256_constraint.test.cpp index 037473e31d4..8e770aa4f40 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/sha256_constraint.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/sha256_constraint.test.cpp @@ -44,7 +44,6 @@ TEST_F(Sha256Tests, TestSha256Compression) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -102,4 +101,4 @@ TEST_F(Sha256Tests, TestSha256Compression) EXPECT_EQ(verifier.verify_proof(proof), true); } -} // namespace acir_format::tests \ No newline at end of file +} // namespace acir_format::tests diff --git a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp index 66c5aa3bd3d..a0eea0b61a4 100644 --- a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp +++ b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp @@ -157,14 +157,14 @@ namespace Program { static EmbeddedCurveAdd bincodeDeserialize(std::vector); }; - struct Keccak256VariableLength { + struct Keccak256 { std::vector inputs; Program::FunctionInput var_message_size; std::vector outputs; - friend bool operator==(const Keccak256VariableLength&, const Keccak256VariableLength&); + friend bool operator==(const Keccak256&, const Keccak256&); std::vector bincodeSerialize() const; - static Keccak256VariableLength bincodeDeserialize(std::vector); + static Keccak256 bincodeDeserialize(std::vector); }; struct Keccakf1600 { @@ -266,7 +266,7 @@ namespace Program { static Sha256Compression bincodeDeserialize(std::vector); }; - std::variant value; + std::variant value; friend bool operator==(const BlackBoxFuncCall&, const BlackBoxFuncCall&); std::vector bincodeSerialize() const; @@ -2571,22 +2571,22 @@ Program::BlackBoxFuncCall::EmbeddedCurveAdd serde::Deserializable BlackBoxFuncCall::Keccak256VariableLength::bincodeSerialize() const { + inline std::vector BlackBoxFuncCall::Keccak256::bincodeSerialize() const { auto serializer = serde::BincodeSerializer(); - serde::Serializable::serialize(*this, serializer); + serde::Serializable::serialize(*this, serializer); return std::move(serializer).bytes(); } - inline BlackBoxFuncCall::Keccak256VariableLength BlackBoxFuncCall::Keccak256VariableLength::bincodeDeserialize(std::vector input) { + inline BlackBoxFuncCall::Keccak256 BlackBoxFuncCall::Keccak256::bincodeDeserialize(std::vector input) { auto deserializer = serde::BincodeDeserializer(input); - auto value = serde::Deserializable::deserialize(deserializer); + auto value = serde::Deserializable::deserialize(deserializer); if (deserializer.get_buffer_offset() < input.size()) { throw serde::deserialization_error("Some input bytes were not read"); } @@ -2597,8 +2597,8 @@ namespace Program { template <> template -Program::BlackBoxFuncCall::Keccak256VariableLength serde::Deserializable::deserialize(Deserializer &deserializer) { - Program::BlackBoxFuncCall::Keccak256VariableLength obj; +Program::BlackBoxFuncCall::Keccak256 serde::Deserializable::deserialize(Deserializer &deserializer) { + Program::BlackBoxFuncCall::Keccak256 obj; obj.inputs = serde::Deserializable::deserialize(deserializer); obj.var_message_size = serde::Deserializable::deserialize(deserializer); obj.outputs = serde::Deserializable::deserialize(deserializer); diff --git a/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs b/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs index f0199edb115..5bc0522d0f0 100644 --- a/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs +++ b/noir/noir-repo/acvm-repo/acir/src/circuit/opcodes/black_box_function_call.rs @@ -86,7 +86,7 @@ pub enum BlackBoxFuncCall { input2_y: FunctionInput, outputs: (Witness, Witness), }, - Keccak256VariableLength { + Keccak256 { inputs: Vec, /// This is the number of bytes to take /// from the input. Note: if `var_message_size` @@ -184,7 +184,7 @@ impl BlackBoxFuncCall { BlackBoxFuncCall::EcdsaSecp256r1 { .. } => BlackBoxFunc::EcdsaSecp256r1, BlackBoxFuncCall::FixedBaseScalarMul { .. } => BlackBoxFunc::FixedBaseScalarMul, BlackBoxFuncCall::EmbeddedCurveAdd { .. } => BlackBoxFunc::EmbeddedCurveAdd, - BlackBoxFuncCall::Keccak256VariableLength { .. } => BlackBoxFunc::Keccak256, + BlackBoxFuncCall::Keccak256 { .. } => BlackBoxFunc::Keccak256, BlackBoxFuncCall::Keccakf1600 { .. } => BlackBoxFunc::Keccakf1600, BlackBoxFuncCall::RecursiveAggregation { .. } => BlackBoxFunc::RecursiveAggregation, BlackBoxFuncCall::BigIntAdd { .. } => BlackBoxFunc::BigIntAdd, @@ -280,7 +280,7 @@ impl BlackBoxFuncCall { inputs.extend(hashed_message.iter().copied()); inputs } - BlackBoxFuncCall::Keccak256VariableLength { inputs, var_message_size, .. } => { + BlackBoxFuncCall::Keccak256 { inputs, var_message_size, .. } => { let mut inputs = inputs.clone(); inputs.push(*var_message_size); inputs @@ -307,7 +307,7 @@ impl BlackBoxFuncCall { | BlackBoxFuncCall::Blake2s { outputs, .. } | BlackBoxFuncCall::Blake3 { outputs, .. } | BlackBoxFuncCall::Keccakf1600 { outputs, .. } - | BlackBoxFuncCall::Keccak256VariableLength { outputs, .. } + | BlackBoxFuncCall::Keccak256 { outputs, .. } | BlackBoxFuncCall::Poseidon2Permutation { outputs, .. } | BlackBoxFuncCall::Sha256Compression { outputs, .. } => outputs.to_vec(), BlackBoxFuncCall::AND { output, .. } diff --git a/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs b/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs index b3f01effb87..e7ed402a8eb 100644 --- a/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs +++ b/noir/noir-repo/acvm-repo/acvm/src/pwg/blackbox/mod.rs @@ -95,7 +95,7 @@ pub(crate) fn solve( blake3, bb_func.get_black_box_func(), ), - BlackBoxFuncCall::Keccak256VariableLength { inputs, var_message_size, outputs } => { + BlackBoxFuncCall::Keccak256 { inputs, var_message_size, outputs } => { solve_generic_256_hash_opcode( initial_witness, inputs, diff --git a/noir/noir-repo/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/generated_acir.rs b/noir/noir-repo/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/generated_acir.rs index 1d05e998b13..76ac9b52251 100644 --- a/noir/noir-repo/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/generated_acir.rs +++ b/noir/noir-repo/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/generated_acir.rs @@ -236,11 +236,7 @@ impl GeneratedAcir { } }; - BlackBoxFuncCall::Keccak256VariableLength { - inputs: inputs[0].clone(), - var_message_size, - outputs, - } + BlackBoxFuncCall::Keccak256 { inputs: inputs[0].clone(), var_message_size, outputs } } BlackBoxFunc::Keccakf1600 => { BlackBoxFuncCall::Keccakf1600 { inputs: inputs[0].clone(), outputs } From 741f7e076c7b2bddc3343664adaeeca48f40e76b Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 19:06:04 +0100 Subject: [PATCH 5/8] chore: file didn't save properly --- .../dsl/acir_format/bigint_constraint.test.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/bigint_constraint.test.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/bigint_constraint.test.cpp index 550ee4a7b40..90d61c52cd5 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/bigint_constraint.test.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/bigint_constraint.test.cpp @@ -180,7 +180,6 @@ TEST_F(BigIntTests, TestBigIntConstraintMultiple) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -248,7 +247,6 @@ TEST_F(BigIntTests, TestBigIntConstraintSimple) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -301,7 +299,6 @@ TEST_F(BigIntTests, TestBigIntConstraintReuse) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -358,7 +355,6 @@ TEST_F(BigIntTests, TestBigIntConstraintReuse2) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -436,7 +432,6 @@ TEST_F(BigIntTests, TestBigIntDIV) .blake2s_constraints = {}, .blake3_constraints = {}, .keccak_constraints = {}, - .keccak_var_constraints = {}, .keccak_permutations = {}, .pedersen_constraints = {}, .pedersen_hash_constraints = {}, @@ -466,4 +461,4 @@ TEST_F(BigIntTests, TestBigIntDIV) auto verifier2 = composer.create_ultra_with_keccak_verifier(builder); EXPECT_EQ(verifier2.verify_proof(proof), true); } -} // namespace acir_format::tests \ No newline at end of file +} // namespace acir_format::tests From 93b0ec3e3de1de29dc9f306403303a4a94de6201 Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 19:16:31 +0100 Subject: [PATCH 6/8] chore: update acir.cpp --- noir/noir-repo/acvm-repo/acir/codegen/acir.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp index a0eea0b61a4..7cd9fbefba0 100644 --- a/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp +++ b/noir/noir-repo/acvm-repo/acir/codegen/acir.cpp @@ -2595,6 +2595,14 @@ namespace Program { } // end of namespace Program +template <> +template +void serde::Serializable::serialize(const Program::BlackBoxFuncCall::Keccak256 &obj, Serializer &serializer) { + serde::Serializable::serialize(obj.inputs, serializer); + serde::Serializable::serialize(obj.var_message_size, serializer); + serde::Serializable::serialize(obj.outputs, serializer); +} + template <> template Program::BlackBoxFuncCall::Keccak256 serde::Deserializable::deserialize(Deserializer &deserializer) { From c4b1ddd4fca66893f97dce16137ebb4afc7bd6b4 Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 20:11:08 +0100 Subject: [PATCH 7/8] chore: update noir_js to use current bb.js --- .../noir_js_backend_barretenberg/package.json | 2 +- noir/noir-repo/yarn.lock | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/noir/noir-repo/tooling/noir_js_backend_barretenberg/package.json b/noir/noir-repo/tooling/noir_js_backend_barretenberg/package.json index 251dd80c2f4..1ea384cdd49 100644 --- a/noir/noir-repo/tooling/noir_js_backend_barretenberg/package.json +++ b/noir/noir-repo/tooling/noir_js_backend_barretenberg/package.json @@ -42,7 +42,7 @@ "lint": "NODE_NO_WARNINGS=1 eslint . --ext .ts --ignore-path ./.eslintignore --max-warnings 0" }, "dependencies": { - "@aztec/bb.js": "0.32.0", + "@aztec/bb.js": "portal:../../../../barretenberg/ts", "@noir-lang/types": "workspace:*", "fflate": "^0.8.0" }, diff --git a/noir/noir-repo/yarn.lock b/noir/noir-repo/yarn.lock index a39ae9921da..b45678f5d8b 100644 --- a/noir/noir-repo/yarn.lock +++ b/noir/noir-repo/yarn.lock @@ -221,19 +221,18 @@ __metadata: languageName: node linkType: hard -"@aztec/bb.js@npm:0.32.0": - version: 0.32.0 - resolution: "@aztec/bb.js@npm:0.32.0" +"@aztec/bb.js@portal:../../../../barretenberg/ts::locator=%40noir-lang%2Fbackend_barretenberg%40workspace%3Atooling%2Fnoir_js_backend_barretenberg": + version: 0.0.0-use.local + resolution: "@aztec/bb.js@portal:../../../../barretenberg/ts::locator=%40noir-lang%2Fbackend_barretenberg%40workspace%3Atooling%2Fnoir_js_backend_barretenberg" dependencies: comlink: ^4.4.1 commander: ^10.0.1 debug: ^4.3.4 tslib: ^2.4.0 bin: - bb.js: dest/node/main.js - checksum: 0919957e141ae0a65cfab961dce122fa06de628a10b7cb661d31d8ed4793ce80980fcf315620ceffffa45581db941bad43c392f4b2aa9becaaf7d2faaba01ffc + bb.js: ./dest/node/main.js languageName: node - linkType: hard + linkType: soft "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.11, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.8.3": version: 7.23.5 @@ -4396,7 +4395,7 @@ __metadata: version: 0.0.0-use.local resolution: "@noir-lang/backend_barretenberg@workspace:tooling/noir_js_backend_barretenberg" dependencies: - "@aztec/bb.js": 0.32.0 + "@aztec/bb.js": "portal:../../../../barretenberg/ts" "@noir-lang/types": "workspace:*" "@types/node": ^20.6.2 "@types/prettier": ^3 From 9a97a653ec245d3353666e3ab9aa8e5aee25016f Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 8 Apr 2024 21:27:08 +0100 Subject: [PATCH 8/8] chore: update artifact hash --- yarn-project/circuits.js/src/contract/artifact_hash.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn-project/circuits.js/src/contract/artifact_hash.test.ts b/yarn-project/circuits.js/src/contract/artifact_hash.test.ts index e01b9484f21..4afbc3098a6 100644 --- a/yarn-project/circuits.js/src/contract/artifact_hash.test.ts +++ b/yarn-project/circuits.js/src/contract/artifact_hash.test.ts @@ -5,7 +5,7 @@ describe('ArtifactHash', () => { it('calculates the artifact hash', () => { const artifact = getBenchmarkContractArtifact(); expect(computeArtifactHash(artifact).toString()).toMatchInlineSnapshot( - `"0x011603d7f02ebec628e8f1b2458edff811648ea3af5399cec32302aab6217b26"`, + `"0x0ee3d31bcde5fc51babcede44594a6f010f5aaa4e663c61dfd959a34490f5642"`, ); }); });