以太坊有哪些扩容解决方案:分片、Plasma、雷电网络、Casper……

以太坊开发者很早就意识到以太坊网络扩容是一个值得探讨和投入的主题。然而,直到2017年底,扩容性问题才开始显现:一个名为 CryptoKitties (加密猫)的去中心化应用程序(dApp)造就了大量流量,导致网络产生延迟。除此之外,gas(以太坊区块链合约中运行每项操作所需的费用)的价格也随着用户竞相进行交易验证而飙升。

虽然这个故事现在已经过度报道和消费,但 CryptoKitties 事件确实揭示了一个现实:目前以太坊网络的容量状态可能还没有为成功的 dApp 带来的巨大流量做好准备。速度缓慢和成本不稳定的原因使人们对以太坊平台和去中心化应用程序敬而远之。DApp 开发者正致力于首个能真正实现广泛采用的应用程序,所以开发者必须持续攻克区块链扩容问题。

 

扩容性解决方案面临“三元悖论”

图源 ConsenSys

区块链技术中有这样一个理论网络可以同时支持以下的两种属性,即安全性、去中心化和扩容性。此即“三元悖论”,在这个现象越来越为人熟知时,也已经成为了以太坊开发者要面临的挑战,因为开发者想要在提升扩容性以供更广泛的采用和实现时,也能维持区块链的核心特征(去中心化和安全性)。然而目前有些扩容性解决方案会严重影响安全性或者去中心化:

  • 从理论上来说,使用代币是扩容问题的解决方案之一。这个方案摈弃了所有交易都发生在一条区块链上的想法,采行多个代币共存但运行于独立区块链上的模式。通过将运行压力分布至其他区块链上使得扩容性得以实现。但是,如此一来每条区块链的节点将会减少,那么区块链就更容易受到攻击或产生欺诈行为。因此,使用代币的解决方案兼顾去中心化和扩容性,但对于安全性却是捉襟见肘。

  • 扩大区块容量是另一个解决扩容性问题的理论方案。如果每个区块的容量增加,所有的节点仍然可以运行各种操作,但是同样的时间却可以容纳更多的交易。然而,随着区块容量增大,需要耗费更高的成本来打包交易,这对于许多矿工来说是难以负担的。这就可能导致网络将来被一些超级计算机掌控,因为它们拥有足够验证每个区块的资源。由此看来,增加区块容量能够保证安全性和扩容性,却显著降低了网络的去中心化程度。

确实,在区块链发展之初,我们的关注点主要是安全性和去中心化。因此,要实现扩容性最大的阻碍是每个节点都需要亲自处理每笔交易。即使做到绝对安全和去中心化,系统已经没有为扩容性解决方案预留下多少空间。那么问题来了,我们要如何对以太坊进行扩容,而不影响安全性和去中心化的前提。

目前有四种协议在开发中,以期解决扩容性问题,即分片(sharding)、Plasma和雷电网络,至于第四种协议,Casper,在内容上更为广泛,但仍然对以太坊甚至是其他区块链网络提供扩容性参考。

 

分片 Sharding

分片这种扩容方案仍然将所有交易运行在原来的区块链上,因此被称为“链上”方案。上文提到以太坊中的每个节点都需要处理每笔交易,而分片就旨在解决在以太坊网络交易的线性问题。

分片可以让节点同时并行操作,也就提高了整体区块链的每秒交易处理量。在分片方案下,以太坊网络可以被划分成多组节点。每组节点构成一个分片,每个分片处理组内的所有交易。这就使得每个分片可以同时处理不同的交易。

在每个分片内部,某些节点扮演了“汇总人”(collators)的角色,定期创建“汇总”(collation),或者说是关于该分片的信息合集。每个 collation 都会包括以下信息:

1. 该 collation 所属分片信息;

2. 交易完成之前分片状态的信息;

3. 交易完成之后分片状态的信息;

4. 2/3汇总人的数字签名以验证 collation 中的信息。

在网络中,每个分片中的汇总信息都会被整合进一个单独的区块,然后添加到到以太坊区块链中。也就是说,分片技术使得节点组合处理并验证交易,但只有汇总信息会被添加到区块链上。假设有10个分片,每个分片处理5笔交易,那么下个区块链中的区块则包含了50笔交易信息,而不再要求节点按顺序处理这五十笔交易。

但是分片技术会伴随两个问题。首先,每个分片都必须保证有足够多的节点才能确保网络的安全性。如果节点过少,那么2/3的汇总人则有可能进行串通,从而产生恶意行为。其次,两个分片之间的交易处理难度很高,如果只存在一个分片,则不会产生类似问题,因为它代表了整个区块链。目前的方法还需要详尽的收据和证明。

 

Plasma

Plasma是另一种在 “链下” 处理交易的解决方案,也就是说,交易并不是在以太坊主网上进行。Plasma使得许多区块链(子链)能够从原来的区块链上分离出来(根链)。因此,每条子链都能在基于根链底层安全性的前提下,独自处理和维护交易。

通过Plasma,子链中的所有计算都由根链助推,但是根链只需要在某条子链中产生争议的时候亲自进行计算。这种方案使得区块链上的所有交易信息可以由子链分担,从而在速度和效率上达到最优。根据子链节点的意愿,他们可以撤回交易信息,并且将交易记录输出至根链。

这个方案有一个独特的优点。每个 Plasma 链都能制定自己的标准和规范,这意味着不同的子链能够支持针对不同需求的交易(例如隐私性),同时所有的交易都处于同样的、安全的环境中。

 

