近年來,區塊鏈技術被廣泛關注。很多金融企業已經開始探究將區塊鏈技術應用在跨國轉賬、證券交易、智能資產等領域。將區塊鏈技術應用到金融行業,應該認清其特殊的安全需求,以準確把握其安全風險并設計完備的應對方案。
區塊鏈技術簡介
區塊鏈是一種按照時間順序將數據塊鏈接起來的數據結構,也稱哈希指針鏈表。每個數據塊中存儲了上一個數據塊所有數據的哈希值,與上一個塊鏈接。這種數據結構天然具備防篡改、防抵賴、防偽造的特性。區塊鏈技術是利用分布式共識協議將數據記錄到這種哈希指針鏈表中,同時其廣泛地使用密碼學技術保證數據存儲和訪問安全。在區塊鏈2.0 版本中(見圖1),引入了自動化腳本代碼來編程和操作數據。
圖1 區塊鏈2.0 技術架構
金融業區塊鏈技術應用
面臨的安全威脅和應對策略
1. 數據安全。主要基于以下幾個方面的考慮。
區塊鏈中的數據:區塊鏈是一個公開的鏈式賬本,其中存儲的數據向網絡中所有用戶公開。而在金融業務場景中,業務規則和監管機構要求保護相關數據的隱私性、完整性等。在存儲、傳輸相應數據時,應該使用哈希函數、同態加密、數字簽名等技術保護數據。
用戶私鑰:在區塊鏈中,用戶的資金安全完全依賴于私鑰的安全,無論是私鑰泄漏還是丟失,都將給用戶帶來財產損失。為了保護用戶的賬戶與資金安全,應該對私鑰文件進行加密存儲。同時,應該使用“秘密共享協議”等方法安全地備份私鑰文件。
密碼算法安全:保護區塊鏈數據安全的前提是密碼算法的安全。在設計應用時,應該選擇安全性更高的密碼算法;應用投入使用后還要及時替換掉不再安全的密碼算法。
2. 網絡層訪問控制。公有鏈允許節點自由進出網絡,且區塊鏈的網絡層沒有登記用戶身份。金融行業的風險和安全性相對更高,未登記身份的節點自由進出網絡為系統安全帶來很多不可控性。區塊鏈技術在金融行業應用時,應結合業務需求,分析是否有必要使用公有鏈,并登記網絡中節點的身份。對于聯盟鏈和私有鏈,建議采用專線來接入區塊鏈網絡。此外,還應采用VPN 專網、防火墻、物理隔離等技術對節點,特別是礦工節點的物理網絡和主機進行保護。
3. 共識層安全。主要體現在以下兩方面。
共識協議應具備的基本屬性: 區塊鏈使用分布式共識協議(見圖1)來防止單點故障等問題,有效防范了雙重花費、礦工惡意封鎖某個用戶的交易等攻擊。但這都建立在區塊鏈網絡節點的權利分布均勻、不存在51% 攻擊的前提下。很大程度上取決于區塊鏈的一致性不被破壞。因此,設計合適的共識算法對于區塊鏈應用的安全性至關重要。
一般來說,要求共識算法具有以下幾個基本屬性。公平性:無論是算力高的大礦工還是算力低的小礦工都有幾率挖到礦,且幾率與之前的挖礦結果無關??焖衮炞C:確保挖礦難題驗證簡單、快速、開銷小。保證遍歷所有可能的nonce 值是解決難題最快方案。難度可調整:挖礦的難度可以調整,以保證挖礦速度平穩。
此外,還應該使用資產抵押、法律和監管的形式對礦工節點進行聯合管控。對于不誠實、有不當行為的礦工節點進行懲罰。
軟分叉和硬分叉:分叉是指對區塊鏈的規則做一些改變。由于軟件更新,不同節點上運行的軟件版本不同,導致其執行規則不同,從而導致分叉(軟分叉和硬分叉)。軟分叉是讓原來可以被接受的交易或區塊不可以被接受,例如:比特幣中使用的P2PKH 腳本。與之相反,硬分叉是使原來不可以被接受的規則可以被接受,例如:增加區塊大小。這兩種分叉作用在區塊鏈中時,軟分叉可以很好地被老版本軟件的節點兼容,并促進其更新軟件,但硬分叉會受到排斥。圖2 是有60% 算力占比的節點更新軟件時,硬分叉和軟分叉對新規則和舊規則支持情況。在更新區塊鏈應用時,應該盡可能使用軟分叉完成,避免硬分叉。
圖2 軟分叉和硬分叉示意圖
4. 激勵層安全。目前已提出的大多數數字貨幣系統都是去中心化的,它允許節點自行記錄數據、發行貨幣。區塊鏈中的節點都是匿名的,用戶在使用系統時,并不需要注冊自己的真實身份。這樣的機制為設計法定數字貨幣帶來了一定的威脅。
壞賬。如果一個法定數字貨幣系統是匿名的,且支持借貸業務,則該系統無法有效地對壞賬進行管控。由于系統并沒有登記用戶的真實身份,用戶完全可以在花完借貸的款項后拋棄當前賬戶,重新注冊一個新賬戶。如此一來,借款人或銀行將無法收回應收款項。
洗錢。由于系統的參與節點都是匿名的,系統不知道資金流向賬戶的真實身份。系統的去中心化導致在洗錢事件發生后,系統不能像傳統銀行一樣凍結賬戶。
貨幣發行不可控。出于國家安全考慮,法定貨幣的發行應該由國家發行。而區塊鏈的去中心化、礦工節點的自由進出導致貨幣發行不可控。因此,在設計法定數字貨幣時,需要重新設計貨幣的發行機制,使貨幣發行中心化,結合匿名認證等技術,使系統中的資金流向可控。
5. 智能合約層安全。區塊鏈2.0 版本中引入智能合約層,提出區塊鏈即服務(BaaS)的概念。智能合約層提供了自動化腳本代碼組成的智能合約來開發應用、操作數據。
智能合約本質上而言仍然是編程語言,如果它是圖靈完備的,支持循環指令,攻擊者就可能構造帶有死循環代碼的交易對網絡中的礦工發起DoS 攻擊。
在區塊鏈中設計驗證腳本或智能合約時,應預防死循環導致的DoS 攻擊??梢栽谠O計腳本語言時禁止使用循環指令,也可以要求程序的創建人為程序執行按照執行步數支付費用,并設置費用限額。超過限額后,停止執行且不歸還費用。其次,做好充分的容錯機制,通過系統化手段,結合運行環境隔離等機制,確保代碼在有限時間內按預期執行。
6. 其他。除了前面提到的防范措施外,還要有相應的風險控制手段,對系統的數據訪問、交易頻度以及記錄到區塊中的交易進行監控和檢測,對可疑操作和不當行為進行告警、合成和記錄,并評估損失,進行補救,防止再次出現。
此外,為了提高開發效率和安全性,還可以將一些重要模塊(例如:私鑰的存儲與保護、共識協議等)剝離出來,開發統一的安全組件、接口,以解決開發人員安全意識不足的問題。
小結
區塊鏈技術為金融行業的業務和機構運作方式帶來新的轉變機遇的同時,也帶來了新的安全挑戰。民生銀行將以支持業務和技術創新為目標,繼續深入研究區塊鏈的應用安全,在應用區塊鏈為業務帶來轉變的基礎上,保證業務系統的安全性。
本文作者系中國民生銀行信息科技部總經理助理 呂曉強 & 中國民生銀行信息科技部 張磊 黃吉鯤
1024你懂的国产日韩欧美_亚洲欧美色一区二区三区_久久五月丁香合缴情网_99爱之精品网站
責任編輯:Rachel
免責聲明:
中國電子銀行網發布的專欄、投稿以及征文相關文章,其文字、圖片、視頻均來源于作者投稿或轉載自相關作品方;如涉及未經許可使用作品的問題,請您優先聯系我們(聯系郵箱:cebnet@cfca.com.cn,電話:400-880-9888),我們會第一時間核實,謝謝配合。