Secp256k1
是一条特定的椭圆曲线。其中 Sec
是 Standards for Efficient Cryptography
的缩写, p
是素数 prime
的缩写, 256
表示素数是 256 位, k
表示 Koblitz
曲线的缩写, 1
表示是第一个具有这些特征的曲线。其他类似的还有 secp256r1
、secp384r1
、secp521r1
等。
在 Secp256k1
椭圆曲线方程中 , 方程式为 。实数域上的曲线图如下:
其中
转换为16进制为:
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
基点 G
的坐标
Gx = 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798
Gy = 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
基点 G
的阶 n
n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
从 [1, n-1]
中选择一个随机数 k
作为私钥,公钥 H = k * G
比特币的私钥和公钥基于 Secp256k1
椭圆曲线生成, 包括签名数据也是基于 Secp256k1
椭圆曲线。