Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Settings ¶
type Settings struct { Keccak keccak.Settings Statemanager statemanager.Settings Arithmetization arithmetization.Settings Ecdsa ecdsa.Settings Modexp modexp.Settings Ecadd, Ecmul ecarith.Limits Ecpair ecpair.Limits Sha2 sha2.Settings PublicInput publicInput.Settings CompilationSuite compilationSuite Metadata wizard.VersionMetadata }
List the options set to initialize the zkEVM
type Witness ¶
type Witness struct { // ExecTracesFPath is the filepath toward the execution traces to use for // proof trace generation. ExecTracesFPath string // StateManager traces SMTraces [][]statemanager.DecodedTrace // TxSignatures lists the signatures of the transaction as found // chronologically in the block. TxSignatures []ethereum.Signature // TxHashes lists the hash of the transactions in the order found in the // block. TxHashes [][32]byte L2BridgeAddress common.Address ChainID uint }
Witness is a collection of prover inputs used to derive an assignment to the full proving scheme.
type ZkEvm ¶
type ZkEvm struct { // PublicInput gives access to the public inputs of the wizard-IOP and is // used to access them to define the outer-circuit. PublicInput *publicInput.PublicInput // Contains the actual wizard-IOP compiled object. This object is called to // generate the inner-proof. WizardIOP *wizard.CompiledIOP // contains filtered or unexported fields }
ZkEvm defines the wizard responsible for proving execution of the zk
func CheckerZkEvm ¶
func CheckerZkEvm(tl *config.TracesLimits) *ZkEvm
The checker is not meant to generate proofs, it is meant to be used to check that the provided prover inputs are correct. It typically is used to audit the traces of the arithmetization. Currently, it does not include the keccaks nor does it include the state-management checks.
func FullZkEVMCheckOnly ¶
func FullZkEVMCheckOnly(tl *config.TracesLimits) *ZkEvm
func FullZkEvm ¶
func FullZkEvm(tl *config.TracesLimits) *ZkEvm
FullZkEvm compiles the full prover zkEVM. It memoizes the results and returns it for all the subsequent calls. That is, it should not be called twice with different configuration parameters as it will always return the instance compiled with the parameters it received the first time. This behavior is motivated by the fact that the compilation process takes time and we don't want to spend the compilation time twice, plus in practice we won't need to call it with different configuration parameters.
func NewZkEVM ¶
NewZkEVM instantiates a new ZkEvm instance. The function returns a fully initialized and compiled zkEVM object tuned with the caller's parameters and the input compilation suite.
The function can take a bit of time to complete. It will populate the zkEVM struct and needs to be called before running the prover of the inner-proof.
func PartialZkEvm ¶
func PartialZkEvm(tl *config.TracesLimits) *ZkEvm
Returns the zkEVM objects corresponding to the light zkEVM prover. Namely, it will generate a proof checking only a small portion of the requested computation it is meant primarily for testing and integration testing purpose. When called for the first time, it will compile the corresponding light zkEVM using the config option. The next times it is called, it will ignore the configuration options and directly return the previously compiled object. It therefore means that it should not be called twice with different config options.
func (*ZkEvm) Limits ¶
func (z *ZkEvm) Limits() *config.TracesLimits
Limits returns the configuration limits used to instantiate the current zk-EVM.
func (*ZkEvm) ProveInner ¶
Prove assigns and runs the inner-prover of the zkEVM and then, it returns the inner-proof
Directories ¶
Path | Synopsis |
---|---|
prover
|
|
ecarith
Package ecarith provides the integrations of the EC_MUL and EC_ADD precompile calls.
|
Package ecarith provides the integrations of the EC_MUL and EC_ADD precompile calls. |
hash/keccak
The keccak package implements the utilities for proving the hash over a single provider.
|
The keccak package implements the utilities for proving the hash over a single provider. |
hash/keccak/acc_module
The accumulator package is responsible for accumulating the data from different arithmetization module.
|
The accumulator package is responsible for accumulating the data from different arithmetization module. |
hash/keccak/keccakf
The keccakf package implements to keccakf module.
|
The keccakf package implements to keccakf module. |
hash/packing
Packing package implements the utilities for Packing the limbs of variable length to the lanes of fixed length.
|
Packing package implements the utilities for Packing the limbs of variable length to the lanes of fixed length. |
hash/sha2
The sha2 package provides all the necessary tools to verify the calls to the sha2 precompiles in the Linea's zkevm.
|
The sha2 package provides all the necessary tools to verify the calls to the sha2 precompiles in the Linea's zkevm. |