Documentation ¶
Index ¶
- func AssignGnarkCircuit(ctx *fullRecursionCtx, comp *wizard.CompiledIOP, run *wizard.ProverRuntime) *gnarkCircuit
- func FullRecursion(withoutGkr bool) func(comp *wizard.CompiledIOP)
- type CircuitAssignment
- type ConsistencyCheck
- type LocalOpeningAssignment
- type ReplacementAssignment
- type ResetFsActions
- type WitnessAssigner
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssignGnarkCircuit ¶
func AssignGnarkCircuit(ctx *fullRecursionCtx, comp *wizard.CompiledIOP, run *wizard.ProverRuntime) *gnarkCircuit
AssignGnarkCircuit returns an assignment for the gnark circuit
func FullRecursion ¶
func FullRecursion(withoutGkr bool) func(comp *wizard.CompiledIOP)
FullRecursion "recurses" the wizard protocol by wrapping all the verifier steps in a Plonk-in-Wizard context as well as all the Proof columns. The Vortex PCS verification is done via self-recursion.
Types ¶
type CircuitAssignment ¶
type CircuitAssignment fullRecursionCtx
CircuitAssignment is an implementation of wizard.ProverAction. As such, it embodies the action of assigning the full-recursion Plonk circuit columns.
func (CircuitAssignment) Run ¶
func (c CircuitAssignment) Run(run *wizard.ProverRuntime)
type ConsistencyCheck ¶
type ConsistencyCheck struct {
// contains filtered or unexported fields
}
ConsistencyCheck is an implementation of wizard.VerifierAction. As such it is responsible for checking that the public inputs of the full-recursion Plonk circuit are assigned to values that are consistent with (1) the public inputs of the wrapping wizard protocol and with the inputs of the self-recursion wizard.
func (*ConsistencyCheck) IsSkipped ¶
func (c *ConsistencyCheck) IsSkipped() bool
func (*ConsistencyCheck) Run ¶
func (c *ConsistencyCheck) Run(run *wizard.VerifierRuntime) error
func (*ConsistencyCheck) RunGnark ¶
func (c *ConsistencyCheck) RunGnark(api frontend.API, run *wizard.WizardVerifierCircuit)
func (*ConsistencyCheck) Skip ¶
func (c *ConsistencyCheck) Skip()
type LocalOpeningAssignment ¶
type LocalOpeningAssignment fullRecursionCtx
LocalOpeningAssignment assigns the local openings made over the Plonk PI. These are needed in order to (1) perform the consistency check (2) replace the "old" and recursed public inputs of the original wizard by new ones.
func (LocalOpeningAssignment) Run ¶
func (c LocalOpeningAssignment) Run(run *wizard.ProverRuntime)
type ReplacementAssignment ¶
type ReplacementAssignment fullRecursionCtx
ReplacementAssignment is a wizard.ProverAction implementation. It assigns the queries and columns that are "replaced" in the wizard. In essence, this concerns the main grail polynomial evaluation (the grail query) and the Merkle roots assignment. These have to be replaced so that they can be refered to by the self-recursion. Otherwise, they would be swallowed by the recursion Plonk circuit.
func (ReplacementAssignment) Run ¶
func (c ReplacementAssignment) Run(run *wizard.ProverRuntime)
type ResetFsActions ¶
type ResetFsActions struct {
// contains filtered or unexported fields
}
ResetFsActions is a wizard.FsHook responsible for tweaking the FS state as required by the self-recursion process.
func (*ResetFsActions) IsSkipped ¶
func (r *ResetFsActions) IsSkipped() bool
func (*ResetFsActions) Run ¶
func (r *ResetFsActions) Run(run *wizard.VerifierRuntime) error
func (*ResetFsActions) RunGnark ¶
func (r *ResetFsActions) RunGnark(api frontend.API, run *wizard.WizardVerifierCircuit)
func (*ResetFsActions) Skip ¶
func (r *ResetFsActions) Skip()
type WitnessAssigner ¶
type WitnessAssigner fullRecursionCtx
WitnessAssign is an implementation of the plonk.WitnessAssigner and is used to generate the assignment of the fullRecursion circuit.
func (WitnessAssigner) Assign ¶
func (w WitnessAssigner) Assign(run *wizard.ProverRuntime, i int) (private, public witness.Witness, err error)
func (WitnessAssigner) NumEffWitnesses ¶
func (w WitnessAssigner) NumEffWitnesses(_ *wizard.ProverRuntime) int