参数(SEC 2 §2.4.1):p = 2²⁵⁶ − 2³² − 977,a = 0,b = 7,余因子为 1,群的阶略小于 2²⁵⁶。这种特殊结构带来一个可高效计算的自同态(GLV),能加快标量乘法。标识符:OID 1.3.132.0.10;JOSE 中 crv 为 secp256k1,alg 为 ES256K(RFC 8812);COSE 中为 −47。TLS 1.3、WebCrypto、Apple 的 Secure Enclave 以及大多数 HSM 的默认配置都不提供这条曲线。
NIST SP 800-186 附录 H.2 允许将 secp256k1 用于“与区块链相关的应用”。比特币的 ECDSA 签名和 BIP-340 Schnorr 签名、以太坊交易、personal_sign 和 EIP-712 签名(65 字节,含恢复字节 v)以及 Nostr 事件都使用这条曲线。
通用库在这条曲线上很慢:在同一个 Apple M4 Max 核心上,搭配 OpenSSL 3.6.5 的 Node.js 26 每秒约可签名 6,500 条 secp256k1 消息,而 P-256 约为 68,800 条,原因是 OpenSSL 没有针对 secp256k1 优化的代码。应使用 libsecp256k1(Bitcoin Core 的常量时间库)或 @noble/curves,后者以纯 JavaScript 实现,运行 secp256k1 的速度与它自己的 P-256 相当。low-S 和公钥恢复等区块链惯例与通用 ECDSA 不同;参见与 P-256 的对比。