protocol.fri#

FRI folding protocol.

Classes#

FRI

FRI protocol: folding, commitment, and verification.

Module Contents#

class protocol.fri.FRI[source]#

FRI protocol: folding, commitment, and verification.

static fold(fri_round: int, pol: primitives.field.FF3Poly, challenge: list[int], n_bits_ext: int, prev_bits: int, current_bits: int) primitives.field.FF3Poly[source]#

Fold polynomial by factor 2^(prev_bits - current_bits) using challenge.

static merkelize(fri_round: int, pol: primitives.field.FF3Poly, tree: primitives.merkle_tree.MerkleTree, current_bits: int, next_bits: int) primitives.merkle_tree.MerkleRoot[source]#

Commit to FRI layer via Merkle tree.

static verify_fold(value: list[int], fri_round: int, n_bits_ext: int, current_bits: int, prev_bits: int, challenge: list[int], idx: int, siblings: list[list[int]]) primitives.field.FF3[source]#

Verify fold step: recompute expected value from siblings and challenge.

static prove_queries(queries: list[int], trees: list[primitives.merkle_tree.MerkleTree], current_bits: int) list[list[int]][source]#

Generate Merkle proofs for query indices.