ECDSA签名

很不幸对于比特币和许多其他应用的未来发展,克劳斯·施纳尔申请了他发现的算法的专利,并阻止了它在开放标准和开源软件中的使用近20年。在1990年代初被禁止使用施纳尔签名方案的密码学家们开发了一种另一种构造,称为数字签名算法(DSA),其中包括一种适用于椭圆曲线的版本,称为ECDSA。

ECDSA方案以及建议曲线的标准参数在比特币开发于2007年之前已被广泛实现于加密库中。这几乎可以肯定是为什么ECDSA是比特币从首个发布版本直到2021年的taproot软分叉激活之前唯一支持的数字签名协议。ECDSA至今仍然支持所有非taproot交易。与施纳尔签名相比,一些不同之处包括:

更复杂

正如我们将看到的,ECDSA需要更多的操作来创建或验证签名,而不只是施纳尔签名协议。从实现的角度来看,它并没有显著的更复杂性,但这种额外的复杂性使ECDSA的灵活性更差、性能更差,而且更难以证明其安全性。

安全性难以证明

交互式施纳尔签名识别协议仅依赖于椭圆曲线离散对数问题(ECDLP)的强度。比特币中使用的非交互式身份验证协议还依赖于随机预言模型(ROM)。然而,ECDSA的额外复杂性阻碍了对其安全性的完整证明的发布(据我们所知)。我们不是加密算法的证明专家,但在30年之后,ECDSA可能只需要与施纳尔相同的两个假设来证明其安全性似乎不太可能。

非线性

ECDSA签名不能轻松地组合成无脚本多重签名,也不能用于相关的高级应用,比如多方签名适配器。虽然有针对这个问题的解决方法,但它们涉及额外的复杂性,会显著减慢操作速度,并且在某些情况下可能导致软件意外泄露私钥。

Last updated