盘点:以太坊幻想破灭?实现区块链扩展绝非易事

原文标题:《以太坊因无法扩展即将崩溃?你让这些扩展方案的面子往哪儿搁》
作者: Hunter Hillman (Connext)、Steven McKie (Amentum)& Eric Olszewski
翻译:Jhonny

在过去的几个月中,我们注意到大量文章宣称着以太坊平台即将崩溃,因为它无法扩展并且整体缺乏用户吸引力。这并不奇怪,随着许多新兴技术的出现,我们能在其他新兴技术上看到类似的发展规律周期:「期望膨胀的高峰期」和紧跟其后的「幻想破灭期」。以太坊已经经历了前一个期望膨胀期,当前正在经历第二个时期。

盘点:以太坊幻想破灭?实现区块链扩展绝非易事高德纳咨询公司--人们对新兴技术的期望值随着时间的推移所呈现的曲线图(2017)

这些文章中提出的有些问题是合理的,但是往往忽略了以太坊每天在扩展性方面取得的惊人进展。我们需要承认的是,当前以太坊的状态尚无法使其扩展成为世界计算机,网络的吞吐量低、成本费用高。但是,这些问题在以太坊被创立出来之前就已经预料到了,并且已经得到了很好地理解。在过去几年中,已经创建出了多种解决方案来应对这些问题,本文将对这些解决方案加以探讨,希望读者能在阅读本文后更好地了解以太坊的扩展性解决方案。

盘点:以太坊幻想破灭?实现区块链扩展绝非易事以太坊网络的交易量趋势图,来源:Etherscan.io

在过去的 ICO 泡沫中,高交易量挤占了整个以太坊网络并导致 gas 价格上涨(备注:gas 费用即用户支付给矿工的费用,矿工接受 gas 费用之后会验证交易并将之打包进入区块)。这给以太坊网络带来了扩展性挑战 --以太坊开发者们很清楚并且已经开始解决这些挑战 -- 尽管很多媒体的片面关注和报道会让你不以为然。

多年来,提高网络吞吐量一直是许多开发者致力于实现的目标:

1、通过扩展以太坊网络本身来处理更大的交易量(比如未来将实现的 Serenity 和 Casper)。
2、通过将大量的交易转移至第二层(链下),仅在交易结算时使用基础层(链上 / 第一层),从而减少主链的负荷(比如支付通道、状态通道、Plasma 和侧链等)。

诸如 Sharding (分片技术)和 Casper 等「第一层」扩展技术解决方案,几年前就已经出现在了以太坊发展路线图中,但这些技术一直受到多次挫折,阻碍了这些方案的实施和开发取得重大进展。即使这些第一层解决方案得以改进,依旧需要「第二层」扩展机制来实现更高的吞吐量和更低的交易费用。

在深入探讨第二层解决方案之前,不妨将以太坊视为一个全球性的结算层,而不是一台世界计算机。这意味着以太坊可以结算所有在链下执行的交易,并相应地实现价值转移。正是以太坊网络的这种用例使得该平台能够支持所有第二层解决方案的运行。

从整体来看,任何第二层解决方案都遵循以下准则(或这些准则的一些变体):

1、两方或多方对一套规则达成共识,他们基于这些规则来加入或退出第二层解决方案。

2、之后这些参与方将这些规则编码到一个智能合约中,该合约要求参与各方都提交一份保证金(security deposit)。

3、在提交保证金之后,所有参与方就可以在链下进行交互,同时间断性地向链上的智能合约提交更新。

4、当某个或某些参与方想要从第二层解决方案中退出时,他们通常会提供某种加密证明(cryptographic proof),以准确地表示各方剩余的保证金。

5、提交证明之后会有一个挑战期(challenge period)。根据该证明是否真实有效,该证明可能顺利通过挑战期并实现将资金转移至主链上,但也可能在此期间被他人挑战并被证明无效(结果就是资金无法退回至主链上)。

诸如 Plasma 和支付通道 / 状态通道等第 2 层解决方案(其中有些已经在实践中得以应用),将促进以太坊交易量的大幅提升。当然,对某条公链(尤其是以太坊这样有着强大的共识机制的公链)进行扩展并非易事。但这也绝非不可能实现。实际上,相比于其他试图严格基于 UTXO (未使用交易输出)脚本来扩展第 2 层的区块链网络 (如比特币网络),支持智能合约和 EVM (以太坊虚拟机) 的以太坊网络能够实现更加新颖的扩展解决方案,并实现更大大的扩展性。

