前言
北京时间12月13日,知道创宇区块链安全实验室关注到针对Definer预言机的攻击事件。
作为第三方区块链安全机构,受Definer、Cherryswap和OEC组成的调查小组邀请参与本次攻击事件的技术调查工作。实验室第一时间启动应急,跟踪本次事件进行分析并出具调查报告。
分析
tx:
https://www.oklink.com/en/oec/tx/0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a?tab=4
三箭资本创始人:前代币CEX有一天也会有回顾性的奖励:金色财经报道,三箭资本创始人Zhu Su发推称,如果我们正在进入用户拥有的代币经济,那么理所当然地,前代币CEX有一天也会有回顾性的奖励。[2021/9/18 23:34:21]
攻击者信息
攻击tx:0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a
攻击合约:0x05806559f7f7732f2d3e71bca2eb12eab1938ceb
被攻击池信息
USDT池:0xc1b02e52e9512519edf99671931772e452fb4399
Compound创始人发推回顾项目历史,成功并非一朝一夕:Compound创始人Leshner发推回顾了Compound发展历史,并表示Compound的成功并非一朝一夕,成功也靠站在巨人的肩膀之上。以下为Leshner提及的Compound发展历史:
2017年,Compound是一个去中心化货币市场,这得益于以太坊基金会、Consensys等将以太坊构建为一个完整的生态系统,使得其上智能合约的部署成为可能。
2018年9月,Compound v1上线,主要做了这些初始工作:实现池子流动性(而非通过订单簿);基于供需实现算法利率;利率指数(用于为不限量的用户调整持币余额)。
Compound v2中,引入了cToken概念,这是一种代币化余额,该想法的灵感来自于和@delitzer的对话,@delitzer一直在探究DeFi的可组合性。
Compound治理系统基于协议和社区决策,MakerDAO系统的首个可行治理方案为Compound提供了借鉴。
COMP代币整合了投票委托功能,灵感来自Tezos。
COMP代币分发是将项目主要价值给到用户和协议参与者的一次实验,灵感来自Synthetix在DeFi激励机制中的设计,以及中本聪的比特币白皮书。[2020/6/20]
OKB池:0xd63b340F6e9CCcF0c997c83C8d036fa53B113546
动态 | 美国SEC主席在财年预算申请证词中回顾2018年加密货币相关工作:美国证券交易委员会(SEC)官网今日发布了SEC主席Jay Clayton在国会就SEC 2020财年预算申请发表的证词。在回顾2018年的工作时,Clayton提及该机构解决了一些加密货币、ICO和类似产品和技术出现的问题。SEC合规检查和检查办公室(OCIE)在2018年公布了2019年的审查优先事项,其中包括数字资产(加密货币、coin和token)。此外,SEC还创建了一个网站,向公众宣传涉及ICO的欺诈行为。[2019/5/9]
BTCK池:0x33a32f0ad4aa704e28c93ed8ffa61d50d51622a7
ETHK池:0x75dcd2536a5f414b8f90bb7f2f3c015a26dc8c79
精选 | 九月区块链声音回顾:1.经合组织(OECD)秘书长:区块链不是一种政策或监管而是一种工具。
2.央行主管金融时报:区块链技术与央行数字货币存在三大分歧。
3.中国信通院:当前区块链技术的发展趋势体现在五个方面,面临四大挑战。
4.萨摩亚中央银行:加密货币发起人将被视为金融机构,加密货币不是法币。
5.中关村区块链产业联盟理事长元道:通证发行与IC0融资没有必然关系。
6.清华大学邢春晓:要抓住区块链带来的科技革命和产业变革机遇。
7.中国政法大学许晓东:哈希值校验是可信时间戳和区块链技术的基础环节。
8.孟岩:对实体经济的通证化道路提出四点建议。
9.中国农行私人银行部副总裁:利用区块链等技术加快实施数字化转型。
10.伯克利大学经济学教授:稳定币并不能解决所有问题。
11.肖风:稳定币技术在未来一年将会迅猛发展。
12.中国旅游研究院产业所副所长:区块链未来会改变在线旅游的格局。
13.余额宝创始人周杰:通证经济才是区块链的血液。
14.蚂蚁金服副总裁蒋国飞:更看好公链技术。[2018/9/30]
攻击流程
金色财经历史回顾 壹基金收到117个比特币捐款:2013年4月23日,在壹基金合作发展部总监霍庆川和比特币中国的官方微博显示,截止到2013年4月23日凌晨0点51分,壹基金已经收到117个比特币,折合人民币将近10万元。在4月23日,比特币的全球平局价格为120.78美元,随后在2013年4月24日上升至134.8美元。[2018/4/24]
合约方面调用流程
1、攻击合约0x058065调用CherrySwap的FlashSwap功能进行闪电贷,贷出了CHE/OKB池子中几乎全部的CHE。此时池子仅剩极少量CHE
2、抵押给Definer借款来的1000个CHE,Definer预言机计算价格依赖CherrySwap池中两种代币的余额比例,导致Definer预言机计算1000个CHE价格失准,1000个CHE的价值被认为极大值。
3、攻击者借出USDT池子约462,318个USDT
4、攻击者借出OKB池子约37,172个OKB
5、攻击者借出BTCK池子约3个BTCK
6、攻击者借出ETHK池子约8个ETHK
7、攻击者通过CherrySwap的CHE/USDT池子利用10,000个USDT换出30,765个CHE
8、归还CherrySwap闪电贷1,575,093个CHE
漏洞细节
根据Definer各合约部署地址(https://docs.definer.org/deployed-contracts/addresses),由于预言机实现过程通过CherrySwap池子的两个Token在池子的余额来判断价格:
预言机实现过程中没有考虑到闪电贷贷出时余额大量减少的情况,导致了Definer项目方预言机计算失准,从而导致了该事件。
以USDT池子为例:
从具体Transaction中我们跟进到SavingAccount合约的逻辑合约0xc1b02e52e9512519edf99671931772e452fb4399#priceFromAddress
在该函数中使用AggregatorInterface(tokenInfo.chainLinkOracle)的预言机来询价
排查获取AggregatorInterface中具体调用地址发现,其映射变量位于TokenRegistry合约:
而TokenRegistry的合约部署地址根据官方的deployed-contracts/addresses可知位于0x0E16Ada9C4Cf95d6722c65504555124A241DdA81
在该地址通过对CHE代币地址0x8179d97eb6488860d816e3ecafe694a4153f216c查询得到对应使用的预言机:
该地址即为存在漏洞的预言机地址:
总结
本次事件是由于Definer在OEC对于预言机的实现存在问题,使用了单一流动池在一个时间点的池内代币余额作为价格源从而导致了事故的发生,而以太坊的实现则使用了ChainLink的预言机不存在该问题。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。