当前位置:首页区块链Vitalik:如何实现交叉汇总索引

Vitalik:如何实现交叉汇总索引

我们假定 rollup A 上的交易有某种“备注字段”;如果没有的话,可以使用该交易值的低位数字作为备注发送。

来源|ETHreaser.ch公司

作者:vitalik buterin

假设我们有两个rollup解决方案A和B。Alice想用rollup A上的一定数量的代币交换rollup B上的相同代币。已经提出了一个解决方案来解决这个问题。如果汇总A和B都完全支持智能合约,那么这个假设可以去中心化实现。然而,本文提出了只有rollup B完全支持智能合约(而rollup a只能处理简单的事务)时,如何实现交叉rollup传输。

我们假设汇总a上的事务有某种“备注字段”;如果没有,我们可以使用事务值的低位作为备注。

建议

假设我们有一个exchange中介器Ivan(在实现时有许多中介器可供选择)。Ivan在rollup a中有一个(完全控制的)账户。同时,Ivan也在rollup B的智能合约中,Ivan B中有一些钱。

智能合约Ivanub有以下规则:

➤如果任何用户发送交易(向帐户Ivan a发送代币交易值trade value)(目标地址B目的地也作为备注附在交易后),则在延迟阻止后,用户可以将交易返回到帐户;Ivan_u2;B,其中包括以前的转账证明,然后交易排队等待取款到目的地的地址。

➤在等待一定的延迟(例如一天)之后,取款将按照批量和索引顺序进行处理,在该顺序中,转账将打包到汇总a中。

➤当Ivan发现自己的账户时,Ivan➤当a收到付款时,他可以将“当面交易价值*(1-费用)”代币发送到目的地。他可以使用IvanB方法发送事务来完成上述操作。此方法保留一个记录,以防止合同中的自动发送条款触发事务。

预期的行为很简单:

➤Alice向帐户Ivan a middle(包含n个代币和一张便笺Alice)B发送交易

➤Ivan通过Ivan_ub向Alice_ub发送交易价值*(1-费用)代币

第二个事务在第一个事务之后。如果伊**证明第一笔交易和第二笔交易之间的时间戳差异非常小,那么合同甚至有允许费用增加的规则。

最糟糕的是,Ivan没有像他预期的那样向Alice报告发送代币。在这种情况下,Alice可以等待rollup a上的交易确认,找到另一个替代路径,在rollup B上获得代币以支付费用,然后申请自己的资金。

资本成本

此方案的主要限制是IvanèB需要持有大量资金,以确保所有交易发送者都得到支付。特别是,假设:

➤我们将交易上限设置为交易限额(因此,当发送给Ivan的交易值超过限额时,交易无效)

➤每个汇总批次最多可包含每个批次交易的TX

Alice可以自己检查在汇总a处理下一批交易之前有多少未完成的交易,并在合同中使用她从B中的资金中减去这些交易的总价值,并检查剩余金额是否足够。由于取款是按顺序处理的(这是上述排名机制的目的),Alice在处理取款之前不需要担心处理其他取款的合同。

每批交易中的**交易量是每批交易限额*TXS,因此Ivan B合同至少需要这么多ETH和额外资金来支付要处理的交易。例如,假设交易上限为0.1ETH,交易限额=0.1ETH(交易上限可以设置得相对较低,因为一笔大交易可以分为若干笔小交易),每批交易可处理1000笔交易,每批交易可处理1000笔TXS=1000。因此,合同Ivan B需要持有100以太坊

请注意,此设计还包含隐式成本,因为事务量大于0.1ETH的任何用户都将浪费块空间。也就是说,如果用户消耗了一半的块空间,他们的资金需求将翻倍,反之亦然。如果你想得到正确的平衡,隐含成本是市场上的净成本的几倍。

如果我们想减少或消除这种消耗,我们可以这样设计一个rollup:让sequencer发送一个签名消息,它证明了批处理中所有Alice的事务。然后爱丽丝就会知道她面前没有交易(尽管恶意的序列器可以欺骗爱丽丝,但作恶的代价将非常高)。

评论

上述设计基于一个假设:汇总a上的事务有一个备注字段,Alice可以通过该字段指定Aliceub作为接收代币的目标地址。如果rollup没有这个特性,我们可以使用下面的解决方案。Alice可以在rollup B中按顺序注册的合同上注册帐户Alice,并按顺序分配ID(因此Alice的ID等于她之前注册的用户数)。

设置**用户数maxUSERCount;如有必要,可以随时间调整此值。然后Alice可以确保trade-VALUE%MAX-USER-Count等于(Alice的ID),使用trade-VALUE表示她想要交易的代币数量,这是交易的一个小数字。

从汇总B到汇总a的事务

如果Alice将rollup B上的代币转移到rollup a,她可以使用相同的机制,但角色是相反的:

➤Alice将代币发送给Ivan➤B

➤延迟一段时间后,她将有权取回代币

➤如果Ivan能证明他在汇总表a上给Alice发了一个代币,Alice就失去了权利

温馨提示:

文章标题:Vitalik:如何实现交叉汇总索引

文章链接:https://www.btchangqing.cn/207875.html

更新时间:2021年03月11日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链行情

上帝再次释放财富密码?为什么第二层很重要

2021-3-11 3:49:03

区块链行情

币圈分析:3/11以太坊市场分析与运营策略

2021-3-11 4:44:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索