引言:关于 DeFi 的安全问题,从 2020 年 2 月份到现在,损失数亿美元,各路专家已有无数文章来解析 DeFi 乐高的风险,直到现在这类问题依然没有引起开发者们的高度重视,在市场持续狂热以及锁仓规模不断推高的环境中,人们似乎已经忘了,那个深埋在狂欢大陆土地下的隐患,并没有消失......
曾经的 DeFi 之王 YFI 协议未能幸免
2021 年第一次闪电贷攻击事件,发生在了 2020 年的 DeFi 王者 —— Yearn Finance 协议身上,当然,这是偶然事件还是开年先拿王者开刀,来嘲讽 DeFi 的无能,我们暂且不论,也无从洞察“攻击者”的心境,这里,我们来看一下发生了什么。
根据慢雾科技的情报,遭受攻击的是 Yearn Finance 协议的 DAI 策略池,具体情况如下:
安全公司:SEAMAN项目遭闪电贷攻击,攻击者获利约7800美元:金色财经报道,安全公司CertiK Alert发推称,SEAMAN 项目遭闪电贷攻击,开发者利用了 SEAMAN 处理 LP 存款上的 GVC 分 配方式中的一个漏洞。该漏洞使 GVC 价格下跌,攻击者共能获利约 7800 美元。
SEAMAN 合约:BSC 0x6bc9b4976ba6f8C9574326375204eE469993D038
Great Voyage Coin (GVC) 合约:BSC 0xDB95FBc5532eEb43DeEd56c8dc050c930e31017e[2022/11/29 21:10:05]
1. 攻击者首先从 dYdX 和 AAVE 中使用闪电贷借出大量的 ETH
安全团队:CUPID代币合约遭遇闪电贷攻击,攻击者获利约7.9万美元:金色财经消息,据CertiK监测,BSC链上CUPID代币合约遭遇闪电贷攻击,CUPID代币和VENUS代币均下跌,攻击者获利78622美元。[2022/8/31 12:59:55]
2. 攻击者使用从第 1 步借出的 ETH 在 Compound 中借出 DAI 和 USDC
3. 攻击者将第 2 步中的所有 USDC 和 大部分的 DAI 存入到 Curve DAI/USDC/USDT 池中,这个时候由于攻击者存入流动性巨大,其实已经控制 Curve DAI/USDC/USDT 的大部分流动性
4.?攻击者从 Curve 池中取出一定量的 USDT,使 DAI/USDT/USDC 的比例失衡,及 DAI/ (USDT&USDC) 贬值
Chainlink联合创始人:最近的DeFi攻击不应归咎于闪电贷:金色财经报道,Chainlink联合创始人Sergery Nazarov表示,将最近的DeFi攻击定性为闪电贷攻击可能不太公平。Nazarov表示,真正的问题在于构造糟糕的DeFi项目。尽管许多人试图将这种攻击描述为“闪电贷”的结果,但大多数此类行为都可能是由任何一个资本充足的行动者实施的。[2020/11/19 21:17:34]
5. 攻击者第 3 步将剩余的 DAI 充值进 yearn DAI 策略池中,接着调用 yearn DAI 策略池的 earn 函数,将充值的 DAI 以失衡的比例转入 Curve DAI/USDT/USDC 池中,同时 yearn DAI 策略池将获得一定量的 3CRV 代币
动态 | 0x研发人员提出将闪电贷集成到代币合约中的方法:去中心化交易所协议0x的研发人员RemcoBloemen提出将闪电贷直接集成到代币合约中的方法,他把这种扩展了ERC-20的合约称之为FlashERC20。他表示,让我们直接在代币的合约中创建免费无限的闪电贷款,这就是FlashERC20。有人评论到,这将是对ERC-20和ERC-777的扩展,让我们把它标准化吧。RemcoBloemen在评论中讨论是将该逻辑优先支持DAI或wETH。[2020/2/17]
6. 攻击者将第 4 步取走的 USDT 重新存入 Curve DAI/USDT/USDC 池中,使 DAI/USDT/USDC 的比例恢复
7. 攻击者触发 yearn DAI 策略池的 withdraw 函数,由于 yearn DAI 策略池存入时用的是失衡的比例,现在使用正常的比例提现,DAI在池中的占比提升,导致同等数量的 3CRV 代币能取回的 DAI 的数量变少。这部分少取回的代币留在了 Curve DAI/USDC/USDT 池中
8. 由于第 3 步中攻击者已经持有了 Curve DAI/USDC/USDT 池中大部分的流动性,导致 yearn DAI 策略池未能取回的 DAI 将大部分分给了攻击者
9. 重复上述 3-8 步骤 5 次,并归还闪电贷,完成获利
攻击者利用闪电贷进行这一循环套利,使得 Yearn Finance 损失高达千万美元!
根源不是闪电贷,而是脆弱的价格机制
YFI 和 Curve 之间的组合,利用 LP 的不同净值来计算份额,通过池子里的份额来决定价格,这是典型的价格操控!
我们把现在的各 DeFi 协议当作是各个国家,每个国家制定不同的政策规则,商人通过政策规则之间的组合,寻找突破口,来获取利差。这是光明正大的赚取合理收益, 无法责怪攻击者,因为,你的机制告诉了别人,怎么来操控我的价格进行套利。
关于闪电贷攻击的问题,我们已经阐述过多次,《解读 | Compound 遭受价格预言机操纵攻击事件始末》,这篇文章里有详细描述。
价格操控的背后所暴露的问题,才是我们更应该去思考和研究的方向。
现如今的 DeFi 协议开发者,往往把快速、高效放在第一位,对区块链的本质充耳不闻,大家都求快,不愿去解决本质问题的根源。因为几乎所有人都正在这样做,睁一只眼闭一只眼。
比特币的设计,是让所有节点一起对正在广播的交易进行验证,所有人都同意的广播,这笔交易才作数。其本身就是一个冗余的复杂系统,比特币并非是为了在“可用性”方面做出创新,而是在“可信性”方面给出了一个完美的解决方案,解决了去中心化过程中的安全问题。比特币网络的算力规模越大,网络越安全,但其处理交易的效率并没有提高。
如果一个价格机制可以简单的利用所谓的“可信”节点上传到链上或者通过 LP 份额的方式来简单决定,而使用这个价格的 DeFi 协议或者用户无法对你的价格进行无需许可的有效验证,那么你给出的价格就是你说的算,并不是共识过的价格,并不是大家一起说的算;进而,基于这套价格体系的链上经济体的安全系数,也必然不会随着规模的扩大而增强。简单来讲,这与区块链本质背道而驰,舍本逐末。
坚定去中心化的安全之路
NEST Protocol 坚持以无需许可,可被任何人验证的无套利空间的价格同步在链上生成,供 DeFi 协议调用,随着 NEST 报价矿工/验证者参与规模的增长,其在链上生成的价格数据质量也会同步提高,这是一个非合作博弈系统所应该表现出来的基础属性,可累积博弈。
在有效市场下,这种报价矿工之间的博弈、报价矿工与验证者之间的博弈,以及协议与二级市场之间的博弈,多维度非合作博弈生成的链上价格才是我们应该去追求的安全之根。
坚持区块链本质,坚定去中心化精神,是区块链行业发展的第一准则。
撰文 | NESTFANS.知鱼
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。