本文于2018年8月21日由阿爾法公社發布。
一、導語
2018年8月6日,騰訊安全發布《2018上半年區塊鏈安全報告》,報告顯示,目前在全球范圍內,已出現了1600余種加密數字貨幣,2018年上半年,區塊鏈領域因安全問題損失超27億美元,而且因區塊鏈安全事件損失的金額還在不斷攀升。從IOTA「郵件門事件」、USDT「假充值漏洞」、EOS「彩虹攻擊」,到BEC與SMT「整數溢出攻擊漏洞」、BTG「51%算力攻擊」等等,這一系列的事件引發了大家的廣泛關注與思考。
區塊鏈安全威脅主要有哪些?為什么智能合約的安全問題如此重要,會引起這么多人關注?智能合約的安全類型有多少種?現在主流的安全監測方法有哪些?最有效的方法又是什么?大家如何能獲得安全無漏洞的智能合約代碼?針對這一系列問題,我們對安比實驗室創始人郭宇進行了采訪,為大家系統介紹區塊鏈行業安全問題及主流解決方案。
二、區塊鏈安全六大類型
從安全角度來看,區塊鏈技術可分為五層,相應安全問題則為六大類。
區塊鏈2.0版本技術架構
第一層,密碼學。密碼學是區塊鏈最底層的支撐技術,包含了哈希算法、數字簽名、隨機數等,如果這些密碼學技術存在問題或者漏洞,那么基于此的整個區塊鏈構建的信任將會坍塌。
前UFC冠軍:區塊鏈和比特幣將成為世界上主要的支付系統:金色財經報道,前UFC輕量級冠軍Khabib Nurmagomedov已與加密貨幣礦業公司GoMining達成贊助協議。Nurmagomedov表示,相信在不久的將來,區塊鏈和比特幣將取代我們習慣的金融機構,成為世界上主要的支付系統。[2021/10/16 20:32:42]
雖然目前密碼學技術已經頗為成熟,存在巨大漏洞的可能性比較小,但是仍然不排除一些項目存在問題。2017年7月15日,具有「物聯網世界第一幣」之稱IOTA收到了麻省理工學院附屬的學術研究組DCI的郵件,提醒IOTA團隊,IOTA的哈希算法Curl-P存在弱點,DCI可以對該系統進行成功的攻擊,竊取用戶資金。雖然IOTA隨后對DCI的郵件進行了質疑和反駁,到目前為止,也沒有用戶因為此漏洞而發生資金被盜的情況,但這一事件引起了大家對IOTA和其他項目在密碼學技術安全上的關注。
第二層,用戶私鑰的生成、使用與保護。用戶參與區塊鏈的憑證是一對公私鑰,每個人通過區塊鏈產生交互行為的前提就是他擁有安全的私鑰、并且能保管好自己的私鑰,因此私鑰的生成、試用與保護問題就非常重要。
今年7月,EOS就因私鑰生成工具存在安全隱患,創建的私鑰被黑客發現漏洞,并實施「彩虹」攻擊,導致賬戶數字資產被盜,造成上千萬數字資產損失。
聲音 | 廣東政協委員:加快完善頂層規劃設計 做好區塊鏈發展的總體方案:廣東省政協委員謝端表示,區塊鏈技術正成為繼大數據、云計算、人工智能、虛擬現實等技術后又一項對未來信息化發展產生重大影響的新興技術,有望推動人類從信息互聯網時代步入價值互聯網時代。謝端建議,要加快區塊鏈技術發展,特別是完善頂層規劃設計,做好區塊鏈發展的總體方案。當前需要支持區塊鏈企業參與區塊鏈標準的制定,鼓勵行業主管部門、龍頭企業面向行業和場景應用,開展基于聯盟鏈的標準研制,將區塊鏈上的相關單位機構納入共同標準管理,推動區塊鏈行業應用規范。另外,要在明確監管執法主體的基礎上,對區塊鏈底層技術監管和應用監管涉及的專業領域進行梳理,將相關部門納入監管協調的范圍,明確分工,實現有效監管。(深圳特區報)[2020/1/13]
第三層,節點系統安全漏洞。這一問題歸屬于傳統安全范疇,比如區塊鏈節點不能存在緩沖區溢出等傳統的安全漏洞。另外區塊鏈節點的實現要能忠實地正確實現區塊鏈的共識協議;節點不能暴露不該暴露的API接口,導致黑客可以無障礙的獲取一些節點關鍵信息。無論是以太坊還是EOS都曾經被爆出過比較嚴重的安全漏洞。這一部分安全也是至關重要的。
第四層,底層共識協議。目前市場上主流的區塊鏈共識協議有以下幾種,POW、POS、DPOS、PBFT。底層共識協議決定了區塊鏈整個架構是否可信,能不能真正做到形成一個具有共識的區塊鏈。現在真正被證明安全的共識協議并不多,因為共識協議本身無論從理論、還是從技術實現上都不簡單。而經過長時間驗證的共識協議是比較安全的,比如像比特幣的POW。共識協議有一個不可能實現的三角關系:安全、去中心化和效率,這三者只能同時實現兩樣。如果追求效率,要么犧牲去中心化,要么犧牲安全。
聲音 | 中國法學會副研究員:《中華人民共和國密碼法(草案)》公開征求意見,或有利于促進區塊鏈等加密技術的商用:據財經網報道,中國人大網公布《中華人民共和國密碼法(草案)》,公開征求社會公眾意見,征求意見截止日期為2019年9月2日。 中國法學會法治研究所副研究員劉金瑞表示,《中華人民共和國密碼法(草案)》的推出既有利于規范區塊鏈等新型技術的應用,也有利于促進區塊鏈等加密技術的商用,當然有些具體問題有待進一步深入研究。 據草案第12條明確規定:“任何組織或者個人不得竊取他人的加密信息,不得非法侵入他人的密碼保障系統,不得利用密碼從事危害國家安全、社會公共利益、他人合法權益的活動或者其他違法犯罪活動。”此外草案還對核心密碼、普通密碼與商用密碼實行分類管理,為貫徹落實職能轉變和“放管服”改革要求,規范和促進商用密碼產業發展,草案第三章規定了商用密碼的主要制度。[2019/7/5]
一個區塊鏈系統的共識協議是不是安全這個問題至關重要。
理論上,基于底層共識協議創建的所有數字貨幣都是存在51%算力攻擊風險。今年上半年,就有至少4種數字貨幣分別受到了51%算力攻擊,分別是Monacoin、BitcoinGold、Verge和Electroneum,給用戶造成數千萬美元損失。
動態 | Hyperledger推出區塊鏈身份管理工具包Aries:據CoinDesk報道,Hyperledger執行董事Drummond Reed今日宣布,已推出基于區塊鏈的身份管理工具包Aries。該團隊表示,Aries不是區塊鏈,也不是應用程序。相反,它是一種為安全通信構建可互操作且可驗證的憑據的方法。[2019/5/15]
第五層,智能合約。智能合約是一套以數字形式定義的承諾(promises),包括合約參與方可以在上面執行這些承諾的協議。任何參與方都能在應用層創建合約,也就是所謂的DAPP。這也是目前出現安全問題最多的地方。
智能合約安全隱患包含了三個方面:第一,有沒有漏洞。合約代碼中是否有常見的安全漏洞。第二,是否可信。沒有漏洞的智能合約,未必就安全,合約要保證公平可信。第三,符合一定規范和流程。由于合約的創建要求以數字形式來進行定義承諾,所以如果合約的創建過程不夠規范,就容易留下巨大的隱患。
目前市場上很多智能合約均存在安全漏洞問題,比如,6月3日,安比實驗室發現Ethereum上出現81個合約帶有相同錯誤,ERC20Token合約中的transferFrom函數存在巨大隱患,一旦部署后出現問題,將造成不可挽回的損失;6月6日,安比實驗室發現ERC20代幣合約FXE由于業務邏輯實現漏洞,任何人都可以隨意轉出他人賬戶中的Token,Token隨時面臨徹底歸零風險。
BM解答EOS區塊鏈中隨機數的問題:據金色財經合作媒體IMEOS報道:今天,BM在EOS開發者群回答了EOS區塊鏈的安全性問題,因為有人對基于生成隨機數的智能合約是否安全可靠,節點是否容易作弊提出了質疑。他回答道,保證安全性最簡單的方法是讓參與雙方共同承擔責任。如果用戶信任區塊生產者,那么他就可以獲取區塊生產者在記錄交易的特定時機獲取某些信息的哈希值,這些哈希值將作為“隨機數”以確保安全性。[2018/4/25]
作為區塊鏈行業從業者、智能合約使用者或是加密貨幣擁有者,應該學習相應的密碼學和智能合約編程知識,切不可隨意復制使用涉及資金安全的合約和公私鑰等的代碼。如果惡意攻擊者,將帶有嚴重漏洞的代碼公開在網絡上進行傳播,誘導技術開發能力欠缺的組織使用,將會給使用者造成毀滅性打擊和不可挽回的損失。
第六層,激勵機制設計。智能合約要完成協作,通常是要設計相應的經濟激勵機制。經濟激勵是區塊鏈技術里面非常有突破性的一個概念。一個真正健康有活力的區塊鏈生態,需要一個很好的激勵機制。但是經濟激勵設計得不夠安全,可能生態就無法建設起來,比如典型的類龐氏游戲,這一點大家要警惕。
三、智能合約三大問題
前面介紹的六層區塊鏈安全問題,都是依托相應的技術層級來劃分的,越底層的技術越穩定,比如密碼學從一開始選定之后,就不會輕易改動。
智能合約由于比較靈活,任何人都可以創建,所以相對容易出安全問題。
任何用戶都能創建一個有共識基礎的合約,就好像是每個老百姓都可以基于某部法律寫一份合同,這個法律是一種共識機制,這個合同也是有內在的約束條款,使用DAPP就像簽訂合同,所有行為都要按照這個合同條款執行。因此,智能合約的安全隱患,直接關系到用戶的財產損失。
到目前為止,安比實驗室發現了市場上智能合約的三大問題:
第一,以整數溢出為代表的安全漏洞。安全漏洞通常是被寫代碼的人不小心引入的,它可能引起合約某些功能部件失效,最嚴重的情況,可能導致黑客攻擊、用戶丟幣、甚至黑客憑空造出來很多的幣。比如BEC、SMT、EDU,曾經就因整數溢出安全漏洞,被黑客攻擊從而導致幣值歸零。
第二,智能合約權限控制。一般智能合約里會設置一個管理員,管理員一般擁有超級權限,這類合約的安全隱患比較大,因為一旦管理員的私鑰被盜用,很容易造成巨大損失。據安比實驗室不完全統計,排名前570名的Token合約中,有342個合約存在只有管理員能調用的功能,不少合約更存在管理員任意鑄幣、燒幣、凍結賬戶、關停轉賬等過高權限。
今年7月10日,加密貨幣交易平臺Bancor稱遭到攻擊,丟失了當時折算法幣金額為1250萬美金的以太坊、1000萬美金的Bancor代幣和100萬美金的Pundix代幣。經過我們分析發現,這次Bancor平臺被盜事件就是與BancorConverter合約有關,攻擊者通過獲取了管理員賬戶的私鑰,借用管理員身份盜走用戶的Token,給用戶造成巨大損失。
第三,規范性問題。現在很多智能合約的實現并沒有統一的規范。智能合約是以交互的方式多人協作,如果合約不規范,容易導致不同人對合約的行為產生誤解,從而出現大量的安全問題。
比如,今年陸續爆出的「假充值」事件,包括以太坊代幣、USDT等,根據一家機構進行的不完全統計顯示,市場上的單代幣合約有3619份存在「假充值」漏洞風險,其中不乏知名代幣。
正常情況下,充值過程中轉賬不成功,賬戶將無法充值,賬戶余額仍然是0。但如果合約存在「假充值」漏洞,在轉賬不成功的時候,系統并不會顯示充值失敗,交易所就會誤判結果為充值成功。如果有黑客發現這一漏洞,就會一直進行「假」充值,之后再把這筆錢提出,給交易所帶來直接損失。
四、形式化驗證的重要性
目前,市場上針對智能合約安全問題的檢驗方式主要有三種,第一是測試,第二是審計,第三是形式化驗證。測試需要程序自動跑,通過各種可能性的輸入,檢測是否存在整數溢出漏洞等問題。但這個測試通常不可能百分之百覆蓋,一定會有遺漏存在。審計就是靠專家的專業知識去審核,但再專業的專家也可能會有疏漏。前兩種傳統的方式,并不能保證合約中沒有漏洞,但形式化驗證能做到這一點。
形式化驗證可以解決三類問題,第一類是安全無漏洞:通過數學推理的方法,捕捉、覆蓋合約的所有行為,覆蓋所有可能性,從而保證合約沒有漏洞。第二類是可信:公開透明。合約的創建者不僅要說明白干了什么事,還要向大家證明代碼確實是這么干的。這個也是目前只能用形式化驗證才能做得到。第三類是規范性問題。前面提到的假充值漏洞,就是因為以太坊的ERC20規范,寫得非常模糊、不完整。那怎么樣能寫完整呢?這就要求合約的規范就不能用自然語言,或文字描述,而是應該引入形式化規范,用一種數學邏輯語言來嚴格定義。
形式化驗證在工業界、尤其是安全系統相關領域,已經有了大量應用案例,比如航空航天、高鐵、核電等行業,都有專門的團隊提供形式化驗證服務,其作用與效果早就得到了安全行業專家的認可。
目前,形式化驗證包括模型檢驗和演繹推理兩種。相對權威和安全的公司,比如Zeppelin和以太坊官網都曾經公布過有問題的智能合約代碼。如果能有一個更可信,不依賴權威的智能合約代碼庫,開放給所有人使用,將能很好地解決這個問題。
鏈捕手消息,彭博社于1月16日發文警告稱,在比特幣價格震蕩之際,華爾街財務長們應再重新省視將比特幣用作公司儲備資產的策略,一旦在公司的備用資金中燒出大洞,對財務長來說等同于職業生涯的結束.
1900/1/1 0:00:00本文發布于CryptoC,作者Chamath,并經由左譯編譯。2021年1月,圍繞游戲驛站上演的散戶與華爾街機構的多空大戰已經被載入史冊.
1900/1/1 0:00:00鏈捕手消息,據MorningConsult的調查數據顯示,至少到目前為止,比特幣還沒有成為一個不平衡的金融體系中的平衡器:在美國.
1900/1/1 0:00:00據BitMEXResearch推特,比特幣在區塊高度666,833出現陳腐區塊,SlushPool和F2Pool所各自挖出的區塊在更長鏈競爭中,SlushPool挖出的區塊獲勝.
1900/1/1 0:00:008月19日,國際貨幣金融機構官方論壇(OMFIF)將舉行《央行數字貨幣和區塊鏈:探索新技術解決方案》?專題會議,討論區塊鏈如何使央行數字貨幣受益.
1900/1/1 0:00:00據Trustnodes報道,根據區塊鏈項目Overline于12月12日提供的新聞稿,小唐納德·特朗普及其女友吉爾福伊爾“召集了一群領先的記者,公眾人物和資本合作伙伴”.
1900/1/1 0:00:00