aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/bn256
diff options
context:
space:
mode:
authorMatthew Di Ferrante <mattdf@users.noreply.github.com>2017-12-01 20:03:39 +0800
committerFelix Lange <fjl@users.noreply.github.com>2017-12-01 20:03:39 +0800
commit80c6dfc19fdb714912349a18174c4ebf70c775e4 (patch)
tree1f3bb83cd985fc48363b6ec4665b23c242035d18 /crypto/bn256
parentd927c67f9d77d036e48b27e81056bbddcc5297c5 (diff)
downloaddexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.tar.gz
dexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.tar.zst
dexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.zip
crypto/bn256: fix generator on G1 (#15591)
Generator in the current lib uses -2 as the y point when doing ScalarBaseMult, this makes it so that points/signatures generated from libs like py_ecc don't match/validate as pretty much all other libs (including libsnark) have (1, 2) as the standard generator. This does not affect consensus as the generator is never used in the VM, points are always explicitly defined and there is not ScalarBaseMult op - it only makes it so that doing "import github.com/ethereum/go-ethereum/crypto/bn256" doesn't generate bad points in userland tools.
Diffstat (limited to 'crypto/bn256')
-rw-r--r--crypto/bn256/curve.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/bn256/curve.go b/crypto/bn256/curve.go
index 233b1f252..3e679fdc7 100644
--- a/crypto/bn256/curve.go
+++ b/crypto/bn256/curve.go
@@ -20,7 +20,7 @@ var curveB = new(big.Int).SetInt64(3)
// curveGen is the generator of G₁.
var curveGen = &curvePoint{
new(big.Int).SetInt64(1),
- new(big.Int).SetInt64(-2),
+ new(big.Int).SetInt64(2),
new(big.Int).SetInt64(1),
new(big.Int).SetInt64(1),
}