扩容概述

随着以太坊使用人数增加,区块链已经达到了一定的容量限制。 这提高了网络使用成本,从而导致需要“扩容解决方案”。

目前正在研究、测试和执行多种解决方案,这些方案采取不同的办法来实现类似的目标。

扩容的主要目标是提升交易速度(更快确定交易)和交易吞吐量(提高每秒交易量),而不影响去中心化或安全性(详情请见以太坊愿景)。 在第一层以太坊区块链上,高需求导致交易速度减慢和燃料价格难以持续。 提高网络速度和吞吐量是有意义地大规模采用以太坊的基础。

虽然速度和吞吐量很重要,但实现这些目标的扩容解决方案必须保持去中心化和安全性。 降低节点运营商的进入门槛,对于防止向不安全的中心化计算能力发展至关重要。

从概念上说,我们首先将扩容分为链上扩容和链外扩容两类。

链上扩容

这种扩容方法需要变更以太坊协议(第一层主网)。 区块分片目前是这种扩容方法的重点。

区块分片

区块分片是一个横向分割数据库以扩展网络承载能力的过程。

在以太坊中,区块分片将通过创建新链(称为“分片”)来减少网络拥塞和增加每秒交易量。

这还可以减轻每位验证者的负担,因为他们不再需要处理整个网络的所有交易。

详细了解区块分片。

链下扩容

链下解决方案与第一层主网分开实施,无需更改现有以太坊协议。

部分解决方案称为“第二层”解决方案,直接从第一层以太坊共识中获得安全性,例如乐观卷叠、零知识卷叠或状态通道。

其他解决方案包括建立不同形式的新链,这些新链单独从主网获得安全性,例如侧链或 plasma 链。

这些解决方案与主网进行通信,但为了实现各种不同的目标,它们获得安全性的方式也有所不同。

二层扩容

此类链下解决方案的安全性来自以太坊主网。

第二层是解决方案的一个集体术语,用于通过处理以太坊主网(第一层)的交易,同时利用主网的强大分散安全模式,帮助扩展您的应用程序。

当网络繁忙时,交易速度会受到影响,这可能使某些类型的去中心化应用程序的用户体验变差。 而且,随着网络越来越繁忙,由于交易发送者的目标是超越对方的出价,燃料价格也随之上升。 这可能会让以太坊的使用成本非常高。

大多数第二层解决方案均围绕着一个服务器或服务器群集,可以将它们称之为节点、验证者、操作者、排序器、区块生产者或类似术语。

根据实施情况,这些第二层节点可由使用它们的个人、企业或实体运行,或者由第三方运营商或一大群个人(与主网相似)运行。

一般而言,交易会提交给第二层节点,而非直接提交给第一层(主网)。

对于部分解决方案, 第二层实例会将它们分组,,然后锚定到第一层,之后受第一层保护且不能更改。

对于不同的第二层技术和实施而言,如何做到这一点的细节差异很大。

某个特定的第二层实例可能是开放的,由许多应用程序共享,也可能由一个项目部署,专供支持该项目的应用程序。

为什么需要第二层?

每秒增加交易量会大大提高用户体验,并减少以太坊主网上的网络拥塞情况。

卷叠就是将多个交易打包到一个交易中,然后发到以太坊主网上,这为用户减少了燃料费用。以太坊将更具包容性,任何人都可以用得起以太坊。

关于可扩容性的任何更新都不应以分散安全性为代价 - 第二层建立在以太坊的基础上。

有一些特定应用的第二层网络,在大规模处理资产时有它们自己的效率。

卷叠

卷叠在第一层之外执行交易执行任务,并在达成共识时,在第一层公开数据。

由于交易数据包含在第一层区块中,因此可以通过原生的以太坊安全性来保证卷叠的安全性。

有两种不同安全模式的卷叠:

乐观卷叠:假设交易在默认情况下有效,并且在遇到挑战的情况下只通过欺诈证明运行计算。

零知识卷叠:在链下运行计算并向链上提交有效性证明。 关于零知识卷叠的更多信息。

状态通道

状态通道采用多签合约,使参与者能够在链下快速自由地进行交易,然后再与主网结算。

这将最大限度地减少网络拥塞、费用和延迟。

现在有两种通道:状态通道和支付通道。

侧链

侧链是与主网并行运行且兼容以太坊虚拟机的独立区块链。

它们通过双向桥接与以太坊兼容,按照自行选择的共识规则和区块参数运行。

