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 椭圆曲线。