去中心化金融,并不如我們所想

在經(jīng)歷 lendf.me 被盜事件后,我們知道 ERC777 代幣合約和普通借貸池合約組合會產(chǎn)生漏洞,正如 imToken Simon 所說:「 酒沒錯,頭孢也沒錯,放在一起,要了命」。這次事件最終導致了 2500 萬美元(折合人民幣 1.7 億)被盜,雖然最后如數(shù)追回,卻在我們心里刻下一次深刻的印記,讓我們不得不重新審視智能合約安全問題。

幣乎創(chuàng)始人親述 DeFi 踩雷經(jīng)歷與教訓 已經(jīng)全面的分析了使用去中心化金融所帶來的風險。回過頭再來看我們其他的去中心化項目,它們還存在其他的問題嗎?

在調(diào)查中,我們發(fā)現(xiàn)以太坊的去中心化金融場景中,大量項目集成了 USDC。而 USDC 在其代幣實現(xiàn)中,加入了一個前置代理合約。簡單的說就是我們使用 USDC 合約進行轉(zhuǎn)賬時,訪問的是 USDC 的代理,該代理再通過內(nèi)部設(shè)置的地址,訪問到 USDC 的目標合約上。

DeFi.png

代理合約擁有一個管理員權(quán)限可以更改其代理的目標,當合約需要升級時就可以使用管理權(quán)限替換目標合約地址。這是一種可升級、可更替智能合約的設(shè)計模式,解決了合約升級這一難題,但同時也產(chǎn)生了巨大的風險。

如果代理合約的管理權(quán)限泄露,意味著攻擊者可以將代理的目標地址指向任何地址。攻擊者可以很輕易的偽造一個可以任意發(fā)行代幣的攻擊合約,再將代理合約指向這個攻擊合約。因此,USDC 代理合約一旦攻破,Compound(借貸池)也會像 lendf.me 一樣被全部抽空。甚至現(xiàn)今最大的穩(wěn)定幣平臺 MakerDAO,也能通過對 USDC 代理合約攻擊而錯誤的生成穩(wěn)定幣。任何平臺只要是集成了 USDC,皆存在該風險。而 USDC 正在去中心化應用中大規(guī)模的使用著。

當更多的代幣使用代理模式時,每一個代幣都會成為攻擊向量,如果去中心化項目持續(xù)集成類似的項目,會使其安全性大打折扣。相比之下不使用代理合約,銷毀管理員密鑰的方式看來會更加健壯。

去中心化對信任的要求比傳統(tǒng)應用更高。由于智能合約要自動化的處理所有過程,在建立代碼的過程中就要求所有代碼之間之完全信任。像 USDC 這樣的代幣項目,本身具有一定的中心化屬性,大規(guī)模的應用在所有項目中時,就會把這些項目所有的信任全部集中在一個中心化的單點上。這個單點的控制權(quán)對于整個去中心化生態(tài)而言,相當于上帝模式。此時一個單點代理合約的密鑰泄露,就可能引起整個去中心化生態(tài)的崩潰,造成無數(shù)項目被黑,無數(shù)代幣丟失。反觀,一個雖然未被黑的中心化單點,也具有控制整個去中心化生態(tài)權(quán)限,代幣管理機構(gòu)可以使用同樣的手段對任何集成它的項目進行破壞或關(guān)閉。

可見,USDC 在大規(guī)模的應用過程中,使整個去中心化生態(tài)的風險全部集中在了 USDC 中心化控制的代理合約上,該合約為 USDC 的管理機構(gòu)提供了整個生態(tài)的上帝模式?;蛟S我們所謂的去中心化,反而比傳統(tǒng)項目還更加中心化?

如若說去中心化還是早期階段,那在這蠻荒的開墾過程中,USDC 可謂是荒野之王。

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them(魔戒)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容