Barretenberg
The ZK-SNARK library at the core of Aztec
|
An object storing two EC points that represent the inputs to a pairing check. More...
#include <pairing_points.hpp>
Public Types | |
using | Builder = Builder_ |
using | Curve = bn254< Builder > |
using | Group = typename Curve::Group |
using | Fr = typename Curve::ScalarField |
Public Member Functions | |
PairingPoints ()=default | |
PairingPoints (const Group &P0, const Group &P1) | |
PairingPoints (std::array< Group, 2 > const &points) | |
Curve::bool_ct | operator== (PairingPoints const &other) const |
void | aggregate (PairingPoints const &other) |
Compute a linear combination of the present pairing points with an input set of pairing points. | |
uint32_t | set_public () |
Set the witness indices for the limbs of the pairing points to public. | |
Static Public Member Functions | |
static PairingPoints< Builder > | reconstruct_from_public (const std::span< const Fr, PUBLIC_INPUTS_SIZE > &limbs) |
Reconstruct an PairingPoints from its representation as limbs (generally stored in the public inputs) | |
static std::array< fr, PUBLIC_INPUTS_SIZE > | construct_dummy () |
static void | add_default_to_public_inputs (Builder &builder) |
Adds default public inputs to the builder. | |
Public Attributes | |
Group | P0 |
Group | P1 |
bool | has_data = false |
Static Public Attributes | |
static constexpr size_t | PUBLIC_INPUTS_SIZE = PAIRING_POINTS_SIZE |
An object storing two EC points that represent the inputs to a pairing check.
The points may represent the output of a single partial recursive verification or the linear combination of multiple sets of pairing points.
TODO(https://github.com/AztecProtocol/barretenberg/issues/1421): Proper tests for PairingPoints
Builder_ |
Definition at line 24 of file pairing_points.hpp.
using bb::stdlib::recursion::PairingPoints< Builder_ >::Builder = Builder_ |
Definition at line 25 of file pairing_points.hpp.
using bb::stdlib::recursion::PairingPoints< Builder_ >::Curve = bn254<Builder> |
Definition at line 26 of file pairing_points.hpp.
using bb::stdlib::recursion::PairingPoints< Builder_ >::Fr = typename Curve::ScalarField |
Definition at line 28 of file pairing_points.hpp.
using bb::stdlib::recursion::PairingPoints< Builder_ >::Group = typename Curve::Group |
Definition at line 27 of file pairing_points.hpp.
|
default |
|
inline |
Definition at line 39 of file pairing_points.hpp.
|
inline |
Definition at line 45 of file pairing_points.hpp.
|
inlinestatic |
Adds default public inputs to the builder.
This should cost exactly 20 gates because there's 4 bigfield elements and each have 5 total witnesses including the prime limb.
builder |
Definition at line 150 of file pairing_points.hpp.
|
inline |
Compute a linear combination of the present pairing points with an input set of pairing points.
The linear combination is done with a recursion separator that is the hash of the two sets of pairing points.
other | |
recursion_separator |
Definition at line 60 of file pairing_points.hpp.
|
inlinestatic |
Definition at line 124 of file pairing_points.hpp.
|
inline |
Definition at line 49 of file pairing_points.hpp.
|
inlinestatic |
Reconstruct an PairingPoints from its representation as limbs (generally stored in the public inputs)
limbs | The limbs of the pairing points |
Definition at line 114 of file pairing_points.hpp.
|
inline |
Set the witness indices for the limbs of the pairing points to public.
Definition at line 99 of file pairing_points.hpp.
bool bb::stdlib::recursion::PairingPoints< Builder_ >::has_data = false |
Definition at line 32 of file pairing_points.hpp.
Group bb::stdlib::recursion::PairingPoints< Builder_ >::P0 |
Definition at line 29 of file pairing_points.hpp.
Group bb::stdlib::recursion::PairingPoints< Builder_ >::P1 |
Definition at line 30 of file pairing_points.hpp.
|
staticconstexpr |
Definition at line 35 of file pairing_points.hpp.