假设我们有两种 rollup 解决方案 A 和 B,Alice 想要用 rollup A 上一定数量的代币来换取 rollup B 上同样的代币。已经有人提出方案解决这个问题了,如果 rollup A 和 B 都是完全支持智能合约时,那么就可以去中心化地实现这个假设。然而这篇文章提出的是,当仅有 rollup B 完全地支持智能合约时 (且 rollup A 只能处理简单交易) 如何实现跨 rollup 转账。
我们假定 rollup A 上的交易有某种“备注字段”;如果没有的话,可以使用该交易值的低位数字作为备注发送。
提案
假设我们有一个交换中介 Ivan (在实现时有许多中介可供选择)。Ivan 在 rollup A 中拥有一个 (完全由他控制的账户) IVAN_A。同时,Ivan 还在 rollup B 的智能合约 IVAN_B 中存了一些资金。
Vitalik Buterin:比特币若希望进一步发展,需测试更多扩展解决方案:7月10日消息,以太坊创始人Vitalik Buterin本周在Twitter Space上表示,“如果我们希望比特币不仅仅作为支付方式,它需要像Plasma或ZK Rollup这样的扩展解决方案。而这两种方案都已经在以太坊上测试过”。他还表示,Optimism和Arbitrum是两个成功的Rollup,可以作为比特币的案例研究。Buterin还试图找出以太坊和比特币两个生态系统的共性。他指出,两个区块链都具有不变性,同时它们都存在L1隐私问题。多年来,以太坊一直在尝试多种扩展解决方案,最新提案为EIP-4844,它引入了blob,每秒可实现多达10万次交易。
?[2023/7/10 10:12:34]
智能合约 IVAN_B 具有以下规则:
Navitas Global投资加密矿企Soluna Holding1400万美元:金色财经报道,加密采矿数据中心开发商Soluna Holdings宣布与Navitas Global就其位于德克萨斯州的Project Dorothy 1B数据中心达成1400万美元的投资伙伴关系。Navitas将为Dorothy 1B项目的最后阶段基础设施建设和25mw比特币矿机提供投资资本,以换取Dorothy 1B项目49%的股权。该协议包括200万美元的贷款,以完成建设和1200万美元的股权投资。Soluna将提供运营和维护专业知识,并将继续拥有Dorothy 1B项目51%的股份。[2023/5/16 15:04:46]
如果任意用户发送了一笔交易 (发送某代币交易值 TRADE_VALUE 至账户 IVAN_A) ,(交易中还附上了一个目的地址 B DESTINATION 作为备注),则在最小偿还延迟 MIN_REDEMPTION_DELAY 区块之后,该用户就可以返还一笔交易至账户 IVAN_B 中 (其中包括之前的转账证明),然后这笔交易就会排队等候提款至地址 DESTINATION 中。
Vitalik Buterin:已向阿桑奇的AssangeDAO捐款:2月7日消息,AssangeDAO是一个以维基解密创始人阿桑奇命名的去中心化自治组织,该组织宣称将筹集资金,帮助阿桑奇支付法律费用,并开展活动,提高公众对司法系统系统性故障的认识。据以太坊生态去中心化基础设施Gnosis联合创始人Martin K?ppelmann在推特透露,他已经向AssangeDAO捐赠了10 ETH,而以太坊联合创始人Vitalik Buterin回应道,「我也捐赠了」。不过,目前尚不清楚Vitalik Buterin的具体捐赠金额。现阶段,AssangeDAO 通过 JuiceBox 平台的第一轮融资已于北京时间 2 月 7 日 6 时 32 分结束,目前共筹集了12630个ETH,超过了ConstitutionDAO(People)筹集的11613枚ETH,第二轮融资将于北京时间2月9日6时32分结束。[2022/2/8 9:36:31]
等待一定的延迟 (例如一天) 后,按照转账打包进 rollup A 的批次和索引顺序处理提款。
澳大利亚墨尔本出现有关Vitalik的街头画作:据Redidit网友爆料,近日,一幅画有以太坊创始人Vitalik的街头艺术创作出现在了澳大利亚墨尔本街头。[2021/4/6 19:49:53]
当 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 中
Vitalik Buterin提出加密经济学提案对抗虚假信息:2月25日,在泰国曼谷举办的亚太以太坊社区大会上,以太坊创始人Vitalik Buterin进行了题为Cryptoeconomics to Save the Internet的演讲。在演讲中,他将目光放在了最近推特冒充本人账号以太币的虚假消息事件,提出赋予用户代币的提案来审查辨别虚假信息并加以惩罚的加密经济学提案。Buterin指出,这群狡诈的子通过在推特上冒充他本人及其他区块链业内人士,并用虚假的点赞、转发和评论来伪装这些虚假账户的有效性,以此来取个人用户的虚拟货币。他认为,这些虚假新闻引起的行为能够以自区块链行业发展起来的加密经济学来进行对抗。[2018/2/27]
第二笔交易紧接着第一笔交易发生。如果 Ivan 可以证明第一笔交易和第二笔交易之间的时间戳差异非常小,那么合约甚至有规则允许提高费用 fee 。
最糟糕的情况是,Ivan 没有如他所期望那样向 ALICE_B 发送代币。遇到这种情况,Alice 可以等待 rollup A 上的交易确认之后,在 rollup B 上找到其他获取代币的替代路径来支付费用,然后就可以自己认领其资金。
资本成本
该方案的主要限制是,IVAN_B 需要持有大量的资金,以确保所有交易发送者都能得到支付。尤其是,假设出现以下情况:
我们将交易上限设置为 TRADE_LIMIT (所以当发送至 IVAN_A 的交易超出限额 value > TRADE_LIMIT 时,交易无效)
每个 rollup 批次最多可以包含 TXS_PER_BATCH 笔交易
Alice 可以自行检查 rollup A 下一批需要处理的交易之前,还有多少未处理的交易,用她在合约 IVAN_B 中的资金减去这些交易的总值,并检查剩余的金额是否足够。由于提款是按顺序处理的 (这是上述的排列机制的目的),Alice 不需要担心合约先处理其他提款申请,再处理她的提款交易申请。
在每批次中最大交易额为 TRADE_LIMIT * TXS_PER_BATCH ,因此 IVAN_B 合约中至少需要这么多的 ETH,还需要额外的资金包含为处理的交易。举个例子,假设交易上限为 0.1 ETH TRADE_LIMIT = 0.1 ETH (交易上限可以设得比较低,因为一笔大额交易可以分成几笔小交易完成),并且每批次可以处理1000笔交易 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 就失去了这个权利
原文链接:https://ethresear.ch/t/cross-rollup-dex-with-smart-contracts-only-on-the-destination-side/8778
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。