以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > USDT > Info

【必讀】以太坊 DeFi 生態當前最大的安全隱患_DEF:DEFI

Author:

Time:1900/1/1 0:00:00

轉載自:比特派錢包

DeFi很火、Compound很熱,業內都仿佛打入雞血一般地參與到這個生態,創新、革命,終結中心化這一天似乎馬上就能到來。

預言機、智能合約錢包、去中心化借貸、去中心化交易、去中心化blahblah......

很多區塊鏈行業內的從業者們開始樂觀地認為DeFi的黃金大廈已經基本完工。

不過,在DeFi晴朗的天空上,卻還飄忽著幾朵令人不安的烏云。

2020年4月18日,Uniswap爆出智能合約漏洞,該漏洞被人利用盜取了數十萬美金的資產;

2020年4月19日,Lendf.me因相同漏洞,被一位程序員盜取了數千萬美金的資產;

這兩次的事件,在業內引起了軒然大波,尤其是Lendf.me的被盜,更是引發了更廣泛地討論:

“到底應該由誰來承擔責任?”

“似乎去中心化之后就很難說清楚出了問題該找誰?”

“難道DeFi了之后,丟幣就全得是用戶承擔了嗎?”

幸運的是,因為盜取Lendf.me的人只是一名普通的程序員,并不是職業的黑客——他并不懂得如何更好的隱匿自己的行蹤。因其泄露了IP,并進一步被定位,最終這位程序員只能主動退還資產以避免受到法律上的懲罰。

在這件事情上,Lendf.me的項目方和用戶可以說是極其幸運的,他們躲過了巨額資產損失及冗長的法律訴訟的風險,從行業的角度上講,找回了肯定是好事。但好事歸好事,籠罩在DeFi生態上的烏云仍未消散,DeFi的未來還安全嗎?

關于智能合約安全,歷史上已經發生過很多起事故了,這朵烏云其實一直就在那里,這也是行業需要一直面臨下去的風險和挑戰。

不過我們今天要跟您聊的是另一朵烏云,從安全的角度上講,另一朵烏云的復雜度要低很多,但其影響卻更廣泛——幾乎影響到了每一個參與DeFi的用戶。

Ark Invest:比特幣已到重要轉折點:6月27日消息,Cathie Wood旗下Ark Invest在周一的一封電子郵件中表示,貝萊德對現貨比特幣ETF的申請可能是比特幣獲得機構接受的重要轉折點,貝萊德決定申請比特幣ETF表明,大型機構參與者對數字資產的長期前景持樂觀態度。[2023/6/27 22:01:41]

其影響程度明明很嚴重,但卻一直被行業內的用戶和從業者們所忽視。這朵烏云如達摩克利斯之劍,懸于DeFi的之頂,無論你是否無視它,它一直都在那里,靜靜地看著你,等待著機會將你一口吞嚙。

作為比特派安全實驗室成立之后的第一篇文章,我們將系統的把這朵烏云給大家講清楚,并且還會包括完整的智能合約案例來給大家演示這朵烏云對于普通用戶可能造成的資產安全風險。相信通過本文,用戶們就能清楚的意識到,當你去參與以太坊的DeFi生態時,很多你不經意地操作所帶來的風險可能沒那么簡單,這其中的風險,可以大到沒有上限。

在正式開始討論之前,我先問大家一個問題:

假設你有100萬個以太版本的USDT,現在你決定向一個中心化的交易所轉入1萬。如果出了問題,你的風險上限是多少?

答案很簡單,風險只是你存入的1萬USDT。剩下的99萬都在你的錢包里,無論是黑客還是交易所老板都拿這些錢沒辦法,他們能偷走的只有那1萬。

好了,現在相同的場景放到DeFi里:

還是假設你有100萬USDT,現在你決定往一個去中心化的DeFi合約里存1萬,如果出了問題,你的風險上限是多少?

