gnark package - github.com/consensys/gnark - Go Packages (original) (raw)

Path

Synopsis

Package backend implements Zero Knowledge Proof systems: it consumes circuit compiled with gnark/frontend.

Package backend implements Zero Knowledge Proof systems: it consumes circuit compiled with gnark/frontend.

groth16

Package groth16 implements Groth16 Zero Knowledge Proof system (aka zkSNARK).

Package groth16 implements Groth16 Zero Knowledge Proof system (aka zkSNARK).

Package icicle_bn254 implements ICICLE acceleration for BN254 Groth16 backend.

plonk

Package plonk implements PLONK Zero Knowledge Proof system.

Package plonk implements PLONK Zero Knowledge Proof system.

witness

Package witness provides serialization helpers to encode a witness into a []byte.

Package witness provides serialization helpers to encode a witness into a []byte.

Package constraint provides constructs needed to build and use a constraint system.

Package constraint provides constructs needed to build and use a constraint system.

Package gkrgates contains the registry of GKR gates.

Package examples provides various example circuits.

Package examples provides various example circuits.

inputpacking

Package inputpacking illustrates input packing for reducing public input.

Package inputpacking illustrates input packing for reducing public input.

pubkeyhashing

Package pubkeyhashing implements a simple example of ECDSA public key hashing using SHA2.

Package pubkeyhashing implements a simple example of ECDSA public key hashing using SHA2.

sudoku

Package sudoku implements a Sudoku circuit using gnark.

Package sudoku implements a Sudoku circuit using gnark.

witness

Package witness provides an example of witness export as vector.

Package witness provides an example of witness export as vector.

schema/internal/reflectwalk

reflectwalk is a package that allows you to "walk" complex structures similar to how you may "walk" a filesystem: visiting every element one by one and calling callback functions allowing you to handle and manipulate those elements.

reflectwalk is a package that allows you to "walk" complex structures similar to how you may "walk" a filesystem: visiting every element one by one and calling callback functions allowing you to handle and manipulate those elements.

Package circuits contains test circuits

frontendtype

Package frontendtype allows to assert frontend type.

Package frontendtype allows to assert frontend type.

gkr/gkrinfo

Package gkrinfo contains serializable information capable of being saved in a SNARK circuit CS object.

Package gkrinfo contains serializable information capable of being saved in a SNARK circuit CS object.

kvstore

Package kvstore implements simple key-value store

Package kvstore implements simple key-value store

regression_tests

Package regressiontests includes tests to avoid re-introducing regressions.

Package regressiontests includes tests to avoid re-introducing regressions.

Package polynomial provides polynomial methods and commitment schemes.

Package tinyfield contains field arithmetic operations for modulus = 0x2f.

widecommitter

package widecommitter provides mocked implementation of the widecommitter interface

package widecommitter provides mocked implementation of the widecommitter interface

Package io offers serialization interfaces for gnark objects.

Package io offers serialization interfaces for gnark objects.

Package logger provides a configurable logger across gnark components

Package logger provides a configurable logger across gnark components

Package profile provides a simple way to generate pprof compatible gnark circuit profile.

Package profile provides a simple way to generate pprof compatible gnark circuit profile.

internal/graph

Package graph collects a set of samples into a directed graph.

Package graph collects a set of samples into a directed graph.

internal/measurement

Package measurement export utility functions to manipulate/format performance profile sample values.

Package measurement export utility functions to manipulate/format performance profile sample values.

internal/report

Package report summarizes a performance profile into a human-readable report.

Package report summarizes a performance profile into a human-readable report.

Package std provides components or functions to help design gnark circuits.

Package std provides components or functions to help design gnark circuits.

accumulator/merkle

Package merkle provides a ZKP-circuit function to verify merkle proofs.

Package merkle provides a ZKP-circuit function to verify merkle proofs.

algebra

Package algebra implements:

Package algebra implements:

algebra/algopts

Package algopts provides shareable options for modifying algebraic operations.

Package algopts provides shareable options for modifying algebraic operations.

algebra/emulated/fields_bls12381

Package fields_bls12381 implements the fields arithmetic of the direct 𝔽p¹² extension used to compute the pairing over the BLS12-381 curve.

Package fields_bls12381 implements the fields arithmetic of the direct 𝔽p¹² extension used to compute the pairing over the BLS12-381 curve.

algebra/emulated/fields_bn254

Package fields_bn254 implements the fields arithmetic of the direct 𝔽p¹² extension used to compute the pairing over the BN254 curve.

Package fields_bn254 implements the fields arithmetic of the direct 𝔽p¹² extension used to compute the pairing over the BN254 curve.

algebra/emulated/fields_bw6761

Package fields_bw6761 implements the fields arithmetic of the Fp6 tower used to compute the pairing over the BW6-761 curve.

Package fields_bw6761 implements the fields arithmetic of the Fp6 tower used to compute the pairing over the BW6-761 curve.

Package sw_bls12381 implements G1 and G2 arithmetics and pairing computation over BLS12-381 curve.

Package sw_bn254 implements G1 and G2 arithmetics and pairing computation over BN254 curve.

Package sw_bw6761 implements G1 and G2 arithmetics and pairing computation over BW6-761 curve.