以太坊 Plasma 扩容解决方案

Plasma 是一条独立的区块链,锚定至以太坊主链,并使用欺诈证明(如乐观卷叠)来仲裁争议。

Validium

Validium 链使用诸如零知识卷叠之类的有效性证明,但数据未存储在第一层以太坊链上。

这会导致每条 Validium 链每秒处理 10000 笔交易,并且可以并行运行多条链。

为何需要如此多扩容解决方案?

多重解决方案有助于减少网络任意部分的总体阻塞情况,也可防止单点故障。

整体大于各部分的总和。

不同的解决方案可以同时存在,并且可以协同工作,对未来的交易速度和吞吐量产生指数效应。

并非所有解决方案都需要直接利用以太坊共识算法,替代办法或许能带来难以获得的好处。

没有一个单独的扩容方案可以完全满足以太坊愿景。

乐观卷积 OPTIMISTIC ROLLUP

乐观卷叠与第二层的以太坊主链同步进行。 它们能够实现可扩展性改进,因为它们默认不执行任何计算。 相反,它们会在一笔交易之后向主网提议新的状态或公证 (notarise) 交易。

通过乐观卷叠,交易以 calldata 的形式写入以太坊主链,并通过减少燃料费用进一步优化。

由于计算是使用以太坊缓慢而昂贵的部分,乐观卷叠可以改进高达 10-100 倍的可扩容性,具体取决于交易。

在引入分片链后,这个数字还会大大增加,因为如果交易有争议,将会产生更多的数据。

对交易提出异议

乐观卷叠并不实际计算交易,因此需要有一个机制来确保交易是合法而不是欺诈性的。

这正是欺诈证明的用武之地。

如果有人发现欺诈性交易,乐观卷叠将借助可用的状态数据,执行欺诈证明并运行交易的计算。

这意味着交易确认等待时间可能比零知识卷叠更长,因为交易可能受到质疑。

对交易提出异议

运行欺诈证明计算所需的燃料甚至可以报销。

来自 Optimism 的 Ben Jones 介绍了现有的保证金制度。

“任何可能能够采取行动帮助您证明欺诈以保护您的资金的人士,都要求您缴纳保证金。

您大概会拿出一些以太币并将它们锁定,然后说”嘿,我保证说实话”… 如果我不说实话,而且欺诈得到证实,这笔钱将会被没收。

这笔钱不仅有一部分会被没收,而且还有一部分将支付人们执行欺诈证明所消耗的燃料“

您可以看到,激励机制就是参与者会因欺诈而受到惩罚,也会因提供欺诈证明而获得补偿

零知识卷叠

零知识卷叠将打包数百个链下交易(或“卷叠”)并生成加密证明。

这些证明可以采用 SNARK(简洁的非交互式知识论证)或 STARK(可扩展的透明知识论证)的形式。

SNARK 和 STARK 均称为有效性证明并会发布到第一层。

零知识卷叠智能合约会在第二层维护所有转账的状态,而且这个状态只能用有效性证明来更新。

这意味着零知识卷叠只需要有效性证明,而不是所有交易数据。

使用零知识卷叠验证区块会更快、更便宜,原因在于其包含的数据更少。

使用零知识卷叠,当资金从第二层转移到第一层时不会有任何延迟,因为零知识卷叠智能合约接受的有效性证明已经验证了资金。

零知识卷叠处于第二层,可以优化以进一步减小交易的大小。

例如,帐户用索引而不是地址表示,这就把交易从 32 个字节减少到只有 4 个字节。

此外,交易也会以 calldata 形式写入以太坊,进而减少燃料消耗。

优点和缺点

优点

完成时间更快,因为一旦证据被送到主链上,状态即时验证。

不太容易受到 Optimistic rollup 可能会受到的经济攻击。

安全和去中心化,因为恢复状态所需的数据储存在第一层。

缺点

一些没有 EVM 支持。

有效性证明的计算量很大 – 对于链上活动很少的应用来说,不值得这样做。

运营者可以影响交易顺序

状态通道

通道允许参与者在链下进行x次交易,而在链上只能向网络提交两次交易。

这允许极高的交易吞吐量.

通道

参与者必须将以太坊的一部分状态,如 ETH 存款,锁定在一个多签合约中。

多签合约是一种需要多个私钥的签名(从而达成一致)才能执行的合约。

以这种方式锁定状态是第一个交易,并打开了通道。 然后参与者可以在链下快速自由地进行交易。

