12using namespace numeric;
13#ifndef AZTEC_NO_ORIGIN_TAGS
31 if (*challenges_a == 0 && *challenges_b == 0 && *submitted_a != 0 && *submitted_b != 0 &&
32 *submitted_a != *submitted_b) {
33 throw_or_abort(
"Submitted values from 2 different rounds are mixing without challenges");
46 throw_or_abort(
"Touched an element that should not have been touched");
61 throw_or_abort(
"A free witness element should not interact with an element that has an origin");
70 throw_or_abort(
"A free witness element should not interact with an element that has an origin");
79 throw_or_abort(
"Tags from different transcripts were involved in the same computation");
Entry point for Barretenberg command-line interface.
void check_round_provenance(const uint256_t &provenance_a, const uint256_t &provenance_b)
Detect if two elements from the same transcript are performing a suspicious interaction.
This file contains part of the logic for the Origin Tag mechanism that tracks the use of in-circuit p...
unsigned __int128 uint128_t
static constexpr size_t CONSTANT
bool is_free_witness() const
numeric::uint256_t round_provenance
bool operator==(const OriginTag &other) const
void throw_or_abort(std::string const &err)