Package sw_emulated implements elliptic curve group operations in (short) Weierstrass form.

algebra/native/fields_bls12377

Package fields_bls12377 implements the fields arithmetic of the Fp12 tower used to compute the pairing over the BLS12-377 curve.

Package fields_bls12377 implements the fields arithmetic of the Fp12 tower used to compute the pairing over the BLS12-377 curve.

algebra/native/fields_bls24315

Package fields_bls24315 implements the fields arithmetic of the Fp24 tower used to compute the pairing over the BLS24-315 curve.

Package fields_bls24315 implements the fields arithmetic of the Fp24 tower used to compute the pairing over the BLS24-315 curve.

algebra/native/sw_bls12377

Package sw_bls12377 implements the arithmetics of G1, G2 and the pairing computation on BLS12-377 as a SNARK circuit over BW6-761.

Package sw_bls12377 implements the arithmetics of G1, G2 and the pairing computation on BLS12-377 as a SNARK circuit over BW6-761.

algebra/native/sw_bls24315

Package sw_bls24315 implements the arithmetics of G1, G2 and the pairing computation on BLS24-315 as a SNARK circuit over BW6-633.

Package sw_bls24315 implements the arithmetics of G1, G2 and the pairing computation on BLS24-315 as a SNARK circuit over BW6-633.

Package twistededwards implements the arithmetic of twisted Edwards curves in native fields.

commitments/kzg

Package kzg implements KZG polynomial commitment verification.

Package kzg implements KZG polynomial commitment verification.

Package pedersen implements the Pedersen vector commitment scheme verifier.

conversion

Package conversion provides methods for converting between different primitive types.

Package conversion provides methods for converting between different primitive types.

evmprecompiles

Package evmprecompiles implements the Ethereum VM precompile contracts.

Package evmprecompiles implements the Ethereum VM precompile contracts.

hash

Package hash provides an interface that hash functions (as gadget) should implement.

Package hash provides an interface that hash functions (as gadget) should implement.

hash/mimc

Package mimc provides a ZKP-circuit function to compute a MiMC hash.

Package mimc provides a ZKP-circuit function to compute a MiMC hash.

hash/ripemd160

Package ripemd160 implements in-circuit ripemd160 hash function.

Package ripemd160 implements in-circuit ripemd160 hash function.

hash/sha2

Package sha2 implements SHA2 hash computation.

Package sha2 implements SHA2 hash computation.

hash/sha3

Package sha3 provides ZKP circuits for SHA3 hash algorithms applying sponge construction over Keccak f-[1600] permutation function.

Package sha3 provides ZKP circuits for SHA3 hash algorithms applying sponge construction over Keccak f-[1600] permutation function.

Package logderivarg implements log-derivative argument.

Package logderivprecomp allows computing functions using precomputation.

internal/mimc

Package mimc implements the MiMC hash function as a gnark circuit

Package mimc implements the MiMC hash function as a gnark circuit

Package logderiv implements append-only lookups using log-derivative argument.

Package bitslice allows partitioning variables.

math/cmp

Package cmp provides methods and functions for comparing two numbers.

Package cmp provides methods and functions for comparing two numbers.

math/emulated

Package emulated implements operations over any modulus.

Package emulated implements operations over any modulus.

Package emparams contains emulation parameters for well known fields.

math/fieldextension

Package fieldextension provides operations over an extension field of the native field.

Package fieldextension provides operations over an extension field of the native field.

Package polynomial provides field-agnostic polynomials.

math/uints

Package uints implements optimised byte and long integer operations.

Package uints implements optimised byte and long integer operations.

multicommit

Package multicommit implements commitment expansion.

Package multicommit implements commitment expansion.

Package keccakf implements the KeccakF-1600 permutation function.

Package ripemd160 implements the permutation used in the ripemd160 hash function.

rangecheck

Package rangecheck implements range checking gadget

Package rangecheck implements range checking gadget

recursion

Package recursion provides in-circuit verifiers for different proofs systems.

Package recursion provides in-circuit verifiers for different proofs systems.

Package groth16 provides in-circuit Groth16 verifier.

Package plonk implements in-circuit PLONK verifier.

Package sumcheck implements non-native sumcheck verifier.

selector

Package selector provides a lookup table and map, based on linear scan.

Package selector provides a lookup table and map, based on linear scan.

signature/ecdsa

Package ecdsa implements ECDSA signature verification over any elliptic curve.

Package ecdsa implements ECDSA signature verification over any elliptic curve.

signature/eddsa

Package eddsa implements EdDSA signature verification over twisted Edwards elliptic curves available in gnark and gnark-crypto.

Package eddsa implements EdDSA signature verification over twisted Edwards elliptic curves available in gnark and gnark-crypto.

Package test provides components or functions to help test and fuzz gnark circuits.

Package test provides components or functions to help test and fuzz gnark circuits.

unsafekzg

Package unsafekzg is a convenience package (to be use for test purposes only) to generate and cache SRS for the kzg scheme (and indirectly for PlonK setup).

Package unsafekzg is a convenience package (to be use for test purposes only) to generate and cache SRS for the kzg scheme (and indirectly for PlonK setup).