当互动结束后,提交最后一笔链上交易,解锁状态。

适用于:

  • 需要大量状态更新

  • 当参与者数量为公开时

  • 当参与者始终在线时

现在有两种通道:状态通道和支付通道。

状态通道

状态通道或许最好通过示例进行解释,比如井字棋:

  1. 在以太坊主链上创建一个井字游戏智能合约 “法官”,它了解井字游戏的规则,并能识别爱丽丝和鲍勃是我们游戏中的两个玩家。 该合约持有 1 个 ETH 的奖励。

  2. 然后,Alice 和 Bob 开始玩游戏,打开状态通道。 每一个动作都会创建一个包含“nonce”的链下交易,nonce 代表这些动作发生的顺序。

  3. 当有赢家时,他们通过向审判合约提交最终状态(如交易清单)来关闭通道,这时候只需要支付一笔交易费用。 审判者确保双方签署这一“最后状态”,并等待一段时间以确保没有人合法地对结果提出质疑,然后向 Alice 支付 1 ETH 的奖励。

支付通道

仅处理支付的简化状态通道(例如 ETH 转账)。

允许两个参与者之间的链下转账,只要他们的转账总额不超过存入的代币数量。

侧链

侧链是一个独立的区块链,与以太坊主网并行且独立地运行。

它有自己的共识算法(例如权威证明、委托权益证明、拜占庭容错)。

它通过双向主网来实现链接。

让人们对侧链感兴趣的是,它的工作环境和主链相同,因为同样基于 EVM(以太坊虚拟机)。

它不使用以太坊,它自己就是以太坊。

这意味着如果想要在侧链上使用 dapp ,只需将它部署在侧链上。

它的外观、给人的感受和行为与主链相似,仍然通过 Solidity 写合约,并提供 Web3 API 完成互动。

优点

既有的技术。 支持通用计算,EVM 兼容。

缺点

不够去中心化。

采用单独的共识机制。

未受一层保护(因此,从技术上而言,它不是第二层)。

侧链验证者达到一定数量可以进行欺诈。

Plasma 扩容解决方案

Plasma 是一条独立的区块链,锚定至以太坊主链,并使用欺诈证明(如乐观卷叠)来仲裁争议。

这些链有时被称为 “子”链,因为它们本质上是父链以太坊区块链的较小复制。

Merkle 树能够创建这些链的无限堆栈,可以从父链(包括主网)上分流带宽。

它们通过欺诈证明来确保安全性,每条子链都有自己的区块验证机制。

优缺点

优点

高吞吐量,每笔交易成本较低。

适用于任意用户之间的交易(如果两者都建立在 Plasma 链上,则每对用户都没有开销)。

缺点

不支持通用计算。 只支持特定逻辑的基本通证转账、兑换和几种其他交易类型。

需要定期监视(有效性要求)或者委托其他人监视网络,从而确保你的资金安全。

依靠一个或多个运营者来存储数据,并根据其需求提供数据。

为了等待挑战期,提款会延迟几天。 对于可替换的资产,这可以由流动性提供者来缓解,但需要支付相关的资本成本。

使用 Plasma

多个项目使用了 Plasma 技术,你可以将其整合到你的去中心化应用程序中。

Validium

使用 zk-rollups等有效性证明,但数据不存储在第一层以太坊主链上。

这可能导致每个 validium 链每秒有 1 万次易,并且多个链可并行运行。

优缺点

优点

没有提款延迟(链上/跨链转账没有延迟);因此,资本效益更高。

在高价值应用程序中,不容易受到可防欺诈系统所面临的某些经济攻击。

缺点

对一般计算/智能合约的支持有限;需要专用语言。

生成 ZK 证明需要很高的计算能力;对于低吞吐量的应用程序来说不具成本效益。

主观终结时间较慢(生成 ZK 证明的时间为 10-30 分钟)(但由于没有争议时间延迟,所以到完全终结的时间较快)。

生成证明需要链下数据在任何时候都可用。

使用 Validium

多个项目提供 Validium 的部署,您可以整合到您的去中心化应用中:

参考资料

https://ethereum.org/zh/developers/docs/scaling/

https://ethereum.org/zh/developers/docs/scaling/optimistic-rollups/

https://ethereum.org/zh/developers/docs/scaling/zk-rollups

https://ethereum.org/zh/developers/docs/scaling/state-channels/

https://ethereum.org/zh/developers/docs/scaling/sidechains/

https://ethereum.org/zh/developers/docs/scaling/validium/