拯救智能合约漏洞,这个一夜之间成立的白帽团队如何守护近1000万美元?_DEFI:CEX

概述

一名白帽黑客在某以太坊智能合约中发现了一个漏洞,导致近1000万美元的ETH处于危险之中。

一夜之间,一个救援小组成立了,将这些资金转移到安全的地方。

这次行动集合了来自世界各地的区块链安全专家和矿工的力量。

一名区块链安全研究员和一个被称为samczsun的白帽黑客,今天公布了一份详细的“事后报告”,该报告讲述了一次秘密行动,该行动解救了25000个ETH,当时价值超过960万美元。这些资金是从一个有漏洞的智能合约中解救出来的。

UST流通量超越DAI,上升至稳定币市场第四位:3月1日消息,CoinMarketCap 数据显示,截至3月1日,UST 的流通量已达到 129 亿美元,超越 DAI 位列 Stablecoin 市场第四位。目前 Stablecoin 市场总市值已突破 1866 亿美元,其中 USDT 以 797 亿美元位列第一,USDC 以 536 亿美元排名第二,BUSD 以 184 亿美元排名第三。[2022/3/1 13:30:31]

9月15日,samczsun正在查看一些以太坊智能合约,寻找漏洞。后来,他发现了LienFinance协议的一部分存在问题:一份包含超过25000个ETH的智能合约。

MakerDAO免除锚定稳定模块PSM中USDC兑DAI费用:11月15日消息,去中心化稳定币协议 MakerDAO 11 月 10 日将 PSM-USDC 金库的稳定币兑换费从 0.2% 降为 0% 之后,超过 10 亿美元的 USDC 从 MakerDAO 的 PSM-USDC 金库中流出。据 MakerDAO 社区用户 rema 在 MakerDAO 论坛中评论,USDC 的流出与非稳定资产的铸造有关(主要为 WBTC),加密借贷平台 Nexo 和 Celsius 将大量铸造的 DAI 兑换为 USDC。

注,Maker 系统的锚定稳定模块(PSM,Peg-Stability Module)允许用户以 1:1 的兑换率直接将其他稳定币抵押品兑换为 DAI,而非以抵押铸造的方式,PSM 的主要目的是帮助保持 DAI 与美元的挂钩。[2021/11/15 6:52:27]

这些钱可能会被任何人拿走。

Dai的流通量已超过9亿枚:据欧科云链OKLink数据显示,截至今日11时30分,以太坊上稳定币流通市值约合150.8亿美元。其中流通量排名前三的分别是USDT 101.84亿美元,占比67.55%,USDC 25.38亿美元,占比16.84%以及DAI 9.16亿美元,占比6.08%。[2020/9/30]

根据报告,这个智能合约包含了“销毁”功能。也就是说,任何用户都可以为自己制造大量毫无价值的代币,并用它们来交换合约中的ETH,从而获得了价值近1000万美元的缓存。看在DeFi的份上,Samczsun决定介入。

Makerdao官方:DAI供应量已超7亿枚:Makerdao官方发布微博称,稳定币DAI的供应量已经超过7亿枚。[2020/9/19]

由于LienFinance的团队是匿名的,因此白帽黑客会通过寻找一些潜在的关系来联系任何相关人员。AlexanderWade和以太坊安全专家ScottBigelow很快加入了这场救援行动。

实际上,有两种方法可以解决这个问题。首先,LienFinance本可以公开披露漏洞,但这将为黑客盗取资金创造一个完美的机会——就像在旁边放了一个“欢迎免费拿钱”的牌子。

其次,白帽黑客团队本可以攻击这个智能合约,然后将资金归还给它们的合法所有者。但这肯定会吸引机器人——以太坊内存池的顶端捕食者。

内存池,即“以太坊的黑暗森林”,它是一个特殊的“集结区域”,交易在被矿工接受并包含在下一区块之前会聚集在这里。这一地区经常有“领跑者”巡逻,他们是专门的机器人,寻找任何可以利用的交易以进行劫持。

基本上,领跑者可以自动复制内存池中的任何交易,用自己的地址替换它的地址,并确保这个操作首先被矿工抓取。在目前的情况下,这意味着1000万美元很容易被领先者在几秒钟内偷走。保密是非常必要的。

在区块链研究者TinaZhen的帮助下,CertiK和以太坊矿池SparkPool都参与了救援工作,并最终与LienFinance取得联系。

经过短暂的试运行后,SparkPool的程序员花了接下来的几个小时开发和测试一种专门的“白帽API”,它可以让矿工在不显示在内存池的情况下获取交易。接下来,白帽黑客团队的成员完成了生成四个连续签名交易的脚本,这些交易最终将拯救25000个ETH。

但这些交易并不是为了直接提取资金。如果按照正确的顺序执行,他们将把30000个SBT和LBT代币转移到LienFinance中,允许在最后的操作中通过销毁功能将这些代币转换回ETH。

当所有准备工作完成后,白帽黑客团队终于开始了救援行动。通过与一家挖矿公司合作,这些交易成功地避开了机器人。这是因为交易没有发送到内存池——它们直接被矿工放在了一个区块中。

报告中表示:

“在调整交易创建脚本以将交易直接提供给SparkPool的新端点之后,该是时候了。我犹豫了一会儿,但这绝对是我们能做的最大的努力了。我们可能会损失960万美元,但不会感到遗憾。在我们的交易被包含进来之前,其花费了大约15个区块,感觉就像几个小时,但最终,我们拥有了完美的交易:按序挖矿,不需要回滚。”

现在,LienFinance团队需要做的就是使用销毁函数用SBT和LBT换取ETH。在最后的交易完成后不久,Etherscan报告其成功完成,拯救了25000ETH。

至此,白帽团队“逃离了黑暗的森林”,并拯救了一笔小财富。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-7:681ms