Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ecc_transcript_relation.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Complete, auditors: [Raju], commit: 2a49eb6 }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6
7#pragma once
8
12
13namespace bb {
14
35template <typename FF_> class ECCVMTranscriptRelationImpl {
36 public:
37 using FF = FF_;
38
39 static constexpr std::array<size_t, 27> SUBRELATION_PARTIAL_LENGTHS{
40 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
41 };
42
43 template <typename ContainerOverSubrelations, typename AllEntities, typename Parameters>
44 static void accumulate(ContainerOverSubrelations& accumulator,
45 const AllEntities& in,
46 const Parameters& /* unused */,
47 const FF& scaling_factor);
48
49 static constexpr FF get_curve_b()
50 {
51 if constexpr (FF::modulus == bb::fq::modulus) {
52 return bb::g1::curve_b;
53 } else if constexpr (FF::modulus == grumpkin::fq::modulus) {
55 } else {
56 static_assert(!std::is_same_v<FF, FF>, "Unsupported field type for ECC transcript relation");
57 }
58 }
59};
60
62
63} // namespace bb
ECCVMTranscriptRelationImpl evaluates the correctness of the ECCVM transcript columns.
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &, const FF &scaling_factor)
ECCVMTranscriptRelationImpl evaluates the correctness of the ECCVM transcript columns.
static constexpr std::array< size_t, 27 > SUBRELATION_PARTIAL_LENGTHS
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
static constexpr Fq curve_b
Definition group.hpp:51
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
static constexpr uint256_t modulus