37万美元被盗背后:一次“零金额转账”击穿DeFi协议
2026-06-18
DeFi世界里,很多黑客攻击并不依赖复杂的密码学突破。
相反,它们往往始于一个看似无害的细节。
这一次出问题的是BSC链上的DeFi挖矿协议Little Boy Plus。根据慢雾监测,攻击者利用合约逻辑缺陷窃取约37万美元资产,涉及约610枚BNB。损失规模不算特别巨大,但攻击路径却颇具代表性,因为它再次暴露了DeFi项目长期存在的一类风险——开发者以为安全的边界,未必真的存在。
从技术层面看,漏洞核心出现在LBPHashrate._update()函数。
攻击者并没有直接破解权限系统,而是利用一次金额为零的transferFrom()调用触发后续逻辑。由于相关代码对零值转账处理存在缺陷,这笔理论上“不产生任何资产变动”的交易竟然成功绕过了授权检查。
问题随后开始连锁反应。
攻击者通过调用LBPHashrate.transferFrom(pair, DEAD, 0)触发内部的_harvest()逻辑,而该函数又进一步调用mintReward()机制,为流动性池对应地址铸造新的LBP代币。
这里出现了DeFi协议设计中非常危险的一种状态失衡。
代币余额增加了。
但流动性池储备数据没有同步更新。
对于自动做市商(AMM)体系而言,余额与储备之间的关系几乎决定整个定价机制。一旦两者脱节,套利空间就会被人为制造出来。
攻击者随后利用PancakeSwap交易对的定价逻辑完成套利,将池中的USDT逐步抽离。
整个过程看上去像是在凭空创造价值。
实际上并非如此。
攻击者创造的是一种虚假的资产状态,然后利用协议自身的计算规则将其转化为真实资产。
这也是近年来越来越常见的攻击模式。
如果回顾过去两三年的DeFi安全事件会发现,传统意义上的“盗取私钥”正在减少,而逻辑漏洞攻击不断增加。从闪电贷操纵预言机,到奖励机制设计缺陷,再到流动性池状态失衡,攻击者越来越擅长利用协议内部规则赚钱。
某种程度上,他们甚至比项目开发者更熟悉系统运行方式。
尤其是在收益挖矿协议领域。
为了吸引用户,项目方通常会叠加大量激励模块,包括挖矿奖励、复利机制、流动性激励和销毁模型。每增加一层设计,系统复杂度都会提升。
复杂性带来创新。
也带来新的攻击面。
Little Boy Plus此次遭遇的问题,本质上并不是某个单独函数失效,而是多个模块之间的联动关系没有被充分验证。开发者或许关注了授权检查本身,却忽略了零金额交易这种边界情况能够触发奖励逻辑。
在传统互联网开发中,这类问题通常被称为“边缘案例”。
而在链上金融世界里,一个边缘案例往往意味着几十万美元甚至数百万美元损失。
这也是为什么越来越多审计机构开始强调形式化验证和模糊测试。
过去的安全审计主要检查代码是否存在已知漏洞。
如今则需要模拟各种极端场景,包括零金额转账、异常价格波动、跨模块调用以及权限继承问题。
因为攻击者寻找的往往不是主入口。
而是那些开发者认为“不可能发生”的角落。
从行业角度看,这起事件金额有限,未必会引发市场大规模波动。但它提醒了一个老问题:DeFi协议的竞争已经不只是收益率竞争。
当行业进入存量阶段,安全能力正在成为新的护城河。
用户或许会因为高收益进入一个协议,却可能因为一次漏洞攻击永远离开。
对于许多中小型DeFi项目而言,真正的挑战也许不是如何设计更高的APR,而是如何证明自己的代码经得起最苛刻的攻击测试。
因为在链上金融世界里,黑客从来不会按照白皮书预设的方式使用产品。
