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


概述

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

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

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

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

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

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

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

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

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

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

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

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

在区块链研究者Tina Zhen的帮助下,CertiK(第二家审计这一智能合约的公司)和以太坊矿池SparkPool(星火矿池)都参与了救援工作,并最终与Lien Finance取得联系。

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

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

当所有准备工作完成后,白帽黑客团队终于开始了救援行动。

通过与一家挖矿公司合作,这些交易成功地避开了机器人。这是因为交易没有发送到内存池——它们直接被矿工放在了一个区块中。

报告中表示:

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

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

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

推荐阅读

或是未来10年最强风口:产业区块链时代正式到来

区块链落地应用盘点:五大领域应用告诉你“区块链能做什么”

区块链将引爆跨学科研究,比特币只是第一颗“核弹”

5分钟看懂区块链如何提升中国企业活力与效能!

一文读懂区块链项目的法律问题,通证激励、链改可行吗?

比特币技术堆栈的创新:今非昔比

区块链入门 | 什么是DAO?

更多关键词:矿工 | 51%攻击

燃点 | 孟岩 | 白硕 | 肖风

长铗 | 李国权 | 蚂蚁金服 | 来学嘉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值