purify
C++ Purify implementation with native circuit and BPP support
Loading...
Searching...
No Matches
purify::BulletproofTranscript Class Reference

Lowering helper that converts a symbolic transcript into native Bulletproof witness and circuit forms. More...

#include <bulletproof.hpp>

Public Member Functions

void replace_expr_v_with_bp_var (Expr &expr)
 Rewrites transcript variable names to their eventual Bulletproof wire aliases.
 
bool replace_and_insert (Expr &expr, Symbol symbol)
 Detects simple witness aliases and records them for later assignment lowering.
 
void add_assignment (Symbol symbol, Expr expr)
 Adds one symbolic wire assignment to the lowering state.
 
Status from_transcript (const Transcript &transcript, std::size_t n_bits)
 Imports a symbolic transcript and pads it to a power-of-two multiplication count.
 
Status add_pubkey_and_out (const UInt512 &pubkey, Expr p1x, Expr p2x, Expr out)
 Binds packed public-key coordinates and the output commitment into explicit constraints.
 
std::string to_string () const
 Renders the lowered circuit in the legacy textual verifier format.
 
bool evaluate (const WitnessAssignments &vars, const FieldElement &commitment) const
 Evaluates the lowered symbolic constraints with a concrete commitment value.
 
NativeBulletproofCircuit native_circuit () const
 Builds the native sparse circuit object from the lowered assignments and constraints.
 
Result< BulletproofAssignmentDataassignment_data (const WitnessAssignments &vars) const
 Materializes the witness columns expected by the native circuit representation.
 
Result< BulletproofAssignmentDataassignment_data (const WitnessAssignments &vars, const FieldElement &commitment) const
 Materializes the witness columns with an explicit output commitment value.
 
Result< Bytesserialize_assignment (const WitnessAssignments &vars) const
 Serializes the derived witness assignment using the legacy blob format.
 

Detailed Description

Definition at line 425 of file bulletproof.hpp.

Member Function Documentation

◆ add_assignment()

void purify::BulletproofTranscript::add_assignment ( Symbol  symbol,
Expr  expr 
)

Definition at line 1703 of file bulletproof.cpp.

◆ add_pubkey_and_out()

◆ assignment_data() [1/2]

Result< BulletproofAssignmentData > purify::BulletproofTranscript::assignment_data ( const WitnessAssignments vars) const

Definition at line 2023 of file bulletproof.cpp.

Referenced by purify::prove_assignment_data().

◆ assignment_data() [2/2]

Result< BulletproofAssignmentData > purify::BulletproofTranscript::assignment_data ( const WitnessAssignments vars,
const FieldElement commitment 
) const

Definition at line 2027 of file bulletproof.cpp.

◆ evaluate()

bool purify::BulletproofTranscript::evaluate ( const WitnessAssignments vars,
const FieldElement commitment 
) const

◆ from_transcript()

◆ native_circuit()

◆ replace_and_insert()

bool purify::BulletproofTranscript::replace_and_insert ( Expr expr,
Symbol  symbol 
)

◆ replace_expr_v_with_bp_var()

void purify::BulletproofTranscript::replace_expr_v_with_bp_var ( Expr expr)

Definition at line 1675 of file bulletproof.cpp.

References purify::Expr::linear(), and purify::Witness.

Referenced by purify::verifier_circuit_template().

◆ serialize_assignment()

Result< Bytes > purify::BulletproofTranscript::serialize_assignment ( const WitnessAssignments vars) const

◆ to_string()

std::string purify::BulletproofTranscript::to_string ( ) const

Definition at line 1801 of file bulletproof.cpp.

References purify::to_string().

Referenced by purify::verifier().


The documentation for this class was generated from the following files: