解析 | 以太坊的扩容问题及解决方案
以太坊开发者很早就意识到以太坊网络扩容是一个值得探讨和投入的主题。然而,直到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 链都能制定自己的标准和规范,这意味着不同的子链能够支持针对不同需求的交易(例如隐私性),同时所有的交易都处于同样的、安全的环境中。
雷电网络
雷电网络对于经常性和规律性支付来说十分实用,例如,用户需要每周支付某公司10美金以获取某项服务,或是在超市进行定期采购。在两个节点间记录并验证此类交易,而无需调动整条区块链中的节点,如此一来根链就可以释放出巨大的空间。
无论何时,状态通道中的参与者可以选择关闭交易,但所有交易的最终结果都会记录在根链上,继而被包含在下一个区块中。这意味着,假使连续一年每周支付10美元,区块中的最终交易记录是520美元,而非52笔10美元的交易。
雷电网络解决方案有利有弊。问题在于节点只能与他们的“邻居”交流,也就是说如果节点A和节点B之间开启了一条状态通道,节点B和节点C之前也有一条状态通道,A无法直接向C发送资金。但是以这种通道形式进行交易可以避免资金被盗取或锁定。A虽然无法直接转账给C,但可以将B作为“中间人”,而B由于受到A和C的限制,也无法窃取资金。
而雷电网络最主要的优点,就是可以大幅降低交易的gas费用。因为与根链上的交易相比,发生在节点之间的链下交易所需gas成本更低。
Casper
在权益证明 (PoS) 中,验证者会取代矿工在区块链中对区块进行验证(验证取代挖矿)。验证者通过在某个区块上质押资产进行验证,避免了计算难题所需的资源成本。质押数额最高的区块会被验证,进而被添加到区块链中。
实质上,验证者通过在合约中锁定资金押注某个区块会被添加到区块链中,直到下一个区块被加入并且被证明是正确的区块,他们就会获得奖励。如果验证者施行不正当行为,那么他们所质押的资金将会被罚没。
从概念上来看,PoW 到 PoS 的转变可以防止区块链被恶意攻击。在 PoW 算法下,一次失败的区块链攻击仅仅使攻击者损失了时间和资源成本。但在 PoS 算法下,失败的攻击则会直接导致经济损失,因为他们质押在错误区块中的资金将会被立即罚没。
Casper 最终的部署将基于该协议的两个迭代:Casper FFG 和 Casper CBC。这两个协议将被部署在以太坊上用于网络测试 PoS,并且在算法过渡完成之前识别潜在问题。
Casper FFG
(Casper the Friendly Finality Gadget)
Casper CBC
那么 CBC 如何适应过程中可能出现的问题呢?这就需要通过一个被称为“理想对手”的协议来为 CBC 提出假设、错误和协议未来可能面临的问题。
Casper 系列协议不仅仅囊括了扩容性议题,其中还包括节省能源和提高安全性的考虑。然而,随着增加区块所需能源损耗的降低,要实现网络扩容也将更具有挑战性。尽管 Casper 并不是专门为实现扩容设计的,但仍然会为网络的流量承载能力作出积极贡献。
结语
转载请注明:ECN以太坊中国
微信公众号:ETH中文网