摘 要:物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等眾多領(lǐng)域缺乏量身定制的安全隱私技術(shù)保障,基于分布式賬本技術(shù)(DLT)的系統(tǒng)作為一種分散的數(shù)據(jù)管理方法可以很好地滿足其安全需求,因此基于分布式賬本技術(shù)的系統(tǒng)層出不窮。為了幫助后續(xù)的研究者更全面快速地了解分布式賬本技術(shù),梳理了近年來基于分布式賬本的研究成果,分別從數(shù)據(jù)結(jié)構(gòu)、技術(shù)原理、共識機制和性能等多個角度對區(qū)塊鏈進行深入分析,并且基于當前研究現(xiàn)狀詳細比較分析了分布式賬本技術(shù)的一些最新進展,如哈希圖(Hashgraph)、全鏈(Holochain)和初鏈(Truechain)等。最后總結(jié)了該領(lǐng)域未來的發(fā)展前景。
關(guān)鍵詞:區(qū)塊鏈; 分布式賬本; 共識機制; 哈希圖; 全鏈; 初鏈
中圖分類號:TP311 文獻標志碼:A
文章編號:1001-3695(2023)03-001-0641-08
doi:10.19734/j.issn.1001-3695.2022.07.0394
Review on development history of distributed ledger technology
Wang Jiayao1, Wang Ting1, Yuan Wenliang2, Zhu Junwu1
(1.College of Information Engineering(College of Artificial Intelligence), Yangzhou University, Yangzhou Jiangsu 225000, China; 2.College of Data Science, Jiaxing University, Jiaxing Zhejiang 314001, China)
Abstract:Due to the lack of" tailored security and privacy technology in many fields such as Internet of Things, artificial intelligence and big data, the system based on distributed ledger technology (DLT) can well meet their the security requirements as a decentralized data management method. Consequently, systems based on distributed ledger technology emerge in an endless stream. In order to help subsequent researchers understand the field of distributed ledger technology more comprehensively and quickly, this paper reviewed the research results based on distributed ledger technology in recent years. It" analyzed the blockchain in depth from the perspectives of data structure, technical principle, consensus mechanism and performance, and compared and analyzed some recent advances in distributed ledger technology in detail based on the current research status, such as Hashgraph, Holochain and Truechain. Finally,this paper summarized the future development prospect of this field.
Key words:blockchain; distributed ledger technology(DLT); consensus mechanism; Hashgraph; Holochain; Truechain
0 引言
傳統(tǒng)賬本存在效率低、成本高、不透明且容易發(fā)生欺詐和濫用等缺點,隨著人類社會逐漸從工業(yè)社會過渡到信息社會,從物理空間到信息空間,賬本逐漸發(fā)展到數(shù)字化,從而出現(xiàn)分布式賬本。分布式賬本又稱共享賬本,是一種在網(wǎng)絡(luò)成員之間的共享數(shù)據(jù)庫,用于記錄網(wǎng)絡(luò)參與者的交易或數(shù)據(jù)交換等活動。區(qū)塊鏈的誕生對分布式賬本技術(shù)(DLT)[1]進行了新的定義并使其成為可能。區(qū)塊鏈實際上是由特殊底層技術(shù)構(gòu)建的分布式賬本的一種形式,起源于中本聰先生在2008年的文章Bitcoin: a peer-to-peer electronic cash system[2]。其實,區(qū)塊鏈并不是新技術(shù),而是點對點技術(shù)(P2P技術(shù))[3] 、密碼學[4]、智能合約[5~9]等現(xiàn)有技術(shù)的重新組合。區(qū)塊鏈按照時間順序以塊鏈式結(jié)構(gòu)記錄著自誕生以來的所有交易記錄,數(shù)據(jù)被存放在互聯(lián)網(wǎng)的各個節(jié)點上,并以密碼學的方式保證不可竄改、不可偽造。鏈中每個節(jié)點都是獨立平等的,依靠共識機制[10,11]來確保數(shù)據(jù)的一致性,具有去中心化[12]、公開透明、不可竄改等特性。區(qū)塊鏈作為比特幣(Bitcoin)[13,14] 、以太幣(Ether)[15]、萊特幣(Litecoin)[16]等虛擬貨幣的底層技術(shù),目前分為三個發(fā)展階段:
a)區(qū)塊鏈1.0階段數(shù)字貨幣,以比特幣為代表,隨后還產(chǎn)生了萊特幣、以太幣等數(shù)字貨幣。文獻[17]認為區(qū)塊鏈這樣一個全新的、去中心化的數(shù)字支付系統(tǒng),無障礙、低成本的運營沖擊了傳統(tǒng)的金融體系。
b)區(qū)塊鏈2.0階段可編程化區(qū)塊鏈,以功能強大的智能合約開發(fā)和應(yīng)用為代表。在1995年,尼克·薩博提出了智能合約的理念,但由于沒有可信的執(zhí)行環(huán)境等原因,一直被擱置,沒有應(yīng)用到實際生活中。比特幣的底層技術(shù)——區(qū)塊鏈技術(shù)很好地解決了智能合約中的技術(shù)難題,恰好提供了可信環(huán)境。這一階段的標志性產(chǎn)物是以太坊[18~21],一個開源的具有智能合約功能的公共區(qū)塊鏈平臺,應(yīng)用范圍也開始從單一的數(shù)字貨幣領(lǐng)域擴展到其他金融領(lǐng)域。
c)區(qū)塊鏈3.0階段高級智能合約,是超越貨幣、金融范疇的區(qū)塊鏈應(yīng)用,致力于為各行業(yè)提供去中心化方案,如物聯(lián)網(wǎng)、醫(yī)療、物流等領(lǐng)域。這一階段區(qū)塊鏈技術(shù)的去中心化和共識機制發(fā)展到了新的高度。
隨著區(qū)塊鏈的逐步發(fā)展,技術(shù)在不斷精煉,也越來越適應(yīng)各個應(yīng)用領(lǐng)域。與此同時,區(qū)塊鏈技術(shù)作為一個新興事物也受到社會各界的關(guān)注[22~24],眾多研究人員在區(qū)塊鏈的基礎(chǔ)上進行創(chuàng)新,以區(qū)塊鏈為突破口,提出了新的研究成果,如基于DAG結(jié)構(gòu)的公鏈、Hashgraph、Holochain、FruitChains、Truechain等。
2013年,一名以色列希伯來大學的學者首次將DAG(directed acyclic graph)概念作為共識算法引入到區(qū)塊鏈項目中來,然后有學者用DAG結(jié)構(gòu)來存儲塊,打破了區(qū)塊的概念,實現(xiàn)了區(qū)塊鏈的并發(fā)打包和執(zhí)行。目前已有IOTA[25]、Byteball[26]、NANO[27]、Corda[28,29]等公鏈使用DAG結(jié)構(gòu),但每種鏈的共識算法卻不相同。
面對區(qū)塊鏈吞吐量低、延遲高等局限性, Baird[30]在2016年開發(fā)了一種新技術(shù),名為Hashgraph,并聲稱其可以做到真正的blockless。Hashgraph立意很高,想法很新穎,提出了新的共識機制并實現(xiàn)了一種更公平的治理機制,是具有低交易率、去中心化、無須挖礦等特征的互聯(lián)網(wǎng)底層信任網(wǎng)絡(luò)。
同年Block等人[31]開始構(gòu)建Holochain,其試圖打破區(qū)塊鏈極高存儲成本和低可擴展性[32]的困境,成為一種輕量級架構(gòu),在手機或其他低容量設(shè)備上也可以運行。同時,Holochain不存在擴展性的問題,因為它不會要求網(wǎng)絡(luò)上所有節(jié)點持續(xù)更新整條鏈的信息。
FruitChains[33]是對區(qū)塊鏈技術(shù)的改善,整個開發(fā)是基于區(qū)塊鏈技術(shù)來實現(xiàn)的,通過保持水果(fruit)新鮮度來解決區(qū)塊鏈的私自挖礦問題[34,35]。之后,Truechain[36]在2018年1月16日發(fā)布了貨幣Truechain/TRUE,其是基于FruitChains來實現(xiàn)的,將FruitChains的fruit概念引入到Truechain的混合共識機制[37] 中,既保留了PBFT的高效特性,又解決了私自挖礦問題。
分布式賬本技術(shù)改變了傳統(tǒng)的信任模式,實現(xiàn)了對大規(guī)模數(shù)據(jù)的安全保證、隱私保護和無條件信任的模式,可以有效地改善當前基礎(chǔ)設(shè)施中出現(xiàn)的效率低、成本高等問題,為物聯(lián)網(wǎng)與其他領(lǐng)域帶來了許多顯著的優(yōu)勢和新的發(fā)展方向,可見分布式賬本技術(shù)對未來意義重大,對其進行研究分析是十分必要的。由于數(shù)據(jù)結(jié)構(gòu)、技術(shù)原理、共識機制是區(qū)塊鏈的核心內(nèi)容,本文著重從這些方面進行闡述,并對比區(qū)塊鏈與Hashgraph、Holochain、FruitChains、Truechain等技術(shù)的差異性,逐個分析它們各自的優(yōu)劣勢,最后對分布式賬本進行了展望。
1 數(shù)據(jù)結(jié)構(gòu)
1.1 區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)
區(qū)塊鏈是一個分布式的共享賬本和數(shù)據(jù)庫,用鏈將區(qū)塊從前向后有序地鏈接起來,構(gòu)成鏈式存儲結(jié)構(gòu)。區(qū)塊鏈由區(qū)塊頭和區(qū)塊體兩部分組成,如圖1(a)所示,區(qū)塊頭占據(jù)了80 Byte存儲空間,固定不變,這部分包含版本號、父區(qū)塊哈希值、Merkle根值、時間戳值、難度目標值和nonce值六個子類的數(shù)據(jù)。區(qū)塊體則包括交易計數(shù)與交易數(shù)據(jù)。雖說有時候會出現(xiàn)區(qū)塊鏈分叉的問題,如圖1(b)所示,多個礦工幾乎同時挖掘出各自不同的區(qū)塊,不過這種情況只是暫時的,最后只有一個能夠被保留下來。
區(qū)塊頭中的版本號是軟件的版本信息,為了方便跟蹤軟件或者協(xié)議的更新。而父區(qū)塊哈希值存儲著父區(qū)塊的區(qū)塊頭哈希值,即為計算前一個區(qū)塊的SHA256哈希值,通過該值可以達成對前一個值的引用,從而實現(xiàn)區(qū)塊之間的鏈接。只要父區(qū)塊頭的內(nèi)容發(fā)生細微變化,當前區(qū)塊的哈希值就會不同。
在區(qū)塊鏈中,Merkle樹的作用是歸納每個區(qū)塊中的所有交易,然后生成整個區(qū)塊的數(shù)字指紋,也可以通過該數(shù)字指紋得知該區(qū)塊是否存在某筆交易。Merkle根值在本質(zhì)上是一個哈希值,即對每筆交易數(shù)據(jù)計算SHA256哈希值,然后再將相鄰的兩個交易的哈希值串聯(lián)起來再次計算SHA256哈希值。Merkle樹是自底向上生成的,如圖2所示,圖中展示了Ha、Hb、Hc、Hd求解Merkle根的過程:假設(shè)現(xiàn)在有a、b、c、d四筆交易數(shù)據(jù),分別計算它們的哈希值,表示為Ha、Hb、Hc、Hd(如Ha=SHA256(SHA256(a)));然后,兩兩串聯(lián)求雙哈希,如若將Ha和Hb串聯(lián)后計算雙哈希,用Hab表示,Hab=SHA256(SHA256(Ha+Hb))為Ha和Hb的共同父節(jié)點;最終,將Hab與處于同一層的Hcd串聯(lián)求最終的Merkle根,用Habcd來表示。因為無論SHA256算法的輸入有多長它的輸出長度都是固定的,故無論是Ha、Hab還是Habcd,其長度都是32 Byte。
時間戳值、難度目標值和nonce值都與挖礦行為有關(guān)。每次交易雙方使用比特幣進行交易后,會將該消息廣播在網(wǎng)絡(luò)上,這筆交易被挖礦驗證成功后會加入到區(qū)塊中。挖礦行為的目的是為了將經(jīng)過它們驗證的新交易記錄于區(qū)塊鏈賬本上,而挖礦過程是為了實現(xiàn)交易信息的記錄,為杜絕雙重支付提供很大幫助。在挖礦過程中,時間戳提供了時間上的基準參考,使得更改一筆交易記錄的難度系數(shù)按時間的指數(shù)倍增加,時間越久遠的記錄越難改。難度目標值字段的定義是為了控制整個區(qū)塊鏈的算力大致在固定時間內(nèi)產(chǎn)生每個區(qū)塊的難度數(shù)值。nonce值是評判挖礦是否成功的一個標準,若礦工節(jié)點在挖礦過程找到了一個合適的nonce值,使得區(qū)塊頭哈希值的結(jié)果小于該nonce值,那么這個過程就是PoW共識機制中所謂的工作量證明。
區(qū)塊頭哈希值和區(qū)塊高度用來標志區(qū)塊,在節(jié)點接收到該區(qū)塊時自動識別。區(qū)塊頭哈希值是區(qū)塊的主標志,它是一個區(qū)塊頭的數(shù)據(jù)計算兩次哈希值的結(jié)果,因為每個區(qū)塊的區(qū)塊頭數(shù)據(jù)都各不相同,所以該值可以明確唯一的標志區(qū)塊。區(qū)塊高度(block height)描述的是區(qū)塊在整條鏈的位置,如創(chuàng)世區(qū)塊的區(qū)塊高度為0,那么它后面的區(qū)塊高度為1,依此類推。由于區(qū)塊鏈存在分叉的問題,所以區(qū)塊高度無法用于唯一標志區(qū)塊,但可以用于計數(shù)當前區(qū)塊的數(shù)量。
1.2 其他鏈與區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)的區(qū)別
Hashgraph與區(qū)塊鏈在數(shù)據(jù)結(jié)構(gòu)方面的差異較大,它們的交易計入時間、記賬單位、記賬內(nèi)容等內(nèi)容上都有所差異,并且Holochain是區(qū)塊鏈的補充,不過Holochain無須像區(qū)塊鏈那樣每個節(jié)點都存儲所有的交易內(nèi)容,從而減輕了存儲壓力。FruitChains和Truechain都在區(qū)塊鏈的基礎(chǔ)上加入了新的記賬單位,而Truechain又在FruitChains基礎(chǔ)上進行延伸,最終呈現(xiàn)出雙鏈結(jié)構(gòu)。接下來將詳細描述Hashgraph、Holochain、FruitChains和Truechain與區(qū)塊鏈在數(shù)據(jù)結(jié)構(gòu)方面的區(qū)別。
Hashgraph是一種全新的分布式賬本共識機制的形式,通過同步出塊來實現(xiàn)大規(guī)模、低成本的共識達成,是比區(qū)塊鏈更快速、更安全、更公平的一種專利算法。它是基于DAG網(wǎng)絡(luò)搭建的一種共識算法,其結(jié)構(gòu)表現(xiàn)為有向無環(huán)圖。Hashgraph和區(qū)塊鏈在以下幾個方面有所不同。
a)在區(qū)塊鏈中,要等一個區(qū)塊的所有交易完成才能共識確認,而DAG和Hashgraph采用異步的方式,交易一發(fā)生就可以直接寫入。b)它們的記賬單位也有所不同,區(qū)塊鏈的記賬單位是以區(qū)塊為單位,而DAG是交易單元,Hashgraph是事件(event)。如圖3(a)所示,A、B、C、D、E分別表示五個節(jié)點,且圖3(b)中每個圓形都表示一個event。event類似于區(qū)塊的概念,每個event中可包含零個或多個交易信息。c)區(qū)塊鏈與Hashgraph每個記賬單位的記賬內(nèi)容也有所差異,一個區(qū)塊存儲著區(qū)塊大小、區(qū)塊頭、交易數(shù)據(jù)和交易計數(shù)等數(shù)據(jù)內(nèi)容,而每個event中包含兩個哈希指針(一個指向本事件最新發(fā)布的event,一個指向最近收到的別的節(jié)點的event),一個event可以存儲著前兩個父節(jié)點的哈希值、若干筆交易、當前時間戳及簽名等內(nèi)容。
Holochain提供了可用于構(gòu)建去中心化應(yīng)用的數(shù)據(jù)結(jié)構(gòu),如圖4所示。它很像是對區(qū)塊鏈的補充,其結(jié)構(gòu)是有分支的區(qū)塊鏈,將中央鏈作為主鏈,每個節(jié)點所記錄的區(qū)塊鏈作為主鏈的分支。總的來說,Holochain由一條主鏈和無數(shù)條側(cè)鏈構(gòu)成,Holochain中的每個節(jié)點無須保存全網(wǎng)數(shù)據(jù)的副本,而由中央鏈采用一定的規(guī)則來驗證和確認每個節(jié)點的區(qū)塊鏈數(shù)據(jù)。
FruitChains與區(qū)塊鏈不同的是,加入了fruit的概念,fruit類似于區(qū)塊鏈中的block,由于fruit的計算難度設(shè)置得比較低,減少了礦工之間獎勵的差異性。如圖5所示,其中(a)是FruitChains結(jié)構(gòu)的簡單描述,(b)是區(qū)塊block的定義結(jié)構(gòu),(c)是fruit的結(jié)構(gòu),block和fruit定義分別是:block(preHash,hash,nonce,hash,F(xiàn),m)、fruit(preHash,hash,nonce,hash,F(xiàn),m)。可見block和fruit的結(jié)構(gòu)相似,但系統(tǒng)中設(shè)定的打包時間不同,所以fruit打包速度遠遠快于block。Truechain是基于FruitChains的工程化實現(xiàn),Truechain與區(qū)塊鏈的不同之一是也加入了新的記賬單位fruit,同時又因為它將FruitChains的思想加入到混合共識中,所以它采用的是雙鏈結(jié)構(gòu),分別是快鏈(Fastchain)和慢鏈(Snailchain),它的整個交易過程就是通過快鏈中的委員會出塊達成交易,再通過慢鏈上鏈,即挖礦上鏈。
2 技術(shù)原理
區(qū)塊鏈與其他鏈在技術(shù)架構(gòu)、工作原理、加密技術(shù)方面都有相似的部分,也有諸多不同。技術(shù)架構(gòu)描述了分布式賬本項目的層次結(jié)構(gòu),其中區(qū)塊鏈、Hashgraph、Truechain的技術(shù)架構(gòu)尤為不同,而工作原理和加密技術(shù)都與分布式賬本記賬流程相關(guān),以下對這三方面進行了詳細的分析介紹與總結(jié)。
2.1 技術(shù)架構(gòu)
區(qū)塊鏈系統(tǒng)從技術(shù)架構(gòu)上看大體分為數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層、合約層和應(yīng)用層[38]五層,如圖6所示。
它們主要負責:
a)數(shù)據(jù)層是最底層的技術(shù),是區(qū)塊鏈其他層次功能實現(xiàn)的基礎(chǔ)。該層包含了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)存儲等內(nèi)容,主要用于實現(xiàn)相關(guān)數(shù)據(jù)的存儲、各賬戶的交易兩個功能。
b)網(wǎng)絡(luò)層用于各個節(jié)點的連接與通信,包括組網(wǎng)結(jié)構(gòu)、傳播機制、數(shù)據(jù)驗證機制。P2P技術(shù)結(jié)合傳播機制和數(shù)據(jù)驗證機制并通過維護一個共同的區(qū)塊鏈來保持通信。
c)共識層是為了保證全網(wǎng)所有節(jié)點對交易和數(shù)據(jù)達成一致。
d)激勵層往往通過博弈的方式激勵節(jié)點工作,降低成為惡意節(jié)點的可能性。
e)應(yīng)用層主要封裝各種應(yīng)用場景及案例,用于搭建各類區(qū)塊鏈應(yīng)用。
Truechain從技術(shù)架構(gòu)上看分為底層服務(wù)、核心層、API接口層、智能合約層四個層次,如圖7所示。
底層服務(wù)層包含P2P網(wǎng)絡(luò)、LevelDB數(shù)據(jù)庫、密碼學算法和分片優(yōu)化,其中密碼學算法保障數(shù)據(jù)安全,分片優(yōu)化提升運行效率。核心層主要分為區(qū)塊鏈模塊、TRUE模塊和共識算法模塊,共識算法模塊中的fPoW是在PoW的基礎(chǔ)上引入了FruitChains的思想設(shè)計而成,不僅保障了礦工節(jié)點的收益,還解決了自私挖礦、聯(lián)合挖礦等問題。API接口層包含TVM虛擬機和GRPC通信協(xié)議,而智能合約層有智能合約。
Hashgraph的應(yīng)用Hedera Hashgraph的架構(gòu)大體分為網(wǎng)絡(luò)層、Hashgraph共識層和服務(wù)層(包括激勵機制模塊、數(shù)據(jù)存儲模塊及智能合約模塊)三個層次,如圖8所示。
其中,Hashgraph共識層中要求所有節(jié)點通過Hashgraph共識算法從用戶節(jié)點那里獲取交易并驗證,并使用gossip協(xié)議將其廣播至整個網(wǎng)絡(luò),通過虛擬投票的方式,讓每筆交易的共識時間戳和歷史共識順序達成一致。
2.2 工作原理
區(qū)塊鏈被看做是去中心化的分布式賬本,借助鏈式數(shù)據(jù)結(jié)構(gòu)存儲和驗證數(shù)據(jù),使用分布式存儲確保數(shù)據(jù)的不可偽造和不可竄改,依靠共識算法更新數(shù)據(jù)并實現(xiàn)數(shù)據(jù)一致性,利用非對稱加密技術(shù)、哈希函數(shù)等實現(xiàn)存儲與傳輸數(shù)據(jù)的安全性,利用自動化代碼腳本(智能合約)實現(xiàn)數(shù)據(jù)操作的過程。如表1所示,分別從性質(zhì)、記賬單位、共識機制、同步/異步、網(wǎng)絡(luò)結(jié)構(gòu)這幾個方面總結(jié)了區(qū)塊鏈與Hashgraph、FruitChains、Truechain和Holochain的相同和不同之處。
Hashgraph算法是一種異步拜占庭容錯算法(asynchronous Byzantine fault tolerance algorithm,aBFT),采用DAG數(shù)據(jù)結(jié)構(gòu),通過大于2/3的忠誠節(jié)點來達到拜占庭容錯[39]。在Hashgraph系統(tǒng)中,沒有節(jié)點可以阻止共識的達成以及在達成共識后進行數(shù)據(jù)修改等操作,具有強大的安全性。Hashgraph的工作方式主要采用gossip協(xié)議和虛擬投票這兩個技術(shù)實現(xiàn),其中g(shù)ossip協(xié)議用于傳播信息,虛擬投票的目的是讓分布式系統(tǒng)對交易的順序達成共識。以圖3(b)中的節(jié)點A為例,Hashgraph的記賬流程是這樣的:當節(jié)點A收到B傳播的event,節(jié)點A先驗證該event的簽名和內(nèi)容的合法性,并檢查是否收到過該event。若驗證通過,節(jié)點A會創(chuàng)建一個新event來記錄這次過程,該event中的兩個hash分別是自己上一個event和節(jié)點B傳播的event,然后再將其傳播出去。而Hashgraph中使用gossip協(xié)議,每個節(jié)點都會隨機選擇n個節(jié)點將自己的最新信息傳播出去,隨著時間的推移,所有節(jié)點都能知道該信息。
區(qū)塊鏈中每個節(jié)點都有創(chuàng)建新區(qū)塊并將其廣播的資格,其他節(jié)點接收到后進行驗證,當全網(wǎng)超過51%的節(jié)點驗證通過時,即可將該新區(qū)塊添加至主鏈。然而,在Hashgraph網(wǎng)絡(luò)中,只有獲得準入的節(jié)點(即被授予訪問權(quán)限的節(jié)點)才有資格發(fā)起事件。同時,由于這種準入控制使得Hashgraph沒有假身份攻擊的威脅。在區(qū)塊鏈中系統(tǒng)通過廣播的方式傳遞消息,而Hashgraph則是通過gossip協(xié)議傳播消息,Hashgraph讓系統(tǒng)中每個節(jié)點將當前和以前事務(wù)的簽名信息分發(fā)給鄰居節(jié)點,鄰居處理接收到的信息并將其發(fā)送給其他節(jié)點,一直循環(huán)往復(fù),直到所有節(jié)點獲得新信息。由于該協(xié)議具有快速收斂的特性,所以這個過程不需要很多時間。
Holochain在很多地方與區(qū)塊鏈是相同的,比如將哈希、數(shù)字簽名等技術(shù)的融合。哈希算法用于保障數(shù)據(jù)本身的安全性,數(shù)字簽名確保他人在賬本上留下痕跡以致無法惡意竄改。然而,區(qū)塊鏈中的網(wǎng)絡(luò)節(jié)點需要持續(xù)更新整條區(qū)塊鏈的記錄信息,而Holochain上每個節(jié)點存儲的都是與自己相關(guān)的交易,屬于自己的賬本,也可稱之為分賬本,不需要保存整個區(qū)塊鏈數(shù)據(jù)的副本。每個節(jié)點擁有屬于自己的鏈,這些鏈可以合并、拆分或進行其他復(fù)雜互動。Holochain的中央鏈通過一系列規(guī)則來驗證每個節(jié)點的區(qū)塊鏈數(shù)據(jù),采用DHT進行驗證,它也是第一個使用DHT技術(shù)的區(qū)塊鏈項目,通過DHT技術(shù)實現(xiàn)數(shù)據(jù)存儲和管理,完成共識并保障賬本的完整性。由于加入了DHT技術(shù),使得所有節(jié)點可以從鄰近的節(jié)點那里下載數(shù)據(jù)。DHT方式的下載比從中心服務(wù)器下載速度要快,并且DHT上的數(shù)據(jù)內(nèi)容由哈希值來確認,使人很難逆向獲取原始數(shù)據(jù)。也正是通過DHT的方式實現(xiàn)了數(shù)據(jù)存儲的分布式,使其成為安全的、去中心化的和不可竄改的賬本。
FruitChains的提出主要為了解決區(qū)塊鏈的三個問題,分別是自私采礦攻擊、比特幣特殊的造幣計劃帶來的問題以及采礦池問題。面對惡意節(jié)點挖掘出新區(qū)塊而不選擇公開,F(xiàn)ruitChains設(shè)計了fruit的概念,并要求fruit是最近的(即確保新鮮度),使得惡意節(jié)點無法私自扣留fruit,無法通過分叉長度來搶占區(qū)塊。比特幣的特殊造幣計劃隨著時間的推移,導(dǎo)致區(qū)塊的打包獎勵越來越少,加上采礦池的特殊設(shè)計,個人礦工平均兩年才能獲得獎勵,那么礦工就會失去挖礦動力。在FruitChains中block和fruit是同時進行挖掘的,且fruit難度系數(shù)較低,同時,持續(xù)為礦工提供獎勵,從而解決了礦工獎勵的問題。
Truechain采用雙鏈結(jié)構(gòu)和混合共識機制,雙鏈結(jié)構(gòu)結(jié)合了Fastchain和Snailchain,整個交易過程通過Fastchain中的委員會出塊達成交易,交易速度很快,上鏈則通過Snailchain挖礦上鏈。Truechain使用fPoW和PBFT相結(jié)合的混合共識機制,其中fPoW是在PoW的基礎(chǔ)上融合了FruitChains的思想,解決了自私挖礦的問題。Truechain中分片優(yōu)化的思想是將整個區(qū)塊鏈系統(tǒng)分成多個片,每一片區(qū)域都有委員會同時進行數(shù)據(jù)處理,大幅提升了工作效率。
2.3 加密技術(shù)
加密技術(shù)是區(qū)塊鏈技術(shù)中極其重要、不可或缺的一部分,是區(qū)塊鏈匿名性、不可竄改、不可偽造和安全性等特點的保障, 傳統(tǒng)的中心化數(shù)字貨幣系統(tǒng)采用密碼學中加密的辦法保證用戶的財產(chǎn)和交易過程的安全,而區(qū)塊鏈系統(tǒng)通過密碼學的簽名添加私鑰的方式實現(xiàn)了一個不可竄改、不可偽造的分布式賬本,從而保證分布式網(wǎng)絡(luò)中點對點信息傳遞的安全性。整個交易過程中,加密是這樣進行的:a)使用哈希函數(shù)產(chǎn)生被發(fā)送信息的摘要,發(fā)送者用私鑰對摘要進行加密形成數(shù)字簽名;b)將原文和加密的摘要傳送給接收者,接收者使用公鑰驗證摘要并獲取摘要內(nèi)容;c)將解密的摘要和收到的原文進行對比,若一致則代表發(fā)送的信息安全有效未被竄改。
常見的哈希算法有MD、SHA和RIPEMD系列,而SHA系列中SHA-256算法被廣泛應(yīng)用于區(qū)塊鏈項目中。SHA-256算法計算得到256 bit長度哈希值的過程如圖9所示。a)對原始數(shù)據(jù)進行補位,使其二進制形式的長度滿足對512取模后的余數(shù)為448。若一開始即滿足要求,仍然需要補512 bit,最少可補1 bit,最多可補512 bit。補位的具體操作是在原始數(shù)據(jù)末尾補一個1,再補若干個0。b)補長度,即將原始數(shù)據(jù)二進制形式的長度信息放在執(zhí)行完第一步的數(shù)據(jù)后面。長度信息通常使用64 bit的二進制數(shù)據(jù)表示。c)將原始數(shù)據(jù)經(jīng)過補位和補長度后得到二進制數(shù)據(jù),分為N個512 bit長的數(shù)據(jù)塊,其哈希初值H(0)經(jīng)由第一個數(shù)據(jù)塊執(zhí)行計算過程得到H(1),H(1)經(jīng)由第二個數(shù)據(jù)塊執(zhí)行計算過程得到H(2),依此類推,得到結(jié)果H(N),即為最終的hash值。
Truechain、FruitChains、Holochain使用區(qū)塊鏈為基礎(chǔ)技術(shù),所以使用的加密/解密技術(shù)都大同小異。Hashgraph中與區(qū)塊鏈相同的是數(shù)據(jù)采用哈希加密,事件event使用數(shù)字簽名。與區(qū)塊鏈不同的是安全標準,Hashgraph采用的安全標準是共識算法中最高的安全標準——異步拜占庭容錯,并且在Hashgraph中所有通信使用TLS 1.2加密。
3 共識機制
共識機制在去中心化網(wǎng)絡(luò)中能夠約束每個分散的節(jié)點,維護整個系統(tǒng)的運作,使得每個毫不相干的節(jié)點能夠驗證與確認交易數(shù)據(jù),進而互相信任達成共識。共識機制是分布式賬本技術(shù)中區(qū)分公鏈質(zhì)量的核心和靈魂,所有的分布式賬本都會使用一種共識機制實現(xiàn)數(shù)據(jù)同步,選擇一個合適的共識機制對于區(qū)塊鏈整體運作和發(fā)展非常重要。在區(qū)塊鏈領(lǐng)域內(nèi),一切工作都是圍繞共識機制來運作的,主要起到協(xié)調(diào)全網(wǎng)節(jié)點數(shù)據(jù)保持一致的作用。在沒有中心服務(wù)器作為調(diào)度的去中心化的系統(tǒng)中,達成一致的共識顯得格外重要和充滿了挑戰(zhàn)性。分布式記賬技術(shù)發(fā)展至今,共識機制不斷更迭,從工作量證明機制(proof of sork mechanism,PoW)到權(quán)益證明機制(proof of stake mechanism,PoS)再到委托權(quán)益證明機制(delegated proof of stake mechanism,DPoS),以及容量共識機制(proof of capacity,PoC)、實用拜占庭容錯算法(practical Byzantine fault tolerance,PBFT)、權(quán)威證明機制(proof of authority,PoA)和DAG的無區(qū)塊概念,提出了各種不同的共識機制。區(qū)塊鏈領(lǐng)域中,常常采用經(jīng)典的PoW、PoS、DPoS、PBFT、PoA等共識算法運行在鏈式賬本的結(jié)構(gòu)上,PoW、PoS和DPoS也是以太坊常用的共識機制。相較于這些共識機制,基于PoC共識機制進行挖礦的區(qū)塊鏈項目比較少。另外, IOTA項目采用一種DAG共識算法Tangle,而FruitChains和Truechain中則是使用混合共識機制。
3.1 PoW共識機制
首先,PoW[40]共識機制是對于礦工工作量的證明,在產(chǎn)生一個新的合法區(qū)塊時,不僅需要礦工購置算力強大的機器,還要通過大量的哈希計算來尋找合適的nonce值,這個nonce值就是礦工的工作量證明,競爭勝利者會獲得區(qū)塊相應(yīng)的記賬權(quán)。PoW算法簡單且較容易實現(xiàn),但是基于工作量證明機制的挖礦行為導(dǎo)致比較高的資源消耗(如電力資源等),同時該挖礦行為需要大量的算力投入,吸引了全球大部分算力,也影響了其他工作量證明機制在區(qū)塊鏈方面的應(yīng)用。
在公有鏈中,每個節(jié)點的身份匿名并且可以自由出入,且完全去中心化,不需要中心管理機構(gòu),節(jié)點之間公平競爭,誰先找到nonce值,誰就得到相關(guān)獎勵。PoW在區(qū)塊鏈系統(tǒng)中的共識流程如下:
a)兩個或多個節(jié)點完成交易后并向其他所有節(jié)點廣播記賬請求。
b)所有接收到記賬請求的節(jié)點先開始驗證該交易信息,驗證成功后放入自己的交易列表中,然后將所有經(jīng)過驗證的自父區(qū)塊以來的所有交易打包構(gòu)建成新的區(qū)塊。構(gòu)建新區(qū)塊之前,需找到工作量證明。隨機數(shù)nonce值從0開始遞增,每次遞增1,直到找到合適的nonce值使得難度目標值大于或等于區(qū)塊頭的兩次SHA-256哈希值。這個尋找nonce值的過程是全網(wǎng)所有節(jié)點自由參與的,如果某個節(jié)點依靠自己的計算能力找到了合適的nonce值,就由該節(jié)點獲得新區(qū)塊的記賬權(quán)。一般這個找到nonce值的過程需要花費10 min左右,找到后會將該區(qū)塊廣播出去。
c)全網(wǎng)其他節(jié)點接收到新區(qū)塊后會對其進行驗證,只有該區(qū)塊中的所有交易都是之前從未出現(xiàn)過并且交易是有效的,其他節(jié)點才會認同該區(qū)塊。驗證成功后,將該區(qū)塊保存到自己的小賬本上,繼續(xù)構(gòu)建下一個區(qū)塊。
PoW是一種較為粗暴、原始,但卻又極其有效防止惡意攻擊的選舉算法。其優(yōu)勢在于實現(xiàn)簡單、安全可靠,同時網(wǎng)絡(luò)資源消耗小,不過PoW共識機制消耗的計算資源過多、達成共識時間比較長,且容易產(chǎn)生分叉。
3.2 PoS、DPoS共識機制
PoW共識機制的門檻很低,只要硬件和軟件達到要求,就能參與到挖礦算力的競爭中。而PoS[41]共識機制不一樣,如果想?yún)⑴c到挖礦算力競爭中,需要投放一定量的代幣,相當于押金或股份,然后根據(jù)節(jié)點所擁有的代幣的多少和時間(幣齡)來衡量他們的權(quán)重。PoS的實現(xiàn)算法公式為:hash(block_header)≤target×coinage,其中coinage是幣齡,幣齡越大,越容易成功,它是由幣的個數(shù)×幣的剩余使用時間得來的。
PoS算法的基本實現(xiàn)過程如下:
a)投入一定量的代幣,成為候選礦工,加入到挖礦競爭的隊伍中。PoS權(quán)益證明機制按照持幣多少的順序從這些候選礦工中挑選出一位礦工并給予記賬權(quán)。
b)臨時記賬人打包前面未打包的交易并提供工作量證明,然后將新構(gòu)成的區(qū)塊廣播出去,其他節(jié)點接收到后驗證該區(qū)塊的有效性。若該礦工沒能順利出塊,就會挑選下一位礦工賦予其記賬權(quán),直到順利打包為止。PoS無須礦工之間進行算力競爭,不會讓其他礦工白白付出算力。
2014年Dan Larimer提出了DPoS[42~46]共識機制,它是在PoS的基礎(chǔ)上發(fā)展起來的,保留了PoS中的股東角色,增加受委托股權(quán)權(quán)益人(見證人)的角色。見證人角色是由各大股東推舉出來的,由它們來見證區(qū)塊的產(chǎn)生。經(jīng)過見證的區(qū)塊已經(jīng)達成了最終一致性,無須后算力累積,就可實現(xiàn)難以竄改的效果。
相較于PoW,PoS、DPoS資源消耗少,但實現(xiàn)卻較為復(fù)雜,且中間步驟較多,容易出現(xiàn)安全漏洞。與PoS相比,DPoS共識時間短、吞吐量高,網(wǎng)絡(luò)流量壓力沒那么大。
3.3 PoC共識機制
PoC[47,48]共識機制的思想則比較簡單,它是利用計算機的硬件空間大小衡量節(jié)點的能力,硬件空間越大,存儲的方案值越多,匹配到的哈希值的幾率越高,從而可以獲得更多獎勵。目前有Burst、BHD、Volume等項目采用PoC挖礦。
PoC只需電腦硬盤即可挖礦,相較于礦機、顯卡挖礦,投入的成本較低,同時硬盤挖礦對數(shù)據(jù)的吞吐量也無要求。但PoC的劣勢也非常明顯,其獎勵機制無利益激勵,對用戶沒什么吸引力,若挖礦在資本方的加持下,只會越有錢挖的越多,無法實現(xiàn)真正的平等。
3.4 PBFT共識機制
PBFT共識算法[49~51]為解決原始拜占庭容錯算法中效率不高的問題,將算法復(fù)雜度降低使其可行。在保證活性和安全性的前提下PBFT提供了(N-1)/3的容錯性(N為節(jié)點總數(shù)),即在N≥3F+1的情況下都可以實現(xiàn)一致性(F為惡意節(jié)點總數(shù))。PBFT算法脫離幣的存在,共識效率高,在PBFT算法的實現(xiàn)過程中每個區(qū)塊是主節(jié)點生成且主節(jié)點是唯一的,所以不會出現(xiàn)區(qū)塊鏈分叉的情況。
PBFT算法的基本實現(xiàn)過程如下:
a)首先,全網(wǎng)通過某一特定規(guī)則選舉出一個主節(jié)點,主節(jié)點在后期系統(tǒng)運行過程中負責新區(qū)塊生成。
b)然后,其他節(jié)點向主節(jié)點發(fā)出請求,主節(jié)點收到請求后,將多個請求排序存入列表中(所有請求按照時間戳嚴格排序),并廣播給其他副本節(jié)點。所有節(jié)點依照列表的次序進行交易模擬,當所有交易執(zhí)行完畢后,基于結(jié)果計算新區(qū)塊的哈希摘要,將結(jié)果廣播至全網(wǎng)。
c)若收到2f條來自不同節(jié)點的與自己相同的摘要(f為可容忍的惡意節(jié)點數(shù)),就向全網(wǎng)發(fā)送一條確認消息;若收到2f+1條來自不同節(jié)點的確認消息,就會將該列表打包成新區(qū)塊。
PBFT無須挖礦,故無須消耗大量電能,解決了原始BFT效率不高的問題,降低了算法復(fù)雜度,但PBFT僅適用于聯(lián)盟鏈/私有鏈,且通信復(fù)雜度過高、可擴展性較低。
3.5 PoA共識機制
PoA共識機制相較于其他共識機制,在每秒傳輸?shù)氖聞?wù)處理個數(shù)(transactions per second,TPS)上能夠高出很多,理論上可以達到10 000 TPS。PoA和PoS類似,不過PoA不需要驗證節(jié)點所持有的股份,只需身份被驗證通過即可,這意味著節(jié)點無須為了利益而惡意破壞交易。為避免驗證人自己作惡,使用PoA共識機制的區(qū)塊鏈多采用多重簽名機制或者驗證人來自不同區(qū)域、不同利益集體的方式來避免單人驗證人作惡。
與其他機制相比,PoA共識機制的優(yōu)勢在于效率高,節(jié)點間無須通信就可達成共識,而且所需計算能力相對較小。
3.6 DAG機制
DAG[52]改變了鏈式結(jié)構(gòu),在DAG賬本中,一個區(qū)塊通常只包含一筆交易。DAG通過自身拓撲結(jié)構(gòu)來存儲區(qū)塊,彼此之間通過哈希引用,從而構(gòu)成了有向無環(huán)圖的結(jié)構(gòu)。DAG具有允許多重并發(fā)交易的特征,即在同等時間下并行打包多個交易,大大提高了效率。隨著DAG的不斷發(fā)展,最后脫離區(qū)塊鏈提出的無區(qū)塊概念,即發(fā)起新交易后,選擇較新的交易作為鏈接確認。
雖然DAG無須挖礦、拓展性強、交易速度快,并且只需極低手續(xù)費,但由于其網(wǎng)絡(luò)規(guī)模不大,極易導(dǎo)致中心化,且安全性低于其他共識機制。
3.7 混合共識機制
目前較為流行的共識機制有PoW、PoS、DPoS、PBFT、DBFT[53,54],它們在速度和安全性上各有側(cè)重。所謂混合共識機制,就是合理地將兩種或多種共識機制的長處運用到同一條區(qū)塊鏈的底層架構(gòu)中,從而彌補單一共識帶來的缺陷,實現(xiàn)“1+1>2”的效果。而Truechain作為混合共識的急先鋒,使用的是PBFT和fPoW相結(jié)合的混合共識機制。PoW共識機制運行速度較慢,作為Snailchain的底層技術(shù),不用負責更新賬本,PBFT工作效率高,用作Fastchain的交易記錄。所以Truechain保留了PBFT的高效和PoW的去中心化優(yōu)勢的同時,在底層技術(shù)PoW共識中融合了FruitChains的思想形成了fPoW,解決了自私挖礦、聯(lián)合挖礦等問題。
3.8 其他共識機制
與上述不同的有,Hashgraph是利用gossip協(xié)議和虛擬投票來達成最終交易共識,Hashgraph共識與PBFT共識算法類似,都要求系統(tǒng)中拜占庭節(jié)點的數(shù)量少于1/3,并且Hashgraph共識是有準入條件的。與PBFT共識算法不同的是,Hashgraph中event即承載交易信息,也代表投票。Hashgraph中,每個節(jié)點不斷從鄰近節(jié)點接收交易,并將該交易生成一個新event(類似于區(qū)塊)傳播給鄰近節(jié)點,不斷重復(fù),直至所有節(jié)點獲得相同信息。雖然gossip協(xié)議無法保證某個時刻所有節(jié)點狀態(tài)一致,但能保證最終所有的節(jié)點能對某些歷史達成一致。每個節(jié)點通過gossip來維護整個哈希圖,同時節(jié)點會計算其他節(jié)點在特定的哈希圖中如何投票,無須真實投票,免去了大量的通信。然后,對所有已知event創(chuàng)建輪次,確定其是否為該輪次的見證人,對所有見證人進行投票選舉,計算出知名見證人。通過知名見證人可以確定所有event的接收輪次,同時通過接收輪次和共識時間戳進行虛擬投票來決定共識順序。Hashgraph中達成共識是根據(jù)event的全局順序,其中event的數(shù)字簽名是為了保證傳播信息的真實性和完整性。
Holochain類似于Hashgraph但又不同于Hashgraph,在Holochain中每個節(jié)點都擁有屬于自己的鏈,鏈可以采用復(fù)雜的方式合并、拆分和交互,至于每條鏈所采用的共識機制在白皮書中并沒有細說。Holochain并不記錄事件的普遍順序,而是通過局部串聯(lián)在一起,形成一個完整的通過驗證的全局記錄,從而形成一條單一的權(quán)威的記錄順序。
4 性能
Hashgraph、Truechain、Holochain等分布式賬本技術(shù)給區(qū)塊鏈提供了新的方向,也帶來了新發(fā)展,部分分布式賬本項目也分別在安全性、成本等方面有所提升。如表2所示,將區(qū)塊鏈與其他幾條鏈的性能進行的不完全比較分析。
安全性是分布式賬本技術(shù)的一個突出特性,區(qū)塊鏈系統(tǒng)中各個節(jié)點同時參與數(shù)據(jù)變動,每個節(jié)點都復(fù)制存儲一個相同且完整的賬本。如果某個節(jié)點發(fā)生故障,并不會影響到整個賬本及記錄的完整性。比如EOS網(wǎng)絡(luò),雖說其節(jié)點少,但在面對單點故障時,其他節(jié)點能夠頂上,對于整個系統(tǒng)的穩(wěn)定性與完整性并沒有影響,而依賴于一個或多個服務(wù)器的系統(tǒng)更容易受到攻擊。Hashgraph相對更安全,完全異步這一特性幫助Hashgraph可以防止DDoS攻擊、防火墻問題和僵尸網(wǎng)絡(luò)。與此同時,Hashgraph滿足ACID的四大特性:持久性、一致性、原子性(或稱不可分割性)、隔離性(或稱獨立性)。
不可竄改性是區(qū)塊鏈項目及應(yīng)用的共有特性也是確保安全性的關(guān)鍵要素。由于區(qū)塊鏈的分布式與去中心化特性,使得已被區(qū)塊鏈節(jié)點認可的交易不能修改與刪除。故一旦交易被驗證與添加,就會被永久存儲,并用時間戳進行標記,防止數(shù)據(jù)被惡意竄改,同時也能夠保證數(shù)據(jù)的可追溯性。像一些中心化的數(shù)據(jù)庫,管理員可以進入后臺修改或刪除數(shù)據(jù)記錄,從而有舞弊的風險。不可竄改性既算是優(yōu)點同時也是缺點。交易一旦達成就不可撤銷,意味著被記錄入?yún)^(qū)塊鏈的數(shù)據(jù)永久保存并無法變更。如果在交易過程中填錯地址就會造成永久損失且無法撤銷。
自治性是分布式賬本技術(shù)的基本要求,區(qū)塊鏈技術(shù)讓整個系統(tǒng)所有節(jié)點按照一套既定的公開透明的算法、規(guī)則形成一種自動協(xié)商一致的機制,并在不需要信任任何人的環(huán)境中自由且安全的交易,任何人的干擾不起作用從而達到高度自治。在Hedera Hashgraph中提出了兩種治理模型:a)理事會政府模式,監(jiān)督公共平臺的運行;b)共識模型,提供服務(wù)幫助維持共識。
Hashgraph、Holochain等解決了區(qū)塊鏈成本昂貴、效率低下的問題。以比特幣為例,交易一般控制住每10 min左右出一個塊,雖說后期以太坊的出現(xiàn)大大加快了出塊時間,但也需要十幾秒才能確認一個塊。Hashgraph有著更好的分布式分類賬技術(shù),通過非鏈式結(jié)構(gòu)且無須競爭即可同步出塊的方式實現(xiàn)了大規(guī)模低成本共識,大大提高了工作效率。Hashgraph消除了計算能力和能量的限制,并且在僅受帶寬的限制下交易速度可以達到每秒25萬筆,速度是比特幣的5萬倍。在Holochain中每個網(wǎng)絡(luò)節(jié)點的運算與存儲是同時進行的,以此來提高節(jié)點效率。它通過DHT技術(shù)和密碼學技術(shù)保留了區(qū)塊鏈的優(yōu)勢,也極大地降低了副本占用的空間和帶寬,同時讓各網(wǎng)絡(luò)節(jié)點中的分賬本不可分割、無法竄改。區(qū)塊鏈中的每秒交易處理量(TPS)問題一直受到詬病,然而Truechain中的混合機制借用了PBFT以支持10 000~100 000 TPS,從而保證多個職能的商業(yè)應(yīng)用被同時良好處理。
Hashgraph的誕生解決了區(qū)塊鏈中一個很重要的問題——公平性問題,這也是Hashgraph最突出的特點之一。在區(qū)塊鏈中數(shù)據(jù)最終上鏈需要礦工的挖礦,但是礦工在選擇交易打包時存在主觀性,這就導(dǎo)致某些交易可能較早出現(xiàn),但是卻一直無法打包成功。Hashgraph為解決這個問題將虛擬投票和gossip協(xié)議結(jié)合,通過共識時間戳來確定打包順序。FruitChains是通過加入了fruit的概念,礦工為保證fruit的新鮮度,會在一定的時間內(nèi)及時將交易打包,從而保證用戶交易的公平性。
5 結(jié)束語
近年來,分布式賬本技術(shù)受到廣泛關(guān)注,被認為是互聯(lián)網(wǎng)技術(shù)的一次重大變革,其代表為區(qū)塊鏈、Hashgraph、Holochain、Truechain、FruitChains等。本文詳細地整理了區(qū)塊鏈的相關(guān)數(shù)據(jù)結(jié)構(gòu)、技術(shù)原理、共識機制、性能,并與分布式賬本技術(shù)的最新研究進行對比分析,梳理了它們之間的異同點,可以發(fā)現(xiàn)Holochain在區(qū)塊鏈的基礎(chǔ)上補充創(chuàng)新,而Truechain與FruitChains則解決了礦工獎勵等問題,Hashgraph更是在安全性、公平性等方面有重大改革。分布式賬本技術(shù)在沒有第三方權(quán)威機構(gòu)的協(xié)調(diào)下,給互不了解的交易雙方建立了信任,達成對等交易,實現(xiàn)可信傳輸。在區(qū)塊鏈誕生之前的信用體系都源于權(quán)威機構(gòu)、信譽等,而區(qū)塊鏈改變了千百年落后的信任機制,建立了新的信任方式,有望成為下一代信任機制的基石。隨著分布式賬本的快速發(fā)展,分布式賬本技術(shù)也從理論到實際應(yīng)用,如身份驗證、支付結(jié)算、物流追溯等方面。與此同時,我國區(qū)塊鏈企業(yè)數(shù)量在持續(xù)增長,相信隨著技術(shù)的更迭、研究的深入,分布式記賬技術(shù)會越來越成熟,未來可能會延伸到物聯(lián)網(wǎng)、智能家居等多個領(lǐng)域,甚至可能覆蓋到人類生活的各個方面,將會為未來的商業(yè)社會帶來新的機遇與發(fā)展。
在后續(xù)的研究中,可以考慮安全、性能、跨鏈和共識算法等方向。其中,區(qū)塊鏈的安全領(lǐng)域是個大方向,關(guān)注尤為多的是智能合約安全類問題,如鏈上合約無法修改造成的問題。同時區(qū)塊鏈的TPS低、鏈上數(shù)據(jù)容量小,但可以通過側(cè)鏈提升,如百度XuperChain等,是個值得繼續(xù)研究的內(nèi)容。跨鏈是近幾年比較火的方向之一,不少企業(yè)創(chuàng)造了跨鏈產(chǎn)品,通過跨鏈來連接各個區(qū)塊鏈網(wǎng)絡(luò)。共識算法作為區(qū)塊鏈的靈魂,想要有所創(chuàng)新并被大家認可非常具有挑戰(zhàn)性。
參考文獻:
[1]Moschella M, Ferraro P, Crisostomi E, et al. Decentralized assignment of electric vehicles at charging stations based on personalized cost functions and distributed ledger technologies[J]. IEEE Internet of Things Journal,2021,8(14):11112-11122.
[2]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL]. (2018-03-19). https://bitcoin.org/en/bitcoin-paper.
[3]余敏, 李戰(zhàn)懷, 張龍波. P2P數(shù)據(jù)管理[J]. 軟件學報, 2006,17(8):1717-1730. (Yu Min, Li Zhanhuai, Zhang Longbo. P2P data management[J]. Journal of Software,2006,17(8):1717-1730.)
[4]王玉玨, 伍前紅. 云存儲完整性驗證密碼學技術(shù)研究進展[J]. 信息安全學報, 2017,2(3):23-35. (Wang Yujue, Wu Qianhong. Research progress of cloud storage integrity verification cryptography technology[J]. Journal of Information Security, 2017,2(3):23-35.)
[5]Szabo N. The idea of smart contracts[EB/OL]. (1997)[2019-05-13]. http://szabo.Best.vwh.net/smart_contracts_idea.html.
[6]倪遠東, 張超, 殷婷婷. 智能合約安全漏洞研究綜述[J]. 信息安全學報, 2020,5(3):78-99. (Ni Yuandong, Zhang Chao, Yin Tingting. A review of research on smart contract security vulnerabilities[J]. Journal of Information Security,2020,5(3):78-99.)
[7]Ahmed M,Taconet C,Ould M,et al. IoT data qualification for a logistic chain traceability smart contract[J].Sensors, 2021,21(6):2239.
[8]Song J G, Kang E S, Shin H W, et al. A smart contract-based P2P energy trading system with dynamic pricing on ethereum blockchain[J]. Sensors, 2021,21(6): 1985.
[9]Nakamura Y, Zhang Yuanyu, Sasabe M, et al. Exploiting smart contracts for capability-based access control in the Internet of Things[J]. Sensors, 2020,20(6): 1793.
[10]Bano S, Sonnino A, Al-Bassam M, et al. Consensus in the age of blockchains[EB/OL]. (2017-11-14). https://arxiv.org/abs/1711.03936.
[11]Garay J, Kiayias A. SoK: a consensus taxonomy in the blockchain era[C]//Proc of Cryptographers’ Track at the RSA Conference. Berlin: Springer,2018:284-318.
[12]Croman K, Decker C, Eyal I, et al. On scaling decentralized blockchains[C]//Proc of International Conference on Financial Cryptography and Data Security. Berlin: Springer,2016:106-125.
[13]李旭東, 牛玉坤, 魏凌波, 等. 比特幣隱私保護綜述[J]. 密碼學報, 2019,6(2): 133-149. (Li Xudong, Niu Yukun, Wei Lingbo, et al. Overview on privacy protection in bitcoin[J]. Journal of Cryptologic Research, 2019,6(2): 133-149.)
[14]Tschorsch F, Scheuermann B. Bitcoin and beyond: a technical survey on decentralized digital currencies[J]. IEEE Communications Surveys amp; Tutorials, 2016,18(3): 2084-2123.
[15]付利青, 田海博. 基于智能合約的以太幣投票協(xié)議[J]. 軟件學報, 2019,30(11): 3486-3502.(Fu Liqing, Tian Haibo. Ethereum voting protocol based on smart contracts[J]. Journal of Software, 2019,30(11): 3486-3502.)
[16]Padmavathi M, Suresh R M. Secure P2P intelligent network transaction using litecoin[J]. Mobile Networks and Applications, 2019,24(2): 318-326.
[17]Eyal I. Blockchain technology: transforming libertarian cryptocurrency dreams to finance and banking realities[J]. Computer, 2017,50(9): 38-49.
[18]Buterin V. Ethereum: a next-generation smart contract and decentra-lized application platform[EB/OL]. (2022-11-30). https://ethereum.org/en/ whitepaper/.
[19]Wood G. Ethereum: a secure decentralised generalised transaction ledger[EB/OL]. (2019-08-04). https://ethereum.github.io/yellowpaper/paper. pdf.
[20]Jabbar R, Kharbeche M, Al-Khalifa K, et al. Blockchain for the Internet of Vehicles: a decentralized IoT solution for vehicles communication using Ethereum[J]. Sensors, 2020,20(14): 3928.
[21]IBM. Hyperledger architecture[EB/OL].[2019-05-18].https://www.Hyperledger.org/wpcontent/uploads/2017/08/Hyperledger_Arch_WG_ Paper_1_Consensus. pdf.
[22]Jiang Peng, Qiu Baoqi, Zhu Liehuang, et al. SearchBC: a blockchain-based PEKS framework for IoT services[J]. IEEE Internet of Things Journal, 2020,8(6): 5031-5044.
[23]袁勇, 王飛躍. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J]. 自動化學報, 2016,42(4): 481-494. (Yuan Yong, Wang Feiyue. Current situation and prospects of blockchain technology development[J]. Chinese Journal of Automation, 2016,42(4): 481-494.)
[24]何蒲, 于戈, 張巖峰, 等. 區(qū)塊鏈技術(shù)與應(yīng)用前瞻綜述[J]. 計算機科學, 2017,44(4):1-7,15. (He Pu, Yu Ge, Zhang Yanfeng, et al. A review of blockchain technology and application prospects[J]. Computer Science, 2017,44(4):1-7,15.)
[25]Popov S. The tangle[EB/OL]. (2018-02-09). https://cointhinktank.com/ upload/IOTA-2017.pdf.
[26]Churyumov A. Byteball: a decentralized system for storage and transfer of value[EB/OL]. (2016). https://byteball.org/Byteball.pdf.
[27]LeMahieu C. NANO: a feeless distributed cryptocurrency network[EB/OL]. (2018). https://nano.org/en/whitepaper.
[28]Brown R G, Carlyle J, Grigg I, et al. Corda: an introduction[EB/OL]. (2016). https://docs.corda.net/_static/corda-introductory-whitepaper.pdf.
[29]Hearn M, Brown R G. Corda: a distributed ledger[EB/OL]. (2022-11-27). https://www.corda.net/content/corda-technical-whitepaper.pdf.
[30]Baird L. The swirlds hashgraph consensus algorithm:fair, fast, Byzantine fault tolerance, SWIRLDS-TR-2016-01[R]. [S.l.]: Swirlds Tech Report, 2018.
[31]Brock A C, Braden D, Day J M. Holochain—a framework for distributed applications: USA, US10951697B2[P]. 2021-3-16.
[32]潘晨, 劉志強, 劉振, 等. 區(qū)塊鏈可擴展性研究: 問題與方法[J]. 計算機研究與發(fā)展, 2018,55(10): 2099-2110. (Pan Chen, Liu Zhiqiang, Liu Zhen, et al. Research on scalability of blockchain technology:problems and methods[J]. Journal of Computer Research and Development, 2018,55(10): 2099-2110.)
[33]Pass R, Shi E. FruitChains: a fair blockchain[C]// Proc of ACM Symposium on Principles of Distributed Computing. 2017: 315-324.
[34]Ritz F, Zugenmaier A. The impact of uncle rewards on selfish mining in ethereum[C]//Proc of IEEE European Symposium on Security and Privacy Workshops. Piscataway, NJ: IEEE Press, 2018: 50-57.
[35]Nayak K, Kumar S, Miller A, et al. Stubborn mining: generalizing selfish mining and combining with an eclipse attack[C]//Proc of IEEE European Symposium on Security and Privacy. Piscataway, NJ: IEEE Press, 2016: 305-320.
[36]Zhang Jiannan, Liu Yang, Zhang Han. Highly performant decentra-lized public ledger with hybrid consensus[EB/OL]. (2020-01-23). https://www.freepatentsonline.com/y2020/0026699.html.
[37]Pass R, Shi E. Hybrid consensus: efficient consensus in the permissionless model[EB/OL]. (2017-02-17). https://eprint.iacr.org/ 2016/917.
[38]邵奇峰, 金澈清, 張召, 等. 區(qū)塊鏈技術(shù): 架構(gòu)及進展[J]. 計算機學報, 2018,41(5): 969-988. (Shao Qifeng, Jin Cheqing, Zhang Zhao, et al. Blockchain technology: architecture and progress[J]. Chinese Journal of Computers, 2018,41(5): 969-988.)
[39]Lamport L, Shostak R, Pease M. The Byzantine generals problem[J]. ACM Trans on Programming Languages and Systems, 1982,4(3): 382-401.
[40]Kumar A, Sharma D K, Nayyar A, et al. Lightweight proof of game (LPoG): a proof of work (PoW)’s extended lightweight consensus algorithm for wearable kidneys[J]. Sensors, 2020,20(10): 2868.
[41]Karpinski M, Kovalchuk L, Kochan R, et al. Blockchain technologies: probability of double-spend attack on a proof-of-stake consensus[J]. Sensors, 2021,21(19): 6408.
[42]Liu Yong, Xu Guangxi. Fixed degree of decentralization DPoS consensus mechanism in blockchain based on adjacency vote and the average fuzziness of vague value[J]. Computer Networks, 2021,199: 108432.
[43]Liu Jun, Xie Mingyue, Chen Shuyu, et al. An improved DPoS consensus mechanism in blockchain based on PLTS for the smart autonomous multi-robot system[J]. Information Sciences: an International Journal, 2021,575(C): 528-541.
[44]Liu Yanhong, Ye Wen, Wang Bo. A flexible baseline measuring system based on optics for airborne DPOS[J]. Sensors, 2021,21(16): 5333.
[45]Wei Liu, Yang Li, Xiujun Wang, et al. A donation tracing blockchain model using improved DPoS consensus algorithm[J]. Peer-to-Peer Networking and Applications, 2021,14(5): 2789-2800.
[46]陳夢蓉, 林英, 蘭微, 等. 基于“獎勵制度”的DPoS 共識機制改進[J]. 計算機科學, 2020,47(2): 269-275. (Chen Mengrong, Lin Ying, Lan Wei, et al. Improvement of DPoS consensus mechanism based on “reward system”[J]. Computer Science, 2020,47(2): 269-275.)
[47]Montes-Cebrián Y, lvarez-Carulla A, Ruiz-Vega G, et al. Competitive USB-powered hand-held potentiostat for PoC applications: an HRP detection case[J]. Sensors, 2019,19(24): 5388.
[48]Mavrikou S, Moschopoulou G, Zafeirakis A, et al. An ultra-rapid biosensory point-of-care (PoC) assay for prostate-specific antigen(PSA) detection in human serum[J]. Sensors, 2018,18(11): 3834.
[49]Castro M, Liskov B. Practical Byzantine fault tolerance[C]//Proc of the 3rd Symposium on Operating Systems Design and Implementation. 1999: 173-186.
[50]Li Wenyu, Feng Chenglin, Zhang Lei, et al. A scalable multi-layer PBFT consensus for blockchain[J]. IEEE Trans on Parallel and Distributed Systems, 2021,32(5): 1146-1160.
[51]Miic' J, Miic' V B, Chang Xiaolin, et al. Adapting PBFT for use with blockchain-enabled IoT systems[J]. IEEE Trans on Vehicular Technology, 2021,70(1): 33-48.
[52]Gao Ying,Liu Yangliang,Wen Quansi,et al.Secure drone network edge service architecture guaranteed by DAG-based blockchain for flying automation under 5G[J].Sensors, 2020,20(21): 6209.
[53]Crain T, Gramoli V, Larrea M, et al. DBFT: efficient leaderless Byzantine consensus and its application to blockchains[C]//Proc of the 17th International Symposium on Network Computing and Applications. Piscataway, NJ: IEEE Press, 2018: 1-8.
[54]Jeon S,Doh I,Chae K. RMBC:randomized mesh blockchain using DBFT consensus algorithm[C]//Proc of International Conference on Information Networking. Piscataway,NJ: IEEE Press, 2018:712-717.
收稿日期:2022-07-25;修回日期:2022-09-28
作者簡介:王嘉瑤(1990-),女(通信作者),安徽六安人,講師,碩導(dǎo),博士,主要研究方向為大數(shù)據(jù)、區(qū)塊鏈等(wjiayao0203@yzu.edu.cn);王婷(1998-),女,江蘇溧陽人,碩士研究生,主要研究方向為機器學習、區(qū)塊鏈等;袁文亮(1979-),男,湖南雙峰人,講師,博士,主要研究方向為機器學習和生物信息學;朱俊武(1976-),男,江蘇江都人,教授,博導(dǎo),博士,主要研究方向為知識工程、云計算等.