|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Namespaces | |
| namespace | tests |
Classes | |
| struct | AcirFormat |
| struct | AcirFormatOriginalOpcodeIndices |
| Indices of the original opcode that originated each constraint in AcirFormat. More... | |
| struct | AcirProgram |
| struct | AcirProgramStack |
| Storage for constaint_systems/witnesses for a stack of acir programs. More... | |
| struct | AES128Constraint |
| struct | AES128Input |
| struct | Blake2sConstraint |
| struct | Blake2sInput |
| struct | Blake3Constraint |
| struct | Blake3Input |
| struct | BlockConstraint |
| struct | EcAdd |
| struct | EcdsaConstraint |
| ECDSA constraints. More... | |
| class | GateCounter |
| Utility class for tracking the gate count of acir constraints. More... | |
| struct | HashInput |
| struct | HonkRecursionConstraintsOutput |
| struct | Keccakf1600 |
| struct | LogicConstraint |
| struct | MemOp |
| struct | MultiScalarMul |
| struct | Poseidon2Constraint |
| struct | ProgramMetadata |
| class | ProofSurgeon |
| struct | RangeConstraint |
| struct | RecursionConstraint |
| RecursionConstraint struct contains information required to recursively verify a proof! More... | |
| struct | Sha256Compression |
| struct | Sha256Input |
| struct | WitnessOrConstant |
Typedefs | |
| using | WitnessVector = bb::SlabVector< bb::fr > |
| using | WitnessVectorStack = std::vector< std::pair< uint32_t, WitnessVector > > |
| using | field_ct = stdlib::field_t< Builder > |
| using | bn254 = stdlib::bn254< Builder > |
| using | PairingPoints = bb::stdlib::recursion::PairingPoints< Builder > |
| using | Builder = bb::UltraCircuitBuilder |
| template<typename Builder > | |
| using | HonkRecursionConstraintOutput = bb::stdlib::recursion::honk::UltraRecursiveVerifierOutput< Builder > |
Enumerations | |
| enum | BlockType { ROM = 0 , RAM = 1 , CallData = 2 , ReturnData = 3 } |
| enum | PROOF_TYPE { PLONK , HONK , OINK , PG , AVM , ROLLUP_HONK , ROOT_ROLLUP_HONK , HONK_ZK , PG_FINAL , PG_TAIL , CIVC } |
Functions | |
| template<typename Builder > | |
| void | perform_full_IPA_verification (Builder &builder, const std::vector< OpeningClaim< stdlib::grumpkin< Builder > > > &nested_ipa_claims, const std::vector< stdlib::Proof< Builder > > &nested_ipa_proofs) |
| Perform full recursive IPA verification. | |
| template<typename Builder > | |
| std::pair< OpeningClaim< stdlib::grumpkin< Builder > >, HonkProof > | handle_IPA_accumulation (Builder &builder, const std::vector< OpeningClaim< stdlib::grumpkin< Builder > > > &nested_ipa_claims, const std::vector< stdlib::Proof< Builder > > &nested_ipa_proofs) |
| Set the IPA claim and proof. | |
| template<typename Builder > | |
| void | build_constraints (Builder &builder, AcirProgram &program, const ProgramMetadata &metadata) |
| template<typename Builder > | |
| HonkRecursionConstraintsOutput< Builder > | process_honk_recursion_constraints (Builder &builder, AcirFormat &constraint_system, bool has_valid_witness_assignments, GateCounter< Builder > &gate_counter) |
| void | process_pg_recursion_constraints (MegaCircuitBuilder &builder, AcirFormat &constraints, std::shared_ptr< IVCBase > ivc_base, bool has_valid_witness_assignments, GateCounter< MegaCircuitBuilder > &gate_counter) |
| HonkRecursionConstraintsOutput< Builder > | process_civc_recursion_constraints (Builder &builder, AcirFormat &constraint_system, bool has_valid_witness_assignments, GateCounter< Builder > &gate_counter) |
| HonkRecursionConstraintsOutput< Builder > | process_avm_recursion_constraints (Builder &builder, AcirFormat &constraint_system, bool has_valid_witness_assignments, GateCounter< Builder > &gate_counter) |
| template<> | |
| UltraCircuitBuilder | create_circuit (AcirProgram &program, const ProgramMetadata &metadata) |
| Specialization for creating an Ultra circuit from an acir program. | |
| template<> | |
| MegaCircuitBuilder | create_circuit (AcirProgram &program, const ProgramMetadata &metadata) |
| Specialization for creating a Mega circuit from an acir program. | |
| template void | build_constraints< MegaCircuitBuilder > (MegaCircuitBuilder &, AcirProgram &, const ProgramMetadata &) |
| template<typename Builder = bb::UltraCircuitBuilder> | |
| Builder | create_circuit (AcirProgram &program, const ProgramMetadata &metadata=ProgramMetadata{}) |
| template<typename T > | |
| T | deserialize_any_format (std::vector< uint8_t > &&buf, std::function< T(msgpack::object const &)> decode_msgpack, std::function< T(std::vector< uint8_t >)> decode_bincode) |
Deserialize buf either based on the first byte interpreted as a Noir serialization format byte, or falling back to bincode if the format cannot be recognized. Currently only msgpack format is expected, or the legacy bincode format. | |
| Acir::Program | deserialize_program (std::vector< uint8_t > &&buf) |
Deserializes a Program from bytes, trying msgpack or bincode formats. | |
| Witnesses::WitnessStack | deserialize_witness_stack (std::vector< uint8_t > &&buf) |
Deserializes a WitnessStack from bytes, trying msgpack or bincode formats. | |
| uint256_t | from_be_bytes (std::vector< uint8_t > const &bytes) |
| poly_triple | serialize_arithmetic_gate (Acir::Expression const &arg) |
| Construct a poly_tuple for a standard width-3 arithmetic gate from its acir representation. | |
| void | assign_linear_term (mul_quad_< fr > &gate, int index, uint32_t witness_index, fr const &scaling) |
| Assigns a linear term to a specific index in a mul_quad_ gate. | |
| std::vector< mul_quad_< fr > > | split_into_mul_quad_gates (Acir::Expression const &arg) |
| Accumulate the input expression into a serie of quad gates. | |
| mul_quad_< fr > | serialize_mul_quad_gate (Acir::Expression const &arg) |
| void | constrain_witnesses (Acir::Opcode::AssertZero const &arg, AcirFormat &af) |
| std::pair< uint32_t, uint32_t > | is_assert_equal (Acir::Opcode::AssertZero const &arg, poly_triple const &pt, AcirFormat const &af) |
| void | handle_arithmetic (Acir::Opcode::AssertZero const &arg, AcirFormat &af, size_t opcode_index) |
| uint32_t | get_witness_from_function_input (Acir::FunctionInput input) |
| WitnessOrConstant< bb::fr > | parse_input (Acir::FunctionInput input) |
| void | handle_blackbox_func_call (Acir::Opcode::BlackBoxFuncCall const &arg, AcirFormat &af, size_t opcode_index) |
| BlockConstraint | handle_memory_init (Acir::Opcode::MemoryInit const &mem_init) |
| bool | is_rom (Acir::MemOp const &mem_op) |
| uint32_t | poly_to_witness (const poly_triple poly) |
| void | handle_memory_op (Acir::Opcode::MemoryOp const &mem_op, AcirFormat &af, BlockConstraint &block) |
| AcirFormat | circuit_serde_to_acir_format (Acir::Circuit const &circuit) |
| AcirFormat | circuit_buf_to_acir_format (std::vector< uint8_t > &&buf) |
| WitnessVector | witness_map_to_witness_vector (Witnesses::WitnessMap const &witness_map) |
Converts from the ACIR-native WitnessMap format to Barretenberg's internal WitnessVector format. | |
| WitnessVector | witness_buf_to_witness_data (std::vector< uint8_t > &&buf) |
Converts from the ACIR-native WitnessStack format to Barretenberg's internal WitnessVector format. | |
| std::vector< AcirFormat > | program_buf_to_acir_format (std::vector< uint8_t > &&buf) |
| WitnessVectorStack | witness_buf_to_witness_stack (std::vector< uint8_t > &&buf) |
| AcirProgramStack | get_acir_program_stack (std::string const &bytecode_path, std::string const &witness_path) |
| template<typename Builder > | |
| void | create_aes128_constraints (Builder &builder, const AES128Constraint &constraint) |
| template void | create_aes128_constraints< UltraCircuitBuilder > (UltraCircuitBuilder &builder, const AES128Constraint &constraint) |
| template void | create_aes128_constraints< MegaCircuitBuilder > (MegaCircuitBuilder &builder, const AES128Constraint &constraint) |
| HonkRecursionConstraintOutput< Builder > | create_avm2_recursion_constraints_goblin (Builder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| Add constraints associated with recursive verification of an AVM2 proof using Goblin. | |
| template<typename Builder > | |
| void | create_blake2s_constraints (Builder &builder, const Blake2sConstraint &constraint) |
| template void | create_blake2s_constraints< UltraCircuitBuilder > (UltraCircuitBuilder &builder, const Blake2sConstraint &constraint) |
| template void | create_blake2s_constraints< MegaCircuitBuilder > (MegaCircuitBuilder &builder, const Blake2sConstraint &constraint) |
| template<typename Builder > | |
| void | create_blake3_constraints (Builder &builder, const Blake3Constraint &constraint) |
| template void | create_blake3_constraints< bb::UltraCircuitBuilder > (bb::UltraCircuitBuilder &builder, const Blake3Constraint &constraint) |
| template void | create_blake3_constraints< bb::MegaCircuitBuilder > (bb::MegaCircuitBuilder &builder, const Blake3Constraint &constraint) |
| template<typename Builder > | |
| stdlib::field_t< Builder > | poly_to_field_ct (const poly_triple poly, Builder &builder) |
| template<> | |
| void | create_block_constraints (UltraCircuitBuilder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments) |
| Create block constraints; Specialization for Ultra arithmetization. | |
| template<> | |
| void | create_block_constraints (MegaCircuitBuilder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments) |
| Create block constraints; Specialization for Mega arithmetization. | |
| template<typename Builder > | |
| void | process_ROM_operations (Builder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments, std::vector< bb::stdlib::field_t< Builder > > &init) |
| template<typename Builder > | |
| void | process_RAM_operations (Builder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments, std::vector< bb::stdlib::field_t< Builder > > &init) |
| template<typename Builder > | |
| void | process_call_data_operations (Builder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments, std::vector< bb::stdlib::field_t< Builder > > &init) |
| template<typename Builder > | |
| void | process_return_data_operations (const BlockConstraint &constraint, std::vector< bb::stdlib::field_t< Builder > > &init) |
| template<typename Builder > | |
| void | create_block_constraints (Builder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments=true) |
| template<typename B > | |
| void | read (B &buf, MemOp &mem_op) |
| template<typename B > | |
| void | write (B &buf, MemOp const &mem_op) |
| template<typename B > | |
| void | read (B &buf, BlockConstraint &constraint) |
| template<typename B > | |
| void | write (B &buf, BlockConstraint const &constraint) |
| void | create_dummy_vkey_and_proof (Builder &builder, size_t proof_size, size_t public_inputs_size, const std::vector< field_ct > &key_fields, const std::vector< field_ct > &proof_fields) |
| Creates a dummy vkey and proof object. | |
| HonkRecursionConstraintOutput< Builder > | create_civc_recursion_constraints (Builder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| Add constraints associated with recursive verification of an CIVC proof. | |
| template<typename Builder > | |
| void | create_ec_add_constraint (Builder &builder, const EcAdd &input, bool has_valid_witness_assignments) |
| template void | create_ec_add_constraint< bb::UltraCircuitBuilder > (bb::UltraCircuitBuilder &builder, const EcAdd &input, bool has_valid_witness_assignments) |
| template void | create_ec_add_constraint< bb::MegaCircuitBuilder > (bb::MegaCircuitBuilder &builder, const EcAdd &input, bool has_valid_witness_assignments) |
| template<typename Curve > | |
| void | create_ecdsa_verify_constraints (typename Curve::Builder &builder, const EcdsaConstraint &input, bool has_valid_witness_assignments) |
| Create constraints to verify an ECDSA signature. | |
| template<typename Curve > | |
| void | create_dummy_ecdsa_constraint (typename Curve::Builder &builder, const std::vector< stdlib::field_t< typename Curve::Builder > > &hashed_message_fields, const std::vector< stdlib::field_t< typename Curve::Builder > > &r_fields, const std::vector< stdlib::field_t< typename Curve::Builder > > &s_fields, const std::vector< stdlib::field_t< typename Curve::Builder > > &pub_x_fields, const std::vector< stdlib::field_t< typename Curve::Builder > > &pub_y_fields, const stdlib::field_t< typename Curve::Builder > &result_field) |
| Generate dummy ECDSA constraints when the builder doesn't have witnesses. | |
| template void | create_ecdsa_verify_constraints< stdlib::secp256k1< UltraCircuitBuilder > > (UltraCircuitBuilder &builder, const EcdsaConstraint &input, bool has_valid_witness_assignments) |
| template void | create_ecdsa_verify_constraints< stdlib::secp256k1< MegaCircuitBuilder > > (MegaCircuitBuilder &builder, const EcdsaConstraint &input, bool has_valid_witness_assignments) |
| template void | create_ecdsa_verify_constraints< stdlib::secp256r1< UltraCircuitBuilder > > (UltraCircuitBuilder &builder, const EcdsaConstraint &input, bool has_valid_witness_assignments) |
| template void | create_ecdsa_verify_constraints< stdlib::secp256r1< MegaCircuitBuilder > > (MegaCircuitBuilder &builder, const EcdsaConstraint &input, bool has_valid_witness_assignments) |
| template void | create_dummy_ecdsa_constraint< stdlib::secp256k1< UltraCircuitBuilder > > (UltraCircuitBuilder &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const stdlib::field_t< UltraCircuitBuilder > &) |
| template void | create_dummy_ecdsa_constraint< stdlib::secp256r1< UltraCircuitBuilder > > (UltraCircuitBuilder &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const std::vector< stdlib::field_t< UltraCircuitBuilder > > &, const stdlib::field_t< UltraCircuitBuilder > &) |
| template<typename Flavor > requires (IsRecursiveFlavor<Flavor> && IsUltraHonk<typename Flavor::NativeFlavor>) | |
| HonkRecursionConstraintOutput< typename Flavor::CircuitBuilder > | create_honk_recursion_constraints (typename Flavor::CircuitBuilder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| Add constraints required to recursively verify an UltraHonk proof. | |
| template HonkRecursionConstraintOutput< UltraCircuitBuilder > | create_honk_recursion_constraints< UltraRecursiveFlavor_< UltraCircuitBuilder > > (UltraCircuitBuilder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| template HonkRecursionConstraintOutput< UltraCircuitBuilder > | create_honk_recursion_constraints< UltraRollupRecursiveFlavor_< UltraCircuitBuilder > > (UltraCircuitBuilder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| template HonkRecursionConstraintOutput< MegaCircuitBuilder > | create_honk_recursion_constraints< UltraRecursiveFlavor_< MegaCircuitBuilder > > (MegaCircuitBuilder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| template HonkRecursionConstraintOutput< MegaCircuitBuilder > | create_honk_recursion_constraints< UltraZKRecursiveFlavor_< MegaCircuitBuilder > > (MegaCircuitBuilder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| template HonkRecursionConstraintOutput< UltraCircuitBuilder > | create_honk_recursion_constraints< UltraZKRecursiveFlavor_< UltraCircuitBuilder > > (UltraCircuitBuilder &builder, const RecursionConstraint &input, bool has_valid_witness_assignments) |
| template<typename Builder > | |
| void | create_keccak_permutations (Builder &builder, const Keccakf1600 &constraint) |
| template void | create_keccak_permutations< bb::UltraCircuitBuilder > (bb::UltraCircuitBuilder &builder, const Keccakf1600 &constraint) |
| template void | create_keccak_permutations< bb::MegaCircuitBuilder > (bb::MegaCircuitBuilder &builder, const Keccakf1600 &constraint) |
| template<typename Builder > | |
| void | create_logic_gate (Builder &builder, const WitnessOrConstant< bb::fr > a, const WitnessOrConstant< bb::fr > b, const uint32_t result, const size_t num_bits, const bool is_xor_gate) |
| template void | create_logic_gate< bb::MegaCircuitBuilder > (bb::MegaCircuitBuilder &builder, const WitnessOrConstant< bb::fr > a, const WitnessOrConstant< bb::fr > b, const uint32_t result, const size_t num_bits, const bool is_xor_gate) |
| template void | create_logic_gate< bb::UltraCircuitBuilder > (bb::UltraCircuitBuilder &builder, const WitnessOrConstant< bb::fr > a, const WitnessOrConstant< bb::fr > b, const uint32_t result, const size_t num_bits, const bool is_xor_gate) |
| template<typename Builder > | |
| void | create_logic_gate (Builder &builder, WitnessOrConstant< bb::fr > a, WitnessOrConstant< bb::fr > b, uint32_t result, std::size_t num_bits, bool is_xor_gate) |
| void | xor_gate (Builder &builder, WitnessOrConstant< bb::fr > a, WitnessOrConstant< bb::fr > b, uint32_t result) |
| void | and_gate (Builder &builder, WitnessOrConstant< bb::fr > a, WitnessOrConstant< bb::fr > b, uint32_t result) |
| template<class Curve = curve::BN254> | |
| void | populate_field_elements_for_mock_commitments (std::vector< fr > &fields, const size_t &num_commitments) |
| Helper to populate a field buffer with fields corresponding to some number of mock commitment values. | |
| template<class FF = curve::BN254::ScalarField> | |
| void | populate_field_elements (std::vector< fr > &fields, const size_t &num_elements, std::optional< FF > value=std::nullopt) |
| Helper to populate a field buffer with some number of field elements. | |
| template<typename Flavor , class PublicInputs > | |
| HonkProof | create_mock_oink_proof (const size_t inner_public_inputs_size) |
| Create a mock oink proof that has the correct structure but is not in general valid. | |
| template<typename Flavor > | |
| HonkProof | create_mock_sumcheck_proof () |
| HonkProof | create_mock_multilinear_batch_proof () |
| template<typename Flavor , class PublicInputs > | |
| HonkProof | create_mock_hyper_nova_proof (bool include_fold) |
| template<typename Flavor > | |
| HonkProof | create_mock_pcs_proof () |
| template<typename Flavor > | |
| HonkProof | create_mock_decider_proof () |
| Create a mock decider proof that has the correct structure but is not in general valid. | |
| template<typename Flavor , class PublicInputs > | |
| HonkProof | create_mock_honk_proof (const size_t inner_public_inputs_size) |
| Create a mock honk proof that has the correct structure but is not in general valid. | |
| template<typename Flavor > | |
| std::pair< HonkProof, std::shared_ptr< typename Flavor::VerificationKey > > | construct_honk_proof_for_simple_circuit (size_t num_inner_public_inputs) |
| Create a verifiable honk proof for a circuit with a single big add gate. Adds random public inputs to match num_public_inputs provided. | |
| template<typename Flavor , class PublicInputs > | |
| HonkProof | create_mock_pg_proof () |
| Create a mock PG proof that has the correct structure but is not in general valid. | |
| Goblin::MergeProof | create_mock_merge_proof () |
| Create a mock merge proof which has the correct structure but is not necessarily valid. | |
| template<typename Builder > | |
| HonkProof | create_mock_civc_proof (const size_t inner_public_inputs_size) |
| HonkProof | create_mock_pre_ipa_proof () |
| Create a mock pre-ipa proof which has the correct structure but is not necessarily valid. | |
| HonkProof | create_mock_ipa_proof () |
| Create a mock ipa proof which has the correct structure but is not necessarily valid. | |
| HonkProof | create_mock_translator_proof () |
| Create a mock translator proof which has the correct structure but is not necessarily valid. | |
| template<typename Flavor , class PublicInputs > | |
| std::shared_ptr< typename Flavor::VerificationKey > | create_mock_honk_vk (const size_t dyadic_size, const size_t pub_inputs_offset, const size_t inner_public_inputs_size) |
| Create a mock MegaHonk VK that has the correct structure. | |
| template<typename Flavor > | |
| std::shared_ptr< VerifierInstance_< Flavor > > | create_mock_verifier_instance () |
| Create a mock instance for initilization of a mock verifier accumulator. | |
| template HonkProof | create_mock_oink_proof< MegaFlavor, stdlib::recursion::honk::AppIO > (const size_t) |
| template HonkProof | create_mock_oink_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > (const size_t) |
| template HonkProof | create_mock_oink_proof< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_oink_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_oink_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_oink_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_oink_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_oink_proof< UltraRollupFlavor, stdlib::recursion::honk::RollupIO > (const size_t) |
| template HonkProof | create_mock_pcs_proof< MegaFlavor > () |
| template HonkProof | create_mock_decider_proof< MegaFlavor > () |
| template HonkProof | create_mock_decider_proof< UltraFlavor > () |
| template HonkProof | create_mock_decider_proof< UltraZKFlavor > () |
| template HonkProof | create_mock_decider_proof< UltraRollupFlavor > () |
| template HonkProof | create_mock_decider_proof< TranslatorFlavor > () |
| template HonkProof | create_mock_honk_proof< MegaFlavor, stdlib::recursion::honk::AppIO > (const size_t) |
| template HonkProof | create_mock_honk_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > (const size_t) |
| template HonkProof | create_mock_honk_proof< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_honk_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_honk_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_honk_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_honk_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > (const size_t) |
| template HonkProof | create_mock_honk_proof< UltraRollupFlavor, stdlib::recursion::honk::RollupIO > (const size_t) |
| template std::pair< HonkProof, std::shared_ptr< UltraFlavor::VerificationKey > > | construct_honk_proof_for_simple_circuit< UltraFlavor > (size_t num_public_inputs) |
| template std::pair< HonkProof, std::shared_ptr< UltraZKFlavor::VerificationKey > > | construct_honk_proof_for_simple_circuit< UltraZKFlavor > (size_t num_public_inputs) |
| template std::pair< HonkProof, std::shared_ptr< UltraRollupFlavor::VerificationKey > > | construct_honk_proof_for_simple_circuit< UltraRollupFlavor > (size_t num_public_inputs) |
| template HonkProof | create_mock_pg_proof< MegaFlavor, stdlib::recursion::honk::AppIO > () |
| template HonkProof | create_mock_pg_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > () |
| template HonkProof | create_mock_pg_proof< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > () |
| template HonkProof | create_mock_hyper_nova_proof< MegaFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > (bool) |
| template HonkProof | create_mock_hyper_nova_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > (bool) |
| template HonkProof | create_mock_civc_proof< UltraCircuitBuilder > (const size_t) |
| template HonkProof | create_mock_civc_proof< MegaCircuitBuilder > (const size_t) |
| template std::shared_ptr< MegaFlavor::VerificationKey > | create_mock_honk_vk< MegaFlavor, stdlib::recursion::honk::AppIO > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< MegaFlavor::VerificationKey > | create_mock_honk_vk< MegaFlavor, stdlib::recursion::honk::KernelIO > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< MegaFlavor::VerificationKey > | create_mock_honk_vk< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< MegaZKFlavor::VerificationKey > | create_mock_honk_vk< MegaZKFlavor, stdlib::recursion::honk::HidingKernelIO< UltraCircuitBuilder > > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< UltraFlavor::VerificationKey > | create_mock_honk_vk< UltraFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< UltraZKFlavor::VerificationKey > | create_mock_honk_vk< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< UltraFlavor::VerificationKey > | create_mock_honk_vk< UltraFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< UltraZKFlavor::VerificationKey > | create_mock_honk_vk< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< UltraRollupFlavor::VerificationKey > | create_mock_honk_vk< UltraRollupFlavor, stdlib::recursion::honk::RollupIO > (const size_t, const size_t, const size_t) |
| template std::shared_ptr< VerifierInstance_< MegaFlavor > > | create_mock_verifier_instance< MegaFlavor > () |
| template<typename Flavor , class PublicInputs > | |
| bb::HonkProof | create_mock_oink_proof (const size_t inner_public_inputs_size=0) |
| Create a mock oink proof that has the correct structure but is not in general valid. | |
| template<typename Flavor > | |
| bb::HonkProof | create_mock_decider_proof () |
| Create a mock decider proof that has the correct structure but is not in general valid. | |
| template<typename Flavor , class PublicInputs > | |
| bb::HonkProof | create_mock_honk_proof (const size_t inner_public_inputs_size=0) |
| Create a mock honk proof that has the correct structure but is not in general valid. | |
| template<typename Flavor > | |
| bb::HonkProof | create_mock_pcs_proof () |
| template<typename Flavor , class PublicInputs > | |
| bb::HonkProof | create_mock_pg_proof () |
| Create a mock PG proof that has the correct structure but is not in general valid. | |
| template<typename Flavor , class PublicInputs > | |
| bb::HonkProof | create_mock_hyper_nova_proof (bool include_fold=false) |
| template<typename Builder > | |
| bb::HonkProof | create_mock_civc_proof (const size_t inner_public_inputs_size=0) |
| template<typename Flavor > | |
| std::pair< bb::HonkProof, std::shared_ptr< typename Flavor::VerificationKey > > | construct_honk_proof_for_simple_circuit (size_t num_inner_public_inputs) |
| Create a verifiable honk proof for a circuit with a single big add gate. Adds random public inputs to match num_public_inputs provided. | |
| template<typename Flavor > | |
| std::shared_ptr< bb::VerifierInstance_< Flavor > > | create_mock_verifier_instance () |
| Create a mock instance for initilization of a mock verifier accumulator. | |
| template<typename Builder > | |
| void | create_multi_scalar_mul_constraint (Builder &builder, const MultiScalarMul &input, bool has_valid_witness_assignments) |
| template void | create_multi_scalar_mul_constraint< UltraCircuitBuilder > (UltraCircuitBuilder &builder, const MultiScalarMul &input, bool has_valid_witness_assignments) |
| template void | create_multi_scalar_mul_constraint< MegaCircuitBuilder > (MegaCircuitBuilder &builder, const MultiScalarMul &input, bool has_valid_witness_assignments) |
| std::shared_ptr< ClientIVC > | create_mock_ivc_from_constraints (const std::vector< RecursionConstraint > &constraints, const TraceSettings &trace_settings) |
| Create an IVC object with mocked state corresponding to a set of IVC recursion constraints. | |
| std::shared_ptr< SumcheckClientIVC > | create_mock_sumcheck_ivc_from_constraints (const std::vector< RecursionConstraint > &constraints) |
| ClientIVC::VerifierInputs | create_mock_verification_queue_entry (const ClientIVC::QUEUE_TYPE verification_type, const TraceSettings &trace_settings, const bool is_kernel) |
| Create a mock verification queue entry with proof and VK that have the correct structure but are not necessarily valid. | |
| SumcheckClientIVC::VerifierInputs | create_mock_verification_queue_entry_nova (const SumcheckClientIVC::QUEUE_TYPE verification_type, const bool is_kernel) |
| Create a mock verification queue entry with proof and VK that have the correct structure but are not necessarily valid. | |
| void | mock_ivc_accumulation (const std::shared_ptr< ClientIVC > &ivc, ClientIVC::QUEUE_TYPE type, const bool is_kernel) |
| Populate an IVC instance with data that mimics the state after a single IVC accumulation (Oink or PG) | |
| void | mock_sumcheck_ivc_accumulation (const std::shared_ptr< SumcheckClientIVC > &ivc, SumcheckClientIVC::QUEUE_TYPE type, const bool is_kernel) |
| Populate an IVC instance with data that mimics the state after a single IVC accumulation. | |
| void | populate_dummy_vk_in_constraint (MegaCircuitBuilder &builder, const std::shared_ptr< MegaFlavor::VerificationKey > &mock_verification_key, std::vector< uint32_t > &key_witness_indices) |
| Populate VK witness fields from a recursion constraint from a provided VerificationKey. | |
| template<typename Builder > | |
| void | create_poseidon2_permutations (Builder &builder, const Poseidon2Constraint &constraint) |
| template void | create_poseidon2_permutations< UltraCircuitBuilder > (UltraCircuitBuilder &builder, const Poseidon2Constraint &constraint) |
| template void | create_poseidon2_permutations< MegaCircuitBuilder > (MegaCircuitBuilder &builder, const Poseidon2Constraint &constraint) |
| template<typename B > | |
| void | read (B &buf, RecursionConstraint &constraint) |
| template<typename B > | |
| void | write (B &buf, RecursionConstraint const &constraint) |
| uint32_t | round_to_nearest_mul_8 (uint32_t num_bits) |
| uint32_t | round_to_nearest_byte (uint32_t num_bits) |
| template<typename Builder > | |
| void | create_sha256_compression_constraints (Builder &builder, const Sha256Compression &constraint) |
| template void | create_sha256_compression_constraints< bb::UltraCircuitBuilder > (bb::UltraCircuitBuilder &builder, const Sha256Compression &constraint) |
| template void | create_sha256_compression_constraints< bb::MegaCircuitBuilder > (bb::MegaCircuitBuilder &builder, const Sha256Compression &constraint) |
| template<typename T > | |
| std::vector< uint32_t > | add_to_witness_and_track_indices (WitnessVector &witness, std::span< const T > input) |
| Append values to a witness vector and track their indices. | |
| template<typename T , std::size_t N> | |
| std::array< uint32_t, N > | add_to_witness_and_track_indices (WitnessVector &witness, std::span< const T > input) |
| Append values to a witness vector and track their indices. | |
| template<typename Builder , typename FF > | |
| bb::stdlib::cycle_group< Builder > | to_grumpkin_point (const WitnessOrConstant< FF > &input_x, const WitnessOrConstant< FF > &input_y, const WitnessOrConstant< FF > &input_infinite, bool has_valid_witness_assignments, const WitnessOrConstant< FF > &predicate, Builder &builder) |
| Convert inputs representing a Grumpkin point into a cycle_group element. | |
| template bb::stdlib::cycle_group< UltraCircuitBuilder > | to_grumpkin_point (const WitnessOrConstant< fr > &input_x, const WitnessOrConstant< fr > &input_y, const WitnessOrConstant< fr > &input_infinite, bool has_valid_witness_assignments, const WitnessOrConstant< fr > &predicate, UltraCircuitBuilder &builder) |
| template bb::stdlib::cycle_group< MegaCircuitBuilder > | to_grumpkin_point (const WitnessOrConstant< fr > &input_x, const WitnessOrConstant< fr > &input_y, const WitnessOrConstant< fr > &input_infinite, bool has_valid_witness_assignments, const WitnessOrConstant< fr > &predicate, MegaCircuitBuilder &builder) |
| template<typename Builder , typename FF > | |
| bb::stdlib::field_t< Builder > | to_field_ct (const WitnessOrConstant< FF > &input, Builder &builder) |
| using acir_format::bn254 = typedef stdlib::bn254<Builder> |
Definition at line 31 of file avm2_recursion_constraint.cpp.
Definition at line 16 of file avm2_recursion_constraint.hpp.
| typedef stdlib::field_t< Builder > acir_format::field_ct |
Definition at line 30 of file avm2_recursion_constraint.cpp.
| using acir_format::HonkRecursionConstraintOutput = typedef bb::stdlib::recursion::honk::UltraRecursiveVerifierOutput<Builder> |
Definition at line 20 of file civc_recursion_constraints.cpp.
| using acir_format::PairingPoints = typedef bb::stdlib::recursion::PairingPoints<Builder> |
Definition at line 32 of file avm2_recursion_constraint.cpp.
| using acir_format::WitnessVector = typedef bb::SlabVector<bb::fr> |
Definition at line 157 of file acir_format.hpp.
| using acir_format::WitnessVectorStack = typedef std::vector<std::pair<uint32_t, WitnessVector> > |
Definition at line 158 of file acir_format.hpp.
| Enumerator | |
|---|---|
| ROM | |
| RAM | |
| CallData | |
| ReturnData | |
Definition at line 20 of file block_constraint.hpp.
| Enumerator | |
|---|---|
| PLONK | |
| HONK | |
| OINK | |
| PG | |
| AVM | |
| ROLLUP_HONK | |
| ROOT_ROLLUP_HONK | |
| HONK_ZK | |
| PG_FINAL | |
| PG_TAIL | |
| CIVC | |
Definition at line 20 of file recursion_constraint.hpp.
| std::vector< uint32_t > acir_format::add_to_witness_and_track_indices | ( | WitnessVector & | witness, |
| std::span< const T > | input | ||
| ) |
| std::array< uint32_t, N > acir_format::add_to_witness_and_track_indices | ( | WitnessVector & | witness, |
| std::span< const T > | input | ||
| ) |
Append values to a witness vector and track their indices.
This function is useful in mocking situations, when we need to add dummy variables to a builder.
| T | |
| N |
| witness | |
| input |
| void acir_format::and_gate | ( | Builder & | builder, |
| WitnessOrConstant< bb::fr > | a, | ||
| WitnessOrConstant< bb::fr > | b, | ||
| uint32_t | result | ||
| ) |
| void acir_format::assign_linear_term | ( | mul_quad_< fr > & | gate, |
| int | index, | ||
| uint32_t | witness_index, | ||
| fr const & | scaling | ||
| ) |
Assigns a linear term to a specific index in a mul_quad_ gate.
| scaling | The scaling factor to apply to the linear term. |
| gate | The mul_quad_ gate to assign the linear term to. |
| index | The index of the linear term to assign (0 for a, 1 for b, 2 for c, 3 for d). |
| witness_index | The witness index to assign to the linear term. |
Definition at line 231 of file acir_to_constraint_buf.cpp.
| void acir_format::build_constraints | ( | Builder & | builder, |
| AcirProgram & | program, | ||
| const ProgramMetadata & | metadata | ||
| ) |
Definition at line 86 of file acir_format.cpp.
| template void acir_format::build_constraints< MegaCircuitBuilder > | ( | MegaCircuitBuilder & | , |
| AcirProgram & | , | ||
| const ProgramMetadata & | |||
| ) |
| AcirFormat acir_format::circuit_buf_to_acir_format | ( | std::vector< uint8_t > && | buf | ) |
Definition at line 937 of file acir_to_constraint_buf.cpp.
| AcirFormat acir_format::circuit_serde_to_acir_format | ( | Acir::Circuit const & | circuit | ) |
Definition at line 891 of file acir_to_constraint_buf.cpp.
| void acir_format::constrain_witnesses | ( | Acir::Opcode::AssertZero const & | arg, |
| AcirFormat & | af | ||
| ) |
Definition at line 429 of file acir_to_constraint_buf.cpp.
| std::pair< HonkProof, std::shared_ptr< typename Flavor::VerificationKey > > acir_format::construct_honk_proof_for_simple_circuit | ( | size_t | num_inner_public_inputs | ) |
Create a verifiable honk proof for a circuit with a single big add gate. Adds random public inputs to match num_public_inputs provided.
| inner_public_inputs_size | Number of public inputs coming from the ACIR constraints |
Definition at line 281 of file mock_verifier_inputs.cpp.
| std::pair< bb::HonkProof, std::shared_ptr< typename Flavor::VerificationKey > > acir_format::construct_honk_proof_for_simple_circuit | ( | size_t | num_inner_public_inputs | ) |
Create a verifiable honk proof for a circuit with a single big add gate. Adds random public inputs to match num_public_inputs provided.
| inner_public_inputs_size | Number of public inputs coming from the ACIR constraints |
Definition at line 281 of file mock_verifier_inputs.cpp.
| template std::pair< HonkProof, std::shared_ptr< UltraFlavor::VerificationKey > > acir_format::construct_honk_proof_for_simple_circuit< UltraFlavor > | ( | size_t | num_public_inputs | ) |
| template std::pair< HonkProof, std::shared_ptr< UltraRollupFlavor::VerificationKey > > acir_format::construct_honk_proof_for_simple_circuit< UltraRollupFlavor > | ( | size_t | num_public_inputs | ) |
| template std::pair< HonkProof, std::shared_ptr< UltraZKFlavor::VerificationKey > > acir_format::construct_honk_proof_for_simple_circuit< UltraZKFlavor > | ( | size_t | num_public_inputs | ) |
| void acir_format::create_aes128_constraints | ( | Builder & | builder, |
| const AES128Constraint & | constraint | ||
| ) |
Definition at line 18 of file aes128_constraint.cpp.
| template void acir_format::create_aes128_constraints< MegaCircuitBuilder > | ( | MegaCircuitBuilder & | builder, |
| const AES128Constraint & | constraint | ||
| ) |
| template void acir_format::create_aes128_constraints< UltraCircuitBuilder > | ( | UltraCircuitBuilder & | builder, |
| const AES128Constraint & | constraint | ||
| ) |
| HonkRecursionConstraintOutput< Builder > acir_format::create_avm2_recursion_constraints_goblin | ( | Builder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Add constraints associated with recursive verification of an AVM2 proof using Goblin.
| builder | |
| input | |
| input_points_accumulator_indices | |
| has_valid_witness_assignments |
Definition at line 127 of file avm2_recursion_constraint.cpp.
| void acir_format::create_blake2s_constraints | ( | Builder & | builder, |
| const Blake2sConstraint & | constraint | ||
| ) |
Definition at line 16 of file blake2s_constraint.cpp.
| template void acir_format::create_blake2s_constraints< MegaCircuitBuilder > | ( | MegaCircuitBuilder & | builder, |
| const Blake2sConstraint & | constraint | ||
| ) |
| template void acir_format::create_blake2s_constraints< UltraCircuitBuilder > | ( | UltraCircuitBuilder & | builder, |
| const Blake2sConstraint & | constraint | ||
| ) |
| void acir_format::create_blake3_constraints | ( | Builder & | builder, |
| const Blake3Constraint & | constraint | ||
| ) |
Definition at line 15 of file blake3_constraint.cpp.
| template void acir_format::create_blake3_constraints< bb::MegaCircuitBuilder > | ( | bb::MegaCircuitBuilder & | builder, |
| const Blake3Constraint & | constraint | ||
| ) |
| template void acir_format::create_blake3_constraints< bb::UltraCircuitBuilder > | ( | bb::UltraCircuitBuilder & | builder, |
| const Blake3Constraint & | constraint | ||
| ) |
| void acir_format::create_block_constraints | ( | Builder & | builder, |
| const BlockConstraint & | constraint, | ||
| bool | has_valid_witness_assignments = true |
||
| ) |
| void acir_format::create_block_constraints | ( | MegaCircuitBuilder & | builder, |
| const BlockConstraint & | constraint, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Create block constraints; Specialization for Mega arithmetization.
Definition at line 73 of file block_constraint.cpp.
| void acir_format::create_block_constraints | ( | UltraCircuitBuilder & | builder, |
| const BlockConstraint & | constraint, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Create block constraints; Specialization for Ultra arithmetization.
Ultra does not support DataBus operations so calldata/returndata are treated as ROM ops
Definition at line 40 of file block_constraint.cpp.
| UltraCircuitBuilder acir_format::create_circuit | ( | AcirProgram & | program, |
| const ProgramMetadata & | metadata | ||
| ) |
Specialization for creating an Ultra circuit from an acir program.
| program | constraints and optionally a witness |
| metadata | additional data needed to construct the circuit |
Definition at line 682 of file acir_format.cpp.
| MegaCircuitBuilder acir_format::create_circuit | ( | AcirProgram & | program, |
| const ProgramMetadata & | metadata | ||
| ) |
Specialization for creating a Mega circuit from an acir program.
| program | constraints and optionally a witness |
| metadata | additional data needed to construct the circuit |
Definition at line 703 of file acir_format.cpp.
| Builder acir_format::create_circuit | ( | AcirProgram & | program, |
| const ProgramMetadata & | metadata = ProgramMetadata{} |
||
| ) |
| HonkRecursionConstraintOutput< Builder > acir_format::create_civc_recursion_constraints | ( | Builder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Add constraints associated with recursive verification of an CIVC proof.
| builder | |
| input | |
| input_points_accumulator_indices | |
| has_valid_witness_assignments |
Definition at line 85 of file civc_recursion_constraints.cpp.
| void acir_format::create_dummy_ecdsa_constraint | ( | typename Curve::Builder & | builder, |
| const std::vector< stdlib::field_t< typename Curve::Builder > > & | hashed_message_fields, | ||
| const std::vector< stdlib::field_t< typename Curve::Builder > > & | r_fields, | ||
| const std::vector< stdlib::field_t< typename Curve::Builder > > & | s_fields, | ||
| const std::vector< stdlib::field_t< typename Curve::Builder > > & | pub_x_fields, | ||
| const std::vector< stdlib::field_t< typename Curve::Builder > > & | pub_y_fields, | ||
| const stdlib::field_t< typename Curve::Builder > & | result_field | ||
| ) |
Generate dummy ECDSA constraints when the builder doesn't have witnesses.
To avoid firing asserts, the public key must be a point on the curve
Definition at line 143 of file ecdsa_constraints.cpp.
| template void acir_format::create_dummy_ecdsa_constraint< stdlib::secp256k1< UltraCircuitBuilder > > | ( | UltraCircuitBuilder & | , |
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const stdlib::field_t< UltraCircuitBuilder > & | |||
| ) |
| template void acir_format::create_dummy_ecdsa_constraint< stdlib::secp256r1< UltraCircuitBuilder > > | ( | UltraCircuitBuilder & | , |
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const std::vector< stdlib::field_t< UltraCircuitBuilder > > & | , | ||
| const stdlib::field_t< UltraCircuitBuilder > & | |||
| ) |
| void acir_format::create_dummy_vkey_and_proof | ( | Builder & | builder, |
| size_t | proof_size, | ||
| size_t | public_inputs_size, | ||
| const std::vector< field_ct > & | key_fields, | ||
| const std::vector< field_ct > & | proof_fields | ||
| ) |
Creates a dummy vkey and proof object.
Populates the key and proof vectors with dummy values in the write_vk case when we don't have a valid witness. The bulk of the logic is setting up certain values correctly like the circuit size, number of public inputs, aggregation object, and commitments.
| builder | |
| proof_size | Size of proof with NO public inputs |
| public_inputs_size | Total size of public inputs including aggregation object |
| key_fields | |
| proof_fields |
Definition at line 36 of file civc_recursion_constraints.cpp.
| void acir_format::create_ec_add_constraint | ( | Builder & | builder, |
| const EcAdd & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Definition at line 17 of file ec_operations.cpp.
| template void acir_format::create_ec_add_constraint< bb::MegaCircuitBuilder > | ( | bb::MegaCircuitBuilder & | builder, |
| const EcAdd & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template void acir_format::create_ec_add_constraint< bb::UltraCircuitBuilder > | ( | bb::UltraCircuitBuilder & | builder, |
| const EcAdd & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| void acir_format::create_ecdsa_verify_constraints | ( | typename Curve::Builder & | builder, |
| const EcdsaConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Create constraints to verify an ECDSA signature.
Given and ECDSA constraint system, add to the builder constraints that verify the ECDSA signature. We perform the following operations:
| Curve |
| builder | |
| input | |
| has_valid_witness_assignments |
Definition at line 42 of file ecdsa_constraints.cpp.
| template void acir_format::create_ecdsa_verify_constraints< stdlib::secp256k1< MegaCircuitBuilder > > | ( | MegaCircuitBuilder & | builder, |
| const EcdsaConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template void acir_format::create_ecdsa_verify_constraints< stdlib::secp256k1< UltraCircuitBuilder > > | ( | UltraCircuitBuilder & | builder, |
| const EcdsaConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template void acir_format::create_ecdsa_verify_constraints< stdlib::secp256r1< MegaCircuitBuilder > > | ( | MegaCircuitBuilder & | builder, |
| const EcdsaConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template void acir_format::create_ecdsa_verify_constraints< stdlib::secp256r1< UltraCircuitBuilder > > | ( | UltraCircuitBuilder & | builder, |
| const EcdsaConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| HonkRecursionConstraintOutput< typename Flavor::CircuitBuilder > acir_format::create_honk_recursion_constraints | ( | typename Flavor::CircuitBuilder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Add constraints required to recursively verify an UltraHonk proof.
| builder | |
| input | |
| input_points_accumulator_indices. | The aggregation object coming from previous Honk recursion constraints. |
| has_valid_witness_assignment. | Do we have witnesses or are we just generating keys? |
Definition at line 162 of file honk_recursion_constraint.cpp.
| template HonkRecursionConstraintOutput< MegaCircuitBuilder > acir_format::create_honk_recursion_constraints< UltraRecursiveFlavor_< MegaCircuitBuilder > > | ( | MegaCircuitBuilder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template HonkRecursionConstraintOutput< UltraCircuitBuilder > acir_format::create_honk_recursion_constraints< UltraRecursiveFlavor_< UltraCircuitBuilder > > | ( | UltraCircuitBuilder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template HonkRecursionConstraintOutput< UltraCircuitBuilder > acir_format::create_honk_recursion_constraints< UltraRollupRecursiveFlavor_< UltraCircuitBuilder > > | ( | UltraCircuitBuilder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template HonkRecursionConstraintOutput< MegaCircuitBuilder > acir_format::create_honk_recursion_constraints< UltraZKRecursiveFlavor_< MegaCircuitBuilder > > | ( | MegaCircuitBuilder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template HonkRecursionConstraintOutput< UltraCircuitBuilder > acir_format::create_honk_recursion_constraints< UltraZKRecursiveFlavor_< UltraCircuitBuilder > > | ( | UltraCircuitBuilder & | builder, |
| const RecursionConstraint & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| void acir_format::create_keccak_permutations | ( | Builder & | builder, |
| const Keccakf1600 & | constraint | ||
| ) |
Definition at line 14 of file keccak_constraint.cpp.
| template void acir_format::create_keccak_permutations< bb::MegaCircuitBuilder > | ( | bb::MegaCircuitBuilder & | builder, |
| const Keccakf1600 & | constraint | ||
| ) |
| template void acir_format::create_keccak_permutations< bb::UltraCircuitBuilder > | ( | bb::UltraCircuitBuilder & | builder, |
| const Keccakf1600 & | constraint | ||
| ) |
| void acir_format::create_logic_gate | ( | Builder & | builder, |
| const WitnessOrConstant< bb::fr > | a, | ||
| const WitnessOrConstant< bb::fr > | b, | ||
| const uint32_t | result, | ||
| const size_t | num_bits, | ||
| const bool | is_xor_gate | ||
| ) |
Definition at line 13 of file logic_constraint.cpp.
| void acir_format::create_logic_gate | ( | Builder & | builder, |
| WitnessOrConstant< bb::fr > | a, | ||
| WitnessOrConstant< bb::fr > | b, | ||
| uint32_t | result, | ||
| std::size_t | num_bits, | ||
| bool | is_xor_gate | ||
| ) |
| template void acir_format::create_logic_gate< bb::MegaCircuitBuilder > | ( | bb::MegaCircuitBuilder & | builder, |
| const WitnessOrConstant< bb::fr > | a, | ||
| const WitnessOrConstant< bb::fr > | b, | ||
| const uint32_t | result, | ||
| const size_t | num_bits, | ||
| const bool | is_xor_gate | ||
| ) |
| template void acir_format::create_logic_gate< bb::UltraCircuitBuilder > | ( | bb::UltraCircuitBuilder & | builder, |
| const WitnessOrConstant< bb::fr > | a, | ||
| const WitnessOrConstant< bb::fr > | b, | ||
| const uint32_t | result, | ||
| const size_t | num_bits, | ||
| const bool | is_xor_gate | ||
| ) |
| HonkProof acir_format::create_mock_civc_proof | ( | const size_t | inner_public_inputs_size | ) |
Definition at line 388 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_civc_proof | ( | const size_t | inner_public_inputs_size = 0 | ) |
Definition at line 388 of file mock_verifier_inputs.cpp.
| template HonkProof acir_format::create_mock_civc_proof< MegaCircuitBuilder > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_civc_proof< UltraCircuitBuilder > | ( | const size_t | ) |
Create a mock decider proof that has the correct structure but is not in general valid.
Definition at line 183 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_decider_proof | ( | ) |
Create a mock decider proof that has the correct structure but is not in general valid.
Definition at line 183 of file mock_verifier_inputs.cpp.
| template HonkProof acir_format::create_mock_decider_proof< MegaFlavor > | ( | ) |
| template HonkProof acir_format::create_mock_decider_proof< TranslatorFlavor > | ( | ) |
| template HonkProof acir_format::create_mock_decider_proof< UltraFlavor > | ( | ) |
| template HonkProof acir_format::create_mock_decider_proof< UltraRollupFlavor > | ( | ) |
| template HonkProof acir_format::create_mock_decider_proof< UltraZKFlavor > | ( | ) |
| HonkProof acir_format::create_mock_honk_proof | ( | const size_t | inner_public_inputs_size | ) |
Create a mock honk proof that has the correct structure but is not in general valid.
| inner_public_inputs_size | Number of public inputs coming from the ACIR constraints |
Definition at line 257 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_honk_proof | ( | const size_t | inner_public_inputs_size | ) |
Create a mock honk proof that has the correct structure but is not in general valid.
| inner_public_inputs_size | Number of public inputs coming from the ACIR constraints |
Definition at line 257 of file mock_verifier_inputs.cpp.
| template HonkProof acir_format::create_mock_honk_proof< MegaFlavor, stdlib::recursion::honk::AppIO > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_honk_proof< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_honk_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_honk_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_honk_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_honk_proof< UltraRollupFlavor, stdlib::recursion::honk::RollupIO > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_honk_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_honk_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > | ( | const size_t | ) |
| std::shared_ptr< typename Flavor::VerificationKey > acir_format::create_mock_honk_vk | ( | const size_t | dyadic_size, |
| const size_t | pub_inputs_offset, | ||
| const size_t | inner_public_inputs_size | ||
| ) |
Create a mock MegaHonk VK that has the correct structure.
| dyadic_size | Dyadic size of the circuit for which we generate a vk |
| pub_inputs_offest | Indicating whether the circuit has a first zero row |
| inner_public_inputs_size | Number of public inputs coming from the ACIR constraints |
Definition at line 571 of file mock_verifier_inputs.cpp.
| template std::shared_ptr< MegaFlavor::VerificationKey > acir_format::create_mock_honk_vk< MegaFlavor, stdlib::recursion::honk::AppIO > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< MegaFlavor::VerificationKey > acir_format::create_mock_honk_vk< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< MegaFlavor::VerificationKey > acir_format::create_mock_honk_vk< MegaFlavor, stdlib::recursion::honk::KernelIO > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< MegaZKFlavor::VerificationKey > acir_format::create_mock_honk_vk< MegaZKFlavor, stdlib::recursion::honk::HidingKernelIO< UltraCircuitBuilder > > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< UltraFlavor::VerificationKey > acir_format::create_mock_honk_vk< UltraFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< UltraFlavor::VerificationKey > acir_format::create_mock_honk_vk< UltraFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< UltraRollupFlavor::VerificationKey > acir_format::create_mock_honk_vk< UltraRollupFlavor, stdlib::recursion::honk::RollupIO > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< UltraZKFlavor::VerificationKey > acir_format::create_mock_honk_vk< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| template std::shared_ptr< UltraZKFlavor::VerificationKey > acir_format::create_mock_honk_vk< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > | ( | const size_t | , |
| const size_t | , | ||
| const size_t | |||
| ) |
| HonkProof acir_format::create_mock_hyper_nova_proof | ( | bool | include_fold | ) |
Definition at line 126 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_hyper_nova_proof | ( | bool | include_fold = false | ) |
Definition at line 126 of file mock_verifier_inputs.cpp.
| template HonkProof acir_format::create_mock_hyper_nova_proof< MegaFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > | ( | bool | ) |
| template HonkProof acir_format::create_mock_hyper_nova_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > | ( | bool | ) |
| bb::HonkProof acir_format::create_mock_ipa_proof | ( | ) |
Create a mock ipa proof which has the correct structure but is not necessarily valid.
An ECCVM proof is made of a pre-ipa proof and an ipa-proof. Here we mock the ipa part.
Definition at line 516 of file mock_verifier_inputs.cpp.
| std::shared_ptr< ClientIVC > acir_format::create_mock_ivc_from_constraints | ( | const std::vector< RecursionConstraint > & | constraints, |
| const TraceSettings & | trace_settings | ||
| ) |
Create an IVC object with mocked state corresponding to a set of IVC recursion constraints.
Construction of a kernel circuit requires two inputs: kernel prgram acir constraints and an IVC instance containing state needed to complete the kernel logic, e.g. proofs for input to recursive verifiers. To construct verification keys for kernel circuits without running a full IVC, we mock the IVC state corresponding to a provided set of IVC recurson constraints. For example, if the constraints contain a single PG recursive verification, we initialize an IVC with mocked data for the verifier accumulator, the folding proof, the circuit verification key, and a merge proof.
| constraints | IVC recursion constraints from a kernel circuit |
| trace_settings |
Definition at line 40 of file pg_recursion_constraint.cpp.
| bb::Goblin::MergeProof acir_format::create_mock_merge_proof | ( | ) |
Create a mock merge proof which has the correct structure but is not necessarily valid.
Definition at line 356 of file mock_verifier_inputs.cpp.
| HonkProof acir_format::create_mock_multilinear_batch_proof | ( | ) |
Definition at line 103 of file mock_verifier_inputs.cpp.
| HonkProof acir_format::create_mock_oink_proof | ( | const size_t | inner_public_inputs_size | ) |
Create a mock oink proof that has the correct structure but is not in general valid.
| inner_public_inputs_size | Number of public inputs coming from the ACIR constraints |
Definition at line 66 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_oink_proof | ( | const size_t | inner_public_inputs_size | ) |
Create a mock oink proof that has the correct structure but is not in general valid.
| inner_public_inputs_size | Number of public inputs coming from the ACIR constraints |
Definition at line 66 of file mock_verifier_inputs.cpp.
| template HonkProof acir_format::create_mock_oink_proof< MegaFlavor, stdlib::recursion::honk::AppIO > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_oink_proof< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_oink_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_oink_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_oink_proof< UltraFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_oink_proof< UltraRollupFlavor, stdlib::recursion::honk::RollupIO > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_oink_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< MegaCircuitBuilder > > | ( | const size_t | ) |
| template HonkProof acir_format::create_mock_oink_proof< UltraZKFlavor, stdlib::recursion::honk::DefaultIO< UltraCircuitBuilder > > | ( | const size_t | ) |
Definition at line 144 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_pcs_proof | ( | ) |
Definition at line 144 of file mock_verifier_inputs.cpp.
| template HonkProof acir_format::create_mock_pcs_proof< MegaFlavor > | ( | ) |
Create a mock PG proof that has the correct structure but is not in general valid.
Definition at line 336 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_pg_proof | ( | ) |
Create a mock PG proof that has the correct structure but is not in general valid.
Definition at line 336 of file mock_verifier_inputs.cpp.
| template HonkProof acir_format::create_mock_pg_proof< MegaFlavor, stdlib::recursion::honk::AppIO > | ( | ) |
| template HonkProof acir_format::create_mock_pg_proof< MegaFlavor, stdlib::recursion::honk::HidingKernelIO< MegaCircuitBuilder > > | ( | ) |
| template HonkProof acir_format::create_mock_pg_proof< MegaFlavor, stdlib::recursion::honk::KernelIO > | ( | ) |
| bb::HonkProof acir_format::create_mock_pre_ipa_proof | ( | ) |
Create a mock pre-ipa proof which has the correct structure but is not necessarily valid.
An ECCVM proof is made of a pre-ipa proof and an ipa-proof. Here we mock the pre-ipa part.
Definition at line 411 of file mock_verifier_inputs.cpp.
| std::shared_ptr< SumcheckClientIVC > acir_format::create_mock_sumcheck_ivc_from_constraints | ( | const std::vector< RecursionConstraint > & | constraints | ) |
Definition at line 93 of file pg_recursion_constraint.cpp.
Definition at line 88 of file mock_verifier_inputs.cpp.
| bb::HonkProof acir_format::create_mock_translator_proof | ( | ) |
Create a mock translator proof which has the correct structure but is not necessarily valid.
Definition at line 540 of file mock_verifier_inputs.cpp.
| ClientIVC::VerifierInputs acir_format::create_mock_verification_queue_entry | ( | const ClientIVC::QUEUE_TYPE | verification_type, |
| const TraceSettings & | trace_settings, | ||
| const bool | is_kernel | ||
| ) |
Create a mock verification queue entry with proof and VK that have the correct structure but are not necessarily valid.
Definition at line 147 of file pg_recursion_constraint.cpp.
| SumcheckClientIVC::VerifierInputs acir_format::create_mock_verification_queue_entry_nova | ( | const SumcheckClientIVC::QUEUE_TYPE | verification_type, |
| const bool | is_kernel | ||
| ) |
Create a mock verification queue entry with proof and VK that have the correct structure but are not necessarily valid.
Definition at line 204 of file pg_recursion_constraint.cpp.
| std::shared_ptr< VerifierInstance_< Flavor > > acir_format::create_mock_verifier_instance | ( | ) |
Create a mock instance for initilization of a mock verifier accumulator.
Definition at line 592 of file mock_verifier_inputs.cpp.
| std::shared_ptr< bb::VerifierInstance_< Flavor > > acir_format::create_mock_verifier_instance | ( | ) |
Create a mock instance for initilization of a mock verifier accumulator.
Definition at line 592 of file mock_verifier_inputs.cpp.
| template std::shared_ptr< VerifierInstance_< MegaFlavor > > acir_format::create_mock_verifier_instance< MegaFlavor > | ( | ) |
| void acir_format::create_multi_scalar_mul_constraint | ( | Builder & | builder, |
| const MultiScalarMul & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
Definition at line 20 of file multi_scalar_mul.cpp.
| template void acir_format::create_multi_scalar_mul_constraint< MegaCircuitBuilder > | ( | MegaCircuitBuilder & | builder, |
| const MultiScalarMul & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| template void acir_format::create_multi_scalar_mul_constraint< UltraCircuitBuilder > | ( | UltraCircuitBuilder & | builder, |
| const MultiScalarMul & | input, | ||
| bool | has_valid_witness_assignments | ||
| ) |
| void acir_format::create_poseidon2_permutations | ( | Builder & | builder, |
| const Poseidon2Constraint & | constraint | ||
| ) |
Definition at line 17 of file poseidon2_constraint.cpp.
| template void acir_format::create_poseidon2_permutations< MegaCircuitBuilder > | ( | MegaCircuitBuilder & | builder, |
| const Poseidon2Constraint & | constraint | ||
| ) |
| template void acir_format::create_poseidon2_permutations< UltraCircuitBuilder > | ( | UltraCircuitBuilder & | builder, |
| const Poseidon2Constraint & | constraint | ||
| ) |
| void acir_format::create_sha256_compression_constraints | ( | Builder & | builder, |
| const Sha256Compression & | constraint | ||
| ) |
Definition at line 15 of file sha256_constraint.cpp.
| template void acir_format::create_sha256_compression_constraints< bb::MegaCircuitBuilder > | ( | bb::MegaCircuitBuilder & | builder, |
| const Sha256Compression & | constraint | ||
| ) |
| template void acir_format::create_sha256_compression_constraints< bb::UltraCircuitBuilder > | ( | bb::UltraCircuitBuilder & | builder, |
| const Sha256Compression & | constraint | ||
| ) |
| T acir_format::deserialize_any_format | ( | std::vector< uint8_t > && | buf, |
| std::function< T(msgpack::object const &)> | decode_msgpack, | ||
| std::function< T(std::vector< uint8_t >)> | decode_bincode | ||
| ) |
Deserialize buf either based on the first byte interpreted as a Noir serialization format byte, or falling back to bincode if the format cannot be recognized. Currently only msgpack format is expected, or the legacy bincode format.
bincode format and if it fails try msgpack; instead we have to make a decision and commit to it. Definition at line 40 of file acir_to_constraint_buf.cpp.
| Acir::Program acir_format::deserialize_program | ( | std::vector< uint8_t > && | buf | ) |
Deserializes a Program from bytes, trying msgpack or bincode formats.
msgpack. Definition at line 89 of file acir_to_constraint_buf.cpp.
| Witnesses::WitnessStack acir_format::deserialize_witness_stack | ( | std::vector< uint8_t > && | buf | ) |
Deserializes a WitnessStack from bytes, trying msgpack or bincode formats.
Definition at line 113 of file acir_to_constraint_buf.cpp.
| uint256_t acir_format::from_be_bytes | ( | std::vector< uint8_t > const & | bytes | ) |
Definition at line 131 of file acir_to_constraint_buf.cpp.
| AcirProgramStack acir_format::get_acir_program_stack | ( | std::string const & | bytecode_path, |
| std::string const & | witness_path | ||
| ) |
Definition at line 1009 of file acir_to_constraint_buf.cpp.
| uint32_t acir_format::get_witness_from_function_input | ( | Acir::FunctionInput | input | ) |
Definition at line 537 of file acir_to_constraint_buf.cpp.
| void acir_format::handle_arithmetic | ( | Acir::Opcode::AssertZero const & | arg, |
| AcirFormat & | af, | ||
| size_t | opcode_index | ||
| ) |
Definition at line 459 of file acir_to_constraint_buf.cpp.
| void acir_format::handle_blackbox_func_call | ( | Acir::Opcode::BlackBoxFuncCall const & | arg, |
| AcirFormat & | af, | ||
| size_t | opcode_index | ||
| ) |
Definition at line 573 of file acir_to_constraint_buf.cpp.
| std::pair< OpeningClaim< stdlib::grumpkin< Builder > >, HonkProof > acir_format::handle_IPA_accumulation | ( | Builder & | builder, |
| const std::vector< OpeningClaim< stdlib::grumpkin< Builder > > > & | nested_ipa_claims, | ||
| const std::vector< stdlib::Proof< Builder > > & | nested_ipa_proofs | ||
| ) |
Set the IPA claim and proof.
| Builder |
| builder | |
| nested_ipa_claims | |
| nested_ipa_proofs |
Definition at line 442 of file acir_format.cpp.
| BlockConstraint acir_format::handle_memory_init | ( | Acir::Opcode::MemoryInit const & | mem_init | ) |
Definition at line 802 of file acir_to_constraint_buf.cpp.
| void acir_format::handle_memory_op | ( | Acir::Opcode::MemoryOp const & | mem_op, |
| AcirFormat & | af, | ||
| BlockConstraint & | block | ||
| ) |
Definition at line 848 of file acir_to_constraint_buf.cpp.
| std::pair< uint32_t, uint32_t > acir_format::is_assert_equal | ( | Acir::Opcode::AssertZero const & | arg, |
| poly_triple const & | pt, | ||
| AcirFormat const & | af | ||
| ) |
Definition at line 443 of file acir_to_constraint_buf.cpp.
| bool acir_format::is_rom | ( | Acir::MemOp const & | mem_op | ) |
Definition at line 834 of file acir_to_constraint_buf.cpp.
| void acir_format::mock_ivc_accumulation | ( | const std::shared_ptr< ClientIVC > & | ivc, |
| ClientIVC::QUEUE_TYPE | type, | ||
| const bool | is_kernel | ||
| ) |
Populate an IVC instance with data that mimics the state after a single IVC accumulation (Oink or PG)
Mock state consists of a mock verification queue entry of type OINK (proof, VK) and a mocked merge proof
| ivc | |
| num_public_inputs_app | num pub inputs in accumulated app, excluding fixed components, e.g. pairing points |
Definition at line 254 of file pg_recursion_constraint.cpp.
| void acir_format::mock_sumcheck_ivc_accumulation | ( | const std::shared_ptr< SumcheckClientIVC > & | ivc, |
| SumcheckClientIVC::QUEUE_TYPE | type, | ||
| const bool | is_kernel | ||
| ) |
Populate an IVC instance with data that mimics the state after a single IVC accumulation.
Mock state consists of a mock verification queue entry (proof, VK) and a mocked merge proof. Also initializes the recursive verifier accumulator since it is hashed in circuit.
| ivc | |
| type | The type of verification (OINK, PG, PG_TAIL, PG_FINAL) |
| is_kernel | Whether this is a kernel circuit accumulation |
Definition at line 276 of file pg_recursion_constraint.cpp.
| WitnessOrConstant< bb::fr > acir_format::parse_input | ( | Acir::FunctionInput | input | ) |
Definition at line 543 of file acir_to_constraint_buf.cpp.
| void acir_format::perform_full_IPA_verification | ( | Builder & | builder, |
| const std::vector< OpeningClaim< stdlib::grumpkin< Builder > > > & | nested_ipa_claims, | ||
| const std::vector< stdlib::Proof< Builder > > & | nested_ipa_proofs | ||
| ) |
Perform full recursive IPA verification.
| Builder |
| builder | |
| nested_ipa_claims | |
| nested_ipa_proofs |
Definition at line 411 of file acir_format.cpp.
| stdlib::field_t< Builder > acir_format::poly_to_field_ct | ( | const poly_triple | poly, |
| Builder & | builder | ||
| ) |
Definition at line 18 of file block_constraint.cpp.
| uint32_t acir_format::poly_to_witness | ( | const poly_triple | poly | ) |
Definition at line 840 of file acir_to_constraint_buf.cpp.
| void acir_format::populate_dummy_vk_in_constraint | ( | MegaCircuitBuilder & | builder, |
| const std::shared_ptr< MegaFlavor::VerificationKey > & | mock_verification_key, | ||
| std::vector< uint32_t > & | key_witness_indices | ||
| ) |
Populate VK witness fields from a recursion constraint from a provided VerificationKey.
| builder | |
| mock_verification_key | |
| key_witness_indices |
Definition at line 305 of file pg_recursion_constraint.cpp.
| void acir_format::populate_field_elements | ( | std::vector< fr > & | fields, |
| const size_t & | num_elements, | ||
| std::optional< FF > | value = std::nullopt |
||
| ) |
Helper to populate a field buffer with some number of field elements.
| fields | field buffer to append field elements to |
| num_elements | number of mock field elements to append |
| value | optional mock value appended |
Definition at line 50 of file mock_verifier_inputs.cpp.
| void acir_format::populate_field_elements_for_mock_commitments | ( | std::vector< fr > & | fields, |
| const size_t & | num_commitments | ||
| ) |
Helper to populate a field buffer with fields corresponding to some number of mock commitment values.
| fields | field buffer to append mock commitment values to |
| num_commitments | number of mock commitments to append |
Definition at line 31 of file mock_verifier_inputs.cpp.
| HonkRecursionConstraintsOutput< Builder > acir_format::process_avm_recursion_constraints | ( | Builder & | builder, |
| AcirFormat & | constraint_system, | ||
| bool | has_valid_witness_assignments, | ||
| GateCounter< Builder > & | gate_counter | ||
| ) |
Definition at line 654 of file acir_format.cpp.
| void acir_format::process_call_data_operations | ( | Builder & | builder, |
| const BlockConstraint & | constraint, | ||
| bool | has_valid_witness_assignments, | ||
| std::vector< bb::stdlib::field_t< Builder > > & | init | ||
| ) |
Definition at line 160 of file block_constraint.cpp.
| HonkRecursionConstraintsOutput< Builder > acir_format::process_civc_recursion_constraints | ( | Builder & | builder, |
| AcirFormat & | constraint_system, | ||
| bool | has_valid_witness_assignments, | ||
| GateCounter< Builder > & | gate_counter | ||
| ) |
Definition at line 630 of file acir_format.cpp.
| HonkRecursionConstraintsOutput< Builder > acir_format::process_honk_recursion_constraints | ( | Builder & | builder, |
| AcirFormat & | constraint_system, | ||
| bool | has_valid_witness_assignments, | ||
| GateCounter< Builder > & | gate_counter | ||
| ) |
Definition at line 495 of file acir_format.cpp.
| void acir_format::process_pg_recursion_constraints | ( | MegaCircuitBuilder & | builder, |
| AcirFormat & | constraints, | ||
| std::shared_ptr< IVCBase > | ivc_base, | ||
| bool | has_valid_witness_assignments, | ||
| GateCounter< MegaCircuitBuilder > & | gate_counter | ||
| ) |
Definition at line 537 of file acir_format.cpp.
| void acir_format::process_RAM_operations | ( | Builder & | builder, |
| const BlockConstraint & | constraint, | ||
| bool | has_valid_witness_assignments, | ||
| std::vector< bb::stdlib::field_t< Builder > > & | init | ||
| ) |
Definition at line 132 of file block_constraint.cpp.
| void acir_format::process_return_data_operations | ( | const BlockConstraint & | constraint, |
| std::vector< bb::stdlib::field_t< Builder > > & | init | ||
| ) |
Definition at line 198 of file block_constraint.cpp.
| void acir_format::process_ROM_operations | ( | Builder & | builder, |
| const BlockConstraint & | constraint, | ||
| bool | has_valid_witness_assignments, | ||
| std::vector< bb::stdlib::field_t< Builder > > & | init | ||
| ) |
Definition at line 105 of file block_constraint.cpp.
| std::vector< AcirFormat > acir_format::program_buf_to_acir_format | ( | std::vector< uint8_t > && | buf | ) |
Definition at line 985 of file acir_to_constraint_buf.cpp.
|
inline |
Definition at line 73 of file block_constraint.hpp.
|
inline |
Definition at line 57 of file block_constraint.hpp.
|
inline |
Definition at line 81 of file recursion_constraint.hpp.
| uint32_t acir_format::round_to_nearest_byte | ( | uint32_t | num_bits | ) |
| uint32_t acir_format::round_to_nearest_mul_8 | ( | uint32_t | num_bits | ) |
| poly_triple acir_format::serialize_arithmetic_gate | ( | Acir::Expression const & | arg | ) |
Construct a poly_tuple for a standard width-3 arithmetic gate from its acir representation.
| arg | acir representation of an 3-wire arithmetic operation |
Definition at line 150 of file acir_to_constraint_buf.cpp.
| mul_quad_< fr > acir_format::serialize_mul_quad_gate | ( | Acir::Expression const & | arg | ) |
Definition at line 358 of file acir_to_constraint_buf.cpp.
| std::vector< mul_quad_< fr > > acir_format::split_into_mul_quad_gates | ( | Acir::Expression const & | arg | ) |
Accumulate the input expression into a serie of quad gates.
Definition at line 256 of file acir_to_constraint_buf.cpp.
| bb::stdlib::field_t< Builder > acir_format::to_field_ct | ( | const WitnessOrConstant< FF > & | input, |
| Builder & | builder | ||
| ) |
Definition at line 40 of file witness_constant.hpp.
| bb::stdlib::cycle_group< Builder > acir_format::to_grumpkin_point | ( | const WitnessOrConstant< FF > & | input_x, |
| const WitnessOrConstant< FF > & | input_y, | ||
| const WitnessOrConstant< FF > & | input_infinite, | ||
| bool | has_valid_witness_assignments, | ||
| const WitnessOrConstant< FF > & | predicate, | ||
| Builder & | builder | ||
| ) |
Convert inputs representing a Grumpkin point into a cycle_group element.
Inputs x, y, and is_infinite are used to construct the point. If no valid witness is provided or if the predicate is constant false, the point is set to the generator point. If the predicate is a non-constant witness, the point is conditionally assigned to the generator point based on the predicate value. This ensures that the point is always valid and will not trigger any on_curve assertions.
| Builder | |
| FF |
| input_x | x-coordinate of the point |
| input_y | y-coordinate of the point |
| input_infinite | boolean indicating if the point is at infinity |
| has_valid_witness_assignments | boolean indicating whether a witness is provided |
| predicate | A relevant predicate used to conditionally assign the point to a valid value |
| builder |
Definition at line 33 of file witness_constant.cpp.
| template bb::stdlib::cycle_group< MegaCircuitBuilder > acir_format::to_grumpkin_point | ( | const WitnessOrConstant< fr > & | input_x, |
| const WitnessOrConstant< fr > & | input_y, | ||
| const WitnessOrConstant< fr > & | input_infinite, | ||
| bool | has_valid_witness_assignments, | ||
| const WitnessOrConstant< fr > & | predicate, | ||
| MegaCircuitBuilder & | builder | ||
| ) |
| template bb::stdlib::cycle_group< UltraCircuitBuilder > acir_format::to_grumpkin_point | ( | const WitnessOrConstant< fr > & | input_x, |
| const WitnessOrConstant< fr > & | input_y, | ||
| const WitnessOrConstant< fr > & | input_infinite, | ||
| bool | has_valid_witness_assignments, | ||
| const WitnessOrConstant< fr > & | predicate, | ||
| UltraCircuitBuilder & | builder | ||
| ) |
| WitnessVector acir_format::witness_buf_to_witness_data | ( | std::vector< uint8_t > && | buf | ) |
Converts from the ACIR-native WitnessStack format to Barretenberg's internal WitnessVector format.
| buf | Serialized representation of a WitnessStack. |
WitnessVector equivalent to the last WitnessMap in the stack. WitnessMap being assigned the value 0. Converting the WitnessVector back to a WitnessMap is unlikely to return the exact same WitnessMap. Definition at line 974 of file acir_to_constraint_buf.cpp.
| WitnessVectorStack acir_format::witness_buf_to_witness_stack | ( | std::vector< uint8_t > && | buf | ) |
Definition at line 998 of file acir_to_constraint_buf.cpp.
| WitnessVector acir_format::witness_map_to_witness_vector | ( | Witnesses::WitnessMap const & | witness_map | ) |
Converts from the ACIR-native WitnessMap format to Barretenberg's internal WitnessVector format.
| witness_map | ACIR-native WitnessMap deserialized from a buffer |
WitnessVector equivalent to the passed WitnessMap. WitnessMap being assigned the value 0. Converting the WitnessVector back to a WitnessMap is unlikely to return the exact same WitnessMap. Definition at line 956 of file acir_to_constraint_buf.cpp.
|
inline |
Definition at line 83 of file block_constraint.hpp.
|
inline |
Definition at line 65 of file block_constraint.hpp.
|
inline |
Definition at line 91 of file recursion_constraint.hpp.
| void acir_format::xor_gate | ( | Builder & | builder, |
| WitnessOrConstant< bb::fr > | a, | ||
| WitnessOrConstant< bb::fr > | b, | ||
| uint32_t | result | ||
| ) |