织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

Arbitrum、zkSync 与 DeGate Bridge(2)

时间:2021-05-11 17:25来源:未知 作者:admin 点击:
原生桥实现 我们研究了当前主流的 Rollup 方案的原生桥实现原理,并从 Optimistic 和 zkSync 方案中各选取一个代表,进行对比。 Arbitrum Arbitrum 协议利用其 L

原生桥实现

我们研究了当前主流的 Rollup 方案的原生桥实现原理,并从 Optimistic 和 zkSync 方案中各选取一个代表,进行对比。

Arbitrum

Arbitrum 协议利用其 L1、L2 之间的通信能力,理论上可以无须信任的将任意形式的以太坊资产(包括 Ether、ERC20、ERC721 等)在 L1、L2 之间转移。当将资产从 L1 转入 L2 时,资产被存入一个 L1 上的 Arbitrum 桥合约中,之后一笔相同数量的资产在 L2 上被铸造并存入指定地址;而将资产从 L2 转回 L1 时,资产将在 L2 上被销毁,随后等量的资产将在 L1 的桥合约中变为可用。此外,从 L2 赎回资产到 L1 时,有一个关键性的区别是,用户发送交易后,必须等待一个挑战期的结束,才能最终在 L1 上执行。这是由 Optimistic Rollup 安全模型决定的。

值得注意的是,官方建议使用「可重试票据 Retryable Tickets」机制进行 L1、L2 之间的通信。可重试票据的运作方式大致如下:L1 向 L2 发起的交易首先被存入 inbox 中,并附带 calldata、callvalue、gas info 等交易参数。当这笔交易首次执行失败后,它将被放入 L2 的「重试缓冲区(retry buffer)」中,这意味着在一段时间内(通常为一个挑战期,即大约一周),任何人都可以通过重新执行这笔交易来赎回票据。L2 至 L1 的重试交易没有时间限制,争议期结束后的任何时间点都可进行。

这种机制设计主要是为了应对这样的场景:当某个用户希望将某笔 token 从 L1 存入 L2,首先会将这些 token 存入 L1 的桥合约中,同时在 L2 上铸造等量的 token。假设 L1 上的交易已经完成,但是 L2 上的交易却因为手续费不足失败了,这会导致一个严重问题:用户在 L1 上的 token 已经转出,但是在 L2 上却没收到 token,实际上,这些 token 被锁在了 L1 的合约里。通过可重试票据机制,用户(或者其他任何人),可以在一周内,使用足够的手续费重新执行这笔交易,并最终在 L2 上获得 token。

以下是 Arbitrum 原生桥的基本步骤:

L1 ->L2

  1. 用户从 L1 发起 Deposit 交易
  2. 资产存入 L1 合约,交易被批量存入 Inbox 中
  3. 交易在 L2 被执行,铸造资产转入指定地址
  4. 如果交易失败,则交易被存入 L2 的重试缓冲区,用户可以在一个挑战期内发起重试

L2 -> L1

  1. 用户在 L2 发起 Withdraw 交易
  2. L2 链将在一定时间内收集到的交易打包,生成默克尔树,并将根节点作为 OutboxEntry 发布到 L1 的 Outbox 中
  3. 用户或者任何人可以对根节点和交易信息进行默克尔验证
  4. 挑战期结束后,用户即可在 L1 完成交易,如果交易失败,则用户可以发起重试

详情可参考 官方文档。

zkSync (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容