前言
北京时间12月13日,知道创宇区块链安全实验室关注到针对Definer预言机的攻击事件。
作为第三方区块链安全机构,受Definer、Cherryswap和OEC组成的调查小组邀请参与本次攻击事件的技术调查工作。实验室第一时间启动应急,跟踪本次事件进行分析并出具调查报告。
分析
tx:
https://www.oklink.com/en/oec/tx/0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a?tab=4
V神发文探讨CEX的安全性:希望技术上使交易所接近非托管:11月19日消息,针对FTX事件,V神发文”安全的CEX:偿付能力证明“,探讨使交易所更接近去信任化的尝试历史、这些技术的局限性,以及一些新的、更强大的想法,这些想法依赖于ZK SNARK和其他先进技术。
V神表示,使用ZK-SNARKs可改善隐私和稳健性,将所有用户的存款放入一棵Merkle树中,并使用 ZK-SNARK 来证明树中的所有余额都是非负的,加起来为一些声称的价值。如果我们为隐私添加一层哈希,则提供给每个用户的Merkle分支将不会透露任何其他用户的余额。
对于更进一步,不想仅仅证明交易所有资金来偿还用户,更要防止交易所完全窃取用户的资金。V甚表示,理想的长期解决方案是依靠自我托管,并辅以多重签名和社交恢复钱包等技术,以帮助用户应对紧急情况。在短期内,有两种明确的替代方案:Coinbase等托管交易所、Uniswap等非托管交易所。
最后,V神表示,短期内,交易所分为两个明确的“类别”:托管交易所和非托管交易所。今天,后一类只是DEXes,例如Uniswap,未来我们可能还会看到加密“受限”的CEXes,其中用户资金保存在类似于validium智能合约的东西中。我们也可能会看到半托管交易所,我们用法定货币而不是加密货币来信任它们。
两种类型的交易所都将继续存在,而提高托管交易所安全性的最简单的向后兼容方式是添加储备证明。这包括资产证明和负债证明的组合。为两者制定良好的协议存在技术挑战,但我们可以而且应该尽可能地在两者上取得进展,并尽可能开源软件和流程,以便所有交易所都能受益。
从长远来看,V神希望我们越来越接近于所有交易所都是非托管的,至少在加密方面是这样。钱包恢复将存在,并且可能需要为处理小额交易的新用户以及出于法律原因需要此类安排的机构提供高度中心化的恢复选项,但这可以在钱包层而不是在交易所本身内完成。[2022/11/19 22:06:43]
攻击者信息
V神发推称赞EIP 1559 用户质疑该提案将会损害矿工利益:10月20日消息,今日上午V神发推称,EIP 1559正是当今世界所需要的。对此,有用户表示反对,称应该否决该提议,他表示虽然EIP 1559确实很有趣,但是似乎它会对矿工造成很大的伤害。并认为如果该提议获批将会影响大型矿工和矿业集团继续参与以太坊网络挖矿。目前V神尚未回复。
据悉,EIP 1559由V神于2018年首次提出,预计使以太坊区块链的收费市场更加可预测并缓解拥堵。[2020/10/20]
攻击tx:0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a
攻击合约:0x05806559f7f7732f2d3e71bca2eb12eab1938ceb
动态 | V神发起DAI贷款年利率超国债的投票 半数用户认为DAI随时可能面临崩盘:以太坊创始人V 神今日在推特发起关于“DAI 的贷款年利率与美国 10 年国债收益率差距”的投票,V 神指出,DAI 贷款可以提供 11.5% 的年利率。而美国 10 年期国债收益率仅为 1.5%。为什么会出现这种差距呢?,同时给出了四个选项,1. 临时现象,受市场影响;2. DAI 有随时崩盘的风险;3. Compound 倒闭的风险;4. 其他,请回复在评论中。截至目前,结果显示超半数用户认为DAI随时可能崩盘的风险导致了它的高年利率。V神在评论中表示,这就是为什么我认为“贷款”是整个defi的错误隐喻的部分原因。大多数在发展中国家发放的贷款并不是由其他高流动性加密资产(或一般的高流动性或数字资产)担保的150%。[2019/8/24]
被攻击池信息
V神发火:你们再炫富,我就退出:以太坊已成为加密货币2.0代表,但以太坊创始人Vitalik Buterin却时常充满担忧,他认为,加密货币技术正朝着错误的方向前进。他不希望以太币沦为投机者的天堂,而是能够渗透进所有的工业中,将全世界的经济、社交、文化都去中心化。他警告说:数字货币随时可能归零,传统资产仍是存款首选。他不希望人们带着数千亿美元的数字纸上财富到处炫耀,并威胁道,“如果你们再这样的不成熟,我就将退出以太坊。”[2018/3/17]
USDT池:0xc1b02e52e9512519edf99671931772e452fb4399
OKB池:0xd63b340F6e9CCcF0c997c83C8d036fa53B113546
BTCK池:0x33a32f0ad4aa704e28c93ed8ffa61d50d51622a7
V神发推特:特殊情况下硬分叉“挽救”行为对新生区块链是个不错的选择:以太坊创始人Vitalik Buterin 刚刚发布推特回应称,在特殊情况下的硬分叉“挽救”行为对于早期的新生区块链来说是个不错的选择。近日,有评论称以太坊树立了一个坏榜样,现在每次有黑客事件发声,就会有人要求硬分叉追回。[2018/2/11]
ETHK池:0x75dcd2536a5f414b8f90bb7f2f3c015a26dc8c79
攻击流程
合约方面调用流程
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的预言机不存在该问题。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。