metamask.com官网下载|Polygon 跨链桥上无人认领的百万美元_MarsBit

无私钥非托管多方计算钱包 ZenGo 正在准备添加对 Polygon PoS 链(又名 Polygon 或 MATIC)的支持。让 ZenGo 用户未来能以更低的 gas 费用享受 Web3 DeFi 和 NFT,且为所有 Polygon 用户提供了一个更安全的钱包,其安全性比目前支持 Polygon 的传统钱包高出 10 倍以上。Polygon 能成功的关键原因之一是其跨链桥技术,让用户可以虚拟地将资产(例如 NFT 和代币)从以太坊转移到 Polygon 上,反之亦然。

用户多方计算 Multi-Party Computation,MPC

文章速览:

01/ Polygon 跨链桥的工作原理

02/ 验证 Polygon 跨链桥的财务稳健性

03/ Forgotten Funds Analysis 对被遗忘资金的分析

04/ 提前过节:为用户 007 节省了 200 万美元

05/ 总结

作为研究区块链及其安全功能的一部分,ZenGo 团队调查了 Polygon 跨链桥的底层工作原理。也因此发现了价值数百万美元被遗忘的跨链代币,至今仍未被其所有者认领。作为这项研究的结果,ZenGo 与 Polygon 团队联手帮助一位巨鲸用户取回了 200 万美元的资金。

在这篇博客中,将深入探讨 Polygon 跨链桥的底层运行,且利用 Dune Analytics 的新功能成功验证其财务稳健性,探讨资金为什么会被遗忘以及如何让合法所有者认领回资金。

Polygon 跨链桥的工作原理

要在以太坊和 Polygon 之间桥接资产,用户必须依赖像官方的 Polygon 跨链桥去中心化应用(Dapp)。

