只花几美元,黑客从RWA协议搬走几百万

发布时间:2026/7/27 18:55:17

只花几美元,黑客从RWA协议搬走几百万 一、RWA到底是啥RWA(Real World Assets)其实就是把现实资产搬到链上。比如国债房地产黄金私募债项目方会发行一个Token代表这些资产的份额。这样链上用户就能像玩DeFi一样买卖现实资产。简单理解图片但问题是链上代码 链下资产 预言机 法律结构只要一个环节出问题就可能被黑客薅羊毛。而 2025 年RWA相关漏洞损失就已经达到 1460 万美元。二、这次漏洞的核心一个“算术溢出”价格操纵我们拿最近安全圈讨论比较多的一类漏洞来讲(类似 CLMM流动性 overflow 的攻击模型)。攻击逻辑非常简单1️⃣ 黑客先用闪电贷借一堆钱2️⃣ 在流动性池里开一个极端价格区间3️⃣ 由于算术溢出 bug4️⃣ 提取流动性时计算错误5️⃣ 系统给了他远超本金的资产类似攻击曾导致某DEX被盗约 2.3亿美元。三、攻击流程(一步一步看懂)Step1闪电贷启动攻击黑客借一大笔钱但不用抵押。function startAttack() external {uint amount 10_000_000e18;flashLoanProvider.flashLoan(address(this),amount,);}闪电贷的特点图片所以黑客几乎0成本发动攻击。Step2制造极端价格区间在CLMM(集中流动性)里可以设置价格范围tickLowertickUpper黑客故意设置一个非常极端的tick范围。function addLiquidity() public {pool.mint(address(this),-887000, // 极低价格887000, // 极高价格1 // 只放一点点资金);}表面上只放了极小流动性。但系统内部会计算liquidity * priceDelta如果计算没处理好就可能溢出。Step3算术溢出发生很多协议早期代码会这样写uint256 amount liquidity * priceDiff;但如果图片乘法会超过 uint256 设计逻辑。结果就可能图片Step4提取流动性function removeLiquidity() public {pool.burn(-887000,887000,liquidity);pool.collect(address(this),type(uint128).max,type(uint128).max);}系统以为你是正常LP于是给你结算大量资产。Step5还闪电贷 带走利润最后一步function repayLoan(uint amount) internal {token.transfer(address(flashLoanProvider), amount);}流程借钱 → 操作 → 提币 → 还钱黑客利润多拿的 Token四、为什么RWA更容易出这种问题RWA协议的复杂度远高于普通DeFi。安全通常涉及 5层风险1️⃣ 智能合约2️⃣ 预言机3️⃣ 托管资产4️⃣ 法律结构5️⃣ 运维流程任何一层都可能被利用。例如图片如果 Oracle 被操纵真实价格 100喂价 200那整个抵押系统就可能被抽干。五、攻击的本质其实就一句话黑客做的事情只有一个让协议计算错钱。常见套路图片DeFi历史上 150 亿美元以上漏洞损失就是这么来的。六、给项目方的3个安全建议1️⃣ 禁止危险数学用SafeMath或 solidity 0.82️⃣ 限制极端参数例如图片3️⃣ Oracle必须抗操纵必须用图片七、总结一句话Web3最大漏洞不是代码而是“金融逻辑 代码”的组合漏洞。ChainSafeAI(链熵科技)专注于区块链生态安全以“数据驱动 技术赋能”构建360°全方位安全防护体系服务于交易所、金融机构、OTC服务商及加密资产投资者。公司提供覆盖KYT风险监测、智能合约审计、加密资产追踪、区块链漏洞测试等在内的全维度安全与合规技术解决方案助力客户防范洗钱、诈骗等风险保障业务合规运行。通过实时风险预警、合规审查与资金溯源分析协助客户识别链上异常行为、防范洗钱及诈骗风险、降低被盗损失并提升资产追回可能性。

相关新闻