diff options
author | Antoine Rondelet <rondelet.antoine@gmail.com> | 2019-05-28 14:13:30 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2019-05-28 14:13:30 +0800 |
commit | 2388e425f236d16daaa1d206a35e0ca8be2f89bc (patch) | |
tree | 5f3fcc0616453f4f0f7b19d210b40a9ed01ff72f | |
parent | 5429dc75bd15e5436221cc08891b6ef3c9d2378e (diff) | |
download | go-tangerine-2388e425f236d16daaa1d206a35e0ca8be2f89bc.tar go-tangerine-2388e425f236d16daaa1d206a35e0ca8be2f89bc.tar.gz go-tangerine-2388e425f236d16daaa1d206a35e0ca8be2f89bc.tar.bz2 go-tangerine-2388e425f236d16daaa1d206a35e0ca8be2f89bc.tar.lz go-tangerine-2388e425f236d16daaa1d206a35e0ca8be2f89bc.tar.xz go-tangerine-2388e425f236d16daaa1d206a35e0ca8be2f89bc.tar.zst go-tangerine-2388e425f236d16daaa1d206a35e0ca8be2f89bc.zip |
crypto/bn256/cloudflare: fix comments to describe the updated curve parameters (#19577)
* Removed comment section referring to Cloudflare's bn curve parameters
* Added comment to clarify the nature of the parameters
* Changed value of xi to i+9
-rw-r--r-- | crypto/bn256/cloudflare/constants.go | 5 | ||||
-rw-r--r-- | crypto/bn256/cloudflare/gfp6.go | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/crypto/bn256/cloudflare/constants.go b/crypto/bn256/cloudflare/constants.go index 5122aae64..f7d2c7c00 100644 --- a/crypto/bn256/cloudflare/constants.go +++ b/crypto/bn256/cloudflare/constants.go @@ -13,10 +13,13 @@ func bigFromBase10(s string) *big.Int { return n } -// u is the BN parameter that determines the prime: 1868033³. +// u is the BN parameter. var u = bigFromBase10("4965661367192848881") // Order is the number of elements in both G₁ and G₂: 36u⁴+36u³+18u²+6u+1. +// Needs to be highly 2-adic for efficient SNARK key and proof generation. +// Order - 1 = 2^28 * 3^2 * 13 * 29 * 983 * 11003 * 237073 * 405928799 * 1670836401704629 * 13818364434197438864469338081. +// Refer to https://eprint.iacr.org/2013/879.pdf and https://eprint.iacr.org/2013/507.pdf for more information on these parameters. var Order = bigFromBase10("21888242871839275222246405745257275088548364400416034343698204186575808495617") // P is a prime over which we form a basic field: 36u⁴+36u³+24u²+6u+1. diff --git a/crypto/bn256/cloudflare/gfp6.go b/crypto/bn256/cloudflare/gfp6.go index 83d61b781..a42734911 100644 --- a/crypto/bn256/cloudflare/gfp6.go +++ b/crypto/bn256/cloudflare/gfp6.go @@ -5,7 +5,7 @@ package bn256 // http://eprint.iacr.org/2006/471.pdf. // gfP6 implements the field of size p⁶ as a cubic extension of gfP2 where τ³=ξ -// and ξ=i+3. +// and ξ=i+9. type gfP6 struct { x, y, z gfP2 // value is xτ² + yτ + z } |