|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Compresses Chonk proofs from vector<fr> to compact byte representations. More...
#include <proof_compression.hpp>
Static Public Member Functions | |
| static constexpr size_t | compressed_size_bytes_for_elements (size_t compressed_elements) |
| static size_t | eccvm_compressed_element_count () |
| static size_t | eccvm_compressed_size_bytes () |
| static size_t | compressed_element_count (size_t mega_num_public_inputs=0) |
| Count the total compressed elements for a Chonk proof. Each element (scalar or commitment, either curve) compresses to exactly 32 bytes. | |
| static size_t | compressed_mega_num_public_inputs (size_t compressed_bytes) |
| Derive mega_num_public_inputs from compressed proof size. | |
| static std::vector< uint8_t > | compress_chonk_proof (const ChonkProof &proof) |
| static ChonkProof | decompress_chonk_proof (const std::vector< uint8_t > &compressed, size_t mega_num_public_inputs) |
Static Public Attributes | |
| static constexpr size_t | BYTES_PER_COMPRESSED_ELEMENT = 32 |
| static constexpr size_t | BN254_SCALAR_FIELD_ELEMENTS = proof_compression_detail::BN254_FRS_PER_SCALAR |
| static constexpr size_t | BN254_COMMITMENT_FIELD_ELEMENTS = proof_compression_detail::BN254_FRS_PER_COMM |
| static constexpr size_t | GRUMPKIN_SCALAR_FIELD_ELEMENTS = proof_compression_detail::GRUMPKIN_FRS_PER_SCALAR |
| static constexpr size_t | GRUMPKIN_COMMITMENT_FIELD_ELEMENTS = proof_compression_detail::GRUMPKIN_FRS_PER_COMM |
| static constexpr size_t | ECCVM_PROOF_FIELD_ELEMENTS = proof_compression_detail::EXPECTED_ECCVM_FRS |
Private Types | |
| using | Fr = curve::BN254::ScalarField |
| using | Fq = curve::BN254::BaseField |
Static Private Member Functions | |
| template<typename Field > | |
| static bool | y_is_negative (const Field &y) |
| True if y is in the "upper half" of its field, used for point compression sign bit. | |
| static void | write_u256 (std::vector< uint8_t > &out, const uint256_t &val) |
| static uint256_t | read_u256 (const std::vector< uint8_t > &data, size_t &pos) |
| static Fq | reconstruct_fq (const Fr &lo, const Fr &hi) |
| static std::pair< Fr, Fr > | split_fq (const Fq &val) |
Static Private Attributes | |
| static constexpr uint256_t | SIGN_BIT_MASK = uint256_t(1) << 255 |
| static constexpr uint64_t | NUM_LIMB_BITS = 68 |
| static constexpr uint64_t | FQ_SPLIT_BITS = NUM_LIMB_BITS * 2 |
Compresses Chonk proofs from vector<fr> to compact byte representations.
Compression techniques:
Every element compresses to exactly 32 bytes regardless of type:
Definition at line 322 of file proof_compression.hpp.
|
private |
Definition at line 324 of file proof_compression.hpp.
|
private |
Definition at line 323 of file proof_compression.hpp.
|
inlinestatic |
Definition at line 432 of file proof_compression.hpp.
|
inlinestatic |
Count the total compressed elements for a Chonk proof. Each element (scalar or commitment, either curve) compresses to exactly 32 bytes.
Definition at line 403 of file proof_compression.hpp.
|
inlinestatic |
Derive mega_num_public_inputs from compressed proof size.
| compressed_bytes | Total size of the compressed proof in bytes. |
Definition at line 415 of file proof_compression.hpp.
|
inlinestaticconstexpr |
Definition at line 381 of file proof_compression.hpp.
|
inlinestatic |
Definition at line 498 of file proof_compression.hpp.
|
inlinestatic |
Definition at line 386 of file proof_compression.hpp.
|
inlinestatic |
Definition at line 394 of file proof_compression.hpp.
|
inlinestaticprivate |
Definition at line 349 of file proof_compression.hpp.
Definition at line 361 of file proof_compression.hpp.
Definition at line 366 of file proof_compression.hpp.
|
inlinestaticprivate |
Definition at line 342 of file proof_compression.hpp.
|
inlinestaticprivate |
True if y is in the "upper half" of its field, used for point compression sign bit.
Definition at line 333 of file proof_compression.hpp.
|
staticconstexpr |
Definition at line 376 of file proof_compression.hpp.
|
staticconstexpr |
Definition at line 375 of file proof_compression.hpp.
|
staticconstexpr |
Definition at line 374 of file proof_compression.hpp.
|
staticconstexpr |
Definition at line 379 of file proof_compression.hpp.
|
staticconstexprprivate |
Definition at line 330 of file proof_compression.hpp.
|
staticconstexpr |
Definition at line 378 of file proof_compression.hpp.
|
staticconstexpr |
Definition at line 377 of file proof_compression.hpp.
|
staticconstexprprivate |
Definition at line 329 of file proof_compression.hpp.
Definition at line 326 of file proof_compression.hpp.