原文:Scaling Ethereum: Navigating the Blockchain Trilemma
翻译及校对:「StarkNet 中文社区」
同时实现安全性、去中心化和可扩展性这三个特性,是所有区块链的终极目标。但是区块链领域却存在着一个不可能三角:一条链最多同时实现两个特性,第三个特性一定会打折扣。在以太坊中,安全性与去中心化是必须保证的,所以扩展性方面就打了折扣。
随着使用人数上升,以太坊的瓶颈凸显:交易速度下降,gas 费上升。这样的循环会阻碍以太坊的普及。但如果通过增加区块容量来扩容,以太坊节点(以太坊交易历史的独立副本)运营成本就会增加,去中心化程度会减弱。另外,大区块可能会破坏共识,从而影响到安全性。为解决这些挑战,已经出现了各种类型的扩容解决方案,如侧链(Sidechain)与二层解决方案(Layer 2)。
侧链是随以太坊主网并行运转的独立区块链,通过优化其共识算法和区块参数来提高吞吐量。然而,由于侧链的本质是另一条链,其可扩展性是以牺牲安全性和去中心化(不可能三角)为代价。
相比 Layer 2,侧链不在以太坊上发布状态变更和交易数据,也不继承以太坊的安全性。而且侧链需要的信任假设更高,且无法实现去信任化安全性(trustless security),这使侧链更容易受到攻击。也容易出现链重组的情况。
Layer 2 是指那些依赖以太坊的共识与安全的链下解决方案。这些 Layer 2 解决方案通过在以太坊主网(Layer 1)之外处理交易来帮助扩展应用,且同时可以受益于以太坊的去中心化安全模型。Layer 2是独立的区块链,它扩展了以太坊并继承了其安全性。
这些 Layer 2 的交易提交给 Layer 2 节点,而不是 Layer 1,然后最终在 Layer 1 上结算。一旦提交,交易就会由以太坊 Layer 1 保证其安全,同时也无法再修改。不同的 Layer 2 解决方案实现的细节是不同。
状态通道是交易参与者之间的通信环境。
状态通道是一种协议,用户可以在此协议中与对方「链下」交易「x」次,而只需要向以太坊主网提交两次链上交易。状态通道使用加密技术来证明最终生成的数据源自一组有效的中间交易。
每个通道由智能合约管理。参与者需要部署合约并存款以打开通道。链下交易开始后,双方都需要签署一个状态更新。最后关闭通道时,参与者需要在链上提交其最终认可的状态,然后智能合约根据每个参与者在最终状态中的余额分发资金。
状态通道有诸多优点,如吞吐量更高,隐私保护更好,延迟更低,还有交易费用比以太坊主网低。状态通道在微交易、去中心化应用和根据状态机的最终状态进行限定条件付款等场景下非常有用。
而状态通道也有缺点,比如假设所有参与者都必须同时在线并且做好应对纠纷的准备,即使纠纷无效,也可能造成资金损失。参与者数量在状态通道的生命周期内不可变,这也限制了其实用性。
与 Rollup 相比,状态通道安全性较低,因为没有将所有交易数据或状态承诺发布到主网。然而,它们与主网的连通性超过了侧链,使它们相对更安全。
Rollup 是一种将交易计算移到链下,同时将交易数据存储在主网上的 L2 解决方案。这使得 Rollup 能够继承以太坊的原生安全性(原生安全性依赖于以太坊的去中心化)。
下面是 Rollups 的工作方式:上千笔交易同批次打包。同一批次中的全部交易都在链下处理。这些交易信息打包成一笔交易后,发送到链上提交。
基于链下计算的 Rollup 有两种:乐观型 Rollup 和有效性证明 Rollup 。
乐观 Rollup(Optimistic Rollup)操作会假设批次中的所有交易都有效,并且默认不执行任何计算。如果交易被视为无效,任何人都可以在挑战期内生成欺诈证明来挑战交易。成功的欺诈证明会触发对有争议的交易重新执行,并相应地更新 Rollup 的状态。乐观 Rollup 与 EVM 兼容,并且可以使用原生以太坊工具在其上面构建。
有效性证明 Rollup(Validity Rollup)也称为零知识证明 Rollup。有效性证明 Rollup 将交易打包,并在链下执行。然后,链下证明者为这一批次交易创建有效性证明来验证交易有效性。有效性证明是密码学保证,确保 Rollup 提交的状态变化是执行一批次特定交易的结果。链下处理完成后,系统将继续完成链上处理:Rollup 运营者汇总该批次交易状态变化,与有效性证明一同提交链上。
有效性证明 Rollup 使用数学证明自动确保交易的完整性并保护协议安全。默认情况下,有效性证明 Rollup 不与 EVM 兼容,但在 Starknet 上有有效性证明 Rollup 编译器。
尽管 Rollup 仍在开发中,并且在某些方面可能不如以太坊安全,但是 Rollup 的潜质已在 StarkEx 等项目中得以体现。
StarkWare 的有效性证明 Rollup 解决方案 StarkEx 处理交易数量已达 3.92 亿笔交易,并且在其所有的 DeFi 与 NFT 的应用中,累计交易量达到 9814 亿美元。
随着使用人数上升,以太坊的瓶颈凸显: 大量交易为了尽快上链导致 gas 费用飙升。为了解决这些挑战,已经出现了各种类型的扩容解决方案,如侧链和 Layer 2。
侧链和 Layer 2 都采用类似的扩容方法,将交易执行移到链下。但是侧链负责自己的安全,而 Layer 2 继承了以太坊的安全,允许 Layer 2 在不牺牲去中心化和安全性的情况下实现扩容。
Rollup 是一种将交易计算移动到链下,同时将交易数据存储在主网上的 Layer 2 解决方案,这使得 Rollup 可以继承以太坊的原生安全性。Rollup 有两种:乐观型 Rollup 和有效性证明 Rollup。
有效性证明 Rollup 相比于乐观型 Rollup 更具优势,因为有效性证明 Rollup 优先考虑交易的安全性和完整性,要求每一笔交易都在链上验证。这确保所有的交易的有效性,并防止任何欺诈活动的发生。另一方面,乐观型 Rollup 依赖于欺诈证明来检测无效的交易,这可能导致延迟和潜在的安全漏洞。
Starknet 是有效性证明 Rollup,使用 STARK 而非 SNARK,这使得它能抵御量子计算机攻击,并消除了对可信设置的需求。如果有一种程序语言,使你无需理解底层技术就能用 STARK 扩展应用,会让你心动吗?心动不如行动,今天就开始学习 Starknet 的 Cairo 语言吧!