Overview
A curve of special interest is the Koblitz curve secp256k1 that is used in the Bitcoin ECDSA signature scheme. secp256k1 is a Certicom curve that‘s recommended by the Standards for Efficient Cryptography Group (SECG)Certicom Research. Standards for efficient cryptography, SEC 2: Recommended elliptic curve domain parameters, January 2010. Version 2.0.. The curve is defined over a prime field Fp, where
p=2256−232−29−28−27−26−24−1
is a generalized Mersenne prime number. The curve equation is given in the short Weierstrass form y2=x3+Ax+B, where A=0 and B=7; therefore, the curve has j-invariant j=0 by this corollary
:Elliptic_curves_corollary
. The curve has 256-bit prime order
#E(Fp)=2256−2129−1
thus, E(Fp) is cyclic by this corollary
:cyclicGrp_Corollary_3
, and hence every point except O has order n and thus is a generator of E(Fp). However, the standard explicitly defines a base point P by
P=0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
in the compressed form, having cofactor h=01. According to Bjoernsen (2015)Kristian Bjoernsen. Koblitz Curves and its Practical Uses in Bitcoin Security. 2015. Available online at http://koclab.cs.ucsb.edu/teaching/ecc/project/2015Projects/ Bjoernsen.pdf., there’s a lack of transparency regarding the choice of this specific base point since the SECG chair Dan Brown couldn’t give a sufficient explanation about the choice of the base point.