|
|
package proof
import ( "math/big"
"github.com/arnaucube/go-snark/bn128" "github.com/arnaucube/go-snark/circuit" "github.com/arnaucube/go-snark/fields" )
// Proof is ...
type Proof interface{}
// Setup is ...
type Setup interface { Z() []*big.Int Init(cir *circuit.Circuit, alphas, betas, gammas [][]*big.Int) error Generate(cir *circuit.Circuit, w []*big.Int, px []*big.Int) (Proof, error) Verify(p Proof, publicSignals []*big.Int) (bool, error) }
// Utils is ...
var Utils struct { Bn bn128.Bn128 FqR fields.Fq PF fields.PF }
func init() { var err error if Utils.Bn, err = bn128.NewBn128(); err != nil { panic(err) } Utils.FqR = fields.NewFq(Utils.Bn.R) Utils.PF = fields.NewPF(Utils.FqR) }
|