Schnorr 签名的椭圆曲线实现,比 ECDSA 更简单、更高效。
Schnorr 签名算法本身 与具体的曲线无关 , 可以用于不同类型的椭圆曲线,并不限于椭圆曲线
支持 Ed25519, secp256k1, secp256r1...等椭圆曲线
不仅比传统的 ECDSA 更加简洁高效,而且支持 多重签名(例如,多个用户共同签署一份文件)。
可用于多重签名(MuSig, MuSig2),如 Bitcoin Taproot 采用 Schnorr 签名
签名和验签流程:
假设 A和B两个用户, A 签名信息 B验证信息
通信双方A和B, 已知信息有:
1. A 生成自己的公钥私钥
2. 在
3. 计算第2步的随机私钥对应的公钥,
4. 计算哈希得到 e,
5. 计算 "s",
6. 发送将 A 的公钥 HA, 消息 m, 签名数据(Rx, s) Rx 和 s , 发送给 B
1. 计算哈希值 e,
2. 验证签名
私钥: |
公钥: |
message(Hex): |
message输入类型: |
auxRand(辅助随机数) 0x |
Signature |
公钥: |
message: 0x |
Signature: 0x |