李贊
摘要 區塊鏈技術以一種非常火熱的姿態席卷而來。作為早在2 008年末就在《比特幣:一種點對點的電子現金系統》論文中被提及的區塊鏈概念,近兩年因比特幣的瘋狂行情而逐漸被人們關注。區塊鏈作為一種分布式賬本,可在業務網絡中被參與者高度共享,因其可附加的、有序的、不可篡改的鏈式數據結構以及方便高效、高安全性的交易業務實現邏輯而受到技術研究人員以及機構的青昧。目前,對于基于區塊鏈技術的去中心化商業系統或金融系統實現的研究已經開展,旨在利用區塊鏈為新型貿易提供更安全高效的方式。同時其高發的安全性問題以及新時期下新技術對區塊鏈安全的威脅也日益顯現。
【關鍵詞】區塊鏈技術 安全威脅 去中心化
1 區塊鏈技術缺乏標準化以及跨鏈通信的問題
雖然目前國際標準化組織ISO、萬維網聯盟W3C等標準化機構紛紛啟動區塊鏈標準化工作,國內工信部也擬籌建區塊鏈和分布式記賬標準委員會,但是仍未有一套嚴格的技術標準和規范提供參考。在推出區塊鏈技術的標準化規范之后,如何實現國內外對標準化達成共識也是需要考慮的。
另外,去中心化的區塊鏈系統由多個相互獨立的參與者或節點組成,一條鏈只能實現一個區塊鏈系統內部的交易和通信。對于未來區塊鏈的發展趨勢來說,僅僅只是在系統內部通信遠不能滿足對信息交互的需求,為了解決這一問題,出現了跨鏈通信技術,以實現鏈與鏈之間的交互。這一最新的跨鏈技術在具體實現以及安全性方面仍舊存在問題,在跨鏈技術真正投入使用來解決實際應用問題時,不得不考慮鏈與鏈之間基礎協議的協調情況,同時還需要對智能合約部分進行改進和優化,使其能高效地運作。
2 區塊鏈的共識機制引發的安全問題
目前主流的共識機制有,工作量證明機制(POW)、權益證明機制(POS)、實用拜占庭容錯算法(PBFT)、授權拜占庭容錯算法(DPBF)、Pool驗證池。能適用于各種區塊鏈網絡的完美共識體制是不存在的,共識機制的選擇要基于不同業務網絡的需求,在可監管性、容錯性能、共識效率以及安全性各方面都要能滿足業務運行的基本標準。
行情火爆的比特幣采用的是工作量證明機制,所謂工作量證明依賴于網絡中節點依靠計算能力進行數學運算,從而獲得區塊的記錄權,這一機制消耗大量的計算資源和電力資源,同時受監督的力度小,為了保證交易記錄的真實可靠,需要不斷調整計算難度,使之與算力的快速發展相匹配。這種機制下工作的區塊鏈系統,容易產生分叉,需要等待多個區塊來進行確認。目前使用POW機制還存在一個問題,由于較大程度的算力已經投入比特幣市場,如果還有規模較大的區塊鏈網絡使用這一共識機制,可能無法得到等量規模的算力進行安全保障。
POS機制中節點所持有代幣與節點被選為驗證者的概率成正比。在哈希運算方面,資源消耗少于POW,可監管性與容錯性等同于POW,在驗證方面,從節點中隨機選擇驗證者,節點持有代幣越多,所占權重就越大,選中概率越大。但這一切只是在概率上的表達,具有非確定性,在理論上有被攻擊的可能。DPOS和POS存在一個共同問題,這兩種機制都是依賴于代幣的,實際上并不是所有區塊鏈系統都需要代幣。
PBFT是一種少數服從多數的機制,具有可監督、能耗低、性能高的特點,不過也存在缺陷,它只是最適用于聯盟鏈,并非公有鏈。容錯率較低,僅有33%,即允許1/3的節點出錯。DPBF是國內首先提出的一種共識方案。雖然基本不會產生分叉,而且容錯率很高,但是當記賬人中有1/3不記賬時,系統會停止服務,所以惡意的記賬人可能會利用這一漏洞使區塊鏈分叉。Pool驗證池是基于分布式一致性算法工作的,比如Paxos算法,區塊鏈系統中不使用代幣也能使用這種機制,共識驗證速度快,可以實現秒級驗證。但是只適用于去中心化程度低的系統,比如多中心化的商業系統。
因此在開發區塊鏈時,要根據需求選擇合理的共識機制,要考慮到機制投入使用后可能產生的各種問題,同時設計好突發情況的解決方案以及安全防護機制,防止攻擊者利用機制固有漏洞進行惡意攻擊。
3 區塊鏈分布式賬本的可共享性受到來自新時期新技術的威脅
在比特幣的加密體系中,隨著量子計算的快速發展以及量子計算機的迅猛發展,在己知公鑰的前提下,用量子計算機可以在很短的時間內推出私鑰,緊接著用私鑰進行簽名即可冒充真正的私鑰持有者的身份進行欺騙交易。那么如何來獲取公鑰呢?比特幣賬戶進行交易時,會公開自己的簽名以及公鑰,用于交易的另一方驗證發起者的身份,來確認不是偽造的或者是欺騙性的交易。雖然量子計算機還有待發展,但是仍然不能保證在傳統的計算體系下,這種公鑰體系是否安全,或者從國家的戰略意義上來說,即使有研究人員或者科研機構找到了傳統計算體系下的解密方式,也不會大張旗鼓地宣傳。
雖然說存在上述這種可能性,但是從實際意義上來說,有能力破解密鑰體系和哈希加密算法的個人或者機構也不會在意比特幣的微小價值,所以就目前的形勢而言,對于共享的區塊鏈體系,私鑰的泄露才是最大的威脅。對于普通區塊鏈參與者來說,使用復雜且晦澀難懂的無規律私鑰確實是比較尖銳的矛盾,區塊鏈錢包在很大程度上解決了這個問題,同時為了保障安全性,在每次交易過后,節點可以更改自己的地址,這一點對于現有的技術手段來說還是十分行之有效的。另外,不少人使用可信的第三方密鑰托管機構來保存區塊鏈私鑰,一般地,這些機構也有自己的一套密文的加密體系以及一系列的管理措施。但是從信息安全的角度出發,永遠不能忽視潛在的安全威脅,比如來自機構內部涉密員工的威脅,來自機構操作疏忽的威脅,以及來自快速發展的攻擊技術的威脅。對于個人來說,來自社會工程學的攻擊方法也是屢試不爽,區塊鏈私鑰使用時間越長,安全威脅就越大,或許在個人還不知情的情況下,私鑰已經被竊取。而且,在現有的區塊鏈體系下,私鑰就是一切,私鑰泄露等于丟失一切。
另外一方面,隨著大數據以及數據挖掘技術的快速發展,勢必會對開放且共享的區塊鏈網絡產生不可忽視的影響。因為區塊鏈中的賬本在各節點是共享的,雖然無法完成對區塊中數據的篡改,但是獲取到各個區塊的交易信息還是輕而易舉的。獲取到區塊鏈系統的各種信息之后,運用大數據分析技術可以分析得到某一時間段的交易量、以及各個節點的算力信息,同時從更大的層次去把握區塊鏈市場,黑客甚至可以利用這些信息對有價值的節點發起攻擊,來達成個人組織獲利或商業企圖。
4 缺乏中心調節機制的分布式商業系統能否真正得到實現
目前,數字加密貨幣還遠非主流,加上缺乏中心化的調節機制,應用區塊鏈技術的商業系統投入實際運行后,對于某些節點或者參與者來說,如果他們擁有了既得利益,然后緊接著聯合起來反對后期對于系統增加的公平性和完整性的改善,那么系統便會面臨崩潰。
在金融方面,用數字加密貨幣提供服務是否可以合法進行資產登記,區塊鏈中的匿名驗證機制是否會得到改進或者是顛覆性的改變,那么到時候區塊鏈系統是否還會行之有效,是否會產生新的安全問題或者危險漏洞尚不清楚。
在可信性方面,區塊鏈的共識機制并不能很好地融入商業系統的需要,而且其不能充當政府機構的角色,只是在計算方面算得上是權威。雖然智能合約可以高效地解決交易中的信任問題,但還是存在它的局限性,一個區塊鏈系統的智能合同僅對于鏈內的節點有效,對于外部不起作用。
在法律價值方面,智能合約并沒有特別明確的法律價值,它只被用來完成系統內的交易,并不等同于具有法律效力的普通合同,因此當使用智能合約的交易出現了問題,沒有相應的法律為交易雙方提供保障以及仲裁。
5 多重簽名、智能合約代碼漏洞對區塊鏈安全的影響
多重簽名并非是完美解決繁瑣的簽名和驗證過程的方法,多重簽名機制自身存在的漏洞也是需要關注的。多重簽名機制類似于拜占庭問題的變形,根據其規則,發起交易和廣播交易需要多把密鑰進行簽名,多重簽名之后,才能最終動用交易地址的資產完成交易。這一機制也讓攻擊者有了可乘之機,2017年以太坊的Parity錢包軟件出現漏洞,導致了上億美元的資產被凍結,使用這款軟件的多重簽名功能的用戶都受到了這場危機的影響。對于這場危機,只有采用硬分叉來修復,但是硬分叉又是一種備受爭議的升級機制,受到許多用戶的抵制。因此無論從技術角度還是其他因素考慮,這個關于多重簽名機制漏洞的修復都是極為棘手的,修復方案也值得推敲。
智能合約在實際應用過程中也會產生許多問題。智能合約的出現是為了能自動地類智能化地完成條約規定的內容,避免第三方中間機構的介入,以最大限度減少意外或惡意情況的發生。智能合約的執行不左右于個人的意志,一旦程序執行,沒有人可以阻止它的運行,雙方會按照既定條件完成交易,不用擔心某一方毀約。智能合約名義上是“智能”的,在實際的系統中其實是單調的、存在安全問題的傻瓜式的合約,它只是用算法的思想來簡化實際處理的問題。暫且拋去智能合約的法律價值,以及當智能合約與現有法律產生沖突的處理辦法。對于合約的安全性還需要考慮諸多方面:
(1)智能合約可以由多種程序設計語言進行編寫,既然是人為開發的,便不能排除產生漏洞的風險,據可靠數據顯示,目前已經出現的智能合約中并不是所有的都平等,有不在少數的合約中存在安全漏洞,面臨著被盜的潛在威脅。另外智能合約簽署之后被發現bug怎么進行修復,交易方已經產生的損失該怎么處理。首先智能合約一經發布到區塊鏈上就不能進行修改,即使合約中有漏洞需要進行修復或者業務邏輯需要進行變更,并不能在原有的合約基礎上直接修改再重新發布,在理論層面上,修改合約需要同一時間內所有的合約持有節點共同完成,只有所有節點同步進行,才能完成對合約的升級。因區塊鏈網絡的去中心化性以及沒有相關的法律支持,對于合約漏洞直接或者間接造成交易雙方的損失而言,沒有比較好的解決方案。
(2)智能合約接收的信息源信息的質量也十分重要,如果合約代碼中涉及到調用第三方數據或網絡數據,當外部信息是錯誤的、或者被惡意篡改的,便會造成合約判定失誤,從而導致交易失敗。比如還有在現有的技術能力下,在智能合約缺乏協議和標準化準則的前提下,智能合約是否能滿足交易雙方的所有需求。
(3)在某些情況下合約的內容需要律師或仲裁機構介入審查,比如合約內容歧義、利益關系模糊或合約的執行流程太過繁瑣。當存在智能合約的漏洞未被審查出而被黑客利用時,便會導致比較危險的后果。雖然智能合約作為一種新的交易模式會產生許多的安全問題,但是也有它的價值體現,隨著合同審查機制的標準化、專業化,智能合約或許會對現有體制產生沖擊。
6 如何合理應用區塊鏈技術實現具體系統
一個區塊鏈系統應包含三個主要部分:面向各節點的應用、智能合約以及分布式賬本。系統的最頂層是面向節點的應用,用于滿足參與者的需求。該應用讓用戶調用智能合約在網絡中觸發交易,智能合約封裝系統的業務邏輯,每次調用智能合約都會在網絡中創建一筆交易并且添加到賬本中,賬本保存了智能合約的當前狀態,并且分發到各個節點。智能合約像軟件開發一樣,設計利用區塊鏈技術的系統之前,要進行需求分析。首要的,要保證業務系統涉及多個節點,并且這些節點之間組成業務網絡,比如企業與企業之間、企業內的各部門之間,也可存在于個人之間。滿足這一條件之后,下面四個條件中至少滿足其中一個,區塊鏈技術就可以成為服務于該系統:
(1)系統需要引入共識機制進行交易驗證。
(2)需要創建審計來檢驗線索和信息來源。
(3)業務網絡中各節點的交易信息需要是不可改變而且防止被篡改的。
(4)在系統實現過程中,對爭議的解決方法需要是最終解決方法。
在應用區塊鏈技術的商業系統中有多種共識機制可供使用,在各節點信任度很高的情況下,進行簡單的投票就可以解決共識,否則應該選擇更復雜的策略。在加密方面,采用安全有保障的密鑰體系,公鑰的傳遞可以使用PKI機構進行證書的下載獲取公鑰,同時也要防止多重簽名漏洞,設計好對惡意攻擊以及意外狀況的應對方案。
參考文獻
[1]唐文劍.區塊鏈將如何重新定義世界[M].北京:機械工業出版社,2016.
[2]朱建明.區塊鏈技術與應用[M].北京:機械工業出版社,2018.
[3]鐘偉,數字貨幣:金融科技與貨幣重構[M].北京:中信出版集團,2018.
[4]陳俊.區塊鏈技術基礎:術語和用例區塊鏈的關鍵術語和無限可能的潛在應用場景[DB/OL]_ http:,/m. chinavalue.net/Finance/Blog/2 018-1-24/149525 3.aspx,2018-01-24.
[5]匡瑩,陸惠文,文澤中,鐵炮粗紗機升級改造的實踐[J].棉紡織技術,2012,40 (09): 33-35.