Search…
Proof Systems

Interactive Proof Systems

The following zero-knowledge proof systems are currently supported by a frontend or backend provider:
    Succinct Non-Interactive Arguments of Knowledge (zkSNARKs)
The following zero-knowledge proof systems may be supported by a frontend or backend provider in the future:
    Succinct Non-interactive Oecumenical (Universal) aRguments of Knowledge (zkSNORKs)
    Succinct (Scalable) Transparent ARguments of Knowledge (zkSTARKs)
The following provider implementations are either supported or are being considered at this time:
Name
Provider
Supported?
Resources
Gnark
gnark
Yes
Docs | GitHub

Circuit Provider Interface

1
// CircuitProvider provides a common interface to interact with zero-knowledge circuits
2
type ZKCircuitProvider interface {
3
Compile(argv ...interface{}) (interface{}, error)
4
ComputeWitness(artifacts map[string]interface{}, argv ...interface{}) (interface{}, error)
5
ExportVerifier(verifyingKey string) (interface{}, error)
6
Prove(circuit, provingKey []byte, witness string) (interface{}, error)
7
Setup(circuit interface{}) (interface{}, interface{})
8
Verify(proof, verifyingKey []byte, witness string) error
9
}
Copied!
Note that not all of the above interface methods will be implemented by every provider.
Last modified 1mo ago