protocol.pcs#

FRI Polynomial Commitment Scheme.

Attributes#

Classes#

FriPcsConfig

FRI PCS parameters.

FriProof

FRI proof: roots, final polynomial, grinding nonce, and query proofs.

FriPcs

FRI Polynomial Commitment Scheme.

Module Contents#

protocol.pcs.EvalPoly[source]#
protocol.pcs.Nonce[source]#
protocol.pcs.QueryIndex[source]#
class protocol.pcs.FriPcsConfig[source]#

FRI PCS parameters.

n_bits_ext: int[source]#
fri_round_log_sizes: list[int][source]#
n_queries: int[source]#
merkle_arity: int = 4[source]#
pow_bits: int = 16[source]#
last_level_verification: int = 0[source]#
hash_commits: bool = True[source]#
transcript_arity: int = 4[source]#
merkle_tree_custom: bool = False[source]#
class protocol.pcs.FriProof[source]#

FRI proof: roots, final polynomial, grinding nonce, and query proofs.

fri_roots: list[primitives.merkle_tree.MerkleRoot] = [][source]#
final_pol: primitives.field.FF3Poly[source]#
nonce: Nonce = 0[source]#
query_proofs: list[list[primitives.merkle_tree.QueryProof]] = [][source]#
query_indices: list[QueryIndex] = [][source]#
class protocol.pcs.FriPcs(config: FriPcsConfig)[source]#

FRI Polynomial Commitment Scheme.

config[source]#
fri_trees[source]#
prove(polynomial: EvalPoly, transcript: primitives.transcript.Transcript, stage_trees: list[primitives.merkle_tree.MerkleTree] | None = None) FriProof[source]#

Generate FRI proof: commit-fold, finalize, grind, query.

get_fri_tree(fri_round: int) primitives.merkle_tree.MerkleTree[source]#

Get Merkle tree for given FRI layer.