比特币可扩展性争论初学者指南
比特币可扩展性争论初学者指南
原文:https://medium.com/hackernoon/beginners-guide-to-bitcoin-s-scalability-debate-66060f3799e5
由凯文·胡恩和陈士骏

比特币,一种由中本聪在 2008 年发明的开创性加密货币,是同类技术进步中的第一个。今天,它的估值超过 500 亿美元,仍然是占主导地位的加密货币,一次又一次地证明了它对政府监管、禁令和黑客的弹性。更重要的是,比特币让“分布式账本技术成为一个新的研发领域。比特币给成功的远见者和企业家的心灵和思想带来的东西令人震惊。曾经的单一有机体现在在一个快速增长的秘密生态系统中繁荣发展。
然而,随着分散资产的愿景和采用的增加,比特币努力保持其技术领先地位:可扩展性是一个令人生畏的日益增长的痛苦。比特币网络的吞吐量最大值约为每秒三笔交易(TPS)——远低于当前主流支付系统的吞吐量。作为基准,比特币目前的吞吐量与 Visa 网络的约 2,000 TPS 相比相形见绌。在这篇文章中,我们从高层次上讨论了争论的关键领域——中本聪协议上的变量和创新,这些变量和创新可以灵活地改变比特币网络的性能。我们总结了隔离证人,闪电网络,协议调整,以及如何每一个单独的缺点。
隔离见证(SegWit)是对原始比特币协议的修改。理论上,它可以将比特币的吞吐量增加一倍,达到约 TPS。简而言之,SegWit 通过重新加权事务数据的签名来增加事务吞吐量,从而允许每个块中容纳更多的事务。(关于更多细节,这篇文章解释了如何做。)尽管任何改进都是受欢迎的,但对于比特币作为支付系统的主流使用来说,交易吞吐量的这一理论翻倍仍然太低。虽然一些人认为比特币只需要作为价值储存手段,并认为交易吞吐量不太重要,但许多利益相关者认为,要实现主流采用,必须有比今天更高的性能。全球黄金交易——最典型的价值储存手段——是否达到每秒不到 6 笔交易的峰值?仅仅依靠 SegWit 驱动的吞吐量改进仍然是不够的,即使对于储值来说也是如此。那么还能做些什么来改善这种情况呢?
当前的比特币传奇让区块链的另一项创新重新成为焦点:闪电网络。如果 SegWit 按预期激活,LN 可以在现有的比特币网络上实现,这要感谢 SegWit 解决了交易延展性的问题。简而言之,支付渠道是 LN 的基本组成部分,它允许用户“锁定”他们的比特币(为清晰起见:在底层协议上发生的交易被称为链上交易、第一层交易或“L1”),并与比特币网络外的选定方进行交易(也称为链外交易、第二层交易或“L2”)。LN 允许在支付通道的生命周期内发送许多交易,只需要两个交易,一个打开,一个关闭,从而允许小额交易。LN 是一个支付渠道网络,允许用户与网络上的任何人进行交易,即使直接支付渠道并不存在。LN 交易可以立即被视为最终交易,无需一次或多次大宗确认。LN 支付可以比链上支付快得多,因为它们不需要六个包含环节(事实上的标准是为链上交易加盖有效和安全的橡皮图章,通常需要一个或多个小时才能实现)。相反,LN 支付几乎是即时的,因为 LN 确认是从第一层之上挖掘的块中得出的。此外,第二层解决方案可能支持隐私 Tumblebit、国家频道等应用,以及比特币的更多创新机会。
根据设计,任何 LN 交易的规模都受到沿 LN 支付路线的最小支付通道的容量的限制。因此,LN 可以将小交易值用例从链上取下,以释放链上的带宽。这有什么用?考虑用加密货币购买消耗品的未来主义者体验:你会在链上支付并支付比你的咖啡还贵的费用,并在柜台等待包括你的交易在内的区块被开采吗?LN 可以克服这两个问题。然而,LN 本身并不能解决大型链上支付的可伸缩性问题,或者交易不使用或不能使用 LN 的用例。
另一个提高比特币链上可扩展性的建议是增加区块大小。这个想法表面上很简单:例如,将块大小从今天的 1 MB 增加到 8 MB,可以将事务吞吐量增加八倍。因此,我们能不能越来越大,然后一起快乐地奔向夕阳?
不幸的是,事情要比这复杂得多。增加块的大小会在一定程度上降低网络的安全性,这是因为有效的诚实散列功率会降低。为什么考虑到比特币协议的一个重要规则是,最长的链将总是被识别为主链,在此基础上构建连续的块。那么,在被称为双重花费攻击的典型攻击载体中会发生什么呢?一个坏演员会向一个商家付款,同时为自己挖掘一个不包括这种付款的恶意链。全球网络可能被欺骗而将恶意链识别为主链,从而有效地从分类账中抹去他与商家的交易。
该示例攻击与无法增加块大小来扩展比特币可扩展性有何关联?(请参阅文章底部,了解关于此攻击的更多讨论。)* 块大小与新挖掘的块被网络中所有节点看到所需的传播时间密切相关。在当前的网络上,其块是 1 MB,节点看到新创建的块的平均时间大约是 12.6 秒。在这个时间窗口期间,通常的情况是,一个节点广播其新块的创建,而另一个节点(可能在世界的另一端)也广播其自己新创建的块。最终,这两个块中的一个将从网络中被丢弃,这是由于网络仅将一个识别为最长的链,这被称为链重组。这个被丢弃的“陈旧块”可能试图验证许多诚实的事务,但是仍然被网络丢弃。在较小块的情况下,链重组比较大块的情况减少了诚实事务。因为更长的块时间意味着更多的事务被合并到块中。此外,对较大的陈旧块的挖掘贡献的散列率将大于较小块中的散列率,这进一步增加了保护当今比特币网络中存在的低效率。换句话说,块越大,传播时间越长,导致更多的哈希码无助于网络安全,这些哈希码专用于实际进入区块链的块。
有人可能还会问,“如果我们不能增加块的大小,我们就不能减少块的时间来增加事务吞吐量吗?”为了让比特币正确运行,传播时间相对于挖掘一个新区块所需的时间必须可以忽略不计。减少封锁时间会导致比特币协议的安全性降低;在极端情况下,如果块时间减少到 1 秒,并且由于传播时间大约为 12 秒,挖掘节点将不会看到最新的块,并将继续在陈旧块的顶部进行挖掘。挖掘节点会盲目地挖掘,导致大量的网络散列被浪费,导致与前面解释的增加块大小完全相同的结果。
你可能会像我们一样,发现上面讨论的不同缩放选项缺乏,尽管在比特币社区内进行了激烈的辩论。无论是没有充分解决第一层的扩展(在 SegWit 和 LN 的情况下)还是存在重大缺陷(在块大小增加和传播时间增加的情况下),比特币网络都需要进一步的根本改进,以有意义地提高可扩展性。在下一篇文章中,我们将讨论有前景的第一层扩展解决方案。这些技术可以通过 forks 或 power 全新的分类帐应用于比特币,旨在实现支持现实世界用例的吞吐量水平。
如果这篇文章对你有帮助,请在 Twitter 上关注我,在 Linkedin 上关注我的公司 Norís。
声明:发布的内容绝不构成诺瑞斯的投资建议。
我们感谢比特币核心开发者 Casey Rodarmor 为本刊贡献了他的专业技术和编辑技巧。
*持续双倍花费攻击解释:这种攻击需要满足一些条件才能生效。攻击者需要相当幸运才能暂时形成比诚实链更长的区块链。随着利益相关者要求更多的块确认被认为是安全的,这种攻击发生的可能性越来越小。确认越多,攻击者攻击区块链所需的时间就越多,这既增加了成本,也降低了攻击成功的概率。据计算,如果攻击者拥有 10%的网络散列率,则在六次确认下双倍花费的成功概率约为 0.1%。即使尝试这样做也是不经济的,因为攻击者基本上会错过 10%的块奖励和交易费(假设均匀分布)。
如果攻击者以某种方式拥有网络散列率的 51%或更多,情况就不同了。在这种情况下,无论确认的次数是多少,攻击者都有 100%的机会双倍消费。这样做的原因是因为攻击者总是能够成功地在私下创建一个更长的链,随时准备向网络广播。这种攻击不太可能发生在比特币网络中,因为没有一个单独的挖掘池具有接近 50%的网络散列率。