在DeFi 的世界裡,借助於智能合約,個人創建金融產品的門檻被大幅降低。人們可以根據自己的需求,自由地設計自己的金融產品,並通過組合實現方便地交易。
目前,隨著DeFi 協議的組合愈發豐富,湧現出大量“貨幣樂高”的協議,從以太坊生態中的初代去中心化交易所Uniswap,到二代進化版的Sushiswap,再到幣安智能鏈生態中的PancakeSwap,但組合過程中的風險也逐漸凸顯出來。
5 月2 日,DeFi 協議Spartan Potocol 遭到黑客攻擊,PeckShield 「派盾」通過追踪和分析發現,Spartan Potocol 遭到閃電貸攻擊,損失3,000 萬美元。
斯巴達協議(Spartan Protocol)是一個資產流動性項目,旨在解決現有AMM 協議以及合成資產所出現的各類問題。斯巴達協議的流動性池是此協議的核心,所有一切系統內的相關應用都離不開流動性池的支持。 SpartanSwap 應用了THORCHAIN 的AMM 算法。此算法採用流動性敏感資費(Liquidity-sensitive fee)來解決流動性冷啟動以及滑點問題。
以下是攻擊過程:首先攻擊者從PancakeSwap 中藉出閃電貸10,000 WBNB;
第二步,攻擊者在出現漏洞的Spartan 兌換池中,分五次將WBNB 兌換成SPARTAN,用1,913.172376149853767216 WBNB 分別兌換了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 協議開發者應在攻擊發生後,自查代碼。如果對此不了解,應找專業的審計機構進行審計和研究,防患於未然。”