Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ template <typename Builder> bool UltraCircuitChecker::check(const Builder& build
MemoryCheckData memory_data{ builder };

bool result = true;
// TODO(https://github.com/AztecProtocol/barretenberg/issues/870): Currently we check all relations for each block.
// Once sorting is complete, is will be sufficient to check only the relevant relation(s) per block.
size_t block_idx = 0;
for (auto& block : builder.blocks.get()) {
result = result && check_block(builder, block, tag_data, memory_data, lookup_hash_table);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,8 +587,6 @@ template <typename Curve_> class IPA {
*
*@remark The verification procedure documentation is in \link IPA::verify_internal verify_internal \endlink
*/
// TODO(https://github.com/AztecProtocol/barretenberg/issues/912): Return the proper VerifierAccumulator once
// implemented
static VerifierAccumulator reduce_verify(const OpeningClaim<Curve>& opening_claim,
const auto& transcript)
requires(Curve::is_stdlib_type)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -329,8 +329,6 @@ template <typename Curve> class ZeroMorphProver_ {
* @param multilinear_challenge Multilinear challenge point u
* @param commitment_key
* @param transcript
*
* @todo https://github.com/AztecProtocol/barretenberg/issues/1030: document concatenation trick
*/
template <typename Transcript>
static OpeningClaim prove(FF circuit_size,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,6 @@ void build_constraints(Builder& builder, AcirProgram& program, const ProgramMeta
}

// RecursionConstraints
// TODO(https://github.com/AztecProtocol/barretenberg/issues/817): disable these for MegaHonk for now since we're
// not yet dealing with proper recursion
if constexpr (IsMegaBuilder<Builder>) {
if (!constraint_system.recursion_constraints.empty()) {
info("WARNING: this circuit contains unhandled recursion_constraints!");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ INSTANTIATE_TEST_SUITE_P(AcirTests,
"regression_4202",
"regression_4449",
"regression_4709",
//"regression_5045",
"regression_5045",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very expressive naming :D

"regression_capacity_tracker",
"regression_mem_op_predicate",
"regression_method_cannot_be_found",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,6 @@ using namespace bb;
*/
poly_triple serialize_arithmetic_gate(Program::Expression const& arg)
{
// TODO(https://github.com/AztecProtocol/barretenberg/issues/816): The initialization of the witness indices a,b,c
// to 0 is implicitly assuming that (builder.zero_idx == 0) which is no longer the case. Now, witness idx 0 in
// general will correspond to some non-zero value and some witnesses which are not explicitly set below will be
// erroneously populated with this value. This does not cause failures however because the corresponding selector
// will indeed be 0 so the gate will be satisfied. Still, its a bad idea to have erroneous wire values
// even if they dont break the relation. They'll still add cost in commitments, for example.
poly_triple pt{
.a = 0,
.b = 0,
Expand Down Expand Up @@ -67,9 +61,6 @@ poly_triple serialize_arithmetic_gate(Program::Expression const& arg)

// If the witness index has not yet been set or if the corresponding linear term is active, set the witness
// index and the corresponding selector value.
// TODO(https://github.com/AztecProtocol/barretenberg/issues/816): May need to adjust the pt.a == witness_idx
// check (and the others like it) since we initialize a,b,c with 0 but 0 is a valid witness index once the
// +1 offset is removed from noir.
if (!a_set || pt.a == witness_idx) { // q_l * w_l
pt.a = witness_idx;
pt.q_l = selector_value;
Expand Down Expand Up @@ -241,12 +232,6 @@ std::vector<mul_quad_<fr>> split_into_mul_quad_gates(Program::Expression const&

mul_quad_<fr> serialize_mul_quad_gate(Program::Expression const& arg)
{
// TODO(https://github.com/AztecProtocol/barretenberg/issues/816): The initialization of the witness indices a,b,c
// to 0 is implicitly assuming that (builder.zero_idx == 0) which is no longer the case. Now, witness idx 0 in
// general will correspond to some non-zero value and some witnesses which are not explicitly set below will be
// erroneously populated with this value. This does not cause failures however because the corresponding selector
// will indeed be 0 so the gate will be satisfied. Still, its a bad idea to have erroneous wire values
// even if they dont break the relation. They'll still add cost in commitments, for example.
mul_quad_<fr> quad{ .a = 0,
.b = 0,
.c = 0,
Expand Down Expand Up @@ -280,9 +265,6 @@ mul_quad_<fr> serialize_mul_quad_gate(Program::Expression const& arg)

// If the witness index has not yet been set or if the corresponding linear term is active, set the witness
// index and the corresponding selector value.
// TODO(https://github.com/AztecProtocol/barretenberg/issues/816): May need to adjust the quad.a == witness_idx
// check (and the others like it) since we initialize a,b,c with 0 but 0 is a valid witness index once the
// +1 offset is removed from noir.
if (!a_set || quad.a == witness_idx) {
quad.a = witness_idx;
quad.a_scaling = selector_value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ namespace acir_format {

using namespace bb;

// TODO(https://github.com/AztecProtocol/barretenberg/issues/1148): logic in this file is incomplete. See issue for
// details.

std::shared_ptr<ClientIVC> create_mock_ivc_from_constraints(const std::vector<RecursionConstraint>& constraints,
const TraceSettings& trace_settings);

Expand Down
2 changes: 0 additions & 2 deletions barretenberg/cpp/src/barretenberg/dsl/acir_proofs/c_bind.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,6 @@ WASM_EXPORT void acir_prove_and_verify_aztec_client(uint8_t const* acir_stack,
const acir_format::ProgramMetadata metadata{ ivc };

// Accumulate the entire program stack into the IVC
// TODO(https://github.com/AztecProtocol/barretenberg/issues/1116): remove manual setting of is_kernel once databus
// has been integrated into noir kernel programs
bool is_kernel = false;
auto start = std::chrono::steady_clock::now();
for (Program& program : folding_stack) {
Expand Down
3 changes: 1 addition & 2 deletions barretenberg/cpp/src/barretenberg/goblin/goblin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,7 @@ class GoblinVerifier {

bool accumulator_construction_verified = translator_verifier.verify_proof(
proof.translator_proof, eccvm_verifier.evaluation_challenge_x, eccvm_verifier.batching_challenge_v);
// TODO(https://github.com/AztecProtocol/barretenberg/issues/799): Ensure translation_evaluations are passed
// correctly

bool translation_verified = translator_verifier.verify_translation(
proof.translation_evaluations, eccvm_verifier.translation_masking_term_eval);

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
// with the non-constexpr setting. Right now everything is more or less duplicated across BarycentricDataCompileTime and
// BarycentricDataRunTime. There should be a way to share more of the logic.

/* IMPROVEMENT(Cody): This could or should be improved in various ways. In no particular order:
/* TODO(https://github.com/AztecProtocol/barretenberg/issues/10): This could or should be improved in various ways. In
no particular order:
1) Edge cases are not considered. One non-use case situation (I forget which) leads to a segfault.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

prob trying to evaluate a univariate at one of the domain points? this leads to an edge case in sumcheck recursive verifier


2) Precomputing for all possible size pairs is probably feasible and might be a better solution than instantiating
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ namespace bb {
template <class Flavor> struct FoldingResult {
public:
std::shared_ptr<DeciderProvingKey_<Flavor>> accumulator;
// TODO(https://github.com/AztecProtocol/barretenberg/issues/656): turn folding data into a struct
std::vector<typename Flavor::FF> proof;
};
} // namespace bb
} // namespace bb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ template <class DeciderProvingKeys_> class ProtogalaxyProver_ {
ProtogalaxyProver_(const std::vector<std::shared_ptr<DeciderPK>>& keys,
ExecutionTraceUsageTracker trace_usage_tracker = ExecutionTraceUsageTracker{})
: keys_to_fold(DeciderProvingKeys_(keys))
// TODO(https://github.com/AztecProtocol/barretenberg/issues/878)
, commitment_key(keys_to_fold[1]->proving_key.commitment_key)
, pg_internal(trace_usage_tracker){};

Expand Down Expand Up @@ -106,4 +105,4 @@ template <class DeciderProvingKeys_> class ProtogalaxyProver_ {
*/
BB_PROFILE FoldingResult<Flavor> prove();
};
} // namespace bb
} // namespace bb
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,6 @@ ProtogalaxyProver_<DeciderProvingKeys>::combiner_quotient_round(const std::vecto

/**
* @brief Given the challenge \gamma, compute Z(\gamma) and {L_0(\gamma),L_1(\gamma)}
* TODO(https://github.com/AztecProtocol/barretenberg/issues/764): Generalize the vanishing polynomial formula
* and the computation of Lagrange basis for k decider proving keys.
*/
template <class DeciderProvingKeys>
FoldingResult<typename DeciderProvingKeys::Flavor> ProtogalaxyProver_<DeciderProvingKeys>::update_target_sum_and_fold(
Expand Down Expand Up @@ -209,4 +207,4 @@ FoldingResult<typename DeciderProvingKeys::Flavor> ProtogalaxyProver_<DeciderPro

return result;
}
} // namespace bb
} // namespace bb
Original file line number Diff line number Diff line change
Expand Up @@ -505,10 +505,6 @@ template <class DeciderProvingKeys_> class ProtogalaxyProverInternal {

/**
* @brief Compute the combiner quotient defined as $K$ polynomial in the paper.
*
* TODO(https://github.com/AztecProtocol/barretenberg/issues/764): generalize the computation of vanishing
* polynomials and Lagrange basis and use batch_invert.
*
*/
static Univariate<FF, DeciderPKs::BATCHED_EXTENDED_LENGTH, DeciderPKs::NUM> compute_combiner_quotient(
FF perturbator_evaluation, ExtendedUnivariateWithRandomization combiner)
Expand Down
2 changes: 0 additions & 2 deletions barretenberg/cpp/src/barretenberg/relations/utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ template <typename Flavor> class RelationUtils {
* thesis).
*/
template <typename Parameters>
// TODO(#224)(Cody): Input should be an array?
inline static void accumulate_relation_evaluations_without_skipping(const PolynomialEvaluations& evaluations,
RelationEvaluations& relation_evaluations,
const Parameters& relation_parameters,
Expand All @@ -173,7 +172,6 @@ template <typename Flavor> class RelationUtils {
* thesis).
*/
template <typename Parameters>
// TODO(#224)(Cody): Input should be an array?
inline static RelationEvaluations accumulate_relation_evaluations(const PolynomialEvaluations& evaluations,
const Parameters& relation_parameters,
const FF& partial_evaluation_result)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ namespace bb::stdlib::recursion::honk {

/**
* @brief Performs recursive verification of the Client IVC proof.
*
* @todo (https://github.com/AztecProtocol/barretenberg/issues/934): Add logic for accumulating the pairing points
* produced by the verifiers (and potentially IPA accumulators for ECCVM verifier)
*/
ClientIVCRecursiveVerifier::Output ClientIVCRecursiveVerifier::verify(const ClientIVC::Proof& proof)
{
Expand All @@ -29,4 +26,4 @@ ClientIVCRecursiveVerifier::Output ClientIVCRecursiveVerifier::verify(const Clie
return output;
}

} // namespace bb::stdlib::recursion::honk
} // namespace bb::stdlib::recursion::honk
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ namespace bb::stdlib::recursion::honk {

/**
* @brief Runs the Goblin recursive verifier consisting of ECCVM, Translator and Merge verifiers.
*
* @todo https://github.com/AztecProtocol/barretenberg/issues/934: Add logic for accumulating the pairing points
* produced by the translator and merge verifier (and potentially IPA accumulators for ECCVM verifier)
*/
GoblinRecursiveVerifierOutput GoblinRecursiveVerifier::verify(const GoblinProof& proof)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,6 @@ template <class RecursiveBuilder> class RecursiveMergeVerifierTest : public test
}
};

// Run the recursive verifier tests with Ultra and Mega builders
// TODO(https://github.com/AztecProtocol/barretenberg/issues/1024): Ultra fails, possibly due to repeated points in
// batch mul?
using Builders = testing::Types<MegaCircuitBuilder, UltraCircuitBuilder>;

TYPED_TEST_SUITE(RecursiveMergeVerifierTest, Builders);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@
#include <vector>
namespace bb::stdlib::recursion::honk {

// TODO(https://github.com/AztecProtocol/barretenberg/issues/1009): Make the us vector an array after we constify eccvm
// circuit size.
template <typename Curve> struct IpaAccumulator {
typename Curve::ScalarField log_poly_length;
std::vector<typename Curve::ScalarField>
u_challenges_inv; // inverses of u challenges that represent the polynomial h
u_challenges_inv; // inverses of u challenges that represent the polynomial h; could be an array
typename Curve::Group comm; // commitment to the polynomial h
};

} // namespace bb::stdlib::recursion::honk
} // namespace bb::stdlib::recursion::honk
Original file line number Diff line number Diff line change
Expand Up @@ -1105,8 +1105,6 @@ bigfield<Builder, T> bigfield<Builder, T>::sqradd(const std::vector<bigfield>& t
* @returns this ** (exponent)
*
* @todo TODO(https://github.com/AztecProtocol/barretenberg/issues/1014) Improve the efficiency of this function.
* @todo TODO(https://github.com/AztecProtocol/barretenberg/issues/1015) Security of this (as part of the whole
* class)
*/

template <typename Builder, typename T> bigfield<Builder, T> bigfield<Builder, T>::pow(const size_t exponent) const
Expand Down Expand Up @@ -1147,8 +1145,6 @@ template <typename Builder, typename T> bigfield<Builder, T> bigfield<Builder, T
* @returns this ** (exponent)
*
* @todo TODO(https://github.com/AztecProtocol/barretenberg/issues/1014) Improve the efficiency of this function.
* @todo TODO(https://github.com/AztecProtocol/barretenberg/issues/1015) Security of this (as part of the whole
* class)
*/
template <typename Builder, typename T>
bigfield<Builder, T> bigfield<Builder, T>::pow(const field_t<Builder>& exponent) const
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,15 +232,15 @@ template <class Builder, class Fq, class Fr, class NativeGroup> class element {
// i.e. for the bn254 curve, the template param is `typename = void`
// for any other curve, there is no template param
template <typename X = NativeGroup, typename = typename std::enable_if_t<std::is_same<X, bb::g1>::value>>
requires(IsNotMegaBuilder<Builder>) // TODO(https://github.com/AztecProtocol/barretenberg/issues/707)
requires(IsNotMegaBuilder<Builder>)
static element bn254_endo_batch_mul(const std::vector<element>& big_points,
const std::vector<Fr>& big_scalars,
const std::vector<element>& small_points,
const std::vector<Fr>& small_scalars,
const size_t max_num_small_bits);

template <typename X = NativeGroup, typename = typename std::enable_if_t<std::is_same<X, bb::g1>::value>>
requires(IsNotMegaBuilder<Builder>) // TODO(https://github.com/AztecProtocol/barretenberg/issues/707)
requires(IsNotMegaBuilder<Builder>)
static element bn254_endo_batch_mul_with_generator(const std::vector<element>& big_points,
const std::vector<Fr>& big_scalars,
const std::vector<element>& small_points,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1754,7 +1754,7 @@ TYPED_TEST(stdlib_biggroup, dbl)
TYPED_TEST(stdlib_biggroup, montgomery_ladder)
{
if constexpr (HasGoblinBuilder<TypeParam>) {
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/707";
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/1290";
} else {
TestFixture::test_montgomery_ladder();
};
Expand Down Expand Up @@ -1793,23 +1793,23 @@ HEAVY_TYPED_TEST(stdlib_biggroup, short_scalar_mul_infinity)
HEAVY_TYPED_TEST(stdlib_biggroup, twin_mul)
{
if constexpr (HasGoblinBuilder<TypeParam>) {
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/707";
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/1290";
} else {
TestFixture::test_twin_mul();
};
}
HEAVY_TYPED_TEST(stdlib_biggroup, triple_mul)
{
if constexpr (HasGoblinBuilder<TypeParam>) {
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/707";
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/1290";
} else {
TestFixture::test_triple_mul();
};
}
HEAVY_TYPED_TEST(stdlib_biggroup, quad_mul)
{
if constexpr (HasGoblinBuilder<TypeParam>) {
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/707";
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/1290";
} else {
TestFixture::test_quad_mul();
};
Expand Down Expand Up @@ -1844,7 +1844,7 @@ HEAVY_TYPED_TEST(stdlib_biggroup, chain_add)
{

if constexpr (HasGoblinBuilder<TypeParam>) {
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/707";
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/1290";
} else {
TestFixture::test_chain_add();
};
Expand All @@ -1853,7 +1853,7 @@ HEAVY_TYPED_TEST(stdlib_biggroup, multiple_montgomery_ladder)
{

if constexpr (HasGoblinBuilder<TypeParam>) {
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/707";
GTEST_SKIP() << "https://github.com/AztecProtocol/barretenberg/issues/1290";
} else {
TestFixture::test_multiple_montgomery_ladder();
};
Expand Down Expand Up @@ -1997,4 +1997,4 @@ HEAVY_TYPED_TEST(stdlib_biggroup, ecdsa_mul_secp256k1)
} else {
GTEST_SKIP();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ template <class Builder_, class Fq, class Fr, class NativeGroup> class goblin_el

goblin_element dbl() const { return batch_mul({ *this }, { 2 }); }

// TODO(https://github.com/AztecProtocol/barretenberg/issues/707) max_num_bits is unused; could implement and
// TODO(https://github.com/AztecProtocol/barretenberg/issues/1291) max_num_bits is unused; could implement and
// use this to optimize other operations. interface compatible with biggroup.hpp, the final parameter
// handle_edge_cases is not needed as this is always done in the eccvm
static goblin_element batch_mul(const std::vector<goblin_element>& points,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,7 @@ template <typename Builder> field_t<Builder> field_t<Builder>::pow(const field_t
}

bool exponent_constant = exponent.is_constant();
// TODO(https://github.com/AztecProtocol/barretenberg/issues/446): optimize by allowing smaller expoonent
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo in exponent

std::vector<bool_t<Builder>> exponent_bits(32);
for (size_t i = 0; i < exponent_bits.size(); ++i) {
uint256_t value_bit = exponent_value & 1;
Expand Down
Loading
Loading