You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

36 lines
718 B

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)
}