以太坊扩容现状概述:“以太坊无法扩容”完全站不住脚!
在过去的几个月里,我们注意到大量的文章宣称以太坊平台即将失败和崩溃,原因是它无法进行扩展,并且缺乏用户吸引力。这并不奇怪;对于许多新兴技术,我们看到了类似的炒作周期。在Gartner著名的模型中,“过高预期的顶峰”之后很快就会出现“幻灭的低谷”。
在以太坊的例子中,我们已经通过了前者(过高预期的顶峰),并且正在通过后者(幻灭的低谷)。
这些批判性的文章中提出的问题是合理的,但是通常忽略了以太坊每天在扩展性方面取得的惊人进展。不过,以太坊领域在目前的状态下无法扩展成为一台世界计算机,它现状吞吐量低,成本高。然而,这些问题早在以太坊作为区块链发布之前就已经预料到并得到了很好的理解。在本文中,我们将讨论过去几年以太坊社区为解决这些限制而创建的各种解决方案。
在ICO泡沫期间,大量的交易量充斥着整个以太坊网络,并推高了gas的价格,而gas是推动交易所需的少量ETH。这引来了扩展性挑战,以太坊的开发人员很清楚这一点,并且已经开始着手解决,尽管媒体的关注会让你有不同的想法。
虽然以太坊扩展对于某些人来说可能是一个美好的新世界,但开发人员多年来一直在开发解决吞吐量问题的选项:
对以太坊本身进行扩展,使其能够处理更多交易负载(如通过著名的Serenity和Casper升级)。
通过将大量交易移动到Layer Two(仅在交易结算期间使用基层网络)来减少主链上的负载(如支付通道,状态通道,Plasma和侧链)
“Layer One”解决方案,如分片(sharding)和Casper,已经在以太坊路线图中数年,但是,由于受到多重挫折的困扰,未能在执行和发展方面取得重大进展。即使在这些改进之后,仍然需要“Layer Two”扩展机制,它提供更高的吞吐量、私有交易和更低的交易手续费。
在深入研究不同的Layer Two解决方案之前,我们要求您将以太坊视为一个全局解决方案层,而不是一个整体的世界计算机。这意味着以太坊服务于结算任何和所有在主链之外进行的交易,并相应地强制执行价值转移。它是区块链作为一个公正的第三方进行仲裁的用例,所有的第二层解决方案都在其上运行。
在高水平上,任何第二层的解都遵循这个公式,或者它的一些变化体:
两个或多个参与方同意一组规则,根据这些规则,它们将加入并退出二层解决方案。
然后,这些当事人将这些规则编码成一份智能合约,要求每一方缴纳保证金。
在交付安全保证金后,各方可以在链外彼此操作,同时对链上智能合约进行不间断更新。
当一个或多个参与方希望退出第二层解决方案时,他们通常会提供一些加密证明,准确代表每个参与方剩余安全保证金。
在一个具有挑战性的时期,这些证明可以被争论和抛弃。如果挑战周期结束,那么参与方将带着更新后的余额退出二层解决方案。
Layer Two创新,如Plasma和支付通道/状态通道,其中一些已经在生产中处理真实的支付,将促进以太坊的大量交易。当然,扩展公共区块链(特别是具有如此健壮的共识的区块链)是困难的。但这绝不是不可能的;事实上,智能合约支持和以太坊虚拟机(EVM)提供了新颖的扩展解决方案,比其他试图通过二层(严格基于未使用事务输出(UTXOs)的脚本)进行扩展的链具有更强的可扩展性。
分布式应用(Dapps)之间正在进行的用户斗争广为人知。但是,多年的扩展研究与实现使用户体验和低延迟成为可能,从而支持每月活跃用户(MAU)数量较高的Dapps。
简而言之,以太坊的二层解决方案几乎已准备就绪,即将进入黄金时段——Cent和Spankchain等公司已经在区块链上为用户提供服务——并准备颠覆以太坊无法扩展这种说法。下面几节我们将讨论那些受到高度吹捧的传统扩展性方法的局限性,并说明以太坊拥有一套健壮的、可通用的解决方案。
传统扩展方式
大多数传统的扩展方法都可以归结为这样,即许多交互并不需要经过严格的共识才能被相关各方认为是最终的。例如,如果零售商和客户同意提供的服务令人满意,就可以换取指定的报酬,那么就没有理由进行第三方、第四方和第五方的确认。
重要的是两个因素:(i)付款人肯定会履行他们的协议,(ii)付款人和收款人都不需要去相信一个第三方会忠实地执行交易。
这个框架允许我们考虑链外扩展,其中交易在主区块链之外进行,然后在链上进行结算。要确保这个过程(i),付款人必须以加密的方式并不可撤销地承诺转移资金;(ii),这些资金必须以一种无需信任的方式转移,如果需要,交易必须在链上强制执行。
这些标准支撑着比特币的闪电网络(lightning network),它一直是媒体广泛报道的对象。把它想象成一个酒吧账单:参与者同意支付少量费用,但只在晚上结束时付清。这当然是对闪电网络的过度简化;在这里可以找到更详细的解释。
闪电网络不可否认对比特币有好处,并且对Layer Two比特币扩容具有巨大的潜力。部分由于媒体的广泛报道,闪电通常被视为解决比特币规模问题的灵丹妙药。与此同时,也有大量文章称赞“以太坊杀手区块链”,认为以太空间无法扩展。简而言之,这是错误的。
首先,以太坊非常有能力以非常类似于闪电网络的方式扩展支付量。基于哈希时间锁合约Hashed time-lock contract (HTLC)的支付渠道在以太坊和比特币上都是可行的,而且以太坊的多跳策略比比特币更具创新性和用户友好度,部署起来也容易得多。
由于比特币使用UTXO模型,资金实际上必须通过使用传统加密消息传递方法来进行交易(即使是那些离线交易)。相比之下,以太坊的账户余额系统允许更简单和更低成本的离线余额更新。
例如,Connext的支付通道实现(它已经为Spankchain处理支付近几个月了)使用了“线程”,这是一种多跳实现,允许各方直接在他们之间传递余额更新,而不是依赖哈希锁定的支付路由。这是一种计算上更便宜、同样快速、同样安全的方法,可能比闪电网络更适合于许多交易模式。
此外,由于比特币脚本的局限性,部署复杂的合约交互的开销更大。UTXO模型虽然是在基于区块链的网络上验证的发送和接收签名交易的优秀方法,但这意味着您必须为更新颖的用例(如托管)增加脚本。
由于以太坊的可通用性,以及创建代币、注册中心、不可替代资产(如加密猫或奢侈品的数字标识)和其他社区接受的智能合约标准的能力,构建针对EVM的模块化和互操作合约变得更加无缝。
广义状态通道
以太坊对智能合约和虚拟机(EVM)支持各种各样的应用,这在比特币等非图灵完备平台上目前是不可行的,由于它的架构和设计决策——这降低了它的整体攻击面,这反过来又把更多的注意力放在它最受吹捧的无许可P2P支付用例上。
然而,由于图灵完备的脚本比简单的交易执行起来更复杂,这些功能增加了以太坊上的总体拥塞(并导致状态的大小以更快的速度增长)。
我们已经讨论了支付通道如何减少p2p支付的手续费和延迟,但是以太坊可以支持支付通道无法处理的更复杂的交易逻辑。
然而,广义状态通道为复杂合约交互的可扩展性问题提出了一种解决方案。现在,支持已知以太坊用例的状态性合约交互必须在区块链上执行。许多以太坊看衰者的想法是,随着越来越多的合约被部署,函数调用将慢慢压倒网络,推动gas价格飙升。
绝大多数媒体报道的Layer One扩容要求我们回答如何能够在主网上容纳更多复杂交易的问题;Layer Two解决方案,如广义状态通道和Plasma,要我们回答的是怎样才能使更多的函数脱离区块链,同时保持主网提供的安全性和完整性。
支付通道的安全依赖于各方“链上”的能力,并使用智能合约来裁决和纠正纠纷。也就是说,支付通道让双方表现得好像他们是在进行链上交易,即使他们不是。
因为它们可以在任何时候进行链上操作(因为它们来回发送的余额更新承载了链上交易的重量),因此在有争议的情况下,合约仅通过轮询主链来决定谁的余额更新更近。然而,就时间和精力而言,解决链上争议的成本很高,因此理性的参与者会避免这种情况。而且,如果大多数状态通道使用安全的和经过审计的标准,我们可以创建具有快速最终性的可互操作系统,这些系统与主网交互受到相同的加密保证的约束,并且极大地降低gas成本,使其几乎为零。
反事实的实例化
这种方法提出了一个问题:如果我们能够激励各方表现得就像链上存在一个简单的合约,那么对于更复杂的逻辑,我们能否做到同样的事情?其中一种策略就是反事实实例化。
这里有一些不同的实现,但是它们都围绕着相同的原则:状态在开始时被传递到通用框架中,并且可以在通道打开时根据指定的合约(但不是部署的)进行操作。争议案件也由合同裁决。但是,由于参与者有能力进行链上操作并调用合约,所有人都被激励去表现得好像合约存在一样。
利用反事实实例化的通用状态通道的影响将是双重的:
现在可以反事实实例化的涉及合约的操作都将在链外发生;相对于现状,已部署合同的数量将会减少。这将减少网络拥塞,有利于必须在链上部署的合约。
在广义状态信道中发生链下操作不会产生确认时间或gas费;这将从根本上改善用户体验,并允许以太坊(作为一个整体)适应更大交易量的订单。
Connext、Counterfact、Perun和其他人正积极致力于开发通用状态通道框架,该框架将直接解决网络拥塞、用户体验和成本问题,许多人将这些问题称为以太坊的致命弱点。这些解决方案由智能合约功能支持,比基于UTXO的扩展解决方案具有更强的可扩展性,保持底层区块链的安全性,并有潜力打开以太坊承诺的新市场和商业机会。我们相信广义状态通道有可能会像Serenity一样改变以太坊;无论是由于信息获取能力差,还是宣传力度不够,广义状态通道都还没有得到应有的重视。
闪电网络
闪电网络是基于UTXO的支付通道、原子互换等等的起点。Olaoluwa Osuntokun、Joseph Poon以及整个闪电研究人员和工程师生态系统所做的工作令人印象深刻。
闪电网络协议和规范已经有了一些工作实现,包括LND项目(由Lighting Labs领导,其首席科学家Olaoluwa用Go编程语言编写)和C-lighting项目(用C语言编写)。
在那些最令人兴奋的补充中,如“Watchtowers”(这些服务监视您的支付渠道以防止欺诈,并保持在线状态,这样您的节点就不必时刻在线——作为回报,您需要为这些服务付费),Neutrino钱包(Lighting Labs的试验性轻客户端,同样适用GO编写),随着闪电网络规范和开发者社区的成熟与发展,一些其他的改进即将到来。
目前一些较困难的研究集中在:Splicing(部分存取款和并行通道部署);Wumbo(取消闪电通道容量限制);多路径支付(将一个支付分成若干个,允许它在多个路由上路由——参照分片sharding);世界各地的会议和独立团队都在反复地做着Hidden Destinations(向私人通道支付的公共路线)和更多的艰苦工作。
闪电网络团队和扩展UTXO链的工作——利用一些最前沿的加密实现——是一个不小的壮举,不容小觑。通常,问题是人们寻求直接对比闪电网络和使用类似方法的以太坊Layer Two扩容措施,却不考虑权衡这两种不同的解决方案提供和独特的功能,而它们的底层根链拥有独特的架构(例如UTXO模型vs.以太坊帐户模型)。
Plasma
广义状态通道并非实现以太坊扩容的唯一选择。Plasma是一个Layer Two扩容解决方案,它与状态通道一起寻求提供额外的吞吐量和最终性,但是需要进行一些额外的权衡。
你可以把Plasma想象成一种“原型-链”,它试图尽可能多地模仿根链的完整性和安全性,只是使用了不同的成本组件,它通常比状态通道的成本要高(由于将更多的主链函数复制到它上面的新基质上)。
Plasma获取整个链下状态,并保持其完整状态,并将其哈希到根主网链(根主网链有自己的一组风险权衡,不过通过额外的研究,这种权衡正在不断改进)。
虽然吞吐量可能比主链的吞吐量大,但与没有正式共识算法的状态通道不同,Plasma链也可以带来自己独特的共识算法,包括自定义区块时间(具有自己的一系列权衡)。尽管吞吐量和最终性没有那么快,但与状态通道相比,它们更容易访问,因为任何人都可以访问被广播和加入根链的状态——而状态通道仅对其商定的对手方可用(在当前的大多数实现中)。而且,在通道关闭之后,状态通道不再可用,这使得它们成为具有有限寿命的经济机器,因为它们被有意构建为更半永久的。
然而,在Plasma中,由于必须将每个状态交互保存到根链中,因此根据选择实现哪个版本的Plasma,这些成本更高。随着在如何最好地实现Plasma方面的突破在全球范围内的许多团队中不断出现,我们确信一个通用的标准将会出现,其中包含一组合理的权衡,这些权衡可以应用到大量的用例中。
互操作标准的威力
非托管流动性——以及如何在涉及多个参与者的多个不同场景中最有效、最安全地传递流动性——是一项正在进行的发现,它将继续扩展新兴的密码经济学,以及各种机制如何在敌对条件下运作。
像ERC-20(用于代币)和ERC-721(用于不可替代资产)这样的标准使以太坊的Layer Two扩容技术和Dapps在社会上更加安全,因为有社区公认的规范和最佳实践,围绕这些规范和最佳实践可以为特定的用例实现标准。当这些不同的标准能够以最小的摩擦和成本、以互操作的方式交流时,这一点尤其重要。
代币、不可替代资产和Layer Two扩展性之间的新型互操作性所产生的无摩擦交互和经济为更大的以太坊网络创造了进一步的安全性,因为所有参与者现在都交织在附加层的复杂经济活动中;所有这些都建立在安全的标准之上,这些标准都经过了更大的技术团体的审核和接受。
不可低估的是非托管体系结构的重要性,以及对最可扩展和可概括的功能的阻力最小的路径。这些都是将新的经济机器变成现实的关键组件和基本要素,由于费用、规则和计算限制,它们一度被认为是不可能在现实世界中实现的。
是时候开始新的叙述了
区块链的扩展很困难,以太坊也不例外。但是,推崇“以太坊杀手”区块链,或者它已经存在的替代品,都是因为以太坊可能无法扩展,从而将以太坊社区在Layer Two技术上所做的卓越工作降到了最低。Layer One的解决方案正在进行中,可能会在未来的道路上为网络带来变革,但Layer Two的解决方案现在正在进入市场。
以太坊不能扩容这种叙述和Layer One解决方案是唯一扩容途径的观点已经让人厌烦,并且每天在生产环境中都被积极地否定。今天,以太坊是一个缓慢而无法停止的可编程货币平台;这种系统的潜力是不言而喻的。一个全新的金融体系可以建立在以太坊的基础上,而Layer Two解决方案将为利用这种去中心化的金融体系的全新市场铺平道路。
价值转移、治理、新型市场和激励结构、社区协调、甚至税收政策的适当实施在以太坊上都是可能的。以太坊的开发人员看到了这一前景,正在开发dapps来实现这一目标。其他以太坊开发人员正在构建协议,使网络在足够大的范围内可用,以迎接未来。
本文并不是要抨击其他可供选择的区块链实现,如前所述,许多区块链实现正在推进密码研究的前沿。也不是为了ICO、误导炒作。相反,本文是为了以太坊扩容,为了一个去中心化的经济未来,使用以太坊区块链作为结算层,并通过Layer Two技术促进大量交易。
这是我们所看到的以太坊网络的情况,我们希望它能在公众的眼中得到应有的重视,并看到光明的未来。