http://www.7klian.com

Vitalik说的跨RollupDEX是啥?

当人们还在思考用rollup的方法缓解Layer1拥堵的时候,Vitalik已经在思量rollup之间怎么做交互。

6天前,Vitalik提倡了一个叫做“跨rollup DEX”的提案,个中提到当一条rollup有智能合约陈设,另一条rollup没有完全的智能合约成果的时候,资产可以在两条rollup之间以去中心化的方法转移。有一点“隔空挪物”的感受。

这个进程到底是怎么实现的呢?哔哔News将提案,以及Vitalik和社区成员间的出色接头内容翻译如下:

假设我们有两条rollup,别离是rollup A和rollupB。Alice想要把rollup A上特定命量的代币转移到rollup B上。假如A和B都有完全的智能合约支持,在这种环境下,已经有关于如何故去中心化的方法办理这个问题的提案。本提案想要为只有rollup B有完全的智能合约支持(rollup A只能处理惩罚简朴的生意业务)的环境提供思路。

我们假设,rollup A上的生意业务有某种“备注字段”,假如没有的话,我们可以利用值的低阶位作为备注发送。

提案

假设存在一个生意业务中介Ivan(在实际实现中,将有很多中介可供选择)。Ivan在rollup A上有一个账户IVAN_A(他完全节制该帐户)。Ivan还将一些资金存入了rollupB上的智能合约IVAN_B中。

智能合约IVAN_B有以下法则:假如任何人发送TRADE_VALUE数量的代币到IVAN_A,个中包括一个地点DESTINATION作为备注,那么在MIN_REDEMPTION_DELAY块之后, IVAN_B将收到一笔生意业务,该生意业务包括一个代币转移的证明,从而把提取TRADE_VALUE数量的代币这样一笔生意业务列队到DESTINATION地点。提币凭据生意业务被包罗到rollup A中的批次和索引顺序处理惩罚,要颠末一些延迟(好比1天)。

当Ivan看到他在IVAN_A收到资金时,他可以亲自将TRADE_VALUE *(1 - fee)数量的代币发送到DESTINATION地点。他可以通过IVAN_B中的要领发送生意业务,该要领生存一笔记录,防备合约中的自动发送条款触发该生意业务。

预期的操纵很简朴:

Alice向IVAN_A发送一笔生意业务,个中包括N个代币和备注地点ALICE_B。

Ivan通过IVAN_B发送TRADE_VALUE * (1 - fee)数量的代币到ALICE_B。

第二步可以在第一步之后当即举办。假如Ivan证明第二笔生意业务和第一笔生意业务之间的时间戳差别很是小,那么合约甚至可以拟定法则,答允用度更高。

“最坏的环境”是Ivan没有像预期的那样向ALICE_B发送代币。在这种环境下,Alice可以期待rollup A上的生意业务确认,找到得到rollup B上的代币的其他途径来付出用度,,然后她本身就可以索要资金。

成本本钱

该方案的主要限制是,IVAN_B需要持有大量资金,以确保所有发送者都能获得付出。出格是,假设:我们把生意业务金额上限配置为TRADE_LIMIT(所以发送到IVAN_A的生意业务中,生意业务值> TRADE_LIMIT的生意业务都不是有效生意业务)。

同时,我们配置每个rollup批次最多可包括的生意业务数量是TXS_PER_BATCH。Alice可以本身查抄,rollup A即将到来的批处理惩罚之前有几多未处理惩罚生意业务,用她在IVAN_B合约中看到的资金减去这个值,并查抄剩余的金额是否足够。由于提币是按顺序处理惩罚的(这是上面顺序机制的方针),Alice不需要担忧在她本身提币之前IVAN_B会去处理惩罚后头的提币需求。

在一个批次中可以生意业务的最大金额是TRADE_LIMIT * TXS_PER_BATCH,因此IVAN_B合约需要至少持有这个数量的ETH,再加上足够的资金来包围未处理惩罚的生意业务。

譬喻,假设TRADE_LIMIT = 0.1 ETH(上限可以设得较量低,因为一笔较高金额的生意业务可以通过多笔生意业务完成),而且TXS_PER_BATCH = 1000。那么,IVAN_B需要有100 ETH的资金。

留意,在这个设计中尚有特另外隐含用度,因为任何生意业务高出0.1枚ETH的人都需要耗损区块空间,这与资金要求相衡量:假如你耗损掉一半的区块空间,那么你的资金要求也会翻倍(大概指隐含用度更高),反之亦然。要成立符合的均衡,好像应该让隐含用度比市场上呈现的显性用度少几倍。

假如我们想淘汰或消除这种耗损,rollup A可以被设计成这样,譬喻,让排序器发送一个签名动静,向Alice证明到今朝为止,批次中核准的所有动静。然后Alice就会知道在她之前没有生意业务(尽量恶意的排序器可以欺骗Alice,但价钱很高)。

备注

上面的设计成立在rollup A上的生意业务有一个备注字段的假设上,Alice可以利用该字段指定ALICE_B作为她吸收代币的目标地点。假如rollup没有此特性,那么我们可以利用以下办理方案。

Alice可以在顺序注册合约的rollup B上注册ALICE_B,并得到一个按顺序分派的ID(因此Alice的ID便是在她之前注册的用户数量)。配置MAX_USER_COUNT为用户数的最大值,假如有须要,这个值可以随时间向上调解。Alice可以简朴地确保TRADE_VALUE % MAX_USER_COUNT便是(Alice的ID),利用TRADE_VALUE的低阶位(这个数字暗示一个不重要的值)来暗示她想生意业务的代币数量。

从rollup B到rollup A的生意业务

假如Alice把rollup B上的代币转移到rollup A,可以利用雷同的机制,只是脚色颠倒了:

Alice将代币发送给IVAN_B

颠末一段时间的延迟,她将得到收回代币的权利

假如Ivan可以向IVAN_B证明,他在rollup A上给Alice发送了代币,Alice就失去了这个权利

总结

所以我们可以看到,在这个进程中,许很多多的“Ivan”其实就是去中心化的银行,在两条rollup上别离饰演存款机和取款机的脚色,从而赚取手续费。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。