時至今日,加密貨幣與智慧合約平臺當中開始出現越來越多安全漏洞,而其中部分漏洞甚至源自這些平臺的構建基礎。
就在1月月初,Coinbase公司的安全團隊注意到以太坊經典(Ethereum Classic)當中出現了一些異常跡象。順帶一提,Coinbase所提供的高人氣加密貨幣交易平臺正是以以太坊經典為基礎。事實上,所謂異常並不足以說明問題的嚴重性——整個區塊鏈,包括其中的全部交易歷史,盡皆遭到入侵。
攻擊者以某種方式控制了超過半數的區塊鏈網路算力,並藉此對交易歷史進行了重寫。這意味著其完全有能力多次使用相同的加密貨幣——也就是所謂“重複花費”。截至攻擊者被發現之時,其濫用的資金總額高達110萬美元。不過Coinbase方面宣稱,此次事件並沒有造成任何實際性的賬戶貨幣失竊。然而,第二大高人氣交易所Gate.io就沒這麼幸運了,問題出現之後攻擊者共造成了約20萬美元的損失(但奇怪的是,幾天之後其中有半數資金得到了恢復)。
就在一年之前,上述噩夢般的場景似乎還只存在於理論之中。但此番針對以太坊經典網路的51%攻擊只是近期一系列指向區塊鏈平臺的攻擊活動中的一例,而這些問題進一步加劇了加密貨幣這一新興行業的整體波動。
單從已經公開披露的情況來看,自2017年年初開始,駭客就已經總計竊取到價值近20億美元的加密貨幣,而且其中大部分來自交易所。如今,受到巨大利益吸引的已經不再是單槍匹馬的獨行劫匪,而是規模更大且更為複雜的網路犯罪團伙。分析企業Chainalysis公司最近表示,單單是兩個最為活躍的駭客團隊就有可能已經從交易所處偷走了10億美元。
對於這樣的狀況,大家沒必要過度驚訝。實際上,區塊鏈對於盜竊分子一直有著極高的吸引力。這一方面是因為區塊鏈上的欺詐交易無法逆轉,這與傳統金融體系的情況完全不同。除此之外,正如大家所知,區塊鏈既擁有著獨特的安全功能,同時也有著特殊的安全漏洞。
自從十年前比特幣正式誕生以來,我們已經至少在理論上理解到了這一點。但在過去一年中,新的加密貨幣專案就如寒武紀生命大爆發一樣爭相湧現,而我們也已經在實踐層面體會到了由此帶來的影響,甚至是此類固有缺失可能給區塊鏈及數字資產的未來造成的後續衝擊。
如何入侵區塊鏈?
在繼續講解之前,讓我們首先聊聊區塊鏈的本質。
區塊鏈實際上就是一套由整體計算機網路所維護的加密資料庫,其中每一臺計算機都儲存著最新的資料副本。區塊鏈協議則代表一組規則,用於規定網路當中的各臺計算機(被稱為節點)應如何驗證新交易並將其新增至資料庫當中。這項協議採用密碼學、博弈論以及經濟學等手段激勵各節點努力保護網路,而非出於個人利益而實施網路攻擊。如果設定得當,那麼這套系統有望極大程度提升新增錯誤交易的難度與成本,同時以更理想的效率對有效交易進行驗證。
正是憑藉著這一核心特性,才讓區塊鏈技術在眾多行業當中具有著獨特的吸引力,而金融行業正是最直接的受眾。富達投資與紐約證券交易所的持有方洲際交易所等知名機構已經在著手推出新的服務,計劃將區塊鏈技術融入現有金融體系當中。甚至多個國家的中央銀行也在考慮藉此發行數字形式的全新本國貨幣。
然而,區塊鏈系統越複雜,出現錯誤的可能性也就越高。本月早些時候,負責Zcash幣(一種利用極度複雜的數學方法幫助使用者個人之間進行交易的加密貨幣)的公司指出,其已經悄悄修復了協議當中偶然出現的一項“微妙的加密漏洞”。攻擊者可以藉此偽造出無窮無盡的Zcash幣。幸運的是,在修復之前該漏洞似乎並沒有被實際利用。
協議並不是唯一需要嚴格保護的物件。要進行加密貨幣交易或者節點執行,大家必須使用軟體客戶端,而客戶端當中也有可能包含漏洞。去年9月,比特幣主要客戶端Bitcoin Core被曝出存在一項嚴重bug(同樣沒有對外公佈),其有可能令攻擊者獲得比系統設計量更高的比特幣產出。可以想見,相關開發者以近乎瘋狂的方式將其快速修復掉了。
儘管如此,近期大部分最引人注目的駭客攻擊並非針對區塊鏈網路本體的入侵,而是將矛頭指向了交易所——即人們購買、交易以及持有加密貨幣的網站。更可怕的是,很多盜竊案之所以能夠得手,完全是由於這些交易所在基礎安全措施方面非常糟糕。不過今年1月的事件有所不同,以太坊經典面對的是51%攻擊。
51%原則
事實上,大多數加密貨幣對於51%攻擊都有著極高的敏感性。這是因為大多數加密貨幣專案都基於區塊鏈,這些區塊鏈所使用的工作證明機制正是交易驗證的核心機制。在這一過程(也被稱為挖礦)中,節點會花費大量算力來證明自身足夠可信,從而將關於新交易的資訊新增到資料庫之內。以此為前提,透過某種方式控制大部分網路採礦能力的礦工即可向這些規模可觀的節點傳送付款交易,從而欺騙其他使用者並建立出現有區塊鏈的新版本——在這套版本中,該付款操作從未發生。這樣的新版本被稱為分叉。更重要的是,控制大部分挖礦能力的攻擊者完全能夠讓這個分叉被視為區塊鏈的權威版本,從而繼續消費同一批加密貨幣。
對於高人氣區塊鏈而言,這種盜竊方式可能會帶來極高的成本。根據Crypto51網站的統計,租用採礦權足以被用於攻擊比特幣區塊鏈的裝置,目前的單小時成本已經超過26萬美元。但如果著眼於比特幣之後的1500多種加密貨幣,我們會發現其網路規模明顯小得多,因此需要控制的算力自然也就少得多。加密貨幣價格下跌導致這些貨幣價值縮水,這又進一步促使礦工們退出網路,最終形成了網路保護能力持續弱化的惡性迴圈。
2018年年中,攻擊者開始針對一系列體量較小、交易活躍度較低的加密貨幣(包括Verge幣、Monacoin以及Bitcoin Cold)進行51%攻擊,並總共盜竊到大約2000萬美元。去年秋季,駭客們又透過一系列針對Vertcoin加密貨幣的攻擊偷走了大約10萬美元。此次針對以太坊經典的攻擊共涉及超過100萬美元,這也是人氣排名前二十位的貨幣首次遭遇正面入侵。
基於區塊鏈型檔案儲存平臺Sia公司聯合創始人David Vorick預測稱,未來51%攻擊活動將在頻率與嚴重程度方面持續升級,而且交易所將首當其衝受到重複花費問題的損害。他同時表示,推動這一趨勢的重大事件,就是所謂hashrate市場的興起。攻擊者可以透過這些市場租賃到可觀的算力並用於攻擊。Vorick在以太坊經典遭遇駭客攻擊後寫道,“在決定支援哪種加密貨幣時,交易所顯然需要做出更為嚴格的限制與謹慎的判斷。”
一大堆全新的蠕蟲病毒
除了51%攻擊之外,區塊鏈安全漏洞中還存在著一類全新分支,而研究人員們也剛剛開始對其進行探索——這就是智慧合約漏洞。巧合的是,以太坊經典、特別是其背後的設計思維,正是理解智慧合約漏洞的絕佳切入點。
所謂智慧合約,屬於在區塊鏈網路之上執行的計算機程式。它可以根據預先制定的規則與條件自動完成加密貨幣的轉移。智慧合約有著很多潛在用途,例如支援真實法律合約或者複雜的金融交易等等。而其另一個重要用途,同時也是我們感興趣的方向,就是建立起一種投票機制。透過這種投票機制,風險投資基金的所有投資者都能夠參與進來,共同決定資金的具體分配方式。
2016年,名為去中心化自治組織(簡稱DAO)的基金正式建立,其實現基礎正是以太坊區塊鏈。此後不久,一名攻擊者透過利用DAO智慧合約管理系統中存在的某一無法預料的缺陷,偷走了總價值超過6000萬美元的加密貨幣。從本質上講,這項缺陷允許駭客在系統未將註冊資金識別為已撤回的前提下繼續向帳戶申請資金。
實時智慧合約中的bug可以引發一種獨特的高危狀況。在傳統軟體中,我們可以利用補丁修復此類bug。但在區塊鏈世界中,問題絕對沒那麼簡單。以太坊蘇格蘭分部研究科學家兼智慧合約安全初創企業ChainSecurity公司聯合創始人Petar Tsankov指出,由於區塊鏈上的交易無法被撤銷,因智慧合約的部署更像是發射火箭——“軟體絕對不可以出錯。”
當然,也存在著某些修復機制。雖然無法徹底解決問題,但研究人員可以透過部署其它智慧合約並與原有合約進行互動,從而對後者進行“升級”。另外,開發人員還可以在網路當中構建集中式交易終止機制,從而在檢測到駭客攻擊之後停止一切交易活動。然而對於資金已經遭到盜竊的使用者來說,一切都已經無法挽回。
實際上,恢復被盜資金的唯一方式就是重寫歷史記錄——即將區塊鏈回滾至攻擊發生之前的某一時間點,建立新的區塊鏈分叉,並要求網路上的每一位使用者接受這一新的區塊鏈版本。當時,以太坊的開發者們就做出了這樣的決定。大部分(但並非全部)社羣成員轉向了新鏈,也就是我們現在所說的以太坊。但仍有一小部分堅持繼續使用原始鏈,而這就構成了以太坊經典。
上個月,Tsankov在ChainSecurity的團隊成功使以太坊免於重複DAO的災難。在某項策劃許久的重大軟體升級正式上線的前一天,該公司提醒以太坊的核心開發人員,這次升級有可能引發意想不到的後果——即在區塊鏈上遺留一些合約,其很容易受到導致DAO攻擊的同類漏洞的影響。開發人員迅速推遲了升級程序,並決定在西服晚些時候再行推出。
然而,區塊鏈安全企業AnChain.ai公司聯合創始人兼CEO Victor Fang表示,數百份頗具價值的以太坊智慧合約仍面臨著這種所謂“重入bug”的威脅。根據去年進行的一項研究,成千上萬份智慧合約中可能包含著大量其它漏洞。公鏈的本質決定著,如果智慧合約當中存在bug,那麼駭客必然能夠將其發現——因為公鏈合約的原始碼通常會公開發布。曾效力於網路安全廠商FireEye公司的Fang指出,“這與傳統的安全實現思路存在很大差別。”
存在bug的合約,特別是那些涉及數十萬甚至數百萬美元的合約,吸引到了那批以往關注銀行或者政府機構的高水平駭客。去年8月,AnChain確定了五個以太坊地址,它們都參與到了一起極為複雜的攻擊活動當中。透過這次攻擊,駭客憑藉某高人氣賭博遊戲合約內的缺陷竊取到總計400萬美元。
那麼,我們能夠成功抵禦這些駭客嗎?
AnChain.ai公司正是近來為了解決區塊鏈駭客威脅而建立的幾家初創企業之一。其希望利用人工智慧技術監控交易並檢測可疑活動,同時掃描智慧合約程式碼以確定其中的已知漏洞。
包括Tsankov的ChainSecurity在內的其它一些公司,則在著手開發基於所謂形式驗證這一電腦科學技術的新型審計服務。其目標在於立足數學層面證明合約程式碼能夠切實滿足建立者的規則意圖。Tsankov解釋稱,這些審計工具在過去一年中才剛剛出現,這使得智慧合約建立者得以提前消除諸多“低階”錯誤。然而,整個審計過程仍然既昂貴又耗時。
康奈爾大學隱形貨幣與合約倡議研究員Philip Daian表示,行業也可以嘗試使用額外的智慧合約以建立針對區塊鏈專案的“bug賞金計劃”,即鼓勵人們報告缺陷以換取加密貨幣獎勵。
但確保程式碼清潔正確的努力終究是有上限的。畢竟區塊鏈代表著一類複雜的經濟系統,其取決於人類不可預測的行為,而人總能夠找到新的突破口。舉例來說,Daian和他的同事已經展示了攻擊者能夠如何透過各類高人氣遊戲的以太坊智慧合約為自己牟利。
簡而言之,儘管區塊鏈技術長期以來一直因天然具有安全優勢而受到人們的歡迎,但在某些條件下其也可能非常脆弱。有時候這些問題源自攻擊者的惡意計劃,有時候也單純因為軟體在無意中發生了錯誤。而在其它情況下,這更像是一種灰色區域——即複雜的程式碼、區塊鏈經濟學觀以及人類的貪婪相互雜糅而形成的共同責任。自從這項技術誕生以來,上述問題的存在也早已在理論當中得到了體現。而如今,世界上已經出現了這麼多區塊鏈專案,而我們正不得不以極高的代價探索它的真實意義。