Skip to content

Commit 70133f1

Browse files
authored
Merge pull request #386 from ConsenSys/perf/kzg-verify
Perf: KZG verification in a single point
2 parents ed3709c + 323483e commit 70133f1

File tree

10 files changed

+90
-179
lines changed

10 files changed

+90
-179
lines changed

ecc/bls12-377/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bls12-378/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bls12-381/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bls24-315/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bls24-317/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bn254/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bw6-633/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bw6-756/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecc/bw6-761/fr/kzg/kzg.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/generator/kzg/template/kzg.go.tmpl

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -177,28 +177,20 @@ func Verify(commitment *Digest, proof *OpeningProof, point fr.Element, vk Verify
177177
var negH {{ .CurvePackage }}.G1Affine
178178
negH.Neg(&proof.H)
179179

180-
// [α-a]G₂
181-
var alphaMinusaG2Jac, genG2Jac, alphaG2Jac {{ .CurvePackage }}.G2Jac
180+
// [f(α) - f(a) + a*H(α)]G₁
181+
var totalG1 {{ .CurvePackage }}.G1Jac
182182
var pointBigInt big.Int
183183
point.BigInt(&pointBigInt)
184-
genG2Jac.FromAffine(&vk.G2[0])
185-
alphaG2Jac.FromAffine(&vk.G2[1])
186-
alphaMinusaG2Jac.ScalarMultiplication(&genG2Jac, &pointBigInt).
187-
Neg(&alphaMinusaG2Jac).
188-
AddAssign(&alphaG2Jac)
184+
totalG1.ScalarMultiplicationAffine(&proof.H, &pointBigInt)
185+
totalG1.AddAssign(&fminusfaG1Jac)
186+
var totalG1Aff {{ .CurvePackage }}.G1Affine
187+
totalG1Aff.FromJacobian(&totalG1)
189188

190-
// [α-a]G₂
191-
var xminusaG2Aff {{ .CurvePackage }}.G2Affine
192-
xminusaG2Aff.FromJacobian(&alphaMinusaG2Jac)
193189

194-
// [f(α) - f(a)]G₁
195-
var fminusfaG1Aff {{ .CurvePackage }}.G1Affine
196-
fminusfaG1Aff.FromJacobian(&fminusfaG1Jac)
197-
198-
// e([f(α) - f(a)]G₁, G₂).e([-H(α)]G₁, [α-a]G₂) ==? 1
190+
// e([f(α)-f(a)+aH(α)]G₁], G₂).e([-H(α)]G₁, [α]G₂) == 1
199191
check, err := {{ .CurvePackage }}.PairingCheck(
200-
[]{{ .CurvePackage }}.G1Affine{fminusfaG1Aff, negH},
201-
[]{{ .CurvePackage }}.G2Affine{vk.G2[0], xminusaG2Aff},
192+
[]{{ .CurvePackage }}.G1Affine{totalG1Aff, negH},
193+
[]{{ .CurvePackage }}.G2Affine{vk.G2[0], vk.G2[1]},
202194
)
203195
if err != nil {
204196
return err

0 commit comments

Comments
 (0)