跳到主要内容
ecdsa.com

BIP-340(secp256k1 上的 Schnorr 签名)

比特币规范,定义基于 secp256k1 的 64 字节 Schnorr 签名,采用 32 字节的仅 x 坐标公钥和标签哈希,用于 Taproot 和 Nostr。
其他写法BIP-340BIP340Schnorr signatures secp256k1x-only public key

公钥只编码 x 坐标,隐含 y 为偶数的点,从而节省一个字节。挑战值为 e = tagged_hash("BIP0340/challenge", R.x ‖ P.x ‖ m),签名为 R.x ‖ s;标签哈希 SHA256(SHA256(tag) ‖ SHA256(tag) ‖ data) 用于区分哈希的不同用途。推荐的签名流程会在派生 nonce 时混入 32 字节的辅助随机数,而且验证规则很严格,因此签名不具有延展性。

线性特性使密钥聚合(MuSig2,BIP-327)和门限方案(FROST)成为可能,批量验证还能加快区块验证。BIP-340 的消息为 32 字节;任意长度的消息由后来修订的 BIP-340 以及先做哈希的协议来处理(Nostr 对 32 字节的事件 ID 签名)。

标准与参考资料

全部术语