aboutsummaryrefslogtreecommitdiffstats
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
parentd927c67f9d77d036e48b27e81056bbddcc5297c5 (diff)
downloaddexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.tar
dexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.tar.gz
dexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.tar.bz2
dexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.tar.lz
dexon-80c6dfc19fdb714912349a18174c4ebf70c775e4.tar.xz
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.
-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),
}