variables

package
v0.0.0-...-a9b246b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 24, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StringArrayToHashBN254Array

func StringArrayToHashBN254Array(rawHashes []string) []poseidon.BN254HashOut

Types

type FriChallenges

type FriChallenges struct {
	FriAlpha        gl.QuadraticExtensionVariable
	FriBetas        []gl.QuadraticExtensionVariable
	FriPowResponse  gl.Variable
	FriQueryIndices []gl.Variable
}

type FriEvalProof

type FriEvalProof struct {
	Elements    []gl.Variable // Length = [CommonCircuitData.Constants + CommonCircuitData.NumRoutedWires, CommonCircuitData.NumWires + CommonCircuitData.FriParams.Hiding ? 4 : 0, CommonCircuitData.NumChallenges * (1 + CommonCircuitData.NumPartialProducts) + salt, CommonCircuitData.NumChallenges * CommonCircuitData.QuotientDegreeFactor + salt]
	MerkleProof FriMerkleProof
}

func NewFriEvalProof

func NewFriEvalProof(elements []gl.Variable, merkleProof FriMerkleProof) FriEvalProof

type FriInitialTreeProof

type FriInitialTreeProof struct {
	EvalsProofs []FriEvalProof // Length = 4
}

func NewFriInitialTreeProof

func NewFriInitialTreeProof(evalsProofs []FriEvalProof) FriInitialTreeProof

type FriMerkleCap

type FriMerkleCap = []poseidon.BN254HashOut

func DeserializeMerkleCap

func DeserializeMerkleCap(merkleCapRaw []string) FriMerkleCap

func NewFriMerkleCap

func NewFriMerkleCap(capHeight uint64) FriMerkleCap

type FriMerkleProof

type FriMerkleProof struct {
	Siblings []poseidon.BN254HashOut // Length = CircuitConfig.FriConfig.DegreeBits + CircuitConfig.FriConfig.RateBits - CircuitConfig.FriConfig.CapHeight
}

func DeserializeMerkleProof

func DeserializeMerkleProof(merkleProofRaw struct{ Siblings []interface{} }) FriMerkleProof

func NewFriMerkleProof

func NewFriMerkleProof(merkleProofLen uint64) FriMerkleProof

type FriProof

type FriProof struct {
	CommitPhaseMerkleCaps []FriMerkleCap  // Length = Len(CommonCircuitData.FriParams.ReductionArityBits)
	QueryRoundProofs      []FriQueryRound // Length = CommonCircuitData.FriConfig.FriParams.NumQueryRounds
	FinalPoly             PolynomialCoeffs
	PowWitness            gl.Variable
}

func DeserializeFriProof

func DeserializeFriProof(openingProofRaw struct {
	CommitPhaseMerkleCaps [][]string
	QueryRoundProofs      []struct {
		InitialTreesProof struct {
			EvalsProofs []types.EvalProofRaw
		}
		Steps []struct {
			Evals       [][]uint64
			MerkleProof struct {
				Siblings []string
			}
		}
	}
	FinalPoly struct {
		Coeffs [][]uint64
	}
	PowWitness uint64
}) FriProof

type FriQueryRound

type FriQueryRound struct {
	InitialTreesProof FriInitialTreeProof
	Steps             []FriQueryStep // Length = Len(CommonCircuitData.FriParams.ReductionArityBits)
}

func NewFriQueryRound

func NewFriQueryRound(steps []FriQueryStep, initialTreesProof FriInitialTreeProof) FriQueryRound

type FriQueryStep

type FriQueryStep struct {
	Evals       []gl.QuadraticExtensionVariable // Length = [2^arityBit for arityBit in CommonCircuitData.FriParams.ReductionArityBits]
	MerkleProof FriMerkleProof                  // Length = [regularSize - arityBit for arityBit in CommonCircuitData.FriParams.ReductionArityBits]
}

func NewFriQueryStep

func NewFriQueryStep(arityBit uint64, merkleProofLen uint64) FriQueryStep

type OpeningSet

type OpeningSet struct {
	Constants       []gl.QuadraticExtensionVariable // Length = CommonCircuitData.Constants
	PlonkSigmas     []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumRoutedWires
	Wires           []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumWires
	PlonkZs         []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges
	PlonkZsNext     []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges
	PartialProducts []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges * CommonCircuitData.NumPartialProducts
	QuotientPolys   []gl.QuadraticExtensionVariable // Length = CommonCircuitData.NumChallenges * CommonCircuitData.QuotientDegreeFactor
}

func DeserializeOpeningSet

func DeserializeOpeningSet(openingSetRaw struct {
	Constants       [][]uint64
	PlonkSigmas     [][]uint64
	Wires           [][]uint64
	PlonkZs         [][]uint64
	PlonkZsNext     [][]uint64
	PartialProducts [][]uint64
	QuotientPolys   [][]uint64
}) OpeningSet

type PolynomialCoeffs

type PolynomialCoeffs struct {
	Coeffs []gl.QuadraticExtensionVariable
}

func NewPolynomialCoeffs

func NewPolynomialCoeffs(numCoeffs uint64) PolynomialCoeffs

type Proof

type Proof struct {
	WiresCap                  FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
	PlonkZsPartialProductsCap FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
	QuotientPolysCap          FriMerkleCap // length = 2^CircuitConfig.FriConfig.CapHeight
	Openings                  OpeningSet
	OpeningProof              FriProof
}

type ProofChallenges

type ProofChallenges struct {
	PlonkBetas    []gl.Variable
	PlonkGammas   []gl.Variable
	PlonkAlphas   []gl.Variable
	PlonkZeta     gl.QuadraticExtensionVariable
	FriChallenges FriChallenges
}

type ProofWithPublicInputs

type ProofWithPublicInputs struct {
	Proof        Proof
	PublicInputs []gl.Variable // Length = CommonCircuitData.NumPublicInputs
}

type VerifierOnlyCircuitData

type VerifierOnlyCircuitData struct {
	ConstantSigmasCap FriMerkleCap
	CircuitDigest     poseidon.BN254HashOut
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL