Token背後的Bancor危機:合約管理員權限邊界在何處?

Bancor 鏈得得 2018-07-24

包括 Status 和 FunFair 在內的部分國內外熱門區塊鏈項目,智能合約存在管理員權限過高的問題,或導致項目存在過度中心化的風險,相關 Token 生態極易發生單點失效。

代幣發行平臺Bancor在週一早上發生“安全漏洞”後脫機,損失了數百萬美元的加密貨幣。雖然事後Bancor公司在Twitter上發帖稱,在安全事件發生後該公司將其平臺下線,並表示“沒有用戶錢包被洩露”。但根據CoinMarketCap的數據透露,該貨幣的價格在過去一天下跌了大約14%,價格在2.73美元左右。

根據後續聲明透露,該公司總共損失了約1350萬美元。

漏洞讓很多人損失了很多加密貨幣,即使是那些不允許簽訂智能合同的貨幣,也容易受到錯誤的影響。就連衡量其他硬幣的基準比特幣也有它的份額,就像2010年的漏洞,在74638塊中創造了1,800億比特幣。雖然很快就修好了,但沒有人得到或丟失硬幣。以太坊的用戶從來沒有這麼幸運過。像DAO和最近的Bancor(其1250萬美元的損失被歸因為他們智能合同中允許的)這樣的事件已經將加密丟失的數量推到了10億美元。

其實有很大一部分是因為智能合約存在管理員權限過高的原因。
致命問題可能會出現在兩個方面:一是項目方濫用權限,二是超級管理員身份被盜用。這兩種情況一旦發生,相關 Token 生態可能會迅速崩塌。

關於Bancor團隊如何處理被盜事件:
Bancor 項目方在攻擊發生後,聲稱是識別出攻擊者地址,凍結了攻擊者偷來的 BNT 代幣。經過調查,Bancor 管理員實際上是動用了 destroy() 方法來“銷燬”用戶手中的 Token。

Token背後潛伏的Bancor危機

Bancor 團隊也發表聲明稱普通用戶的錢包沒有受到影響,並進一步解釋鑄幣、燒幣以及存儲大量以太幣是他們協議中價格發現機制的一部分。

作為比特幣和區塊鏈愛好者,都是崇尚去中心化。然而,很多持幣者可能還不太清楚,目前各類 Token 項目智能合約管理員擁有超級權限竟已逐漸成為常態. 據不完全統計,排名前 570 名的 Token 合約中,有342個合約存在只有管理員能調用的功能,不少合約更存在管理員任意鑄幣、燒幣、凍結賬戶、關停轉賬等過高權限。

就好比如Status(SNT)和FunFair(FUN)這兩個熱門項目都存在著非常嚴重的管理員權限過高問題。

Status合約中有名為Controller的管理員角色,可調用generateTokens()往任意地址增發代幣,可調用destroyTokens()銷燬任意地址上的代幣。但Status項目的白皮書並沒有相關特殊權限聲明。此外,Status合約還應用了可升級的代理合約機制,管理員可以通過任意設置代理合約controller地址的方式,在關鍵函數前面插入可升級的校驗邏輯,來影響轉賬等關鍵操作。

Token背後潛伏的Bancor危機

知名的FunFair(FUN)項目也存在與Status類似的問題。

倘若有人作惡,增發鉅額數量的Token至市場上拋售,後果不堪設想。

此外,交易所作為區塊鏈項目生態中的中堅力量,也應當積極督促項目方限制過高權限以及透明運營。

目前,區塊鏈瀏覽器網站 EtherScan 已將攻擊者的地址標註為 Fake_Phishing1701 和 Fake_Phishing1702。

Token背後潛伏的Bancor危機

以 Bancor 為例,在巨大的經濟利益面前,即使我們信任了發行方不會濫用權限,卻依然無法保證別有用心者不會藉此攻擊。對於發行與運營極度依賴項目方的 Token,可能我們永遠無法形成類似對比特幣的共識與信仰。

Bancor 危機也給我們帶來很多反思:

1、Bancor 是否是真正的去中心化交易協議;

2、智能合約在哪些情況下需要管理員;

3、合約管理員權限的邊界在何處;

4、如何保障錢包及私鑰安全。

管理員權限是把雙刃劍。在 Bancor 事件中,黑客利用了管理員權限盜取代幣,而項目方也正利用了管理員權限來降低損失。不過我們認為,開發者依然可以通過良好的代碼設計來降低 Token 和 協議合約對管理員的依賴。同時,我們也號召大家,去更多地瞭解相關項目的智能合約,利用社區力量監督項目管理員權限。

相關推薦

推薦中...