椭圆曲线数字签名算法(ECDSA)
- ECDSA 可以看作一个只能被秘密`e`的拥有者“破坏”的承诺概形。
- R 点:
- 随机点 (盲化blinding).
- R 点的 x-坐标在等式左&右边的都有被表现。
- 只对于秘密 e等式才能达到平衡。
- 已签名的消息 z:
- ECDSA 验证:
- 需要 z, r_x, s 和公钥 P 来验证签名。
DER 编码
- libsecp256k1 代替 OpenSSL
- OpenSSL 的问题在于不同系统间编码可能不同。
- libsecp256k1 解决了这个系统依赖性的问题。
- 严格的编码 (BIP66)
- 移除了编码的可变性:共识层强制执行的编码标准。
- 移除了 ECDSA 的可变性:强制使用较小的 s 的值。
- DER 签名大小为 70-72 字节。
- r_x 的长度: 32/33 字节
- s 的长度: 31/32 字节