如何从已停运的Layer2“强行”提取资金?
原创 | Odaily星球日报( @OdailyChina )
作者|Azuma( @azuma_eth )
dYdX 已通过 v4 版本逐渐完成了向 Cosmos 生态应用链 dYdX Chain 的迁移,而 dYdX v3 版本也已于 10 月 28 日迎来了闭幕,该版本所采用的 Layer 2 网络现已停运,所有交易均已暂停。
然而, L2BEAT 数据显示, 截至停运 dYdX v3 所采用的 Layer 2 网络之上仍有着超 7000 万美元的资金尚未撤出……
幸运的是,对于一条 Layer 2 网络而言这并不意味着资金的永久丢失 —— dYdX v3 采用了 StarkEx 的 Layer 2 解决方案,该方案内置了一种名为 Escape Hatches 的保护措施,此机制允许用户于 Layer 1 层面(即以太坊主网)强制提取对应账户放在 Layer 2 的资金 ,就像当前 dYdX v3 所面临的情况一样。
-
Odaily 注: L2BEAT 解释称 Escape Hatch 机制仅适用于 dYdX v3 等的非通用型 Layer 2 (没有智能合约的 Layer 2)。对于其他支持 Escape Hatch 机制的通用 Layer 2 ,则需要更强大的选项,包括去中心化排序器及强制交易等等。
回到 dYdX v3 的情况,由于自行使用 Escape Hatch 需要提供“Merkle 证明”来验证资产状态,为了方便用户更高效的进行撤资, L2BEAT 创建了一个开源的 StarkEx 浏览器( https://explorer.dydx.exchange/ ) ,方便用户更直接地访问 Escape Hatch 。
至于具体的撤资操作,用户需首先进入该 StarkEx 浏览器,然后链接钱包(右上角),再在资产(Assets)一栏中找到可提出至 Layer 1 的代币资产,再点击 Escape 即可启动撤资程序。
整个撤资程序需要完成三笔交易,分别为“启动逃生(Initiate Escape)”、“完成逃生(Finalize Escape)”以及“提取资金(Withdraw Funds)”。
-
启动逃生:点击 Escape 后会被定向至“逃生”初始化界面,该界面会概述整个流程;之后需点击 Initiate Escape 并在钱包内确认交易;此步骤 gas 可能比较贵;
-
完成逃生:上一笔交易确认后,返回用户页面将出现一个新的 Pending Escapes 信息栏;你需要在该栏中点击 Finalize Escape 并确认另一笔交易;
-
提取资金: 上一笔交易完成后,再返回用户页面会出现 Withdrawable Assets 信息栏,这时点击 Withdraw now 并确认交易,即可将资金取出至原始 Layer 1 账户。
-
Odaily 注:详细的操作流程可参阅该 StarkEx 浏览器所提供的指引 : https://explorer.dydx.exchange/tutorials/escapehatch
撤资交易发起后,用户可通过该浏览器的主页实时查看资金退出的状态,以便执行下一步操作。
值得一提的是,Escape Hatch 功能完全无需许可, 这意味着用户不仅可以撤出自己的资金,也可以帮助其他用户执行撤资操作 ,但这并不意味着你可以拿到其他人的资产,退回至 Layer 1 网络的资产只会退回至对应的 Layer 1 地址。
另外需要注意的一点是, 由于 Escape Hatch 功能需要与以太坊合约进行交互,且需要提供证明资金所有权的“Merkle 证明”,因此需要执行一些交易来实现该功能,而处理这些交易所需的数据和逻辑量很大,所以它们的 gas 成本可能非常高 —— 这意味着在某条 Layer 2 关闭之前,你应该在官方提示的停运时间之前尽早撤资,尽量避免采用 Escape Hatch 这一最后的保险路径。
总而言之, Escape Hatch 的存在证明了 Layer 2 网络的一大独特优势,即资产的安全性始终由以太坊保障,即便停运也可以强行撤出资金。 这是其他 Layer 1 永远无法承诺的功能。