diff options
author | Matthew Di Ferrante <mattdf@users.noreply.github.com> | 2017-12-01 20:03:39 +0800 |
---|---|---|
committer | Felix Lange <fjl@users.noreply.github.com> | 2017-12-01 20:03:39 +0800 |
commit | 80c6dfc19fdb714912349a18174c4ebf70c775e4 (patch) | |
tree | 1f3bb83cd985fc48363b6ec4665b23c242035d18 /crypto/bn256 | |
parent | d927c67f9d77d036e48b27e81056bbddcc5297c5 (diff) | |
download | dexon-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.go | 2 |
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), } |