在之前的文章《区块链演进:快速指南以及为何开源是其核心》中,我讨论了第一代区块链:公共比特币和加密货币区块链,以及能够执行程序(“智能合约”)的以太坊区块链,进而发展到代码执行区块链的许可版本(例如,Hyperledger Fabric、Quorum)。
让我们回到区块链的丛林,看看生态系统的现状,以及尝试解决区块链技术的一些局限性的项目:速度和吞吐量、跨区块链的信息和价值交换、治理以及身份和账户管理。
加快速度
当前区块链技术常被诟病的一点是速度有限,通常以每秒可处理的交易数 (TPS) 来衡量。这个问题严重限制了它们在需要处理大量事件的系统中的应用。例如,人们常说(没错)比特币每秒最多只能处理七笔交易,而以太坊也好不到哪里去。定义下一代区块链可能最简单的方法是采用新颖的方法来尝试解决当前几代区块链不断面临的可扩展性问题。(尤其是无需许可的区块链。稍后我将回到无需许可链和许可链的区别。)
最明显的选择——也是比特币社区争论最激烈的选择之一——是“简单地”增大交易区块的大小,以便每个区块可以处理更多交易,从而提高每秒交易量。比特币中反对的声音使得这个解决方案很难实施(我在之前的文章中提到的“代码治理”模型的一个明显问题,我将在以后的文章中再谈),但它仍然是区块链项目总体而言相对直接的选择。提高区块的创建频率是另一种方法。
我还在第一篇文章中提到了另一种提高每秒交易量的方法:改变问题的约束条件。从无需许可的网络(任何人都可以加入和参与)转变为许可网络(加入需要许可)会改变约束条件,并提供了重新考虑安全要求的选项。当您了解联盟中的每个人(并与他们有法律关系)时,您可以选择使用共识机制,这种机制不假设所有事情都应始终验证,从而加快速度。此外,许可区块链框架(如 Hyperledger Fabric)通常会提供选择区块中包含的交易数量及其频率的选项。无论是每个区块的交易数量增加还是生成的区块数量增加,最终结果都将是 TPS 的增加。
许可系统就是这样可以达到数万 TPS 的,这个数字远远超过主要的无需许可网络。因此,Facebook 最近宣布的天秤座加密货币计划使用许可模型(尽管其“区块链性”备受争议)来处理大量交易,以符合其既定目标,也就不足为奇了。
坚持共识
然而,私有的许可账本并不适用于所有用例。一般来说,需要改进无需许可网络同时管理更多事件的能力。这就引出了我们认为最雄心勃勃的工作可能正在进行的地方:共识机制。
让所有参与者就网络上发生的所有交易(即变更)的“真相”及其顺序达成共识是分布式系统的巨大难题之一。作为一种分布式系统,区块链也必然会遇到这个问题。
比特币的解决方案是每 10 分钟组织一次竞赛,以解决一个计算难题,让获胜者确定在上一时间段内发生了哪些交易以及交易顺序,其他人可以轻松验证并达成一致。由于使用的谜题类型,获胜者本质上是随机的,但这种“中本聪式工作量证明”的问题在于,竞赛中使用的谜题也需要极高的计算资源才能解决(根据设计),而且除了获胜者之外,所有人的工作在每轮之后都会被丢弃。
虽然工作量证明是安全的,但也耗能且速度慢。
我们需要更好的共识机制,使区块链网络的参与者能够更有效地达成协议,从而使整个系统每秒可以处理更多事件。
值得注意的是,以太坊正在进行多项创新以解决这些局限性。首先,它计划放弃工作量证明,转而采用权益证明共识机制,通常称为 Casper 协议。它使用经济激励和惩罚来让节点保护网络,并使作弊的代价(非常)高昂。
能够执行智能合约的区块链必须解决的另一个问题是如何保证代码执行的正确性,以及这对整个网络的处理能力有何影响。目前,以太坊要求每个验证节点执行代码,以验证其他节点提供的结果是否正确。这带来了可扩展性问题,因为以太坊“世界计算机”越成功,需要检查代码的验证者就越多:所有节点都需要就执行的每行代码的顺序和有效性达成一致,并且不可避免地会受到最慢节点的拖累。
缓解此问题的一种选择是 分片,这是一种解决方案,其中只有部分网络执行代码并返回其余网络可以验证的结果。
进一步推进这个想法,Zcash 团队背后的项目 ZEXE 通过允许提交代码执行结果以及结果正确的加密证明来处理这种情况。然后,其他节点可以获取此证明并非常快速地检查它,而无需重新计算。这与证明结果错误的赏金相结合,创建了一个系统,其中代码可以由单个节点执行并由多个节点检查,这是一种加速分布式应用程序 (dapps) 执行的巧妙方法。
分布式系统中的共识并非全新的研究领域,但随着区块链的普及,人们对共识研究重新产生了兴趣。我可以提及更多(例如 Tendermint、Ouroboros 和 Algorand),但我将提供另一种关于共识的有趣方法:共识敏捷性。例如,Hyperledger Sawtooth 可以 动态更改共识,“将所有区块链配置放在链本身上”。这使得可以使用给定的共识机制启动网络,并在网络及其用户发生变化时切换到不同的、更适应的机制,例如从小型部署转向大型联盟。
这开始揭示区块链发展的一个重要方面:模块化。虽然最初的项目是高度集成的,但随着时间的推移,人们已经努力分离不同的层:网络、共识、应用程序,甚至信息存储。
二层解决方案:2.5 代?
直接构建在区块链中的解决方案(如上述解决方案)被认为是第一层。构建在区块链之上的解决方案称为第二层解决方案。
这些二层解决方案,例如比特币的 闪电网络 或以太坊的 雷电网络,旨在通过将交易卸载到辅助网络来加速整个系统。它的设计目的是在实现更高吞吐量的同时,仍然连接到主区块链并保持其重要特性:分布式、无需许可和最小化信任。虽然在某种程度上类似于侧链(将另一个系统连接到主链,这个想法我将在下一篇文章中再谈),但它们不使用辅助链的想法。相反,它们构建依赖于底层链的安全性和问责制的覆盖网络,但可以更快、更以点对点的方式交换信息。
二层解决方案本质上是为加密货币构建的,并创建锚定在底层加密货币区块链上的支付通道,双方之间交换的金额最终会结算。通过将大多数交易转移到链下,减轻主链需要处理的交易量,并将大多数交易卸载到第二层,它们有助于加速整个系统。
结论
速度是限制无需许可区块链潜力的主要因素。为了应对这一挑战,同时保持链的完整性,人们正在进行大量工作来探索解决方案。最近关于共识的研究正在带来新的方法,这些方法在保证准确性的同时,对环境更加友好。
开源软件在不断发展,作为一个开源生态系统,区块链是这一现实的主要例证:许多项目正在尝试各种解决方案来解决共同的问题,而这些解决方案正在被社区的其他成员研究、改进和完善。
本系列的下一篇文章将探讨当前几代区块链技术如何不仅试图提高单个区块链的效率,而且还使其能够协同工作。
评论已关闭。