郭文俊 楊澤民 張葉娥
(山西大同大學計算機與網絡工程學院 山西省大同市 037009)
區塊鏈技術是以比特幣為代表的“去中心化”、“去信任化”的一種新型分布式數據庫技術方案。該方案的主旨思想為整個數據庫由參與系統的所有節點共同維護,運用其獨有的節點針對網絡數據信息進行分布式的存儲、驗證以及信息的交流與傳輸,具有不可篡改、透明、安全等特性。區塊鏈技術因其獨特的功能和交易模式獲得了金融產業、高新技術產業和相關管理部門的高度關注,也因此區塊鏈技術具備了廣闊的發展應用前景。
區塊鏈技術是通過Encrypted Data Block 進行數據的存儲和驗證,利用分布式共識機制(Consensus Mechanism)保障數據的生成與更新,利用智能合約(Smart Contract)確保塊內data 的相關操作,其特征是不依附于任何可信的第三方機構,有效保證了無信任關聯節點間的信息互通。
本節簡要介紹構建區塊鏈的基礎技術保障。
區塊鏈中的每一個block 都包含了記錄該區塊的交易記錄,整個block 系統采用Merkle 樹對進行交易的節點記錄做歸納表示,同時生成屬于該交易記錄的數字簽名。Merkle 樹在驗證交易以及文件對比中的應用較多,尤其是在分布式數據環境下,Merkle 樹會大大減小數據的傳輸有效保證了Blockchain“不可篡改”的特性。
區塊鏈中的數據block 按時間戳(Timestamp)排列,由Block Header 指針連接成鏈式結構,使得Blockchain“可追溯”的性能得以保障。比特幣的應用需求推動了區塊鏈技術的發展,而比特幣作為數字貨幣,double spending 問題成為其發展的瓶頸,而區塊鏈技術利用時間戳服務解決了double spending 問題。區塊鏈系統依靠給block 內的每一筆交易記錄蓋上特定的時間戳,以此來表明該時刻該交易確實發生,交易的所有則權益已經發生轉移,如若先前的資金擁有者再次使用該數字貨幣系統就會報錯,從而有效解決了double spending 問題。
由于區塊鏈網絡中節點的不可信且要求所有節點均存儲數據的相同狀態,所以當要更新block 內的某一個節點的數據時,需要調動所有節點以便對本次更新操作達成一致共識。區塊鏈常用的共識機制有工作量證明共識機制(PoW),權益證明共識機制(PoS),委托權益證明共識機制(DPoS)以及實用拜占庭容錯算法(PBFT)。
2.3.1 工作量證明共識機制
工作量證明共識機制(Proof of Work),是比特幣體統所用的共識機制,利用該機制使系統block 內各個節點最終達成共識,進而得到最終區塊。工作量證明機制的原理是網絡中的節點通過工作量證明確定下一個即將要添加到區塊鏈中的節點。一旦這樣的節點被找到就說明該節點確實經過了大量的計算,因此這種共識機制其安全性能的保障是以系統性能的損耗為代價的,任何想要在此機制中偽造或修改某一節點信息的攻擊至少需要付出近一半以上的算力,故此工作量證明機制可以很好地應用到公有鏈網絡中,并且可以有效抵御女巫攻擊[1]。但由于要耗費大量的算力才能得到復合要求的結果,因此基于PoW 共識機制的區塊鏈存在交易結果確認緩慢、系統資源冗余開銷高等問題。
2.3.2 權益證明共識機制
權益證明共識機制(Proof of Stake),是PoW 機制常用的替代機制,PoS 共識機制將節點所擁有的貨幣量及貨幣幣齡總和作為證明,僅僅需要很少的算力就能維持區塊鏈的正常運轉。由于這種機制在block 內的產生沒有經過大量的算力消耗,導致這種機制下的貨幣價值源難以確定。
2.3.3 委托權益證明共識機制
委托權益證明共識機制(Delegated Proof of Stake),是PoS 共識機制的一種改進變體,在該機制中block 內的交易節點是通過投票機制進行選擇的,block 內的每一個節點均可以為其信任的節點進行投票,投票權重的大小則根據每個投票節點所擁有的交易度來決定。最終票數最多的節點會被選出來作為頂層交易節點負責驗證所有交易并為這些交易創建block,頂層交易節點在完成自身職責的同時也可以獲得收益。DPoS 是基于民主投票的思想來實現的,通過民主投票和選舉機制使得block 內的節點免受集中化制約和惡意使用,常使用的加密貨幣有Steem、BitShares 等。
2.3.4 實用拜占庭容錯算法
實用拜占庭容錯算法(Practical Byzantine Fault Tolerance),這是一種基于通訊的共識協議,基于通訊的協議將投票權分配給網絡中的各個節點,并利用多輪通訊最終達成統一協議。這該協議的執行可分為預準備(pre-prepare)階段、準備(prepare)階段和提交(commit)階段3 個階段[2]:具體過程為:一個master 節點會在預準備階段向所有節點廣播其請求,在準備階段所有節點收到廣播請求后判斷是否執行該操作,若同意執行則添加自己的數字簽名在消息中,并廣播給其他節點;若不同意執行,則不發送任何消息,當某一節點接收到其他節點發來的執行操作消息數量達到一定程度后說明執行操作達成了共識。在最后的提交階段,節點執行相應的請求,并將執行結果回報給master 節點。PBFT 算法可以保證當30%的參與節點受到惡意攻擊時分布式系統仍具有可用性。
區塊鏈基于P2P 技術使得block 內每個節點都擁有系統的全部信息,再加上P2P 沒有“中心化”的server,使得block 內所有節點在參與系統運行方面體現出獨立特性,整個server 是分散在不同的節點上的,因此當某一節點遭受惡意攻擊時并不會影響整個系統的運轉[3-4],從而很好地實現了區塊鏈網絡“去中心化”的結構特性,保證了區塊鏈“無中心化”的特點。
根據節點選擇進入或退出block 的不同方式,可以將區塊鏈分為公有鏈(Public Chain),許可鏈(License Chain),私有鏈(Private Chain)3 類。
公有鏈允許系統的任何節點均可參與block 內的數據維護與讀取,而且block 內的節點也可以隨時進入或退出系統,由此可見,公有鏈是一個完全“去中心化”的系統。
任何一個節點想要進入或退出block 均需獲得許可,是一種限制可參與的成員節點的系統,所有block 內的節點進行數據的讀取和計算均要滿足block 內的設計規則,在許可鏈內多采用的是實用拜占庭容錯算法。
私有鏈目前還不能完全解決信任問題,各節點之間雖彼此透明但不對外公開,僅限于有信任關系的個體之間使用。
通過對區塊鏈相關文獻進行統計研究發現區塊鏈的應用以及涉及到了多個學科和領域,相關熱點應用主要有智慧醫療、智慧交通、金融科技、電子政務等方面。
在智慧醫療中醫療大數據的收集和共享推動著現代醫學的進步,而這些信息又常常涉及到一些個人私密數據,故此在大力發展智慧醫療的同時也需要研究者們不斷深入思考究竟該采取怎樣的措施以確保醫療大數據的安全,這也是電子醫療大數據共享發展的一個瓶頸。
張超,李強等[5]提出了聯盟式醫療區塊鏈系統,該系統基于實用拜占庭容錯算法(Practical Byzantine Fault Tolerance),對算力很小的實體給予一定公信力的政府背書,將區塊鏈應用到Medical System 中,有效解決了Electronic Medical Big Data 的隱私泄露問題,同時還增加了Medical Data 在管理上的靈活性,為患者就醫提供了便捷,也使得醫學研究者能夠獲得更可靠、更有效的醫療數據。
由于物聯網、AI 和大數據的迅速發展有效地推動了智能交通系統(Intelligent Transportation System)的快速發展,然而Intelligent Transportation System 的趨于“中心化”的特性有制約了其本身的進一步發展。Yong Y,Wang F Y[6]在面向區塊鏈的智能交通系統中提出了面向智能交通系統的區塊鏈模型,將區塊鏈應用到智能交通領域中,進一步提升了自動駕駛的安全性能。萬子龍,匡芬[7]在基于區塊鏈技術的車聯網安全體系結構探究一文中提出了基于區塊鏈技術的車聯網安全體系,設計了一個去中心化的車聯網數據交換系統,使得車聯網節點間安全可靠的通信得以保障。
供應鏈可信數據管理作為協調各大企業間合作互通關系的途徑,在當今產業集成化背景下,如何確保鏈上各企業成員間的相互信任問題已經成為一件亟待解決的事項。黃宇翔,梁志宏等[8]在基于區塊鏈的供應鏈可信數據管理中提出了一種將鏈上貿易規則編寫成符合block 共識機制的智能合約這樣一種解決方案,為供應鏈的貿易數據管理提出了新的思路。
隨著信息技術的快速發展,電子取證技術也應用而生,這種新型的取證技術在數字取證調查中得到廣泛的應用。然而,電子取證技術的核心數據獲取工作是由相關中心機構運維產生的,這樣的數據運維機構一旦遭受惡意的攻擊,通過電子取證技術獲取的證據其數據的完整性無法確保,基于區塊鏈技術的電子取證模型擺脫了中心機構的制約,使得電子取證技術具有更好的防篡改特性有效地確保了電子數據的安全性和完備性。黃曉芳,徐蕾等[9]在一種區塊鏈的云計算電子取證模型中提出了基于Merkle 樹的取證技術,通過改進后的共識算法有效降低了block 產生的時間。侯義斌,梁勛等[10]在基于區塊鏈的電子取證系統架構模型一文中設計出了一套基于區塊鏈的電子取證模擬系統有效地提高了存證效率。孫靖超[11]在基于區塊鏈的可擴展電子取證模型研究中設計了一種基于委托權益證明機制和實用拜占庭容錯機制相結合的block 電子取證模型,該模型有效地增強了系統的可擴展性和單位時間的吞吐量,使其在并發場景下展現出更好的取證效果。
區塊鏈技術作為近年來被研究者們追議的技術,其應用已經滲透到多個行業領域內,而且這個趨勢在不斷地持續升溫,一度使得對區塊鏈技術的研究成為當下最熱門的研究熱點之一[12-13],因此,需要對于區塊鏈技術的研究加大力度,投入更多的精力,同時也需要政府在區塊鏈技術研發、區塊鏈技術成果轉化等方面給予更多的政策引導和資金支持。本文通過對近幾年國內外發表的與區塊鏈技術相關的綜述論文進行探究梳理,從區塊鏈技術的概念、區塊鏈技術基礎保障、區塊鏈技術分類、區塊鏈技術的應用等四方面對區塊鏈進行了簡單的梳理闡述,目的在于幫助熱衷于區塊鏈技術的科研工作者了解區塊鏈技術當下的研究狀況、研究熱點、研究導向以及區塊鏈技術未來的發展演化趨勢。