DApp (去中心化应用)在保留用户方面一直都做了很大的努力,但几年的扩展性研究和实现正在改善用户体验和实现低延迟,从而将带来拥有更高用户量的 DApp。简而言之,以太坊第 2 层扩展解决方案已经准备好迎接黄金时间的到来(诸如 Cent 和 Spankchain 等公司已经为主网用户提供服务),并正准备推翻「以太坊无法扩展」这样的言论。

接下来,我们讨论一下那些得到高度吹捧的传统扩展方案所具有的局限性,借此引出以太坊的强劲通用的第 2 层扩展解决方案。

传统的扩展解决方案:链下 & 闪电网络

大多数传统的扩展解决方案都可以归结为:很多交互是不需要参与各方认为达成了最终的严格共识的。比如,如果零售商和客户之间达成共识,客户对所获得的服务满意,商家也对指定的付款没有异议,那就没有理由让第三方、递四方、第五方 ... 等参与进来确认该笔交易发生了。重要的有两个因素:(i) 确定付款方将履行他们的付款承诺;(ii) 无论是付款人还是收款人都不会相信第三方将诚实地代替自己执行交易。

这个框架允许我们考虑通过链下进行扩展,即交易在区块链主链之下进行,之后再到链上进行结算。为了保证交易能够遵守上午中的 (i) 因素,付款人必须以加密的方式和不可撤销的方式承诺将转移资金给收款人;为了遵守上方的 (ii) 因素,这些资金必须以一种无需信任(trustless)的方式进行转移,且如果有需要,必须强制交易在链上进行。

比特币的闪电网络(Lightning Network)就是基于这些标准,闪电网络已经很好地成为了诸多媒体报道的主题。可以将闪电网络想象成一张酒吧账单:参与者(消费者)同意在支付费用,但只会在准备离开时候才会付账。当然,这种理解是对闪电网络的过度简化,有关闪电网络的详细解释,请参阅:https://www.coindesk.com/information/what-is-the-lightning-network

毫无疑问,闪电网络对比特币网络是非常有用的,并且在比特币第 2 层扩展方面具有很大的潜力。但也由于在一定程度上由于媒体的广泛报道,闪电网络常常被认为是解决比特币扩展性问题的灵丹妙药。与此同时,还有大量的文章吹嘘着有些区块链平台是「以太坊杀手」,认为以太坊无法实现扩展,这真的是大错特错!

首先,以太坊能够以与闪电网络类似的方式实现支付量的扩展。比如,基于 HTLC (哈希时间锁定合约)的支付通道在以太坊网络上与在比特币网络上一样可行,且相比于比特币,以太坊能够实现更多创新性和用户友好型的多跳策略(multi-hop strategies),并且这些策略能够更加容易进行部署。

由于比特币使用的是未使用交易输出(UTXO)模型,因此必须通过传统的加密消息传递的方式来转移资金,以此来完成交易(即便是链下交易也是如此)。相比之下,以太坊的账户余额系统(account balance system)能够实现更为简单和更低成本的链下余额更新。

比如,Connext (免费开源的 P2P 微支付基础设施)实现的支付通道(已经为娱乐平台 Spankchain 处理了好几个月的付款事宜)使用「线程(threads)」,这就是一种多跳实现,即允许参与各方之间直接传递余额更新,而不需要依靠哈希锁定的支付路由。这是一种在计算方面能够更具成本效益、更快速且保证安全性的方式,这种方式能够比闪电网络更加适合很多的交易模式。

其次,由于比特币脚本在某种程度上受到限制,因此部署复杂的合约需要更多的成本。尽管 UTXO (未使用交易输出)模式是一种发送 / 接收经过验证的签名交易(signed transactions)的绝佳方式,但也意味着你必须为更多的新颖用例(如财产托管)而增加脚本。随着以太坊变得更加普遍,及其在创建代币 / 不可替代资产和其他得到社区接受的智能合约标准的能力,以太坊平台能够更加无缝地构建针对 EVM (以太坊虚拟机)的模块和可互操作性的合约。

通用状态通道 & 反事实实例化

支持智能合约和 EVM 的以太坊平台能够实现各种不同类型的应用程序,这减少了以太坊平台的整体攻击面,从而能够更专注于无需许可的 P2P 支付用例;而当前这些应用在比特币等非图灵完备的平台上是不可行的(由于这些平台的架构和设计决策的原因)。

由于图灵完备的脚本的执行要比简单的交易更加复杂,因此这些能力增加了整个以太坊平台的拥堵情况(并导致状态大小呈现以更快的速度增长)。

我们已经讨论了支付通道(payment channels)如何能够在 P2P 支付方面减少费用和延迟性,但以太坊能够支持支付通道无法解决的更加复杂的交易逻辑。

