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