From 2388e425f236d16daaa1d206a35e0ca8be2f89bc Mon Sep 17 00:00:00 2001
From: Antoine Rondelet <rondelet.antoine@gmail.com>
Date: Tue, 28 May 2019 07:13:30 +0100
Subject: [PATCH] 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
---
 crypto/bn256/cloudflare/constants.go | 5 ++++-
 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
 }
-- 
GitLab