雷电网络

雷电网络也是一种链下扩容解决方案,可以使节点之间维护交易记录而不用请求根链验证每笔交易。两个节点之间可以开通一个“状态通道”(state channel),这是用户间的双向通道。交易信息会在两个节点之间传递,并且需要双方签名来保证不可篡改性。

雷电网络对于经常性和规律性支付来说十分实用,例如,用户需要每周支付某公司10美金以获取某项服务,或是在超市进行定期采购。在两个节点间记录并验证此类交易,而无需调动整条区块链中的节点,如此一来根链就可以释放出巨大的空间。

无论何时,状态通道中的参与者可以选择关闭交易,但所有交易的最终结果都会记录在根链上,继而被包含在下一个区块中。这意味着,假使连续一年每周支付10美元,区块中的最终交易记录是520美元,而非52笔10美元的交易。

雷电网络解决方案有利有弊。问题在于节点只能与他们的“邻居”交流,也就是说如果节点A和节点B之间开启了一条状态通道,节点B和节点C之前也有一条状态通道,A无法直接向C发送资金。但是以这种通道形式进行交易可以避免资金被盗取或锁定。A虽然无法直接转账给C,但可以将B作为“中间人”,而B由于受到A和C的限制,也无法窃取资金。

而雷电网络最主要的优点,就是可以大幅降低交易的gas费用。因为与根链上的交易相比,发生在节点之间的链下交易所需gas成本更低。

 

Casper

Casper 是一系列共识协议的集合,该协议旨在帮助以太坊从工作量证明 (PoW)转向权益证明 (PoW)。在工作量证明算法下,为了解决加密难题挖出新区块,矿工必须要耗费一定能源。若是正确解决难题,他们就可以获得奖励,但这个过程需要大量能源成本(并且由于区块难度上升,成本还在持续增加)。PoS挖矿确实有烧钱和能源浪费两大缺陷,目前每年需要花费120亿美元来维持工作量证明机制。

在权益证明 (PoS) 中,验证者会取代矿工在区块链中对区块进行验证(验证取代挖矿)。验证者通过在某个区块上质押资产进行验证,避免了计算难题所需的资源成本。质押数额最高的区块会被验证,进而被添加到区块链中。

实质上,验证者通过在合约中锁定资金押注某个区块会被添加到区块链中,直到下一个区块被加入并且被证明是正确的区块,他们就会获得奖励。如果验证者施行不正当行为,那么他们所质押的资金将会被罚没。

从概念上来看,PoW 到 PoS 的转变可以防止区块链被恶意攻击。在 PoW 算法下,一次失败的区块链攻击仅仅使攻击者损失了时间和资源成本。但在 PoS 算法下,失败的攻击则会直接导致经济损失,因为他们质押在错误区块中的资金将会被立即罚没。

Casper 最终的部署将基于该协议的两个迭代:Casper FFG 和 Casper CBC。这两个协议将被部署在以太坊上用于网络测试 PoS,并且在算法过渡完成之前识别潜在问题。

 

Casper FFG 

(Casper the Friendly Finality Gadget)

Casper FFG 使 Casper 的首个迭代版本,其中区块依然经由 PoS 算法挖出。不同的是,每50个区块就会有验证者介入测试 PoS 机制。这个“检查点”会使用 PoS 协议来评估最终确定性。“最终确定性”意指该次操作已经完成且完全不可篡改。在 FFG 中,验证者质押资金以完成前50个区块的最终验证。

译者注:Casper FFG 由于混合了 PoW 和 PoS 机制,使得主链和分片链的开发工作中存在大量重复的劳动,因此 FFG 于去年6月被弃置。而在理论上 Casper CBC 更具有可实现性、部署速度会更快,因此 CBC 将会被部署于以太坊2.0中。

 

Casper CBC

Casper CBC (Correct-by-Construction) 是 Casper 的第二个迭代。通常来说,要部署一个协议需要先正式确定,然后证明其符合所有给定的特性。而 CBC 中的 PoS 协议仅需要部分确定,为了满足相关属性再做进一步精细调整。因此,不同于从一开始就有精确的定义,该协议将采用循序渐进的方式进行部署。

那么 CBC 如何适应过程中可能出现的问题呢?这就需要通过一个被称为“理想对手”的协议来为 CBC 提出假设、错误和协议未来可能面临的问题。

Casper 系列协议不仅仅囊括了扩容性议题,其中还包括节省能源和提高安全性的考虑。然而,随着增加区块所需能源损耗的降低,要实现网络扩容也将更具有挑战性。尽管 Casper 并不是专门为实现扩容设计的,但仍然会为网络的流量承载能力作出积极贡献。

译者注:进一步了解 Casper CBC,可继续阅读本站文章《Casper CBC:什么是共识和确定性?》《Casper CBC 协议安全性证明》

 

结语

值得注意的是,以上这四个方案互不相斥,它们将被全部应用到以太坊2.0的更新中,或多或少地解决以太坊的扩容问题。扩容性问题是近几年来以太坊开发者的关注焦点。随着越来越多的 dApp 开发和上线,更完善的扩容性解决方案也会持续出现在我们的视野之中,帮助未来的以太坊将潜力发挥到极致。

 

 

原文链接:https://media.consensys.net/the-state-of-scaling-ethereum-b4d095dbafae

转载请注明:ECN以太坊中国