安基網 首頁 資訊 安全報 查看內容

黑客盜走五十萬美元加密貨幣解析Defi危機

2020-7-14 13:26| 投稿: xiaotiger |來自: 互聯網


免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

摘要: 就在幾天前,有報道稱,Balancer遭受到了黑客攻擊并損失了約合價值$500,000美金。本文將簡單復盤此次的攻擊經過并分析其背后的原理,介紹其中所提到的技術并且展望我們目前可以預見的關于去中心化金融的潛在危機。 ...

就在幾天前,有報道稱,Balancer遭受到了黑客攻擊并損失了約合價值$500,000美金。本文將簡單復盤此次的攻擊經過并分析其背后的原理,介紹其中所提到的技術并且展望我們目前可以預見的關于去中心化金融的潛在危機。

分散式金融(DeFi)流動性提供商Balancer Pool承認其被黑客利用了一個系統漏洞,誘使該系統釋放了價值500,000美元的加密貨幣。

Balancer Pools是一家類似Uniswap的多維自動做市商(AMM)。它們擁有多種資產,使用算法來平衡通過其系統運行的每個加密貨幣的數量從而保持市場流動性。

這次攻擊是由一個黑客組織使用智能合約在單個交易中自動執行。第一步,攻擊者從dYdX獲得了104k WETH的閃電貸(Flash Loan)。WETH是一種可以直接與其他幣種交易的ETH衍生品。這個黑客使用資金在WETH與STA token來回交換了24次,使得池中STA余額耗盡,并變成1 weiSTA(0.000000000000000001 STA)。STA token是Stratera發行的一種代幣。STA是通貨緊縮的token,意味著每筆交易價值的1%都會被銷毀(burn)。此次攻擊是因為Balancer Pool合約跟蹤了智能合約中的代幣余額,并且STA代幣具有通貨緊縮模型,收取了接收者1%的轉讓費,從而導致transfer() 和transferFrom() 行為不當。因此,每當攻擊者將WETH交換給STA時,Balancer池收到的STA就會比預期的少1%。

然后,攻擊者多次將1 weiSTA交換到WETH。由于STA轉讓費機制,Balancer池從未收到STA,反而發放了WETH。由于攻擊者進行了大量交易,因此該STA很快變得一文不值。黑客然后用這個幾乎毫無價值的STA換回了WETH。

最后,攻擊者向dYdX償還了104k WETH的閃電貸。黑客通過存入一些weiSTA,迅速增加了自己在Balancer Pool中的份額。然后,他通過Uniswap V2將收集的Balancer Pool代幣交換到136k STA,然后再次將136k STA交換到109 WETH。

除WETH之外,攻擊者還使用WBTC,LINK和SNX對Statera進行了相同的攻擊。

最終,Balancer Pool損失了近50萬美元,而黑客獲得了近42萬美金的代幣,其中包括:

  • 455 WETH ($100k worth)

  • 2.4m STA ($100k worth) and converted it to 109 WETH ($25k worth)

  • 11.36 WBTC ($100k worth)

  • 60.9k SNX ($100k worth)

  • 22.6k LINK ($100k worth)

那么,這個hacker是怎么做到的呢,是什么樣的條件以及契機造就了他的成功呢,我們從中得到了怎么樣的關于DeFi Crisis的啟發呢。

什么是Flash Loan

在這次黑客攻擊中,我們首先看到的黑客運用的手段就是閃電貸。那么什么是閃電貸呢?

閃電貸是一種無抵押貸款,但是僅在一次交易中有效。在以太坊虛擬機(EVM)中,即使有一些交易的條件不滿足,也是可以完成交易的。快速貸款的操作如下:一方創建一個智能合約,通過該合約取出貸款,執行某些操作后立即償還貸款。

閃電貸的存在同時也解鎖了閃電攻擊(Flash Attack),這是一種通過閃電貸獲得資助的資本密集型攻擊。正因為閃電貸的特殊設定,這樣的攻擊不需要凍結任何抵押資產,理論上來講,黑客可以在不用繳納任何抵押資產的情況下借到閃電貸。只要閃電貸的資金池中還有充足的資金流動性,盡管是一個沒有任何資本的黑客,交一些gas fee,大概$15美金,從而就可以以閃電貸為資本實施攻擊。

在這次的攻擊中,沒有放入抵押的攻擊者在dXdY平臺上瞬間借了數十萬美元的ETH,通過一系列易受攻擊的鏈上協議將其上傳到鏈上,提取了數十萬美元的被盜資產,然后償還了等同于借貸金額的ETH貸款。所有這一切都是在單個以太坊交易中瞬間發生的。

區塊鏈是依靠預言機(Oracle)從外部來源獲取信息的。在DeFi中,對預言機依賴最大的就是價格。以太坊區塊鏈本身并不能決定ETH的價格,這是由市場決定。因此,價格數據是使用預言機輸入的。交易者可以通過足夠大的交易來操縱預言機提供的價格信息。交易所的流動性越少,操縱價格越容易。然后,交易者可以在經操縱過的價格上進行第二次杠桿交易,以確保他們獲得最大的利潤。

閃電貸對攻擊者尤其有吸引力的主要原因有兩個:

  1. 很多攻擊需要大量前期資金,例如使用預言機操縱攻擊

  2. 閃電貸可以最小化對攻擊者的影響。

如果我有個用1000萬美元ETH操縱預言機的想法,即便是我擁有這么多ETH,我也可能不會用自己的資本進行冒險。如果我是用個人資產進行惡意攻擊,我的ETH就會有污點,交易所可能會拒絕我的存入,并且很難洗白。不過,如果我通過Flash Loan借來價值1000萬美元的ETH實施攻擊,那么,沒有人會在乎這筆資產。盡管dYdX的抵押池是我貸款的來源,這也不會對dYdX有很大的影響。

