setup

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2024 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Overview

package setup contains trusted parameters for the supported curves and functions to set up zkp protocols with them.

Source of the trusted parameters ==================================================================================================== To secure the plonk protocol we need shared securities parameters between Prover and Verifier. The creation of these parameters requires a "trusted setup" procedure, so called because it is critical to run the procedure correctly to ensure the security of proof verifications.

To make the risk of a dishonest setup statistically insignificant, a distributed, permissionless, setup ceremony, open to everyone, can be run. The ceremony guarantees security as long as at least one participant is honest. In fact, all the participants would need to collude together to act maliciously. In addition, the software used to run the procedure must be audited carefully, to avoid bugs.

For the bls12-381 curve, the largest distributed ceremony has been run by the Ethereum Foundation to implement Proto-danksharding (EIP-4844), with over 140,000 participants and rigorous auditing. AlgoPlonk uses these parameters to secure BLS12-381 proof systems which can support circuits up to 2^14 (16,384) constraints.

Learn more about the ceremony here: https://ceremony.ethereum.org/ https://github.com/ethereum/kzg-ceremony

For the bn254 curve, AlgoPlonk includes the parameters from the battle tested perpetual “powers-of-tau” ceremony used by projects such as Semaphore, Hermez, Torndado Cash and snarkjs. The parameters included in AlgoPlonk support circuits up to 2^17 (128k) constraints, but the ceremony provided parameters that can support up to 2^27 (128M) constraints which could be added.

Learn more about the ceremony here: https://github.com/privacy-scaling-explorations/perpetualpowersoftau

To audit the trusted parameters used in this library and verify they match the original source, refer to the doc.go file in the bls12-381 and bn254 subfolders.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Run

Run sets up a plonk system using either a trusted or test only setup, as specified by the setup parameter.

Types

type Conf

type Conf int

Conf specified what setup to run, either trusted as per doc.go or a test only setup not suitable for production.

const (
	Trusted Conf = iota
	TestOnly
)

Directories

Path Synopsis
package main contains the trusted parameters for the bls12_381 curve as described in the doc.go file in the setup package (parent folder).
package main contains the trusted parameters for the bls12_381 curve as described in the doc.go file in the setup package (parent folder).
package main contains the trusted parameters for the bn254 curve as described in the doc.go file in the setup package (parent folder).
package main contains the trusted parameters for the bn254 curve as described in the doc.go file in the setup package (parent folder).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL