本文深入探讨了以太坊的扩展解决方案,包括状态通道、Plasma、侧链和Rollup。详细解释了每种方案的原理、优缺点以及实际应用,并深入分析了Rollup的不同类型(Optimistic Rollup、ZK Rollup、Validium)及其特点。文章还讨论了数据可用性问题以及Polygon等具体项目。
在前一章中,我讨论了 Rollup 的概念。本章不需要,但我建议你阅读它: https://learnblockchain.cn/article/20432
在本章中,我将讨论以太坊的扩容解决方案:
在 Rollup 内部,我将告诉你所有不同类型的 Rollup:
状态通道 (State Channel) 是以太坊的二层 (Layer-2) 扩容解决方案,它允许两个或多个用户通过“通道” (channel) 进行链下交易,并且仅将最终结果记录在区块链上。
通道 (Channel) 是一种链下协议,允许双方频繁交易,而无需将每笔交易都发布到以太坊。你可以将其想象成一个私人隧道,两个人可以在其中交换消息或付款,隧道的规则由双方都同意的多重签名智能合约执行。
ChatGPT 生成的通道示例 XD
那么它可以用于哪些用例呢???
有两种类型的状态通道:
支付通道 (Payment channels) → 专注于支付。
步骤 1 — 打开通道(锁定资金)
Alice 和 Bob 各自将资金存入以太坊上的多重签名智能合约。
示例:Alice 锁定 1 ETH,Bob 锁定 2 ETH。
步骤 2 — 链下交易(在通道中通信)
一旦通道打开,Alice 和 Bob 就可以交换签名消息,而不是链上交易。
示例消息:
这些更新只是签名,而不是区块链交易。
步骤 3 — 协商最终状态
经过多次链下交互,Alice 和 Bob 达成最终余额的协议。
示例结果:
步骤 4 — 关闭通道(结算)
最终状态被提交给多重签名合约。
合约验证签名并释放资金:
状态通道 (State channels) → 泛化到任何链下状态更新。
这个与支付通道非常相似,下面是一个国际象棋游戏的例子,只有游戏结果才会在最终状态写入智能合约。
如果一方/多方试图欺诈,它仍然安全吗???
这取决于服务提供商的设计,但大多数情况下是 YES。假设 Alice 试图强制关闭通道以获取资金。
由于更新以太坊上的合约状态需要基于我们在合约中确定的阈值的协议,因此不可能这样做。
假设 Bob 和 Alice 下棋,我们设置阈值为 100%。那么只有 Alice 和 Bob 都同意才能最终确定通道的状态。
否则,Bob 可以在 X 天后取回资金。
这是一个基本的示例,可以帮助你理解是什么让状态通道变得安全或不安全。
使用状态通道的项目有哪些?
Plasma 是继 状态通道 (State Channel) 之后的第二种扩容解决方案。它就像 Rollup 的早期版本,有很多缺点。
Plasma 链是锚定到以太坊主网(根链 (root chain))的链。
💡 想象一下,你信任高速公路运营商来记录每辆经过的汽车的信息——但是有一天,他们隐藏了日志。现在,如果你需要证明你实际上在那条路上行驶过,你什么都拿不出来?
当 plasma 链试图创建包含无效交易的块时,就会出现这种情况。假设 Alice 向 Bob 发送 10 ETH,但实际上 Alice 并没有这样做。
好吧,这就是 Plasma 的 痛点 (pain point) —— 数据可用性 (Data Availability)。
因为交易数据保留在链下,只有压缩的承诺被发送到以太坊,如果运营商扣留数据,用户将失去证明欺诈甚至提取自己的资金的能力。
如何解决上述问题???
等等,等到 Rollup 部分。你会知道方法的!🔥🔥🔥
你认为这是 Plasma 部分的结尾吗?
不,让我们来看看真正使用 plasma 技术的著名项目。它是 Polygon V1 — Matic Network。
只是为了更新,现在 Polygon 已经迁移到使用 ZK Rollup 的 V2,Matic 是旧版本。
Matic Network 具有三层安全架构,其中涉及以下实体:
1) 区块生产者 (Block Producers) - 又名 BOR 链:这些参与将交易批量处理成区块,以确保更快的确认时间
2) 验证器层 (Validator Layer) — 又名 Heimdall:这些是验证器节点,它们批量处理区块生产者产生的区块,并将它们推送到以太坊
3) 网络观察者 (Network Watchers) - 它们是以太坊上的参与者,并使用欺诈证明来挑战他们认为在侧链上是欺诈性的任何交易。
数据可用性是一个问题。Polygon 如何解决它???
是的,这是一个非常简单的解决方案。在 plasma 的概念中,运营商 (operators) 正在将区块推送到以太坊上,并且这个实体是 中心化的 (centralized)。Polygon 通过在 Pos 共识上运行这一层来解决了这个问题。因此,Matic 是一条具有诚实验证器的链。
=> 用户总是可以获取数据以检查区块的有效性 (validity)。此外,Polygon 拥有 网络观察者 (Network Watchers) 为你执行此操作,以确保验证器将 有效 (valid) 区块推送到以太坊上。
=> 对于大型团队来说,这是一个很好的解决方案,有趣的是 Rollup 不需要验证器集,这是一种 资源浪费 (waste of resource)。在那一节见!😏
侧链 (Sidechain) 是一个独立的链,它有自己的共识,这可以与 以太坊 (Ethereum) 不同。想象它就像一个与以太坊 不同 (different) 的链,并且还支持与 EVM 兼容。
=> 因此,以太坊上的 Dapp 可以 轻松 (easily) 部署在该侧链上,而无需修改代码库。
为了使一个单独的区块链成为以太坊主网的侧链,它需要能够促进资产从以太坊主网转移到以太坊主网的能力。与以太坊的这种互操作性是使用区块链桥实现的—— https://ethereum.org/en/developers/docs/scaling/sidechains/
=> 因此,对于一个被称为侧链的链,它必须具有:
回顾 (Recap):
如果你阅读了 plasma 部分,你就会意识到 Polygon 运行他们自己的 Pos 并且还支持与 EVM 兼容。
=> Polygon 是 Plasma 和侧链的组合。
桥梁 (Bridge):
有两种类型的桥梁:无信任桥梁 (trustless bridge),受信任桥梁 (trusted bridge)。
受信任桥梁 (Trusted bridge) 是中心化桥梁 (centralized bridge),你总是必须信任像 Binance Bridge,Wormhole 这样的第三方。
无信任桥梁 (Trustless bridge) 是去中心化桥梁 (decentralized bridge),由于智能合约的逻辑(例如 Oraichain 的 Ton Trustless Bridge,IBC V2 协议),你的桥接资产始终被保存。
对于无信任桥梁 (trustless bridge),我将写一篇关于架构以及如何实施这种类型桥梁的新博客。在那上面见!
目前,有 3 种类型的 Rollup,它们是:
我实际上有一篇关于它的博客,你可以在第一部分查看。我仍然会再次解释基本概念。
https://learnblockchain.cn/article/20432
Rollup 是一个完整的网络,与 L1 (以太坊) 相比,它是独立运行的。它就像一个支持桥接、与 EVM 兼容的单独链,也是 plasma 类型,因为它会定期将 L2 链的状态更新到以太坊智能合约,但它没有共识 (NO CONSENSUS) 机制,并通过将交易数据写入 L1 交易中的 calldata/blob 字段来解决数据 ATA 可用性 (ATA AVAILABILITY)。
因此,每个人都可以从以太坊智能合约中获取每个L2区块的数据,以确保他们在L2上的交易完全有效。
=> 这意味着,没有办法 (no ways) 在没有 Alice 许可的情况下,存在从 Alice 到 Bob 的转账交易。
这是 Rollup 上的一个流程操作:
像 Optimism 这样的某些 Rollup 可以达到每秒 5208 TPS。这怎么可能呢?
这是以太坊的理念,它展示了为什么 L2 通过将 L2 的交易数据写入智能合约而不是 L1 具有更高的吞吐量 (TPS) 的原因。
在 2021 年,一个以太坊区块将包含 1500 万 gas 单位,这是一个硬编码值,以确保节点不必执行超出其实际能力范围的极端大的操作。现在是 3000 万。
想象一下,gas 就像一个操作单元,例如,在两个数字之间进行 ADD 操作需要 3 个 gas 单位。你可以查看以太坊中的 OPCODES gas,以了解每项操作的 gas 单位成本。
=> 假设只有 ADD 操作,则最多有 (30/3) = 1000 万个 ADD 操作。
使用多种技术,以压缩形式将 L2 的每个交易数据写入 L1(可以将其解压缩回原始形式)。
假设以太坊中的 1 个 tx 平均需要 112 字节的存储空间,则可以将大小为 12 字节的 1 个压缩 tx 存储在以太坊的 calldata 中的 tx 上。
=> 有 x10 TPS
在粗略的计算中,我们在理论上为 L2 提供了 5208 TPS。https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/#scaling-ethereum-with-optimistic-rollups
=> 这就是为什么 Rollup 可以比 L1 具有更多的 TPS。
L1 上 L2 的合约有哪些?
L1 上有 TWO 个合约实体:
Rollup 类型之间只有 1 个区别,即 证明类型 (proof type)。
使用 欺诈证明 (fraud proofs)。
排序器将没有证明的状态根发布到以太坊,并且挑战者可以在挑战期(≈7 天)内对其提出异议。
=> 这就是为什么当你从 L2 提取代币到 L1 时,需要 7 天时间。
项目 (Projects):Optimism, Arbitrum。
使用 有效性证明 (validity proofs)。
每个批次都带有一个 zk-proof,以太坊会立即验证它,因此可以立即最终确定状态根。
=> 使用这种类型,你可以立即提取代币。
项目 (Projects):zkSync, StarkNet。
与 ZK-rollups 类似,因为它也使用 有效性证明 (validity proofs),但是交易 数据可用性 (data availability) 保留在链下(未存储在以太坊上)。
=> 而不是将交易数据存储在 L1 智能合约上,只有 ZK PROOFS 存储在 L1 智能合约上,供用户检查区块的有效性 validity。
=> ZK PROOFS 大小小于交易数据,因此 TPS 可以高达 9000–10000 TPS。
=> 但是,当用户想要创建自己的证明以提取代币时,存在一个 受信任的假设。假设用户想要创建证明以直接提取,而无需将提取 tx 发送到排序器,他们必须具有交易数据,这些数据可以被 扣留 (WITHHOLD)。
这使其更便宜,更快,但与 ZK-rollups 相比,安全性保证较弱。
项目 (Projects):Immutable X, zkPorter。
- 原文链接: blog.blockmagnates.com/e...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!