比特币扩容方案SegWit与Taproot深度解析

一文读懂比特币原生扩容方案SegWit和Taproot

比特币作为首个区块链,备受推崇,但其每秒交易量低和编程能力有限,常常被人诟病。这些问题阻碍了比特币大规模应用的发展。本文将带你深入了解比特币扩容方案的历史、现状和未来展望。

今天,本站小编将与大家分享比特币可扩展性系列文章的第一篇,聚焦于比特币主网上实现的原生扩容解决方案。下一篇将探讨链下扩容方案,请继续关注。

增加区块大小限制

2010年,中本聪在bitcoin-core中设定了1MB的区块大小限制,这一限制在之后的十多年里未曾改变。奇怪的是,中本聪并没有公开说明设定这一限制的理由,这只是在代码合并请求中悄然出现的。随着时间推移,社区对于区块大小限制的讨论变得激烈,因为更大的区块可以容纳更多交易,理论上可以提高每秒交易量(TPS)。

然而,TPS对于实现比特币的“点对点电子现金系统”愿景至关重要,因为在1MB的限制下,每秒只能处理3-7笔交易,这显然不足以支持大规模应用。更大的区块虽然能提高TPS,但也带来了新的挑战。首先,全节点的运行成本会增加,因为更大的区块需要更多的存储、计算和带宽资源。其次,区块越大,同步时间越长,孤块的风险增加,区块重组和分叉的可能性也随之提高,影响了网络的安全性。

这些问题引发了Vitalik提出的区块链不可能三角理论,即区块链无法同时实现去中心化、可扩展性和安全性。更大的区块虽然提升了可扩展性,但牺牲了去中心化和安全性。更糟糕的是,修改区块大小限制需要进行硬分叉,这需要全网节点同时升级,否则会导致网络分裂。这种情况对依赖去中心化共识的比特币来说是不可接受的。最终,尽管社区内部存在分歧,一些矿工和开发者还是尝试通过硬分叉增加区块大小限制,导致了网络分裂。2016年,Bitcoin Classic通过BIP 109将区块大小限制提高到2MB;同年,Bitcoin XT通过BIP 101将其提高到8MB。但绝大多数矿工和用户选择留在了我们现在所知的比特币主网上。

隔离见证

如果硬分叉不可行,那么软分叉是否能成为解决方案?SegWit就是这样一种尝试。见证是解锁UTXO的凭证,之前一直放在UTXO的输入脚本字段中,但这种方式存在诸如循环依赖和交易延展性等问题。早在2011年,开发者就注意到这个问题,并提出了隔离见证(SegWit)的解决方案,将见证数据与其他交易数据分开存储。但直到2015年,SegWit才通过软分叉得以实现。

SegWit通过软分叉实现了向后兼容:新版本节点可以识别并接受旧版本节点生成的区块和交易,而旧版本节点虽然无法识别新规则和特性,但仍将新版本产生的区块视为有效。SegWit允许新交易使用空输入脚本,并在区块结构中添加见证字段来存储见证数据。由于旧版本的比特币核心支持空输入脚本,因此不会拒绝新版本生成的区块。通过使用版本字段,旧的交易类型仍可使用,且节点会根据版本以不同的方式处理它们。

SegWit通过权重形式扩展了区块容量,见证数据的权重为1,其他数据的权重为4,从而限制每个区块的最大权重为400万。由于见证数据仅用于验证,不需要长期存储,因此其成本较低,权重也较低。这实际上提高了区块大小限制,理论上区块大小上限提升至4MB(完全归功于见证数据),平均下来区块可以达到2MB左右。从旧区块结构来看,这依然遵循了中本聪当初设定的每个区块不超过1MB的限制。

Taproot

利用比特币的操作码如OP_IF,可以为花费脚本设置复杂条件,如时间锁和多重签名等。然而,复杂的花费条件会增加区块负载,降低交易速度,并暴露支付条件,导致隐私泄露。Taproot通过引入MAST(Merkleized Abstract Syntax Trees)和Schnorr签名来解决这些问题。用户使用Merkle Trie来表示花费条件,每个叶节点代表一个花费脚本,花费时只需提供实际执行的脚本和相应的Merkle Path,而无需透露其他条件。这不仅减少了区块空间消耗,还提高了隐私性。

Taproot升级还引入了Schnorr签名,这种签名具有加法同态特性,允许签名聚合和批量验证,从而提高TPS。Schnorr签名通过聚合签名简化了验证多重签名交易的逻辑,减少了对链上空间的使用。通过将Schnorr签名与MAST结合,并使用支付到合约(P2C)概念,通过MAST根提交复杂的合约代码,调整并生成支持单一Schnorr签名支付的标准比特币公钥。由于Schnorr签名的单个和多个签名在链上看起来相同,因此复杂脚本、多重签名和单次签名的逻辑无法区分,进一步增强了隐私性。

结论

比特币的可扩展性解决方案展示了其在提升性能的同时,如何保持去中心化和安全性的努力。最初,尝试通过增加区块大小来直接解决低交易率的问题,但这引发了节点成本和网络分叉的挑战。SegWit通过软分叉优化了区块容量,确保了向后兼容性并避免了硬分叉带来的网络分裂。Taproot则通过MAST和Schnorr签名进一步提升了可扩展性和隐私性,减少了交易空间并提高了验证效率。更重要的是,Taproot为比特币提供了复杂脚本编程的能力,为未来的扩展铺平了道路。

这些发展表明,比特币在谨慎而创新地向更具可扩展性和更强大的网络迈进,这对其作为全球支付系统的未来至关重要。然而,这些扩容方案的影响仍不足以完全实现“点对点电子现金系统”的愿景。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

相关文章