但是,通用状态通道(Generalized State Channels)提出了一种解决与复杂合约交互相关的扩展问题的解决方案。当前,实现以太坊用例的有状态的合约交互必须在链上执行。很多人认为随着以太坊网络中部署的合约越来越多,功能调用将慢慢地压垮整个网络,并导致 gas 价格的猛涨 (!!)。

同样受到媒体大量关注的是第 1 层扩展,它要求我们在主网(链上)容纳更多的复杂交互;而诸如通用状态通道和 Plasma 等第 2 层扩展解决方案则要求我们能够将更多的这些交互移至链下进行,同时保证与主网一样的安全性和完整性。

支付通道的安全性依赖于参与各方「上链」和使用智能合约来裁决和解决分歧的能力。也就是说,支付通道使参与双方的交易能够像是在链上进行一样,尽管并非真的在链上进行。因为他们有能力随时转移至链上,他们之间来回发送的余额更新信息承载了与链上相同的分量;在发生分歧时,智能合约就会通过查询主链来决定哪方的余额更新信息是距离当前更近的时间发生的。链上解决分歧需要花费很长的时间和更多的 gas 成本,因此理性的参与者都会选择避免在链上解决分歧。而且,如果大多数状态通道使用安全和经过审计的标准,那我们可以创建出快速终结交易的互操作性系统,虽然这些系统会需要与主网一样通过加密的方式来保证安全,但大大降低了甚至几乎不需要 gas 成本。

但这种方法引发了一个问题:如果我们可以激励参与各方表现得就好像在链上存在一个简单的合约一样,那我们能够为更复杂的逻辑做同样的事情吗?其中一种策略就是反事实实例化(counterfactual instantiation)。这种策略有几个不同的实现,但这些时间都围绕着相同的原则:状态在开始时就被传递到通用框架中,且当通道被打开时,可以更具特定的 (未部署的) 合约来控制该状态。争议 / 分歧也是通过合约来加以裁定。尽管参与者有能力上链并调用合约,但所有人都会被激励并表现得好像合约存在一样。

即将在实践中使用的通用状态通道,如果利用反事实实例化,将能够带来双倍的效应:

  • 涉及合约的操作可以实现反事实实例化,并都在链下进行;相比于当前,部署的合约的绝对数量将减少。这将减少网络的拥堵,使那些必须在链上进行部署的合约获益。
  • 在通用状态通道中的链下操作不会带来确认时间和 gas 费用;这将从根本上提升用户体验,并允许以太坊能够容纳更大数量级的交易量。

Connext、Counterfactual 和 Perun 等平台正在积极致力于搭建通用状态通道框架,这将直接解决很多人口中的以太坊网络的致命弱点,即以太坊网络的拥堵、用户体验和交易成本。这些解决方案基于智能合约的功能实现,比基于 UTXO 的扩展解决方案更具可扩展性,并保留了底层区块链的安全性,具有解锁基于以太坊的新市场和商机的潜力。我们认为通用状态通道有可能像 Serenity 一样为以太坊网络带来变革;但由于相关的信息获取障碍或宣传力度不足,通用状态通道并没有得到应有的关注。

探索闪电网络 & Plasma

闪电网络

闪电网络(Lightning Network)是其他基于 UTXO (未使用交易输出)的支付通道、原子交换(atomic swaps)等交易方式的起点。Olaoluwa Osuntokun 和 Joseph Poon 等闪电网络生态中的研究者和工程师们所做的工作真的很令人钦佩。

当前已经有一些实现了的闪电网络的协议和规范的项目,包括 LND 项目(由 Lightning Labs 创建并由其首席科学家 Olaoluwa 领导,使用 Go 语言编写),以及 C-lightning 项目(使用 C 语言编写)。

随着闪电网络的规范及其开发者社区趋于成熟和发展,除了诸如「瞭望塔」(Watchtowers,闪电网络中用于监视用户支付通道以避免被欺骗的服务,瞭望塔保持一直在线,这样就无需使节点一直在线)和 Neutrino 钱包(Lightning Lab 的试验性轻客户端,也使用 Go 语言编写)之外,闪电网络通道还有一系列其他的改进。

目前一些难点研究主要集中在:Splicing (拼接,即资金的部分存储 / 取出和并行通道的部署)、Wumbo (消除通道的容量限制)、Multi-Path Payments (多路由支付,即将大额付款分割成小部分,从而通过多个路由来完成支付,这与以太坊 2.0 的 Sharding (分片技术)有些类似)、Hidden Destinations (隐藏的目的地,即将公开的支付路由转变成隐私的支付通道)等等,正由世界范围内的多个独立团队在研究开发。

