在DeFi的世界里,借助智能合约,个人创建金融产品的门槛被大幅降低。人们可以根据自己的需求,自由地设计自己的金融产品,并通过组合实现方便地交易。
目前,随着DeFi协议的组合愈发丰富,涌现出大量货币乐高的协议,从以太坊生态中的初代去中心化交易所Uniswap,到二代进化版的Sushiswap,再到币安智能链生态中的PancakeSwap,但组合过程中的风险也逐渐凸显出来。
5月2日,DeFi协议Spartan Protocol遭到骇客攻击,PeckShield 派盾通过追踪和分析发现,Spartan Protocol遭到闪电贷攻击,损失3,000万美元。
斯巴达协议(Spartan Protocol)是一个资产流动性项目,旨在解决现有AMM协议以及合成资产所出现的各类问题。斯巴达协议的流动性池是此协议的核心,所有一切系统内的相关应用都离不开流动性池的支持。
SpartanSwap应用了THORCHAIN的AMM算法。此算法采用流动性敏感资费(Liquidity-sensitive fee)来解决流动性冷启动以及滑点问题。
以下是攻击过程:
首先攻击者从PancakeSwap中借出闪电贷10,000WBNB;
第二步,攻击者在出现漏洞的Spartan兑换池中,分五次将WBNB兑换成SPARTAN,用1,913.172376149853767216WBNB分别兑换了621,865.037751148871481851 SPARTA、555,430.671213257613862228 SPARTA, 499,085.759047974016386321 SPARTA, 450,888.746328171070956525 SPARTA,和409,342.991760515634291439 SPARTA。
此时攻击者手撰2,536,613.206101067206978364 SPARTA 以及11,853.332738790033677468 WBNB,攻击者将这些Tokens注入流动池中提供流动性,铸造出933,350.959891510782264802 代币(SPT1-WBNB);
第三步,攻击者运用同样的手法,在出现漏洞的兑换池中分十次将WBNB兑换成SPARTAN,用1,674.025829131122046314 WBNB分别兑换了336,553.226646584413691711 SPARTA, 316,580.407937459884368081 SPARTA, 298,333.47575083824346321 SPARTA, 281,619.23694472865873995 SPARTA, 266,270.782888292437349121 SPARTA, 252,143.313661963544185874 SPARTA , 239,110.715943602161587616 SPARTA, 227,062.743086833745362627 SPARTA, 215,902.679301559370989883 SPARTA,和205,545.395265586231012643 SPARTA ,总计2,639,121.977427448690750716 SPARTA。
第四步,攻击者将21,632.147355962694186481 WBNB 和所有的SPARTA,即上面三步中所获的2,639,121.977427448690750716 SPARTA 转入流动池中,来抬高资产价格。
第五步,烧毁从第二步所获得的933,350.959891510782264802 代币(SPT1-WBNB),提回流动性,由于流动池处于通膨状态,共计烧毁2,538,199.153113548855179986 SPARTA 和20,694.059368262615067224 WBNB。
值得注意的是,在第二步中,攻击者仅兑换了11,853.332738790033677468 WBNB,此时攻击者获利9,000 WBNB;
第六步,攻击者在第四步中注入1,414,010.159908048805295494 pool token 为流动池提供流动性,随即启动烧毁机制获取2,643,882.074112804607308497 SPARTA 和21,555.69728926154636986 WBNB。
攻击者调用了流动性份额函数calcLiquidityShare() 查询当前余额,进而操纵余额套利,正确的操作需使用baseAmountPooled/tokenAmountPooled 状态。
DeFi系统的运行需要由智能合约进行保证,这就要求智能合约的程式码进行过缜密的审核。一旦智能合约中存在着任何漏洞,它就可能成为骇客攻击的对象。
在传统的条件下,骇客们攻击金融系统时所凭借的主要是他们在计算机技术上的优势,而在现有的DeFi生态下,由于各链、各应用之间的互通性还并不是那么好,因此跨链、跨应用之间的套利机率可能较大。
这时,即使一个计算机本领不那么强的人,只要他有足够的金融知识和足够的市场嗅觉,就也可以成为骇客,对DeFi系统进行攻击。
骇客通过区块链上的闪电贷,以很小的成本借出大笔资金,然后用这笔资金去造成一些数字资产的价格波动,再从中渔利,最初兴起于以太坊,随着币安智能链等CeFi + DeFi 生态上的资产愈发丰富,骇客也在随时伺机待发。
PeckShield 派盾相关负责人表示:“攻击手法仍换汤不换药,只是从一条链转到了另一条链,DeFi协议开发者应在攻击发生后,自查程式码。如果对此不了解,应找专业的审计机构进行审计和研究,防患于未然。”