这意味着,当部署任何实际 Plasma 或通道时,都需要大量的「某个特定应用程序的推理」,并且不可能创建一个模拟完全的以太坊环境 (或「EVM」) 的 Plasma 或者状态通道系统。为了解决此问题,各种 Rollup 方案出现了。 Rollups其他资源参见 EthHub on optimistic Rollups 和 ZK Rollups Plasma 和通道类是「纯粹」的二层方案,因为其将数据和计算都移至链下。然而,围绕「数据可用性」的基本博弈论问题意味着这些方案不一定对于所有应用来说都是安全的。Plasma 和通道方案的解决方式是依靠所有者完全知晓状态,但这使得此类方案无法完全通用化。Rollups,则是一种「混合型」二层方案。Rollups 将计算 (以及状态存储) 移至链下,但将每笔交易的一些数据放在链上。 为了提高效率,这类方案借助了许多复杂的压缩技巧以尽可能使用计算替代数据。结果是系统的扩容性仍然受到底层区块链的数据带宽限制,但比较来看仍十分有利:以太坊基础层 ERC20 通证的转移成本约为 45000 gas,而 Rollup 中的 ERC20 通证仅转移占用 16 字节的链上空间,成本不到 300 gas。 数据在链上这一点很关键 (请注意:将数据「放在 IPFS 上」是行不通的,因为 IPFS 不能就任何给定的数据是否可用提供共识;数据必须被记录在链上)。将数据放在链上并对此达成共识,使得任何人都可以根据需要在本地处理 Rollup 中的所有操作,从而允许其对欺诈进行监测、发起提款或亲自开始批量生成交易。缺乏数据可用性意味着一名恶意的或是离线的运营者能够产生的影响甚至会更小 (例如他们无法造成一周的延迟),从而为有权发布批量交易的人打开更大的设计空间,并使 Rollup 更容易有理可循。 更重要的是,缺乏数据可用性意味着不再需要映射资产到所有者,从而我们能得出以太坊社区相较之前的二层扩容方案对 Rollups 更加期待的关键原因之一:Rollups 是完全通用的,我们甚至还可以在 Rollup 内部运行 EVM,使得既有的以太坊应用几乎不需要编写新代码就能迁移到 Rollups 上。 Rollup 的原理到底是什么?在链上存在一份智能合约,其中包含一个状态根,即 Rollup 状态的默克尔根 (也就是 Rollup 内部的账户余额、合约代码等等)。 任何人都可以发布一批汇总交易(batch),这是一个经由高度压缩的交易集合,其中包含之前的状态根和新状态根 (处理交易之后的新默克尔根)。该合约会检查 batch 中的旧状态根是否匹配其当前的状态根,如果匹配的话,合约会对状态根进行更新。 (责任编辑:admin) |