闪电网络团队的工作以及对基于 UTXO 的区块链进行扩展并不是一件容易的事情,但也不容小觑。常见的问题就是,人们经常直接将闪电网络与以太坊的第 2 层扩展技术进行比较,而不考虑这两类扩展方案由于底层根链的独特架构所提供的权衡和所具有的独特之处(即比特币使用的是 UTXO 模型,而以太坊使用的是账户余额模型)。

Plasma

通用状态通道远远不是以太坊能够用于实现扩展的唯一选择。

Plasma 是一种第 2 层扩展解决方案,与状态通道一起,寻求为网络提供额外的吞吐量和确定性。

可以将 Plasma 视为一条「原型链(proto-chain)」,这条链试图尽可能多地模仿根链(即以太坊主链)的完整性和安全性,只是具有不一样的成本构成(cost component),通常高于状态通道(因为 Plasma 链需要将更多主链的功能复制到其上)。

Plasma 会存储所有的链下状态,并维持其完整状态,只将状态哈希提交至以太坊主链中。

虽然吞吐量可能比主链更大,但与没有正式的共识算法的状态通道不一样的是,Plasma 链可以引入其独一无二的共识算法。尽管 Plasma 链的吞吐量 / 最终性没有状态通道那么快,但 Plasma 链更容易被允许和访问,因为任何人都可以访问已经被广播出去的根链状态,并加入进来,而状态通道只适用于商定的交易对手方(当前大多数的状态通道实现皆是如此)。并且当某条通道关闭后,状态通道就不再可用,因为状态通道的使用寿命是刻意被设计为半永久性的。

虽然在 Plasma 中,由于用户必须将所有的状态交互从子链保存到根链中,这些成本费用会比状态通道更高,具体取决于用户选择实现的 Plasma 版本。随着全球许多团队在如何最佳地实现 Plasma 的探索中定期地取得了突破性进展,我们确信通过一系列可用被用于各种用例的权衡将会带来一个共同的 Plasma 标准。

互操作性标准的影响

ERC-20/ERC-721 等标准使得以太坊第 2 层扩展性技术和 DApp (去中心化应用)更加安全,因为以太坊社区存在公认的规范和围绕哪些标准应该用于哪些特定用例的最佳实践。这是非常重要的,尤其是当这些不同的标准能够以最小的摩擦和成本来进行互操作性交互时(这些标准最终会寻求能够流畅地进行交互,从而才能实现「去中心化金融 DeFi」)。

这些在代币、不可替代性资产和第 2 层扩展性之间的新型互操作性中产生的无摩擦交互和经济(DeFi)将能够进一步提高以太坊网络的安全性,所有这些都建立在安全的标准之上,且这些标准已经被更大的技术社区审计和接受了。

是时候改变你的观点了

实现区块链的扩展并非易事,以太坊也是如此。但是将某些区块链吹捧为「以太坊杀手」或其现已存在的替代品,只是因为以太坊被认为是无法扩展,这显然抹杀了以太坊社区正在针对第 2 层扩展技术进行的卓越工作。第 1 层扩展方案正处于开发中,可能在将来的某个时候为网络带来变革,但现在第 2 层扩展技术正在冲击着市场。

认为以太坊无法扩展和将第 1 层扩展方案是扩展网络的唯一方式,这种想法也是醉了!当前,以太坊是一个较缓慢但势不可挡的可编程加密货币平台,且该系统的潜力是不言而喻的。此外,还有可能在以太坊之上搭建一个全新的金融系统,而第 2 层扩展方案将为使用该去中心化金融堆栈的全新市场铺平道路。

价值转移、治理、新型的市场和激励结构、社区协调,甚至是税收政策的实施都可能在以太坊平台上实现。以太坊开发者们看到了这一未来,并正在通过搭建 DApp 来推动其实现;还有其他的以太坊开发者们正在搭建协议,使以太坊网络可以在足够大的范围内使用,以迎接这一未来。

有关状态通道的资源 & 指导:

一般性讨论和文章:

状态通道入门文章:

针对开发者的状态通道文章:

举报

链闻 ChainNews 信息平台,诚邀读者共同监督,坚决杜绝各类代币发行、投资推荐及虚拟货币炒作信息。如您发现这篇文章含有敏感信息,请点击「举报」,我们会及时调查,并进行处理。

你可能感兴趣

    App
    下载链闻 ChainNews Apps

    链闻 App

    扫码下载

    公众号 小程序
    链闻 ChainNews 微信公众号
    链闻 ChainNews 微信小程序