一名黑客以某種方式控制了網絡一半以上的算力,并利用它重寫了交易歷史。這使得同一筆加密貨幣的多次使用成為了可能——也就是“雙花”。攻擊者因此取得了110萬美元。Coinbase聲稱,該公司的賬戶并未出現被盜的情況。但另一家知名的交易所Gate.io承認自己沒那么幸運,損失了大約20萬美元(奇怪的是,攻擊者幾天后返還了所有資金)。
就在一年前,這種噩夢般的情景還僅限于理論層面。但ETC面臨的51%攻擊,只是區塊鏈最近遭受的一系列攻擊其中的一起,這些攻擊加大了這個新興行業的風險。
自2017年初以來,黑客總共竊取了近20億美元的加密貨幣,其中大部分來自交易所,而這還只是公開披露的信息。這也不僅僅涉及伺機而動的獨立攻擊者。一些有組織的網絡犯罪集團現在也會這樣做:分析公司Chainalysis近期表示,有兩個顯然非常活躍的組織,可能從交易所共盜竊了10億美元。
我們不應該感到驚訝。區塊鏈對竊賊尤其有吸引力,因為在傳統金融體系中欺詐交易往往是不可逆轉的(譯者評:事實恰恰相反)。除此之外,我們早就知道區塊鏈具備獨特的安全特性,也有獨特的漏洞。那些稱這項技術“不可破解”的口號和標語大錯特錯(譯者評:比特幣區塊鏈自誕生以來從未遭到外部攻擊)。
自從10年前比特幣出現以來,這一點至少在理論上已經得到了理解。但是在過去的一年里,隨著加密貨幣項目的激增,我們開始看到這在實踐中意味著什么——以及這些固有的弱點對區塊鏈和數字資產的未來意味著什么。
如何攻擊區塊鏈?
在我們繼續之前,讓我們先弄清楚一些術語。
區塊鏈是由計算機網絡維護的加密數據庫(譯者評:區塊鏈≠數據庫),每個計算機網絡存儲最新的副本。區塊鏈協議是一組規則,規定網絡中的計算機(節點)應該如何驗證新交易并將其添加到數據庫中。該協議使用密碼學、博弈論和經濟學來激勵節點努力保護網絡,而不會為了個人利益攻擊網絡。如果設置正確,這個系統會使添加錯誤交易變得極其困難和昂貴,但是驗證有效交易會相對比較容易。
這就是為什么這項技術對很多行業如此有吸引力——從金融業開始。即將推出相關服務的知名機構,如富達投資和紐約證券交易所(NYSE)的母公司洲際交易所(ICE),將開始把區塊鏈納入現有金融體系。就連各國央行現在也在考慮將其用于新的國家貨幣數字形式。
但是,區塊鏈系統越復雜,在設置時出錯的方式就越多。本月早些時候,負責Zcash(一種使用極其復雜的數學方法讓用戶私下進行交易的加密貨幣)的公司透露,他們已經秘密修復了協議中意外出現的一個“微妙的密碼學缺陷”。攻擊者可以利用它制造無限的虛假Zcash。幸運的是,似乎沒有人真正做到了這一點。
協議不是唯一需要安全的部分。要自己交易加密貨幣或運行節點,必須運行軟件客戶端,這也可能包含漏洞。今年9月,比特幣的主要客戶端Bitcoin Core也修復一個漏洞(也是在秘密進行的),這個漏洞可能會讓攻擊者制造比系統預期允許的更多的比特幣(譯者注:這里解讀為秘密進行不妥,開發者在事后均有主動披露事件細節)。
盡管如此,最近備受關注的黑客攻擊大多不是針對區塊鏈本身,而是針對交易所,即人們可以購買、交易和持有加密貨幣的網站。很多攻擊都歸咎于糟糕的基礎安全措施。今年1月對ETC的51%攻擊改變了這一點。
51%的規則
易受51%攻擊是大多數加密貨幣固有的。這是因為他們當中的大多數都是基于PoW區塊鏈來驗證交易的。在這個過程中,也稱為挖礦,節點花費大量的算力來證明自己足夠可信,從而向數據庫中添加關于新交易的信息。以某種方式控制了該網絡大部分算力的礦工,可以通過向其他用戶發送交易,然后創建一個從未發生過付款的區塊鏈版本來欺騙他們,也就是分叉。控制大多數算力的攻擊者可以使分叉成為一條鏈的權威版本,并再次使用相同的加密貨幣。
對于受歡迎的區塊鏈來說,嘗試這種盜竊行為的代價可能非常昂貴。根據crypto51.com網站的數據,租用足夠的采礦能力來攻擊比特幣,目前每小時的成本將超過26萬美元。但當你的鼠標往下滑的時候,成本就會越來越低。不斷下跌的加密貨幣價格使這一攻擊變得更加便宜,因為這導致礦工關閉機器,使網絡得到的保護更少。
到2018年年中,攻擊者開始對一些規模相對較小、交易量較低的幣種發起51%攻擊,包括Verge、Monacoin和比特幣黃金,總共盜竊了大約2000萬美元。去年秋天,黑客通過對一種名為Vertcoin的加密貨幣發動一系列攻擊,竊取了大約10萬美元。ETC 51%攻擊的損失超過100萬美元,也是攻擊者首次對市值排名前20位的幣種發起攻擊。
基于區塊鏈的文件存儲平臺Sia的聯合創始人David Vorick預測,51%攻擊的頻率會增加,變得越來越嚴重,而交易所將首當其沖地受到雙花的影響。他說,推動這一趨勢的其中一個因素是算力市場的興起,攻擊者可以通過這種方式為攻擊租用算力。“在選擇上線哪種加密貨幣時,交易所必須更加嚴格,” Vorick在ETC遭受攻擊后寫道。
一團亂麻的智能合約
除了51%攻擊外,還有一個全新的區塊鏈安全漏洞,研究人員剛剛開始探索其影響力:智能合約漏洞。巧合的是,ETC——尤其是它的起源——也是理解這類漏洞一個很好的點。
智能合約是運行在區塊鏈網絡上的計算機程序。它可以根據規定的規則和條件自動轉移加密貨幣。其有許多潛在的用途,例如推動真實的法律合同或復雜的金融交易。另一個用途是創建一種投票機制,通過這種機制,風投基金的所有投資者可以集體決定如何分配資金。
2016年,一個名為“去中心自治組織”(DAO)的基金就利用名為以太坊的區塊鏈系統成立。此后不久,一個攻擊者就利用管理DAO的智能合約中的漏洞竊取了價值6000多萬美元的加密貨幣。從本質上說,這個漏洞允許黑客在系統沒有注冊這些錢已經被取走的情況下,繼續從賬戶中索取資金。
正如黑客所說,活躍智能合約中的一個錯誤可以創建一種獨特的緊急情況。在傳統軟件中,漏洞可以通過補丁來修復。在區塊鏈世界中,事情就沒那么簡單了。ETH Zurich以及智能合約安全初創公司ChainSecurity的研究科學家Petar Tsankov說,由于區塊鏈上的交易無法撤消,部署智能合約有點像發射火箭。“軟件不能出錯。”
解決辦法是有的。雖然它們不能修補,但是一些合約可以通過部署額外的智能合約與之交互來“升級”。開發者還可以將中心化的開關放到網絡中,以便在檢測到攻擊后停止所有活動。但對于那些資金已經被盜的用戶來說,就太晚了。
取回資金的唯一方法是,有效地重寫歷史——回到攻擊發生前區塊鏈上的那個點,創建一個新的區塊鏈分叉,并讓網絡上的每個人都同意使用這個分叉。這就是以太坊開發者選擇的方法。大多數——但不是全部——社區成員都切換到了新的鏈,即我們現在知道的以太坊。一小部分持反對意見的人堅持使用原來的鏈,也就是ETC。
上個月,Tsankov的ChainSecurity團隊拯救了以太坊,防止了DAO災難的重演。就在重大軟件升級的前一天,該公司告訴以太坊開發者,如果區塊鏈上的一些合約同類攻擊,將會產生意想不到的后果。開發者立即推遲了升級,并將在本月晚些時候重新進行升級。
盡管如此,區塊鏈安全公司AnChain.ai的聯合創始人兼首席執行官Victor Fang表示,數百個有價值的以太坊智能合約很容易受到這種所謂的“重入漏洞”的攻擊。根據去年進行的一項研究,數萬個合約可能包含其他類型的漏洞。公共區塊鏈的本質意味著,如果存在智能合約漏洞,黑客會發現它,因為源代碼通常在區塊鏈上可見。“這與傳統的網絡安全非常不同,”Fang說,他之前在網絡安全公司FireEye工作。
漏洞百出的合約,尤其是那些包含數千或數百萬美元的合約,已經吸引了黑客的注意。今年8月,AnChain發現了一場極其復雜的攻擊背后的5個以太坊地址,該攻擊利用一款熱門的菠菜游戲合約漏洞,竊取了400萬美元。
攻擊者能被打敗嗎?
AnChain.ai是近段時間為應對區塊鏈黑客威脅而創立的幾家初創公司之一。它使用人工智能來監控交易和檢測可疑活動,還可以掃描智能合約代碼以查找已知的漏洞。
包括Tsankov的ChainSecurity在內的其他公司正在開發一種基于計算機科學技術的審計服務——形式驗證。其目標是從數學上證明合約代碼可以實現其創建者的意圖。Tsankov說,這些在過去一年左右開始出現的審計工具,讓智能合約的創建者能夠消除許多漏洞。但是這個過程可能會很昂貴和耗時。
還可以使用其他智能合約來設置基于區塊鏈的“漏洞獎勵”。康奈爾大學加密貨幣與合合約研究項目的研究員Philip Daian表示,這將鼓勵人們上報漏洞,以換取加密貨幣作為獎勵。
但目前能做的僅此而已。畢竟,區塊鏈是一個復雜的經濟系統,它依賴于人類不可預知的行為,人們總是在尋找新的方式來玩這個游戲。例如,Daian和他的同事們已經展示了攻擊者是如何通過以太坊智能合約來獲利的。
簡而言之,盡管區塊鏈技術長期以來因其安全性而備受吹捧,但在某些條件下,它可能相當脆弱。有時可能只是因為執行失誤或者是無意的軟件錯誤。其他時候,它更像是一個灰色地帶——代碼、區塊鏈的經濟學和人類貪婪之間相互作用的復雜結果。這一點在這項技術誕生之后就很清楚了。現在世界上有這么多區塊鏈,我們正在學習它的真正含義——這通常是艱難的