package gocircomprover
|
|
|
|
import (
|
|
"math/big"
|
|
|
|
bn256 "github.com/ethereum/go-ethereum/crypto/bn256/cloudflare"
|
|
)
|
|
|
|
type Proof struct {
|
|
A *bn256.G1
|
|
B *bn256.G2
|
|
C *bn256.G1
|
|
}
|
|
|
|
type ProvingKey struct {
|
|
A []*bn256.G1
|
|
B2 []*bn256.G2
|
|
B1 []*bn256.G1
|
|
C []*bn256.G1
|
|
NVars int
|
|
NPublic int
|
|
VkAlpha1 *bn256.G1
|
|
VkDelta1 *bn256.G1
|
|
VkBeta1 *bn256.G1
|
|
VkBeta2 *bn256.G2
|
|
VkDelta2 *bn256.G2
|
|
HExps []*bn256.G1
|
|
DomainSize int
|
|
PolsA []map[int]*big.Int
|
|
PolsB []map[int]*big.Int
|
|
PolsC []map[int]*big.Int
|
|
}
|
|
|
|
type Witness []*big.Int
|
|
|
|
var R, _ = new(big.Int).SetString("21888242871839275222246405745257275088548364400416034343698204186575808495617", 10)
|