44 static constexpr bool HasZK =
true;
73 static constexpr size_t NUM_RELATIONS = std::tuple_size<Relations>::value;
117 for (
auto [native_commitment, commitment] :
zip_view(native_key->get_all(), this->get_all())) {
130 auto serialize_to_field_buffer = []<
typename T>(
const T& input, std::vector<FF>&
buffer) {
131 std::vector<FF> input_fields = convert_to_bn254_frs<CircuitBuilder, T>(input);
132 buffer.insert(
buffer.end(), input_fields.begin(), input_fields.end());
135 std::vector<FF> elements;
136 for (
const Commitment& commitment : this->get_all()) {
137 serialize_to_field_buffer(commitment, elements);
150 [[maybe_unused]]
Transcript& transcript)
const override
152 throw_or_abort(
"Not intended to be used because vk is hardcoded in circuit.");
161 for (
Commitment& commitment : this->get_all()) {
162 commitment.fix_witness();
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
size_t num_public_inputs() const
A base class labelling all entities (for instance, all of the polynomials used by the prover during s...
A container for commitment labels.
The verification key is responsible for storing the commitments to the precomputed (non-witnessk) pol...
static constexpr size_t NUM_SUBRELATIONS
static constexpr size_t NUM_ALL_ENTITIES
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH
std::tuple< ECCVMTranscriptRelation< FF >, ECCVMPointTableRelation< FF >, ECCVMWnafRelation< FF >, ECCVMMSMRelation< FF >, ECCVMSetRelation< FF >, ECCVMLookupRelation< FF >, ECCVMBoolsRelation< FF > > Relations_
static constexpr bool USE_SHORT_MONOMIALS
static constexpr size_t NUM_WITNESS_ENTITIES
static constexpr size_t NUM_PRECOMPUTED_ENTITIES
static constexpr size_t NUM_WIRES
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr bool USE_PADDING
static constexpr RepeatedCommitmentsData REPEATED_COMMITMENTS
A field element for each entity of the flavor. These entities represent the prover polynomials evalua...
The verification key is responsible for storing the commitments to the precomputed (non-witness) poly...
std::vector< BF > to_field_elements() const override
Serialize verification key to field elements.
FF hash_through_transcript(const std::string &domain_separator, Transcript &transcript) const override
Unused function because vk is hardcoded in recursive verifier, so no transcript hashing is needed.
VerifierCommitmentKey pcs_verification_key
void fix_witness()
Fixes witnesses of VK to be constants.
VerificationKey(CircuitBuilder *builder, const std::shared_ptr< NativeVerificationKey > &native_key)
Construct a new Verification Key with stdlib types from a provided native verification key.
std::array< FF, NUM_SUBRELATIONS - 1 > SubrelationSeparators
ECCVMFlavor::Relations_< FF > Relations
static constexpr RepeatedCommitmentsData REPEATED_COMMITMENTS
static constexpr size_t NUM_ALL_ENTITIES
static constexpr size_t NUM_WITNESS_ENTITIES
static constexpr bool HasZK
static constexpr size_t NUM_SUBRELATIONS
static constexpr size_t NUM_WIRES
static constexpr size_t NUM_RELATIONS
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH
static constexpr bool USE_SHORT_MONOMIALS
static constexpr bool USE_PADDING
static constexpr size_t NUM_PRECOMPUTED_ENTITIES
IPA (inner product argument) commitment scheme class.
Base Stdlib verification key class.
typename PrecomputedCommitments::DataType Commitment
cycle_group represents a group Element of the proving system's embedded curve i.e....
static cycle_group from_witness(Builder *_context, const AffineElement &_in)
Converts an AffineElement into a circuit witness.
static field_t from_witness(Builder *ctx, const bb::fr &input)
void convert_constant_to_fixed_witness(Builder *ctx)
uint8_t buffer[RANDOM_BUFFER_SIZE]
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Entry point for Barretenberg command-line interface.
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Curve grumpkin in circuit setting.
bigfield< Builder, bb::Bn254FqParams > ScalarField
field_t< Builder > BaseField
void throw_or_abort(std::string const &err)