原文作者:Vitalik
原文翻译:TinTinLand
Rollups在以太坊社区中风靡一时,有望在未来成为以太坊的关键可扩展性解决方案。但是这项技术到底是什么,从中值得期待什么?又将如何使用它?本文在分析以太坊几个重要扩展方案的基础上,试图回答Rollups相关的一些关键问题。
背景:什么是L1和L2?
有两种方法可以扩展区块链生态系统。第一种,可以让区块链本身拥有更高的交易能力。这种技术面临的主要挑战是,具有“更大区块”的区块链本质上更难以验证,并且可能变得更加集中。为了避免这种风险,开发人员可以提高客户端软件的效率,或者持续地使用诸如分片之类的技术,以允许在多个节点上拆分构建和验证链的工作。也就是目前正在构建的以太坊的升级。
第二种,可以更改使用区块链的方式。用户不是将所有活动直接放在区块链上,而是在“第2层”协议中,在链下执行大部分活动。链上有一个智能合约,它只有两个任务:处理存款和取款,以及验证链下发生的一切都遵循规则的证据。有多种方法可以进行这些证明,但它们都具有一个共同的特性,即在链上验证证明比在链下进行原始计算要便宜得多。
状态通道如何运作
假设一个具体案例,Alice为Bob提供了一个网络连接,Bob以每兆0.001美元的价格支付费用。他们的交易不是每一次都要付款,而是使用以下L2方案。
首先,Bob将1美元放入智能合约中。为了向Alice支付第一笔款项,Bob签署了一张“票证”,上面写着“0.001美元”,并将其发送给Alice。为了进行第二次付款,Bob会签署另一张写着“$0.002”的票,并将其发送给Alice。依此类推,根据需要支付尽可能多的款项。当Alice和Bob完成交易后,Alice可以将最高价值的票据发布到链上,并包装在自己的另一个签名中。智能合约验证了Alice和Bob的签名,向Alice支付了Bob票上的金额,并将其余部分退还给Bob。如果Alice不愿意关闭通道,Bob可以启动一个退出期;如果Alice在这段时间内没有提供票据,那么Bob就会拿回他所有的钱。
这种技术强大之处在于:它可以调整处理双向支付的智能合约关系。例如Alice和Bob在频道内签订合约,以及如果Alice和Bob有一个开放的渠道,Bob和Charlie也是如此,Alice可以与Charlie进行无信任的互动。
Mobius Finance推出2021年以太坊历程回顾得分活动:1月1日,据官方消息,去中心化多资产协议MobiusFinance宣布推出2021年以太坊历程回顾得分活动,分数最高的前5名用户每人将获得200美元作为奖励。用户可在指定页面输入钱包地址,生成报告后下载并转发即可参与。
据悉,目前以太坊创始人Vitalik Buterin和FTX创始人兼CEOSBF均为84分,三箭资本CEOSuZhu获得88分。此前报道,2021年11月,MobiusFinance正式上线Polygon主网。[2022/1/1 8:18:19]
但是,channels可以做的事情是有限的。比如不能使用channels将资金从链下发送给尚未参与的人。channels不能用于表示没有明确逻辑所有者的对象。相比简单的经常性支付,如果有更复杂的需求,则需要大量的资金来锁定。
另请参阅:https://www.jeffcoleman.ca/state-channels和statechannels.org
PoS或DPoS)。每个间隔,操作员都会生成一个“batch”,其中包含他们从链下收到的所有Plasma交易。它们生成一个Merkle树,其中在树中的每个索引处,如果存在这样的交易,则有一个事务转移资产ID,否则该叶子为零。
他们还将每个索引的Merkle分支发送给该资产的当前所有者。要提取资产,用户将发布最近事务的Merkle分支,并将资产发送给他们。合约开始一个挑战期,在此期间,任何人都可以尝试使用其他Merkle分支来证明退出无效,方法是发送方在发送资产时不拥有资产,他们在稍后的某个时间点将资产发送给其他人。如果7天内没有人证明退出是欺诈性的,用户可以撤回资产。
Plasma提供比状态通道更强的属性:可以将资产发送给从未参与系统的参与者,并且资金要求很低。代价则是:在“正常操作”期间,通道不需要任何数据就可以上链,但Plasma要求每条链定期发布一个哈希值。此外,Plasma体转移不是即时的,必须等到间隔期结束以及区块公开上链。
此外,Plasma和通道有一个共同的弱点:它们之所以安全的背后依赖于这样一种理论——两个系统控制的每个对象都有一些逻辑上的“所有者”。如果该所有者不关心他们的资产,则可能导致涉及该资产的“无效”结果。这对于许多应用程序来说是可以的,但对于许多其他应用程序来说,是一个交易破坏者。即使是在未经所有者同意的情况下更改对象状态的系统也无法很好地使用Plasma。这意味着在Plasma或通道部署中,需要大量的“特定于应用程序的推理”,并且不可能制作一个仅模拟整个以太坊环境的Plasma或通道系统。为了解决这个问题,让我们开始了解第三种方案——Rollups。
三箭资本创始人:前代币CEX有一天也会有回顾性的奖励:金色财经报道,三箭资本创始人Zhu Su发推称,如果我们正在进入用户拥有的代币经济,那么理所当然地,前代币CEX有一天也会有回顾性的奖励。[2021/9/18 23:34:21]
另请参阅:?http://plasma.io/plasma-deprecated.pdf
关于Rollups
Plasma和通道是“完整的”L2方案,因为它们试图将数据和计算都移出链下。但是,围绕数据可用性的基本博弈论问题意味着,不可能对所有应用程序都安全地执行此操作。Plasma和通道通过依赖所有者概念来解决这个问题,但这影响了他们的应用范围。然而,Rollups是一种“混合”L2方案。Rollups将计算移动到链下,但将每个任务的部分数据保留在链上。为了提高效率,他们使用了大量复杂的压缩技巧,尽可能用计算来替换数据。结果是系统中可扩展性仍然受到底层区块链的数据带宽的限制,但受限的程度低:以太坊基础层ERC20令牌传输的成本约为45000gas,而Rollups中的ERC20令牌传输占用16字节的链上空间,成本低于300gas。
值得注意的是,将数据“放在IPFS上”是行不通的,因为IPFS没有就任何给定的数据是否可用,达成共识,数据必须在区块链上。有了将数据放在链上这一共识,Rollups允许任何人根据需要在本地处理任何操作,允许他们检测欺诈、发起提款或亲自开始生成交易batch。缺乏数据可用性问题意味着恶意或离线操作员可以造成的伤害更小,Rollups更容易推理,为有权发布batch的人开辟了更大的使用空间。最重要的是,缺乏数据可用性问题意味着不再需要将资产映射到所有者,这使得以太坊社区对Rollups扩展方案十分感兴趣,Rollups是完全通用的,甚至可以在Rollups中运行EVM,允许现有的以太坊应用程序迁移到Rollups,几乎不需要编写任何新代码。
另请参阅:https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/optimistic_rollups/
Rollups工作原理
ETC Labs发文回顾51%攻击事件:并不打算回滚任何交易:8月11日,ETC Labs官方发文回顾总结近期51%攻击事件。官方表示,首先在攻击期间,官方与矿工及交易所保持联系,就攻击事件提供建议,要求暂停存取款,并确保使用Geth或Besu核心客户端。其次,官方就攻击事件作出相关声明:1.指责向攻击者出售算力的矿池并不合理。虽然矿池可以改进系统鼓励矿工诚实行为,但并不对整个网络安全负责。2.指责ETC链本身也不合理。ETC协议是完全按照其设计在运行,恶意矿工挖出的区块根据共识规则是有效的,只不过其总体算力占比最大。因此,针对此次事件,官方并不打算回滚任何交易。官方强调称,所有的PoW链都很容易受到攻击。不要只关注ETC受攻击,需要认识到这是任何PoW链普遍的弱点。无论哪个社区都应该共同努力减少安全风险。最后,官方表示,ETC正在实施一系列措施以防止攻击再次发生:1.正在建立更健全的监测和快速反应系统,以此提早预警。2.正在研究一种新的挖矿算法,以减少攻击可能性,并限制攻击破坏性。3.正与矿工、矿池建立合作关系,提高算力鼓励诚实挖矿行为;4.正与Kobre & Kim律师事务所、以及CipherTrace合作,协助进行刑事调查。5.ETC将继续坚持其理念,继续进行技术开发。[2020/8/11]
链上有一个智能合约,它维护一个状态根:Rollups状态的Merkle根。
任何人都可以发布batch,即高度压缩的事务集,以及以前的状态根和新的状态根。合约检查batch中的上一个状态根,是否与其当前状态根匹配;如果匹配,它会将状态根切换到新的状态根。
为了支持存款和取款,添加了输入或输出“超出”汇总状态的事务的功能。如果batch具有来自外部的输入,则提交batch的事务还需要将这些资产转移到Rollups合约。如果一个batch有输出到外部,那么在处理该batch时,智能合约会启动这些提款。
如何知道batch中的后状态根源是正确的?如果有人可以提交一个具有任何post-stateroot的batch而不会产生任何后果,那么他们可以将Rollups中的所有硬币转移给自己。这个问题很关键,对此产生了两个截然不同的解决方案系列,导致了两种不同的Rollups。
现场 | 金色财经 VP佟扬回顾2019区块链行业关键词:2019年12月27日,由金色财经主办的“与时共创”颁奖盛典在京举行。在活动现场, HIMALAYA COO、金色财经 VP、CoinTime COO佟扬 发表“2019区块链行业关键词”的主题演讲时指出:2019区块链行业关键词分别为:Libra、Bakkt、DCEP、DeFi、减半、1024讲话、上市、产业区块链、海南、粤港澳大湾区。[2019/12/27]
OptimisticRollups,使用欺诈证明:Rollups合约跟踪其状态根的整个历史记录和每个batch的哈希。如果有人发现一个batch具有不正确的后状态根,他们可以发布一个证明来链接,证明该batch的计算不正确。合约将验证证明,并还原该batch及其之后的所有batch。
ZKRollups,使用有效性证明:每个batch都包含一个称为ZK-SNARK的加密证明,它证明post-stateroot是执行batch的正确结果。无论计算量有多大,证明都可以在链上非常快速地验证。
在两种类型的Rollups之间存在复杂的权衡:
总的来说,在短期内,Optimistic的Rollups可能会在通用EVM计算中胜出,而ZKRollups可能会在简单的支付、交换和其他特定于应用程序的用例中胜出。
据上图可知,声称batch无效的欺诈证明将包含绿色数据:batch本身以及Merkle树的部分,这些部分只需要证明由batch读取和/或修改的特定帐户。黄色树中的节点可以从绿色的节点重建,因此不需要提供。此数据足以执行batch并计算后状态根。如果计算出的状态后根和batch中提供的后状态根不相同,则该batch是欺诈性的。
可以确定的是,如果batch构造不正确,并且所有以前的batch都正确构造,则可能会创建欺诈证明,表明该batch构造不正确。请注意有关以前batch的声明:如果有多个无效batch发布到Rollups中,则最好尝试证明最早的batch无效。当然,如果batch构建正确,则永远不可能创建欺诈证明,证明该batch无效。
其中一部分只是高级编码:以太坊的RLP在每个值的长度上浪费了1个字节。但是也包含了一定的压缩技巧:
动态 | EOSIO黑客马拉松一周年 Block.one发推回顾及展望:Block.one今日发推回顾全球黑客马拉松一周年,总结失败的原因,同时展望未来,汇报BuiltOnEOSIO项目的进展情况。
回顾:Block.one于2018年举办了EOS全球黑客马拉松系列赛。该旅程从香港开始,到悉尼、伦敦、前往旧金山的 “非洲虚拟活动”,最终在开普敦进行总决赛。
展望:文中更新了四个项目的发展情况。
1. GeneOS: 是一个基于区块链的数据所有权,市场和基因组大数据安全计算平台,将其项目推进到2020年第一季度的beta版,并很快推出了试点计划。
2. Smartpress: 不仅继续开发其Web应用程序,该应用程序允许任何人将应用程序与EOSIO智能合约无缝集成。
3. Chestnut: 致力于通过提供易于使用且具有安全功能的帐户来改善区块链应用程序的用户体验,正在为2020年的首发做积极准备。
4. NouGit团队:继续深耕编程(代码)协作。[2019/12/12]
Nonce:此参数的目的是防止重放攻击。如果帐户的当前Nonce为5,则该帐户的下一笔交易必须具有Nonce5,一旦处理了交易,帐户中的随机数将增加到6,因此无法再次处理该交易。在Rollups中,我们可以完全省略随机数,因为我们只是从前状态中恢复随机数;如果有人尝试使用较早的随机数重放交易,则签名将无法验证,因为签名将针对包含更高Nonce的数据进行检查。
Gasprice:我们允许用户以固定范围的Gasprice付款,如2的16次幂。或者可以在每个batch中都有一个固定的费用,甚至将gas支付完全转移到Rollups协议之外,并让交易参与者通过状态通道向batch创建者支付费用。
Gas:我们同样可以将总Gas限制为2的多次幂。或者在batch级别设置Gas限制。
To:我们可以用index替换20字节的地址。如果一个地址是添加到树中的第4527个地址,我们只使用index4527来引用它,将向状态添加一个子树,以存储index到地址。
Value:我们可以用科学记数法存储值。在大多数情况下,转账只需要1-3位有效数字。
Signature:我们可以使用BLS聚合签名,它允许将大量签名聚合成单个约32-96字节的签名。然后,可以针对一个batch中的整组消息和发件人检查此签名。表中的“约0.5”表示在聚合中可以组合的签名数量存在限制,可以在单个块中验证,因此大批量约每100个事务需要一个签名。
ZKRollups的一个重要压缩技巧是,如果交易的一部分仅用于验证,并且与计算状态更新无关,则该部分可以留在链下。OptimisticRollups则无法做到,因为如果以后需要在欺诈证明中检查数据,则仍需要将数据包含在链上,而在ZKRollups中,证明batch正确性的SNARK已经证明提供了验证所需的任何数据。具备隐私保护功能的rollups是一个重要例子:在OptimisticRollups?中,每个交易中用于隐私的约500字节,ZK-SNARK需要在链上;而在ZKRollups中,覆盖整个batch的ZK-SNARK已经毫无疑问地表明“内部”ZK-SNARK是有效的。
这些压缩技巧是Rollups可延展性的关键。如果没有它们,Rollups可能只是基本链可扩展性的10倍左右,而进行数据压缩后,几乎所有应用的扩容性都可以实现100倍以上的提升。
完全无政府状态:任何人都可以随时提交batch。这是最简单的方法,但它有一些重要的缺点。一旦存在多个参与者,同时生成并尝试并行提交batch,但最终只有一个batch能被成功打包。这导致在生成证明方面浪费大量精力,以及将batch发布到链中浪费Gas。
中心化处理:存在一个排序者来提交batch。这是最“高效”的,但它依赖于一个核心的actor来操作。
排序者拍卖:举行拍卖以确定谁有权成为第二天的排序者。这种技术的优势在于它能筹集资金,通过Rollups控制的DAO来进一步分配。(参见:MEV拍卖)
从PoS集合中随机选择:任何人都可以将ETH存入Rollups合约,并且每个batch的排序者是从其中一个存款人中随机选择的,被选中的概率与存入的金额成正比。这种技术的主要缺点是它会导致大量不必要的资本锁定。
DPoS投票:序列者在拍卖中被选中,但如果他们表现不佳,代币持有者可以投票将他们踢出并举行新的拍卖。
可以允许许多排序者并行发布batch,以提高抗审查性,而不必担心某些batch会因为某些其他batch首先被包含而无效。
如果状态根是欺诈性的,则无需还原整个batch;您可以只还原状态根,并等待某人为同一batch提供新的状态根。这为交易发送者提供了更好的保证,即他们的交易不会被还原。
总而言之,这是一个相当复杂的技术,试图在效率,简单性,抗审查性和其他目标的复杂权衡之间取得平衡。现在说这些想法的哪种组合效果最好还为时过早。时间会证明一切。
Rollups?能带来多少扩展??
在现有的以太坊链上,gas限制为1250万,交易中每个字节的数据花费16gas。这意味着,如果一个块只包含单个batch,则该batch可以有=750,000字节的数据。如上所示,ETH传输的Rollups每个用户操作只需要12个字节,这意味着该批最多可以包含62,500个事务。在13秒的平均区块时间下,这相当于约4807TPS。
以下是其他一些示例用例的图表:
最大可扩展性增益的计算公式为/*1200万/1250万。
值得注意的是,这些数字过于乐观。一个块几乎永远不会只包含一个batch,至少因为存在并且将有多个Rollups。其次,存款和取款将继续存在。第三,在短期内使用率会很低,因此固定成本将占主导地位。但即使考虑到这些因素,超过100倍的可扩展性增益也有望成为常态。
现在,如果我们想超过约1000-4000TPS该怎么办?这就是Eth2数据分片的用武之地。分片提案每12秒提供16MB的空间,可以容纳任何数据,且确保对该数据的可用性。此数据空间如果由Rollups使用,每秒约1398kb空间比现有以太坊链提高了23倍,从长远来看,数据容量预计将进一步增长。因此,使用Eth2分片数据的Rollups可以共同处理多达约10万交易,未来甚至更多。
Rollups?有哪些尚未完全解决的挑战?
虽然Rollups的基本概念现在已经很好理解,它们是可行和安全的,并且已经有多个Rollups部署到主网中,但仍有许多Rollups设计领域尚未得到充分探索,将以太坊生态系统的大部分内容完全引入Rollups以方面存在很多挑战。一些关键问题包括:
用户和生态入驻-使用Rollups项目不多、用户不熟悉,很少有钱包集成Rollups。商家和慈善机构尚未支持这种支付方式。
跨Rollups交易-高效地将资产和数据从一个Rollups移动到另一个Rollups,而无须产生经由L1的费用。
审计激励-如何最大程度提高至少有一个诚实节点完整验证一个OptimisticRollup的机率,使问题出现时他们会广播欺诈证明?对于小规模Rollup(高至每秒几百笔交易),这个问题不大,因为对矿工来说只是举手之劳,但对于大规模的Rollup来说,还需要更充分的理由以说服矿工去做验证。
探索Plasma和Rollups之间的设计空间-是否有技术可以将一些与状态更新相关的数据放在链上,但不是全部,且这些数据会产生有用的东西?
最大限度地提前确认安全性-许多Rollups提供了“pre-confirmation”的概念,以实现更快的用户体验,其中排序者立即提供承诺,即交易将包含在下一批中,并且如果排序者违背了诺言,则排序者的存款将被销毁。但这一计划的经济安全是有限的,因为有可能同时向许多行为者做出许多承诺。这种机制能否得到改进?
提高对缺失的排序器的响应速度-如果Rollups的排序者突然脱机,那么短时间从这种情况中恢复,要么是快速且低消耗地切换到另一个Rollup,要么是换一个排序者,都是有成本的。
高效的ZK-VM-生成ZK-SNARK证明通用EVM代码已正确执行并具有一个给定的结果。
结论?
Rollups是一种强大的、新颖的L2扩展方案,预计将成为以太坊在短期和中期扩展的基石。与之前的L2扩展方案不同,它们可以支持通用的EVM代码,允许现有应用程序轻松迁移。而Rollups通过妥协——交易处理不是完全在链下进行,而是每笔交易留下一小部分数据在链上,在以太坊社区中获得了高度关注。
从技术设计角度,Rollups有多种类型,如使用欺诈证明的OptimisticRollups,使用有效性证明的ZKRollups。Rollups仍然是一种早期的、正迅速发展的技术,预计在未来几年中,Rollups空间中将出现更多令人兴奋的项目。
原文链接
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。