還是1萬嗎?錯!你現在的風險上限很可能變成了100萬USDT,即便剩下的99萬USDT明明還是安安靜靜地躺在你的錢包里,甚至你可以很小心地把這些USDT保管在絕不觸網、絕對安全的硬件冷錢包里也一樣,你的百萬資產極有可能一瞬間就會灰飛煙滅,BOOM!

Cobie回應Mark Cuban:感謝在頂部買幣,幾年后有更多代幣賣給你:11月21日消息,達拉斯小牛隊老板馬克·庫班在推特上取消關注數十個加密推特賬號,其中包括加密KOL Cobie,Cobie回應表示,“再見,馬克,下次再見,感謝您在頂部從我們這里購買我們的代幣,幾年后會有更多的代幣賣給你。”

此前報道,Mark Cuban今日陸續取消對MetaMask、The Block、Solana、Treum、Mirror Protocol、Polkadot、DeFi Pulse、Flow、Dapper Labs、Uniswap Labs等加密項目的推特關注。其中諸多項目被所馬克·庫班投資,包括Mintable、Dapper Labs等。[2022/11/21 22:12:22]

為什么會這樣呢?原因就在于以太坊生態最基礎的授權模型。

當你訪問一個智能合約時,智能合約可能會為了“能更方便的操縱你的資產”的目的,向你申請授權,那這個授權調用又是個什么樣子呢?

現在我們隨便從鏈上找一筆授權交易來看一下:

https://etherscan.io/tx/0x419d17e216cda75dd9635a752e9aedb8f43ed4bfe31a6f75ed8923779c73eb6e

這筆交易很簡單,其實就是這個地址授權給合約無限動用自己全部USDT的權力。

那這么做的好處又是什么呢?

在完成了這個授權操作后,Uniswap就可以很方便地操作你的資產了,后續的調用少了,訪問次數也少了。有的合約甚至還可以幫你兌換以太礦工費,也就是說,讓你在沒有ETH做礦工費的情況下,仍然可以調用這個合約。

這種授權方式的優點其實就是方便,方便到你甚至不用打開錢包了,也能幫你轉幣。

“什么?不用打開錢包了也能轉幣?誰能轉我的幣?”

CoinShares:上周數字資產投資產品凈流入4230萬美元,創14周以來最大單周流入量:11月14日消息,據CoinShares報告顯示,上周數字資產投資產品凈流入4230萬美元,其中比特幣投資產品凈流入1880萬美元,創8月初以來最大單周流入量,以太坊投資產品凈流入250萬美元,做空比特幣的投資產品凈流入1260萬美元。區塊鏈概念相關股票出現了自2022年5月以來最大的單周流出量,總計3200萬美元。[2022/11/14 13:02:33]

這就是問題所在,只要你做了授權,該合約就可以不經你的許可,支配你所有的資產。記住,這跟你的私鑰是如何保管的沒有關系,哪怕你把你的私鑰保管在硬件冷錢包里,放到冰箱里凍起來,該合約仍然能把你的幣一掃而空。

好了,現在估計有人會說了,雖然合約能轉走我的幣,但智能合約代碼如果是開源的,并且都經過了第三方審計,里面又沒有轉走我的幣的代碼,那我是不是就安全了呢?

其實跟合約授權相關的安全性跟是否開源以及有沒有經過第三方審計關系不大,現在DeFi生態的大部分復雜的智能合約,都是可以升級代碼的,也就是說,今天的代碼可能的確不能轉走你的幣,但明天Owner作惡更新一下代碼,就能把你的幣一掃而空了。

看完授權交易的樣例之后,我們現在再來看一個合約的樣例代碼:

https://github.com/bitpie-wallet/erc20-approve-issue-demo/blob/master/contracts/ExchangeDemo.sol

在這個樣例中,我們模擬了一個智能合約漏洞的情況,假設合約開發者不小心將ExchangeDemo合約的transfer方法訪問控制權限設置成了public。在這種情況下,只要你對該合約進行了授權操作,哪怕你沒有對該合約進行過任何轉賬操作,別人都能直接轉走你錢包里的全部Token,就這么簡單。