由于以太坊領域中的包括STA代幣在內的很多一部分加密貨幣都具有通貨緊縮的獨特機制,從而保證其幣種盡可能小的受通貨膨脹的影響而貶值,所以在這一次的攻擊中,這名黑客將104k ETH與STA進行了24次的交換,抽空了STA的流動性池。每一次交換,黑客手中的STA就會損失掉1%的實際價值,由于STA智能合約的這種特性,從而使STA代幣變得近乎沒有任何價值可言。但是就是通過這個沒有價值的STA代幣,這名黑客從Balancer資金池中獲得了與之前STA代幣價值相同的ETH,不僅償還了10.4萬個ETH的閃電貸款,還獲得了大量余額。不僅僅是ETH,攻擊者同時還與其他不同的幣種進行了交換,包括WBTC, LINK and SNX來換取STA代幣并從中獲利。

從中我們可以看出來,由于Balancer的智能合約存在的漏洞,并沒有準確的判斷出所兌換的幣種是否擁有其真實價值,而發放了相對應的金額款項。那么從類似于這樣的智能合約漏洞,我們可以看到一些怎么樣的去中心化金融的危機呢?而在其中扮演重要角色的DeFi Protocols又是什么呢?

DeFi Protocols

DeFi是一個去中心化的對等金融模式,并利用基于區塊鏈的智能合約來確保其完整性和安全性。

DeFi協議主要出現在諸如借貸,去中心式交易和其他衍生產品的用途上。

就像傳統的金融協議一樣,DeFi協議并不是孤立存在的。它的開放性質允許開發人員通過將現有協議組合在一起來創建新協議。這樣,通過一種協議借貸所獲得的資產可以以任何形式用作其他協議中的抵押品。這就造就了一個復雜且相互交織的資產和債務系統。而且,被用作其他協議中保留資產的協議如果失敗,對其他協議也將具有連鎖效應,就如同多米諾骨牌一樣。

比如說,在Maker中創建的資產同時可用作其他協議中的抵押品,例如Compound,dYdX或Uniswap上的流動性池。確實,DeFi的可組合性定義了開放式金融的屬性,即在加密資產之上構建復雜的多組件金融系統的能力。但是,如果基礎抵押資產失敗,則所有關聯協議都將受到影響。

這些協議的核心不是由某個機構及其員工來管理,而是由代碼或智能合約的編寫規則。一旦將智能合約部署到區塊鏈,DeFi dApps即可在很少有人干預的情況下自動運行

像任何計算機代碼一樣,智能合約可能容易因為意外的編程錯誤而出現漏洞并且受到惡意黑客的攻擊。

智能合約漏洞就是DeFi的黑天鵝。如果黑客發現并利用了dApp的開源代碼中的錯誤,那么數百萬美元可能會立即被盜取或耗盡。

治理(Governance)是DeFi協議的另一個關鍵方面,治理的過程依賴于代幣的數量,參與者的投票權與其在投票系統中鎖定的代幣的數量成比例。

通過行政投票,參與者可以在系統上加注(即鎖定)代幣來選擇執行合約,從而定義一套規則來管理系統。行政投票是連續的,參與者可以隨時更改其投票,并且只要獲得多數票,就可以重新選舉新的合約。當選的合約是唯一允許操縱抵押資金的實體。如果要選擇惡意合約,它可能會竊取所有作為抵押的資金。

保護行政投票的防御機制也是存在的。例如,治理安全模塊將成功選出的合同封裝一段時間。等時間過后,成功選舉的合約才能控制系統,從而降低攻擊載體。“緊急關機”功能使一組擁有足夠代幣的參與者可以暫停系統。但是,此操作需要一定容量的代幣池。

假設現在有一個理性的對手(Adversary,密碼學中用來泛指想攻破系統的人),這個對手只有在潛在回報高于成本的情況下才會進行攻擊。在攻擊中,這個對手為了競選他的合約作為執行合約所必須支付的金額就是他的攻擊成本。收益是如果合約一旦被選,他的合約竊取和產生的金額就是他的回報。選擇對抗性的執行合約可以使這個對手通過兩種方式獲得經濟效益。首先,此合約可以將所有ETH抵押品轉移到對手的地址。其次,合約可以鑄造新的DAI代幣并將其轉移給對手。然后可以交易DAI代幣,直到DAI價格崩潰為止。

一方面,通過投票實施的管理機制允許一定程度的去中心化,從而多個協議參與者可以影響協議的未來方向。根據代幣的分布,這或許可以減少其中一方產生惡意的風險。但是,這也為攻擊投票系統創造了可能性。另一方面,掌控管理機制的“仁慈獨裁者”也可以防止攻擊。然而,這需要相信該中央實體不會丟失或暴露他的控制智能合約協議訪問的私鑰,并且該這個獨裁者不能接受賄賂然后進行惡意攻擊行為。

我們已經看到了智能合約黑客以及DeFi協議可組合性和交換機制帶來的負面影響。智能合約可以在幾秒鐘內損失大量資金,我們仍需要更多的審核和保護,以增加其安全性。



小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

本文出自:https://www.jinse.com/news/blockchain/757601.html

免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


鮮花

握手

雷人

路過

雞蛋

相關閱讀

最新評論

 最新
返回頂部
创业如何赚钱 腾讯分分彩开奖规定 广西快三大小单双计划 新股票发行 股票下跌怎么办 合法的股票配资平台有哪些 11选5一定牛走势图 山西高频十一选五走势图 广东11选5中奖查询规则 她理财攒钱助手跑路 速快3预测 股票分析软件 辽宁35选7机选 上海十一选五直选三 宁夏11选5开奖时间 股市害死多少人 平特连肖计算方法