在我们写完“以太坊DeFi生态当前最大的安全隐患”这篇文章后,大家对DeFi滥用授权的行为开始提高了重视。
其间还有不少关心资产安全的用户来问我们一些相关事情,其中有一个问题大家最为关心,那就是:
历史上有没有发生过因为滥用授权引发的资产损失事件呢?
答案是,有。
这一切不仅存在理论中,它就发生在你我身边。
我们一起回顾一个真实案例:
故事的主人公是以太坊生态中大名鼎鼎的DeFi项目——Bancor
而一切就发生在不久前的2020年6月16日,
看到这大家是不是会疑惑,“不久之前”、“明星项目”、“巨大漏洞”这些词汇组合在一起必定是行业讨论的热点。但为什么自己的脑海中没有这件事情的任何印象呢?这样一件巨大的安全事故好像从来没有发生过?
先缓存你的疑惑,让我们把时间回退到2020年6月16日。
看上去很普通的一天,正如你我这些上班族一样,Bancor团队也都在工位上照旧更新自己的Bancor v0.6合约代码。一行又一行的代码,就这样堆叠出 DeFi 打算耸入云霄的新基建。
但谁也不会想到,接下来他们将为这简单几行代码,经历惊心动魄的48小时。
在这之中,到底发生了什么呢?
原来,Bancor 团队的合约开发者犯了一个普通程序员经常不在意的“小失误”,
将一个合约转账操作方法的访问权限误写成了public。这一下就能带来灾难性的后果:任何人都有权限调用这个方法以合约的权限来执行“转账”操作。
至此,任何一个对 Bancor 协议进行过无限授权的普通用户,都只能是待宰的羔羊,在每一秒都面临着自己地址里的资产被他人随意掠夺挥霍的结局,代码并不会同情你为资产的积累付出了多少血泪。
那么这些用户的资产就这样灰飞烟灭了吗?
万幸,这次漏洞并没有被黑客先发现。
Bancor 团队赶在黑客之前,抢先利用起此漏洞,紧急转移了用户地址中的资产,共计455,349 美元。
在接下来的时间,Bancor发布了版本更新,并于2天后的2020年6月18日,对外公布了此次事件的始末,同时对用户进行道歉,承认自己的巨大失误。
在其公告中还提到,Bancor在仓促转移用户地址上资产的过程中引起了市场的波动,并被两个套利机器人借此此获利135,229 美元。Bancor团队呼吁其归还资产,但最终的结果,我们不得而知。
在这次 DeFi 事件中,用户从毫无察觉地丢币再到毫无察觉地失而复得,既风平浪静,又波谲云诡。
至此,整个事件就算告一段落。
但事情应该这样结束吗?
了解完这件事情之后,普通用户可能都会有所反思
“要为自己资产负责,警惕 DeFi 向自己索要无限授权”
“参与DeFi合约的资产最好要分开存储”
“要定期检查下自己有哪些过度授权”
“要......”
但仔细想来,更应该反思的不应该是各个DeFi项目方吗?
但现实并未如你所想,这也正如你的困惑。
为什么几乎没有 DeFi 项目方为此事发表讨论?
为什么生态里的“头部团队们”都捂住了嘴巴?
为什么一件巨大的安全事故最终好像从未发生?
因为几乎所有的 DeFi 项目方和部分钱包团队都在无节制的滥用授权,共同的利益使得所有知情人全部变成了沉默者。
没有修正自身的越权行为,没有展开对风险的思考;
转而将用户的质疑搪塞于各种理论,将用户的安全寄托于各种万幸,
但当不幸真的降临时,谁又能站出来呢?
代码不会同情每个普通用户为资产的积累付出了多少血泪,但是人类的本能会。
作为开发者、作为项目方、作为理应为安全保驾护航的钱包方,不应对滥用授权无动于衷,也不应为了自己能滥用授权就抛弃用户安全。
要时刻记得,仅仅一个月前,大量的用户离钱包内资产灰飞烟灭只差了一个万幸!
Bancor案例原文:
Bancor’s response to today’s smart contract vulnerability
https://blog.bancor.network/bancors-response-to-today-s-smart-contract-vulnerability-dc888c589fe4
三个问题合约代码:
https://etherscan.io/address/0x8dFEB86C7C962577deD19AB2050AC78654feA9F7#code
https://etherscan.io/address/0x5f58058C0eC971492166763c8C22632B583F667f#code
https://etherscan.io/address/0x923cAb01E6a4639664aa64B76396Eec0ea7d3a5f#code
有问题的合约方法:
function safeTransferFrom(IERC20Token _token, address _from, address _to, uint256 _value) public
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:在这里,读懂区块链
评论0条