現實資產代幣化協議Watr贏得第27輪波卡平行鏈競拍:9月19日消息,現實資產代幣化協議Watr贏得第27輪波卡平行鏈競拍。Watr是現實資產代幣化協議,可以為碳信用、農業商品、金屬和能源等資產進行代幣化,并支持融資和交易等。[2022/9/20 7:07:12]

當然,真實情況下的合約漏洞可能會很復雜,具體表現形態也是多種多樣的,但這里我們想說明的是如果一不小心合約里寫出了能被第三方動用授權者資產的漏洞,那毀掉的可就不僅是合約本身了,所有給該合約授權過的人的資產全部會被盜走。

有人可能會說了,那我們不寫出能轉走授權資產的漏洞就行了吧?道理沒錯,但現實中這是幾乎不可能的。以太歷史上無數次的漏洞都證明了這一點,只不過大部分漏洞只能影響到合約內的資產或者只能影響合約的執行方式,而授權相關的漏洞則會危及到所有做過授權的人的全部資產的安全,現在明白你到底在冒多大的風險了吧?

我們繼續看下一個樣例代碼:

https://github.com/bitpie-wallet/erc20-approve-issue-demo/blob/master/contracts/ExchangeDemoV2.sol

在這個例子中,合約開發者升級了ExchangeDemo合約,升級之前的claim方法本來只能支取合約上的token的余額,但開發者將其修改成可以轉走用戶授權的token,也就是更新之后,用戶再進行授權操作,開發者就可以輕松的調用claim方法轉走用戶錢包里的幣了,就這么簡單。

上述樣例中完整的測試用例及代碼可以在https://github.com/bitpie-wallet/erc20-approve-issue-demo/blob/master/test/ExchangeDemo.test.js上看到,有興趣的同學們可以試試。

通過ExchangeDemoV1和V2兩個版本的智能合約樣例我們可以看出,因為濫用授權,即便用戶沒有或者只向合約轉入了很少的資產,如果合約有授權轉賬相關的漏洞,則所有授權過的用戶錢包內的資產都將面臨風險。即便是沒有漏洞,合約開發者也具備更新代碼后拿走授權用戶錢包內全部資產的權力。

慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:

1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。

2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。

3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。

4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。

針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]

這里我們還可以再進一步展開來談,一個向你索取無限授權的合約,其目的顯然是為了能方便的操縱你的資產,而合約本身的功能當然也會與操縱你的資產相關,無論是交易、借貸、理財等等的,都要操縱資產。

因此,合約本身至少會有相關接口來進行轉幣操作,當然這個轉幣操作都是功能性的,比如說為了抵押的目的向合約地址存入5萬USDT,或者為了兌換的目的向合約地址存入1千USDT,好了,現在的問題是,既然合約本身就有這類的接口,合約Owner也就有可能未經你的許可繼續使用相同調用讓你往合約里存入更多的資產,也就是說,即便不升級代碼或者沒有相關漏洞,這種可能性也是存在的,尤其是那種可以替你代付了以太礦工費的合約,說明連調用的發起審核都可能是由合約Owner來負責的。

也就是說,如果一個智能合約在你授權后能夠有一個方法將你的一千元轉入合約地址,自然也可以用相同的方法轉入一萬、十萬、一百萬,而轉入合約地址或者其它相關地址之后,合約Owner其實就有能力拿走這些資產了。

這里我們要說明一下,像0x這類的合約在這一點上是做了一些防范的,他們在調用接口時驗證了用戶的簽名,也就是說至少能確保調用操作是用戶發起的。但這種其實就很依賴于合約代碼的編寫方法了,合約代碼里可以驗證用戶簽名,也可以驗證合約Owner的簽名,當然還可以啥都不驗證,合約方法也可以是由用戶調用或者是由合約Owner調用,不同的寫法會把你錢包里幣的控制權給了不同的角色,聽著是不是很嚇人呢?

估計又有人要說了,如果智能合約的Owner不作惡,不就沒這個問題了嗎?

這里我們要說明一點:

