隔离见证的新签名算法
比特币交易中的签名是应用于承诺哈希上的,该哈希是从交易数据计算而来的,锁定了指示签署者对这些值的承诺的特定部分数据。例如,在简单的SIGHASH_ALL类型签名中,承诺哈希包括所有输入和输出。
不幸的是,遗留承诺哈希的计算方式引入了一种可能性,即验证签名的节点可能被迫执行大量的哈希计算。具体而言,哈希操作与交易中的输入数量呈大致二次方增长。因此,攻击者可以创建一个包含大量签名操作的交易,导致整个比特币网络必须执行数百甚至数千次的哈希操作来验证该交易。
隔离见证提供了解决这个问题的机会,方法是改变承诺哈希的计算方式。对于隔离见证版本0的见证程序,签名验证使用了BIP143规定的改进的承诺哈希算法。
新算法允许哈希操作的数量以更渐进的O(n)方式增加到签名操作的数量,减少了使用过于复杂交易创建拒绝服务攻击的机会。
在本章中,我们了解了比特币的Schnorr和ECDSA签名。这解释了完整节点如何验证交易,以确保只有控制比特币接收的密钥的人才能花费这些比特币。我们还研究了签名的几个高级应用,例如可以用于提高比特币效率和隐私的无脚本多签名和无脚本阈值签名。在过去的几章中,我们学会了如何创建交易,如何使用授权和认证来保护它们,并学会了如何对其进行签名。接下来,我们将学习如何通过向我们创建的交易添加费用来鼓励矿工确认它们。
Last updated