消灭天价Gas费,一文了解以太坊Rollup互联解决方案
写在前面:
对于以太坊当前高昂的gas费问题,Vitalik明确提出短期应通过Rollup方案解决,然而,Rollup会面临明显的孤岛问题,这与DeFi的可组合性而言是对立的,那如何去解决这一难题呢?对此,以太坊开发者barryWhiteHat提出了一种Rollup与Rollup之间的交互解决方案,据悉,这将涉及到一套Rollup标准,以打破以太坊不同Rollup层之间的孤岛效应。
(图片来自:pixabay)
以下是该方案的译文:对于Rollup技术来说,一个不容忽视的问题便是用户锁定。随着以太坊gas价格持续上涨,越来越多的人会持有一些小额的资金,而他们又无法将其撤回到第一层(layer 1)。
例如,目前Rollup中的一笔转账成本约为0.01美元,而提币成本则至少为0.4美元,这意味着,如果用户存入1美元,然后他给别人转了0.4美元,那么除非gas价格下跌,否则双方都无法提出这些资金,但他们可以在Rollup内进行内部交易。
这真的很可怕,因为用户会被锁定在某个Rollup中,在接下来的6个月中,我们不太可能构建出最好的Rollup版本,我们可能会有多个不同版本的Rollup,这对不同的用例而言是有好处的,如果用户的资金被锁定在这些Rollup当中,那么这对于这些用户及社区来说都可能是一个问题。
这里我们描述了大规模迁移方案,其中用户可通过批处理代币转移+链上gas成本的方式,从layer 2转移到另一个layer 2。
这篇文章是建立在 [op/zk] rollup / mixers / MACI的基础之上的。
那它会是什么样的呢?
我们有一个源Rollup和目的地Rollup,我们希望用户从其中一个Rollup提币,并转移到另一个Rollup。因此,源协调器使用大规模迁移方案将多笔传输组合在一起,这样就可以在一笔交易中发送总量。在目的地端,迁移由目的地Rollup的协调器验证,这包括:
- 证明数据是可用的(这对于无需信任的大规模迁移而言是必需的);
- 检查转移的余额 == 每个叶子的余额之和;
- 在这些检查之后,可以将大规模迁移合并到目标状态树中;
转换(Translation)
如果两个Rollup都遵循相同的标准,则可以像上面那样进行大规模迁移。
但如果双方是不同标准的,我们将需要在大规模迁移和验证之间添加一个额外的转换步骤。在此步骤中,协调器将从一种格式转换为另一种格式。
需要一致的东西有:
- 签名;
- 公钥索引映射,就是如何将from索引映射到公钥;
- 哈希函数;
- 叶子格式;
激励措施
当用户大规模迁移时,他们需要支付源Rollup和目的地Rollup的费用。在源Rollup上,他们像在其他交易中那样,直接向源Rollup协调器支付费用。
目的地Rollup只允许使用一笔预定义的ETH费用进行大规模迁移,此费用在大规模迁移时直接从源Rollup协调器处支付。然后,目的地Rollup协调器可以验证大规模迁移,以便包含交易并接收费用。
这里存在gas价格波动的风险,并且源Rollup中定义的大量迁移费用将不足以支付验证成本。注意:多想想这个问题。
Orbits(链接有效性+数据可用性)
如果有一个Rollup想要:
- 加速大规模迁移(仅限Optimistic Rollup);
- 使大规模迁移的花费为
o(1)
;
- 对叶子(leaf)、签名、公钥可用性使用相同的标准;
- 信任源Rollup的有效性,对于ZK Rollup,这意味着信任zkSNARK、可信设置以及智能合约的安全性。对于Optimistic Rollup,这意味着如果源Rollup回滚,则返回到上次接受来自该源Rollup的大规模迁移的历史记录点。
结论
为了有效地进行大规模迁移,我们需要在Rollup之间进行标准化,最好先把原语标准化,因为ZK Rollup和 Optimistic Rollup并没有使用相同的原语。但是,标准化组件和大规模迁移的努力,可能会在一个更加健壮的解决方案生态系统中获得未来收益,在这种解决方案生态系统中,网络效应并不是全部。
目前,Rollup会自然形成一座孤岛,重要的是,我们必须用一种经济的退出方式来为用户构建Rollup。建立完美的解决方案还为时尚早,相反,我们应尝试以一种允许用户随技术的发展,而升级和改变的方式进行构建。
用户锁定,这是一个我们必须要去关注的大问题。