去中心化首先要做到的是無需第三方信任,如果一個去中心化項目要求你必須信任合約Owner,那去中心化的意義何在呢?

另外,更為重要的是,你本來以為合約Owner對于你的資產的影響僅僅局限于你參與到該智能合約的部分,比如說你為了交易而轉給dex、為了理財而轉給去中心化借貸合約的幣,你以為合約Owner只能影響到你存進去的那部分資產,現在就應該明白了,合約Owner能影響到的不止是這一部分,他還能影響你錢包里的剩余資產,無論你的錢包是熱的還是冷的,沒關系,都可以是我的。

接著說,即便是我們假設合約Owner是道德上極其完美的人,但隨著智能合約越來越復雜,眾所周知出現漏洞的風險也就越來越高,在之前的理解里,大部分人可能認為的都是如果出現漏洞,主要的資產風險還是合約內的,攻擊者最多也就是把你存在合約里的幣都給拿走。但本文中的樣例告訴了你這么一個事實,如果合約漏洞恰好是跟授權轉賬相關的,那風險就擴散了,所有曾經給該合約授權過的地址都會被一掃而空,只要攻擊者掃描一下都有那些地址進行過授權操作,然后挨個把這些地址上的幣都給轉走就好了。

更重要的是,這還給了智能合約的開發者們如何安全的保管Ownerkey提出了更高的要求,如果哪天你的Ownerkey丟了,那完蛋的可不僅僅是存在合約里的幣,完蛋的是所有授權用戶錢包里的全部資產,這又有誰能承擔呢?

看到這里,你是不是就明白為什么本文的標題是“以太坊DeFi生態當前最大的安全隱患”了吧?

由于以太坊生態里對于授權的濫用已經到了非常嚴重的程度,我們甚至可以說幾乎所有的DeFi合約都在毫無節制的索取無限授權,在這種情況下,出于小白鼠的目的實驗各種DeFi項目的行為本身無可厚非,但如果告訴你,所冒的風險是你的全部資產,而并非僅僅是拿來參與DeFi的那點兒幣,你又該作何感想呢?

區塊鏈行業內對于以太坊生態的授權濫用情況之前曾有過一點點聲音,但其實還遠遠不夠,無論是開發者、從業者、用戶等群體,99.9%的人對此一無所知,濫用授權的情況幾乎是全部,是時候來改變這一現狀了。

這里我們列出了一些濫用授權的項目案例:

Compound

Uniswap

Kyber

Maker

0x

Balancer

dYdX

EtherDelta

IDEX

imTokenTokenlon

上述列表中的前面幾個Compound、Uniswap、Kyber正是當前DeFi世界中熾手可熱的明星項目,但這些項目卻無一例外的選擇了讓用戶無限授權以獲得用戶資產的完全控制權,也就是說任何用戶只要是使用過上述項目,你的錢包里的幣就有可能隨時會面臨本文中所提到的風險,這其實是很遺憾的一件事情。

我們對一部分無限授權了的地址進行了篩查,發現多數的地址上都仍存有資產,其中好多地址更是不乏擁有百萬千萬甚至億級別的資產,而這些地址的擁有者,其實已經在自己不知情的情況下把資產的支配權交予了別人。

上述合約都應調整自己的授權代碼,將其改為按需授權,比如說,你只需要兌換1000USDT,那就只授權1000USDT,額外的所要授權都是越權行為。使用這些合約的用戶也應該改變自己的DeFi合約使用行為,應該將不參與DeFi的幣放到另一個不會授權給任何應用的地址,以保護自己的資產安全。

由于以太生態的發展演化非常快,我們專門在比特派里設計了以太安全中心,當你切換到以太體系之后就能看到,在以太安全中心里我們目前開發了合約授權檢測功能,除了可以看你在比特派里的地址是否有哪些濫用授權的情況,還可以隨便看外部的任意一個地址的當前授權情況。對于被濫用的授權,還可以進行授權回收操作。

關于比特派的合約檢測功能,我們將專門寫一篇說明文章來指導大家如何使用,您的地址現在安不安全?檢測一下就知道了。

