6 月 20 日,BNB Chain 上的 OLPC/LABUBU 流动性池遭到利用,攻击者从 PancakeSwap V2 相关池子中转走约 111 万美元资产。事件的关键不在普通闪电贷,而在于池子储备数据与真实余额出现偏差,导致价格被扭曲。
攻击点出在储备与余额脱节
这次事件涉及 OLPC 代币的通缩机制。分析显示,攻击者先通过合约发起一笔小额转账,随后触发池内代币销毁。过程中,约 5190 万枚 OLPC 和 12.4 万枚 LABUBU 被转入销毁地址。
问题在于,交易对缓存的储备数值没有同步更新,但池子的真实代币余额已经明显下降。储备与余额脱节后,恒定乘积做市机制给出了失真的价格,给后续套利留下空间。
攻击者低价抽走剩余流动性
在价格被拉偏后,攻击者得以用明显低于正常水平的价格买入并抽干池中剩余的 LABUBU 流动性,由此完成获利。报道提到,截至发稿时,被盗资金尚未出现跨链转移,也没有流入 Tornado Cash,或分散到多个地址。
目前,外界仍无法确认这一漏洞是否早已被人为埋入。不过,初步分析把问题指向 OLPC 合约中的 decimalsValue 参数。
异常参数或在 46 天前埋下隐患
更深入的链上分析显示,攻击发生前约 46 天,OLPC 代币所有者曾把 decimalsValue 从 1 改成一个异常大的数值。这个改动使 _update 函数可能触发过量销毁,进而为这次储备失真埋下条件。
值得注意的是,在项目放弃合约所有权前几周,这一参数就已经被设为异常水平。这也让外界怀疑,相关缺陷可能在攻击发生前很久就已存在。
补充信息:根据 DeFiLlama 数据,6 月以来各类加密攻击累计损失已升至约 6003 万美元。同期,Humanity Protocol 损失约 3200 万美元,Aztec Network 也遭遇攻击,损失包括 1158 枚 ETH、15 万枚 DAI 和 0.4696 枚 renBTC。