用户Polygon 跨链桥 (https://wallet.polygon.technology/bridge)

但在这个跨链桥的背后发生了什么?它是如何运作的?

当用户想把资产,比如说 100 USDT,从以太坊转移到 Polygon 上时(或称“存款”),资金会被送到 Polygon 在以太坊上部署的合约,该合约收到资金后发送出一个事件。Polygon 验证者节点时刻监听着此类事件。当监听到事件后,验证者节点会在 Polygon 链上铸造相应数量的资产(100 USDT)并将其发送到用户的地址。用户的 Polygon 地址与以太坊地址相同。

因此,用户把基于以太坊的代币跨链至 Polygon,只需在以太坊上发送一次交易,一段时间后代币会自动出现在 Polygon 链的钱包中。

只要代币在 Polygon 链,用户就可以参与任意形式的 DeFi 且享受 Polygon 较低的交易费用和较快的完成时间。跨链至 Polygon 的 USDT 价值与以太坊上相同,因为它由 Polygon 的以太坊合约持有的原始以太坊 USDT 1:1 支持。

假设一段时间后,用户获利,想把赚到的 200 USDT 转回以太坊(或称“取款”)。这个过程本质上是类似的,但细节上略有不同。

首先,用户需“销毁” Polygon 链的 USDT 代币(发送至 0 地址)。和之前一样,Polygon 验证者时刻监听着此类销毁事件,在一个时间段内累积和聚合此类销毁事件,并将经过聚合的信息更新至 Polygon 的以太坊端。

但与往 Polygon 存款不同的是,当用户将资产取回以太坊上时,需要额外发送一个以太坊交易来从 Polygon 的以太坊合约中认领 USDT。认领交易包含一个加密证明,证明取款人已在 Polygon 端销毁了对应的 USDT。一旦合约验证了证明,就会将代币发送到取款人的以太坊地址。

总而言之,存款(以太坊至 Polygon)是一个一键点击,只需几分钟的过程。然而取款(Polygon 至以太坊)需要两个步骤,且从第一步到最后一步完成可能需要几个小时。

验证 Polygon 跨链桥的财务稳健性

Polygon 跨链桥的财务稳健性源于这样一个事实,即对于在 Polygon 端铸造的每项资产,Polygon 在以太坊上的合约都持有适量的金额,鉴于近期关于托管交易所和幽灵资产的新闻(FTX 事件),可将此查询视为确认区块链的“储备证明”的尝试。

还好,与中心化交易所不同,在 DeFi 中,所有信息在链上都可查询,且可以轻松被验证,无需信任模糊的储备证明文件。

在 Etherscan 上可以看到,截至 2022 年 11 月 13 日, Polygon 合约持有价值超过 70 亿美元的 ERC20 代币(不考虑 ETH 和 NFT)。

比较跨链桥两端的金额,可以发现以太坊端总是比 Polygon 端持有更多代币,意味着跨链至 Polygon 的代币的确有适量的以太坊代币作为支持。

然而,ZenGo 团队还注意到在以太坊端有大量盈余,约 1% 的额外代币,这就需要解释了。

例如:11 月 13 日,Polygon 端的 USDT 有 6.75 亿个(见图一),以太坊端有 6.83 亿个(见图二)。

用户图一:2022 年 11 月 13 日,Polygon 跨链的 USDT 有 6.75 亿美元(来源:Polygonscan)

用户图二:2022 年 11 月 13 日,Polygon 跨链桥持有超过70 亿美元的 ERC20,有 6.83 亿美元的 USDT(来源:Etherscan)

1% 差异的现象同样在 USDC、ETH、DAI 等其他主流资产上出现。

用户跨链桥两端主要资产结余差额(截至 2022 年 11 月 25 日)

虽然 1% 听起来可能不多,但在涉及到 70 亿美元的金额时,它可能很重要。

Forgotten Funds Analysis

对被遗忘资金的分析

为了找到资金差异的原因,ZenGo 试着将 Polygon 端的销毁交易与以太坊端的对应认领交易进行匹配。为此,还利用了 Dune Analytics 最近开发的允许跨链查询的新查询引擎。

用户图三:无人认领的 USDT 来自 Dune Analytics 查询 (见 https://dune.com/queries/1536897)

通过这个查询,可以验证在 Polygon 端的提取调用确实比以太坊端应有的认领调用要多。如图三所示,仅仅是 USDT 就有大约 3000 个提取调用与认领不匹配。

ZenGo 团队也因此开发了一个通用的 Dune Analytics 查询,支持任意跨链的 ERC-20 的 token 交易对。

用户通用 Dune Analytics 查询支持任意 Polygon 跨链的ERC-20 的 token 交易对

提前过节:

为用户 007 节省了 200 万美元

深入研究个别案例,可以发现许多有趣的例子。例如,这个神秘的用户(以下简称 0x007)半年多前在 Polygon 上做了两次提取交易,分别是 Wrapped ETH 和 Wrapped BTC,且都价值超过 100 万美元,但至今没有在以太坊端进行认领。

用户在 Polygon 上销毁(发送到地址“0”)但从未在以太坊端认领

可以看到该用户一个月后依然活跃在以太坊上,所以他不认领这笔资金的原因应该不是密钥丢失。

为了确保这些资金是可以被认领的,ZenGo 团队在一个模拟平台上模拟了认领交易过程。在提供交易应有的销毁证明后,该平台可以忽略我们不是用户 0x007 的问题,让团队认领了丢失的这 100 万美元价值的 ETH,也就是说这笔资金确实是可以被原始用户认领的。

虽然很难想象有人会“忘记”数百万美元,但可能正是因为需要额外的交易步骤以及资金不能立即被认领,才为此类错误创造了空间。

当 ZenGo团队于 2022 年 11 月 23 日向 Polygon 团队报告发现后,他们将相关的认领交易发送给了用户,并从 Polygon 桥向该用户的账户转入了 200 万美元。值得一提的是,不仅限于Polygon,如果有任何愿意支付 gas 价格的无私用户,都可以认领这笔资金并将其转移到原始提款账户。

用户11月23日,007 的账户与他遗落的 200 万美元重逢(来源:Debank)

可以想象,对于 007 来说,一觉睡醒发现他的以太坊账户中多了 200 万美元应该是一个很棒的惊喜。

总结

Polygon 链及其跨链功能对用户来说非常有用。从以太坊跨链到 Polygon 非常地简单直接,但是跨链回去可能对用户来说就麻烦得多,目前导致的潜在损失市值高达数百万美元。

但还好,这些资产并不会永久丢失!