說到授權被廣泛濫用,比特派在這塊是怎么做的呢?以比特派錢包中很常用的批量轉賬功能為例,我們的做法是有限授權,也就是說,如果你需要將100個USDT轉到50個地址上,比特派只會授權100個USDT,不會產生任何額外的授權。再比如說,比特派的代付USDT礦工費功能,我們就完全沒有使用合約授權,哪怕明明是使用授權方式實現起來更簡單,我們都沒這么去做,其實就是因為這個道理,項目方應該以用戶的權益放在首位,任何徒增用戶風險的行為都應該被抵制。

考慮到這朵烏云之下的安全,普通用戶參與DeFi應該采取哪些防范措施呢?

1、定期使用像比特派這樣的錢包中提供的授權掃描功能,來看看都有哪些合約獲得了你的授權;

2、使用多個以太坊地址,將存幣地址和參與DeFi地址分開,把僅用于DeFi活動的幣放到DeFi地址中,這樣即便是烏云壓頂了,存幣地址里的幣還是安全的;

3、回收一些應用的授權,降低風險,至少你應該清楚哪些應用可以不經你的許可直接轉走你錢包里的幣才行;

4、呼吁項目方不要濫用授權,按需授權,以降低用戶的安全風險。

去中心化金融的確代表著未來,也是區塊鏈技術非常重要的應用場景。

但將我們聚在一起的,從來不是天翻地覆的概念、不是深奧晦澀的代碼、不是天花亂墜的技術,一直都是私有財產神圣不可侵犯的信念。

只有它能讓我們繼續走下去,直到撥云見日。

Tags:EFIDEFDEFISDTWEFIDEFY幣AurusDeFifoin幣可以轉usdt嗎

USDT
Filecoin挖礦技術門檻很高嗎?硬件上需要做什么優化?_FIL:100xCoin

Filecoin挖礦行業當前已經出現了幾個頭部服務商,主網上線后,資金還在持續進入。但由于Filecoin挖礦具有相當高的技術門檻,行業外的資本在短期內很難從技術上獲得優勢.

1900/1/1 0:00:00
100T有效存儲算力24小時不停運轉可以挖多少FIL?_DEFI:kava幣是什么幣

今天聊一聊,目前最熱的IPFS,那么分布式存儲又是區塊鏈歷史偉大的一個產物了,也是今年最受關注,最火熱的項目了,它的協議誕生到上主網經過了6年的反復測試,全球最大的投資方都是有參與了.

1900/1/1 0:00:00
席幕楓:12.25以太坊行情分析及操作思路_ANCHOR:N3RD Finance

多言不可與謀,多動不可與久處,交易與其沖動,還不如一動不動!大家好,我是席幕楓。心存陽光必有詩與遠方,認識老席何懼再遇荒涼?席幕楓:12.25以太坊行情分析以太坊,日線大陽收回,昨日白盤維持寬幅.

1900/1/1 0:00:00
Huobi Global全倉杠桿新增ETC、SUSHI、XLM、XMR、YFI、YFII資產和交易_SDT:usdn幣今天價格

尊敬的用戶: HuobiGlobal全倉杠桿新增ETC、SUSHI、XLM、XMR、YFI、YFII的資產和交易.

1900/1/1 0:00:00
中國幣圈買賣幣是否需要納稅 會否涉嫌外匯管制_PAL:數字貨幣的五個特點

以下文章來源于火小律,作者火小律,本文獨家授權“吳說區塊鏈”編輯轉載。近日咨詢虛擬貨幣納稅、是否存在違反外匯管制規定的人較多.

1900/1/1 0:00:00
聚幣 |聚咖說直播訪談-對話中國數字經濟研究院執行院長李鳴_區塊鏈:DEF

聚咖說,發區塊鏈熱點發聲!本期《聚咖說》的特邀主持是鴕鳥區塊鏈資深記者Kylin,邀請到的分享嘉賓是中國數字經濟研究院執行院長李鳴.

1900/1/1 0:00:00
ads