Crate sunscreen_zkp_backend
source ·Expand description
This crate contains ZKP backends for use with the Sunscreen compiler and runtime.
Modules
- Types for working with Bulletproofs as the ZKP backend.
Structs
- A large integer representing a backend-agnostic field element.
- Stack-allocated big unsigned integer.
Enums
- An error in a ZKP backend.
- An operation in Sunscreen’s intermediate representation programs before JIT compilation.
- An R1CS proof.
Traits
- Indicates the given type is a field used used in a ZKP backend. E.g. Bulletproofs uses Ristretto
Scalar
values. - In ZKP circuits, it’s often simpler for the prover to provide additional inputs and prove they meet some criteria than to directly compute some quantity. However, something must compute these additional inputs. Rather than delegate this responsibility to the prover’s application, we use
Gadget
s. - The methods needed for a type to serve as a proof system in the Sunscreen ecosystem.
- See
std::convert::From
. This trait exists to avoid limitations with foreign trait rules. - See
std::convert::Into
. This trait exists to avoid limitations with foreign trait rules.
Functions
- Just in time compile a
CompiledZkpProgram
into anExecutableZkpProgram
for creating proofs. - Just in time compile a
CompiledZkpProgram
into anExecutableZkpProgram
for verifying proofs.
Type Aliases
- A ZKP program that has been through frontend compilation, but not yet JIT’d.
- A ZKP program that has been JIT’d and is ready for use in a ZKP backend.
- See
std::result::Result
.