姚忠將,葛敬國
1.中國科學(xué)院信息工程研究所,北京 100093
2.中國科學(xué)院大學(xué),北京 100049
關(guān)于區(qū)塊鏈原理及應(yīng)用的綜述
姚忠將1,2,葛敬國1*
1.中國科學(xué)院信息工程研究所,北京 100093
2.中國科學(xué)院大學(xué),北京 100049
近幾年比特幣價(jià)值逐年上升,能在其他電子貨幣中脫穎而出,主要得益于其低層技術(shù)——區(qū)塊鏈。區(qū)塊鏈為比特幣提供去中心化性、開放性、安全性、獨(dú)立性和匿名性的基礎(chǔ)技術(shù)。區(qū)塊鏈也隨著比特幣的升值,相關(guān)研究日益廣泛深入。本文深入分析區(qū)塊鏈基本原理,并剖析一些基于區(qū)塊鏈技術(shù)的開源項(xiàng)目,給出了部分有代表性的應(yīng)用領(lǐng)域研究成果。
比特幣;區(qū)塊鏈;共識機(jī)制;IoT;BaaS;5G;AI;大數(shù)據(jù)
隨著比特幣的蓬勃發(fā)展,比特幣所特有的解決完整性、安全性、真實(shí)性的底層技術(shù)——區(qū)塊鏈——迅速進(jìn)入研究人員的視野。區(qū)塊鏈技術(shù)在節(jié)點(diǎn)間互不信任的前提下,通過數(shù)字簽名的交易鏈、包含前驅(qū)區(qū)塊hash的區(qū)塊鏈和共識機(jī)制共同保證交易數(shù)據(jù)的完整性、不可否認(rèn)性和安全性。伴隨著比特幣的持續(xù)發(fā)展,區(qū)塊鏈的重要性也逐漸被發(fā)現(xiàn),被認(rèn)為是對計(jì)算機(jī)行業(yè)乃至整個(gè)社會的顛覆性技術(shù)。
2008 年中本聰 (Satoshi Nakamoto) 在《Bitcoin: A Peer-to-Peer Electronic Cash System》[1]中描述了區(qū)塊鏈的概念。因其具有以下特性而得到廣泛關(guān)注:
● 去中心化。區(qū)塊鏈技術(shù)不依賴第三方機(jī)構(gòu)或硬件設(shè)施,沒有中心管制。
● 開放性。區(qū)塊鏈技術(shù)是開源的,數(shù)據(jù)對所有人開放,任何人都可以通過公開接口查詢區(qū)塊鏈數(shù)據(jù)和開發(fā)相關(guān)應(yīng)用。
● 獨(dú)立性?;趨f(xié)商一致的規(guī)范和協(xié)議,所有節(jié)點(diǎn)能夠在系統(tǒng)內(nèi)自動安全地驗(yàn)證、交換數(shù)據(jù),不需要任何人為的干預(yù)。
● 安全性。只要不能掌控全部數(shù)據(jù)節(jié)點(diǎn)的51%,就無法肆意操控修改網(wǎng)絡(luò)數(shù)據(jù)。
● 匿名性。除非有法律規(guī)范要求,各節(jié)點(diǎn)身份信息無需公開或驗(yàn)證。
目前高校、科研機(jī)構(gòu)及公司在金融、醫(yī)療行業(yè)進(jìn)行了廣泛深入的研究。2017 年新書《塊數(shù)據(jù) 3.0:秩序互聯(lián)網(wǎng)與主權(quán)區(qū)塊鏈》認(rèn)為區(qū)塊鏈通過超級賬本技術(shù)、智能合約技術(shù)和跨鏈技術(shù)建立起一套共識和共治機(jī)制,這套機(jī)制通過編程把時(shí)間、空間、瞬間多維疊加所形成的數(shù)據(jù)流加以固化,形成可記錄、可追溯、可確權(quán)、可定價(jià)、可交易的技術(shù)約束力。2016 年 9月國際標(biāo)準(zhǔn)化組織 ISO[2]成立了區(qū)塊鏈和分布式賬本技術(shù)委員會 ISO/TC 307,并在 2017 年 4 月召開的ISO/TC 307 第一次工作會議上,成立了七個(gè)工作組和研究組。
區(qū)塊鏈的研究已經(jīng)不局限于電子貨幣、銀行等金融機(jī)構(gòu),在安全、醫(yī)療管理、信息安全、5G 應(yīng)用、IoT (Internet of things)、AI 等領(lǐng)域也展開深入廣泛研究。
本文在引言中描述了區(qū)塊鏈相關(guān)背景和特性,然后通過第 1 節(jié)概述區(qū)塊鏈技術(shù)的原理;第 2 節(jié)介紹區(qū)塊鏈的典型開源項(xiàng)目;第 3 節(jié)中介紹當(dāng)前針對區(qū)塊鏈的研究方向和未來的應(yīng)用領(lǐng)域;最后,第 4 節(jié) 給出對本文的總結(jié)。
區(qū)塊鏈的創(chuàng)新之處不僅在于區(qū)塊鏈技術(shù)的設(shè)計(jì)思想,更在于形成以區(qū)塊鏈為中心的生態(tài)圈。在文獻(xiàn) [3]中詳細(xì)描述了比特幣應(yīng)用中形成的局部生態(tài)圈,包括發(fā)行、驗(yàn)證、流通等?,F(xiàn)在區(qū)塊鏈已經(jīng)不僅局限于代幣,還涵蓋金融、醫(yī)療、教育、網(wǎng)絡(luò)、安全、隱私、云存儲、大數(shù)據(jù)、人工智能等領(lǐng)域。圖1 顯示以區(qū)塊鏈自身的安全運(yùn)轉(zhuǎn)支撐消費(fèi)、醫(yī)療、教育[4]、智慧城市[5]等領(lǐng)域高可靠高效率運(yùn)作,形成超大規(guī)模生態(tài)圈。
研究區(qū)塊鏈?zhǔn)紫纫私鈪^(qū)塊鏈架構(gòu)。袁勇曾在[6]中提出六層架構(gòu)。Imfiy 在[7]中提出三層區(qū)塊鏈架構(gòu)。謝鉉洋在[8]提出三層模型。這幾種架構(gòu)雖然按照模塊劃分了層次,但有的整體的層間關(guān)系并不明確,有的在今天的應(yīng)用中某個(gè)層次或者模塊并非必需。因此本文重新分析總結(jié)出圖2 區(qū)塊鏈架構(gòu)模型。區(qū)塊鏈架構(gòu)基本分為三層:基礎(chǔ)層、驅(qū)動層和應(yīng)用層。基礎(chǔ)層是區(qū)塊鏈的生態(tài)基礎(chǔ),位于最下層,包括去中心化的對等網(wǎng)絡(luò)及其承載的生成、驗(yàn)證并存儲數(shù)據(jù)的數(shù)據(jù)層。驅(qū)動層用于上層應(yīng)用驅(qū)動基礎(chǔ)層的網(wǎng)絡(luò)和數(shù)據(jù)工作,從而驅(qū)動區(qū)塊鏈架構(gòu)的運(yùn)轉(zhuǎn)。驅(qū)動層包括共識機(jī)制、激勵機(jī)制和智能合約。應(yīng)用層位于架構(gòu)最頂端,包括專有應(yīng)用和基于通用服務(wù)平臺的應(yīng)用。
1.1.1.1 網(wǎng)絡(luò)層
圖1 區(qū)塊鏈生態(tài)Fig.1 BlockChain ecology
圖2 區(qū)塊鏈層次架構(gòu)圖Fig.2 BlockChain hierarchy
區(qū)塊鏈節(jié)點(diǎn)互連形成網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)具備數(shù)據(jù)傳輸、驗(yàn)證功能。節(jié)點(diǎn)間通過 Peer-to-Peer 兩兩互連形成一張沒有固定拓?fù)浣Y(jié)構(gòu)的松散網(wǎng)絡(luò)。每個(gè)節(jié)點(diǎn)都具有泛洪式路由功能,保證交互信息和區(qū)塊全網(wǎng)傳播。節(jié)點(diǎn)具有驗(yàn)證能力,確保接受數(shù)據(jù)正確性,保證網(wǎng)絡(luò)傳播信息的正確性和可靠性。區(qū)塊鏈節(jié)點(diǎn)都可以自由加入或者離開區(qū)塊鏈系統(tǒng),不影響區(qū)塊鏈正常運(yùn)行;區(qū)塊鏈節(jié)點(diǎn)都是平等通信,不經(jīng)過中間實(shí)體;區(qū)塊鏈節(jié)點(diǎn)有權(quán)獨(dú)立處理收到的數(shù)據(jù),不受干擾。
(2) 廣播協(xié)議
區(qū)塊鏈網(wǎng)絡(luò)需要廣播兩種數(shù)據(jù):交互信息和區(qū)塊信息。兩種信息的廣播協(xié)議是相似的。信息廣播不需要發(fā)送者信任任何網(wǎng)絡(luò)節(jié)點(diǎn)。如圖3 所示發(fā)送者產(chǎn)生的交互記錄或區(qū)塊向多個(gè)鄰接節(jié)點(diǎn)傳播。近似指數(shù)級的廣播過程,可以使信息在數(shù)秒時(shí)間內(nèi)擴(kuò)散至整個(gè)網(wǎng)絡(luò)。每個(gè)交互記錄或區(qū)塊都要通過有效性驗(yàn)證才能往繼續(xù)傳播,并返回給發(fā)送者驗(yàn)證通過的信息;否者,丟棄信息并返回給發(fā)送者一條拒絕信息。
圖3 信息傳播過程Fig.3 The Way of information dissemination
對等網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都存儲一個(gè)交互記錄池,也存儲有一份區(qū)塊鏈的副本。對于接收到的交互記錄或區(qū)塊可以獨(dú)立驗(yàn)證區(qū)塊的有效性,并自決交易區(qū)塊的去留。驗(yàn)證如下公式所示。如果接受信息,則將其放入記錄池或者連到區(qū)塊鏈尾部,并開始新的記錄收集或者區(qū)塊挖掘。
其中 ε 表示交易或者區(qū)塊的數(shù)據(jù)結(jié)構(gòu),? 表示字段取值是否在合理范圍,φ 表示交易或者區(qū)塊中的輸入輸出對應(yīng)關(guān)系是否正確,δ 表示交易或者區(qū)塊是否存在過。
1.1.1.2 數(shù)據(jù)層
交互記錄
交互記錄是一種數(shù)據(jù)結(jié)構(gòu),用于記錄交互信息。交互記錄中包含交互響應(yīng)者 A 的簽名、發(fā)起者 B 的公鑰、輸入信息、輸出信息等。交互記錄并未在數(shù)據(jù)結(jié)構(gòu)中指明前驅(qū)交互記錄和后繼交互記錄,僅利用交互的公鑰和簽名確定邏輯上授權(quán)關(guān)系。因此每一次交互都是相互獨(dú)立的,僅在邏輯層面形成鏈?zhǔn)疥P(guān)系。圖4 描述了交互記錄的鏈?zhǔn)叫畔⑦壿嬯P(guān)系。
圖5 是交互記錄統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),指明了版本信息,包含了時(shí)間戳服務(wù),明確了輸入輸出的數(shù)量和信息。輸入信息中包含輸入交互的指針、輸出交互的索引以及解鎖腳本。輸出信息包含交互數(shù)據(jù)、鎖定腳本。由于節(jié)點(diǎn)相互缺乏信任,交互記錄中不包含接收者或者持有者的任何賬戶或者身份信息。
區(qū)塊結(jié)構(gòu)
區(qū)塊是區(qū)塊鏈的組成單元,由區(qū)塊頭和區(qū)塊體組成。如圖 6 所示區(qū)塊頭又可以分為三部分:前驅(qū)區(qū)塊哈希;基本信息部分,包含版本號、時(shí)間戳、困難值和隨機(jī)值等信息;梅克爾樹根 hash。每個(gè)區(qū)塊中的前驅(qū)區(qū)塊哈希指明上個(gè)區(qū)塊的信息,逐級包含,形成區(qū)塊鏈結(jié)構(gòu);基本信息中的時(shí)間戳確定區(qū)塊生成時(shí)間,困難值動態(tài)調(diào)整區(qū)塊挖掘時(shí)間,難度值越小挖掘時(shí)間越久。梅克爾樹[9]是位于區(qū)塊體的主要數(shù)據(jù)部分,葉子節(jié)點(diǎn)是記錄信息,中間節(jié)點(diǎn)是對下層兩個(gè)節(jié)點(diǎn)的哈希。梅克爾樹結(jié)構(gòu)保證了數(shù)據(jù)的真實(shí)性、安全性和不可抵賴。目前有多種樹結(jié)構(gòu)的升級,最具代表性的是基于 Redix 樹[10]的梅克爾 ? 帕特里夏樹[11]。
區(qū)塊鏈結(jié)構(gòu)
區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)是單向鏈?zhǔn)浇Y(jié)構(gòu),如圖 7 所示每個(gè)區(qū)塊都有指向前一區(qū)塊的指針。區(qū)塊鏈通過新區(qū)塊共識解決分叉問題,保證主鏈唯一。
非對稱加密及哈希算法
非對稱加密算法和哈希算法是區(qū)塊鏈技術(shù)的基礎(chǔ),保證不可信網(wǎng)絡(luò)的安全需求和驗(yàn)證需求。哈希算法用于生成前驅(qū)區(qū)塊地址、記錄信息摘要、交互者地址和構(gòu)造梅克爾樹數(shù)據(jù)結(jié)構(gòu)等。以比特幣賬戶地址生成過程為例如圖8。非對稱加密算法用于信息加密、簽名和認(rèn)證。橢圓曲線加密算法 (ECC,Elliptic Curve Cryptography)[12]是目前認(rèn)為最安全的加密算法之一,PKI、OpenSSL 等也開始采用 ECC 算法。橢圓曲線取模形成有限的離散點(diǎn)集合 (阿貝爾群),ECC 是基于離散集合對數(shù)問題的非對稱加密算法。圖9 簡要描述了 ECC 密鑰產(chǎn)生及加解密過程。
圖4 鏈?zhǔn)叫畔⑦壿嬯P(guān)系Fig.4 Chain of information logic
圖5 交易信息數(shù)據(jù)結(jié)構(gòu)Fig.5 Data structure of transaction
圖6 區(qū)塊數(shù)據(jù)結(jié)構(gòu)Fig.6 Data structure of block
圖7 區(qū)塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)Fig.7 Data structure of Block Chain
圖8 比特幣地址生成過程Fig.8 Bitcoin address generation process
1.1.2.1 共識機(jī)制
點(diǎn)對點(diǎn)的去中心化網(wǎng)絡(luò)中節(jié)點(diǎn)之間互相缺乏信任,各自無法可信操作,如何在決策上達(dá)成正確共識使所有節(jié)點(diǎn)一致行動,稱為拜占庭將軍問題[13]。拜占庭將軍問題不僅要有行動一致,而且要求正確性。
(1) 拜占庭將軍問題
拜占庭將軍問題針對一致性和正確性提出兩個(gè)條件:
圖9 橢圓曲線加密算法Fig.9 Elliptic curve cryptography
IC1:所有忠誠的副官遵守一個(gè)命令,即一致性。
IC2:若司令是忠誠的,每個(gè)忠誠的將軍遵守司令發(fā)出的命令,即正確性。
IC1 和 IC2 是解決拜占庭將軍問題的充分條件。如果有將軍持有不同意見,可以以司令身份表達(dá)自己觀點(diǎn),尋求協(xié)商一致。解決拜占庭將軍問題有兩種經(jīng)典算法:口頭協(xié)議和書面協(xié)議。
1) 口頭協(xié)議
口頭協(xié)議必須滿足三個(gè)條件:
A1:每個(gè)發(fā)送的消息都能夠正確傳遞;
A2:接收者知道誰發(fā)送的消息;
A3:可以檢測到消息的缺失。
任意 m,如果總共有大于等于 3m 個(gè)將軍并且最多 m 個(gè)反叛者,那么算法 OM (m) 滿足條件 IC1 和IC2。圖 10 給出了 OM (m) 算法的具體過程。
2) 書面協(xié)議
書面協(xié)議在添加了簽名,因此增加了第四個(gè)條件:
A4:
a) 忠誠將軍的簽名不可偽造,任何對簽名信息的修改都可以被檢測到。
b) 任何人都可以驗(yàn)證將軍的簽名認(rèn)證。
書面協(xié)議算法假設(shè)一個(gè)函數(shù) choice() 從一系列命令中選擇一條命令,這一函數(shù)需要滿足下列條件:
圖10 口頭協(xié)議算法 OM (m)Fig.10 The oral message algorithms OM (m)
圖11 書面協(xié)議算法 SM (m)Fig.11 The signed message algorithm SM (m)
圖12 丟失通信路徑的口頭協(xié)議算法 OM (m, p)Fig.12 Oral message algorithm OM (m,p) when missing communication paths
1.如果集合 V 由唯一元素 v 組成,那么 choice(V) = v。
2.choice(?)=RETREAT,其中 ? 是空集合。
圖11 中 x:i 表示由將軍 i 簽名的命令 x;v:j:i 表示 v 表示將軍 j 簽名的命令,v:j 表示由將軍 i 簽名。SM (m) 算法中每個(gè)副官i維護(hù)一個(gè)包含目前收到的所有簽名命令的集合Vi。注意區(qū)別集合Vi和收到的消息集合,可能很多不同消息包含同一個(gè)命令。
對于任意 m,如果最多有 m 個(gè)反叛者,SM (m)算法解決拜占庭問題。
3) 丟失通信路徑的情況下對口頭協(xié)議和書面協(xié)議算法的擴(kuò)展
改進(jìn)口頭協(xié)議
定義1:
(a) 如果一個(gè)節(jié)點(diǎn)集合 {i1,…,ip} 滿足以下條件就被認(rèn)為是節(jié)點(diǎn) i 的規(guī)則鄰居集:
(i) 每個(gè) ij是 i 的鄰居。
(ii) 對于每個(gè)不同于 i 的將軍 k,存在多條從 i_j到 k 而不經(jīng)過 i 的路徑 γ(i,k),這樣除了節(jié)點(diǎn) k 之外任何兩條路徑不存在相同節(jié)點(diǎn)。
(b) 如果一個(gè)圖 G 中每個(gè)節(jié)點(diǎn)都有一個(gè)由 p 個(gè)不同節(jié)點(diǎn)組成的規(guī)則鄰居集 (鄰居數(shù)相同) 那么圖 G 就被認(rèn)為是 p-regular。
為了解決在 3m-regular 將軍圖中有 m 個(gè)叛徒的拜占庭將軍問題,擴(kuò)展 OM (m) 算法為 OM (m,p) 算法,此算法要求將軍圖 G 必須是 p-regular 圖。具體算法如圖 12 所示。對于任意 m>0,p≥3m,如果有最多 m 個(gè)反叛者,算法 OM (m,p) 可以解決拜占庭將軍問題。
改進(jìn)書面協(xié)議
對于拜占庭將軍最弱的連接假設(shè)是忠誠將軍互連形成的子圖,在這種假設(shè)下 SM (n-2) 是一種解決算法,其中 n 是忠誠將軍和反叛將軍總數(shù)。但是,仍然需要修改算法讓將軍們只發(fā)送命令到他們能夠接收到的地方。具體說就是在 SM (m) 算法的第一步,司令只向鄰居副官發(fā)送簽名的命令,在第二步的 (b),副官 i 只向不在 jr的每個(gè)鄰居副官發(fā)送命令消息。
對于圖的維度最小值為 d (任意兩節(jié)點(diǎn)之間最多 d條弧線) 的更通用結(jié)果,對于任何 m 和 d,如果最多有 m 個(gè)反叛者,而忠誠將軍構(gòu)成子圖維度為 d,那么算法 SM (m+d-1) 解決了拜占庭將軍問題。
所以,拜占庭將軍問題的根本思想是少數(shù)服從多數(shù),如果某一觀點(diǎn)支持者過半,則采用這種觀點(diǎn)。
(2) 共識機(jī)制擴(kuò)展
區(qū)塊鏈中針對拜占庭將軍問題提出共識機(jī)制[14]。候選區(qū)塊構(gòu)建后消耗大量“資源”“挖礦”,挖礦成功后,礦工在區(qū)塊上簽名并廣播出去。接收者驗(yàn)證新區(qū)塊挖礦結(jié)果和簽名,有效則停止自己本次挖礦并將區(qū)塊鏈接在區(qū)塊鏈尾部,開始新的區(qū)塊挖掘。根據(jù)拜占庭將軍問題思想只有網(wǎng)絡(luò)中 51% 以上的節(jié)點(diǎn)驗(yàn)證通過的區(qū)塊才被接受,這就是共識過程。51% 的控制權(quán)確保惡意者在可預(yù)見時(shí)間內(nèi)調(diào)用最大資源無法掌控。由于區(qū)塊鏈的特性,惡意者必須把區(qū)塊鏈中的同等“資源”重新調(diào)用一遍才能實(shí)現(xiàn)篡改,但往往超過所能獲得的利益。
PoW (Proof-of-Work)[15-16]是比特幣的區(qū)塊鏈采用的共識算法。每個(gè)節(jié)點(diǎn)接受上一區(qū)塊后開始為新區(qū)塊計(jì)算區(qū)塊頭 hash 值,直到滿足困難值為止,具體過程如圖 13 所示。PoW 的出現(xiàn)結(jié)合了貨幣發(fā)行、交易支付和驗(yàn)證功能。PoW 主要依賴節(jié)點(diǎn)設(shè)備算力。PoW 有個(gè)弊端:設(shè)備越先進(jìn)、計(jì)算能力越強(qiáng),越容易掌握更多的財(cái)富。
圖13 共識過程Fig.13 Consensus Process
PoS (Proof-of-Stack)[17],又稱權(quán)益證明,是PeerCoin 低層區(qū)塊鏈?zhǔn)褂玫墓沧R機(jī)制。PoS 機(jī)制將難度值與幣齡綁定 (兩者呈反比關(guān)系),節(jié)點(diǎn)獲得記賬權(quán)的難度就和幣齡相關(guān)。PoS 相對于 PoW 來說減少了資源消耗,提高了節(jié)點(diǎn)性能,但不準(zhǔn)確性導(dǎo)致其易受攻擊干擾。DPoS (Delegate Proof-of-Stack)[18],又稱股份授權(quán)證明,是BitShares社區(qū)提出的一種共識機(jī)制。股份授權(quán)證明機(jī)制是為了解決 PoW 和 PoS 存在的問題提出的一種新的保障加密貨幣網(wǎng)絡(luò)安全的算法。DPoS 機(jī)制中所有節(jié)點(diǎn)根據(jù)股份權(quán)益 (幣齡) 投票的方式選出得票最高的 101 個(gè)記賬代表負(fù)責(zé)交易的打包和挖礦,減少記賬和驗(yàn)證者的數(shù)量。
Ripple 共識機(jī)制 RPCA (Ripple Proof-of-Consensus Algorithm)[19],是 Ripple 協(xié)議的支撐技術(shù)。Ripple 是開源的金融交易互聯(lián)網(wǎng)開放協(xié)議,支持隨時(shí)免費(fèi)的任何幣種的去中心化交易。Ripple 共識機(jī)制依靠特殊節(jié)點(diǎn)投票,只有超過 51% 的特殊節(jié)點(diǎn)同意才算達(dá)成共識。Ripple 機(jī)制效率非常高,是共識機(jī)制的技術(shù)突破。
PBFT[20]最初出現(xiàn)在 MIT 的 Miguel 和 Barbara Liskov 的學(xué)術(shù)論文中。拜占庭容錯機(jī)制通過三個(gè)階段的不斷驗(yàn)證最終達(dá)到 commited 狀態(tài)后才表示達(dá)成共識,期間允許對驗(yàn)證結(jié)果的誤判。但是 PBFT 機(jī)制當(dāng)僅剩 33% 節(jié)點(diǎn)在運(yùn)行時(shí)就會停止工作。
除以上共識機(jī)制外,還有 Casper 共識[21],Pool 驗(yàn)證池[22],授權(quán)拜占庭容錯 (delegated BFT,dBFT)[23]、消逝時(shí)間量證明 (Proof-of-Elapsed Time,PoET)[24]、Quorum Voting 共識[25]等圄于代幣的共識機(jī)制,也有傳統(tǒng)的一致性算法,比如 Paxos 算法[26]和 Raft 共識[27]等。目前來看由于這些共識算法各有優(yōu)缺點(diǎn),但是都面臨資源的消耗和共識速率問題。
2.1.2.2 激勵機(jī)制
市場逐利而聚。為了保證區(qū)塊鏈的持續(xù)性和吸引力,有些系統(tǒng)提出了激勵機(jī)制:一方面制定代幣發(fā)行機(jī)制 (僅限支持代幣形式的區(qū)塊鏈系統(tǒng)),另一方面價(jià)值均衡機(jī)制,吸引更多節(jié)點(diǎn)加入?yún)⑴c區(qū)塊挖掘。
代幣發(fā)行機(jī)制主要是支持本區(qū)塊鏈的所定義的電子貨幣的發(fā)行策略。只有讓代幣流通才能實(shí)現(xiàn)代幣的價(jià)值。但是具體的如何發(fā)行有不同的策略:一種作為礦工獎勵,勞有所得;一種是貨幣兌換,屬于投資的一種手段。
價(jià)值均衡一方面擴(kuò)大區(qū)塊鏈系統(tǒng)的影響,讓更多的參與者有利可圖才有吸引力,才能有更大的市場價(jià)值;另一方面價(jià)值再分配,保證價(jià)值均衡,區(qū)塊鏈系統(tǒng)也是一個(gè)小型金融系統(tǒng),只有價(jià)值均衡才能保證系統(tǒng)健康運(yùn)轉(zhuǎn)。常見策略有 PPLNS (Pay per last N shares) 和 PPS (Pay per share)。
1.1.2.2 智能合約
智能合約是形成信息邏輯鏈?zhǔn)疥P(guān)系的基礎(chǔ),也是下層信息邏輯鏈?zhǔn)疥P(guān)系和上層服務(wù)的橋梁。智能合約是交易雙方的自擔(dān)保協(xié)議,交易方 A 向 B 提出交易條件,交易 B 給出信息,若滿足則完成交易信息的傳遞授權(quán),否則,放棄交易。智能合約從根本上來說是一段程序代碼,是運(yùn)行中因等待所需數(shù)據(jù)或者行為而被阻塞的一個(gè)線程。
協(xié)議
智能合約是部署在記錄內(nèi)的信息傳遞服務(wù)程序。比特幣交易數(shù)據(jù)結(jié)構(gòu)中的鎖定腳本和解鎖腳本組合是智能合約雛形。如圖 14 所示,交互方 A 有鎖定腳本,要求 B 提供解鎖相關(guān)的信息,B 通過解鎖腳本提供信息與 A 達(dá)成合約。最簡單的協(xié)議:其中一方提出條件,另一方滿足要求,雙方達(dá)成一致形成合約關(guān)系。智能合約雛形是非圖靈完備的。隨著研究的深入,已經(jīng)研發(fā)出越來越多圖靈完備的合約腳本。
圖14 智能合約應(yīng)用位置Fig.14 The location of smart contract
模塊化
模塊化是現(xiàn)代程序設(shè)計(jì)的趨勢,有利于代碼重用和軟件升級更新。對所有模塊化的合約使用相同的Interface,無論實(shí)現(xiàn)怎樣的功能,信息傳遞的過程中都可以調(diào)用相同的 interface 獲得需要的合約功能。利用統(tǒng)一的 interface,可以根據(jù)不同的需求替換不同的合約功能模塊,或者由多個(gè)合約模塊組裝成一個(gè)大的智能合約系統(tǒng),其中合約模塊可以自定義組裝。
應(yīng)用層包含服務(wù)平臺和應(yīng)用。服務(wù)平臺是對低層數(shù)據(jù)和計(jì)算工具的結(jié)合,用于為上層具體應(yīng)用業(yè)務(wù)提供服務(wù)。目前服務(wù)平臺主要由具體區(qū)塊鏈應(yīng)用公司獨(dú)立開發(fā),與應(yīng)用耦合性強(qiáng),缺乏通用性。也有部分科技公司開始致力于通用平臺的開發(fā),比如微軟的 Azure BaaS、IBM 的 Hyperledger 等。應(yīng)用層主要用于具體服務(wù),比如銀行的賬目記錄、醫(yī)療信息管理等。第 2、3 部分將詳細(xì)介紹部分代表性服務(wù)產(chǎn)品和應(yīng)用。
以太坊 (Ethereum)[28-29]對區(qū)塊中樹的結(jié)構(gòu)數(shù)量優(yōu)化改進(jìn),提高了擴(kuò)展性、安全性和靈活性。數(shù)據(jù)結(jié)構(gòu)上采用 Merkle Patricia 樹[30],這種是一種存儲鍵值對的加密認(rèn)證數(shù)據(jù)結(jié)構(gòu),是基于 Radix 樹改進(jìn)的 Trie前綴樹:(1) 將中間節(jié)點(diǎn)原來的內(nèi)存地址改為子節(jié)點(diǎn)的 hash 值,然后利用 RLP 編碼 sha3 hash 作為 key;(2) 引入多種節(jié)點(diǎn)類型,提高處理效率。以太坊不同對象使用不同的樹:交易樹,收據(jù)樹,狀態(tài)樹。三種樹各有分工,分別處理不同的事件。交易樹處理交易信息,比如交易是否發(fā)生過,記錄在哪個(gè)區(qū)塊,交易查詢等;收據(jù)樹負(fù)責(zé)所有的行為的記錄;狀態(tài)樹處理關(guān)于賬戶有效性、賬戶余額等信息。如圖 15,以太坊還提供了一個(gè)良好的上層服務(wù)/應(yīng)用開發(fā)平臺:圖靈完備的腳本語言 (EVM語言,Ethereum Virtual Machine code),豐富的開發(fā)模塊。上層分布式應(yīng)用通過 Web3.js 調(diào)用智能合約,完成操作。
圖15 以太坊架構(gòu)Fig.15 Ethereum architecture
Adept 系統(tǒng) (Autonomous DEcentralized Peer to Peer Telemetry)[31-32]是 IBM 將區(qū)塊鏈應(yīng)用于物聯(lián)網(wǎng)的嘗試??紤]到未來 IoT 規(guī)模復(fù)雜龐大,集中管理不現(xiàn)實(shí)[33],區(qū)塊鏈的問世給去中心化的管理互聯(lián)網(wǎng)事物(Internet-of-Things) 帶來新的解決方案。
ADEPT 中通過分析當(dāng)前無線網(wǎng)絡(luò)、傳感器網(wǎng)絡(luò)、ad hoc 網(wǎng)絡(luò)共存的問題,提出了三個(gè)關(guān)鍵解決方案組件:(1) P2P 去中心化網(wǎng)絡(luò):P2P 網(wǎng)絡(luò)解決了單點(diǎn)失效問題,提高了網(wǎng)絡(luò)魯棒性。(2) P2P 消息和分布式文件傳輸:P2P 消息方法沒有中心化的代理或者數(shù)據(jù)控制器,這種方法的關(guān)鍵特點(diǎn)是:1) 不可靠;2) 保證交付下的低時(shí)延;3) 存儲轉(zhuǎn)發(fā)消息到其他互連設(shè)備。分布式文件共享利用 DHT 使去中心化的數(shù)據(jù)共享,BitTorrent 就是非常有名的案例。(3) 自主設(shè)備的協(xié)調(diào):P2P 網(wǎng)絡(luò)需要設(shè)備具備自組織能力并基于協(xié)調(diào)獲得共識。
ADEPT 中很多節(jié)點(diǎn)基本沒有計(jì)算能力和存儲能力來管理區(qū)塊鏈,而有些則具備這種能力。因此依據(jù)資源能力,將架構(gòu)模型分為三個(gè)等級:Light Peer、Standard Peer、Peer Exchange。圖 16 僅以 standard peer 為例給出 ADEPT 邏輯架構(gòu)。
圖16 ADEPTStandard Peer 邏輯框架Fig.16 The logic architecture of ADEPT standard peer
超級賬本 (Hyperledger)[34],最初是 IBM 研發(fā)的Open Blockchain 項(xiàng)目,后來將全部代碼捐獻(xiàn)給 Linux Foundation 下的 HyperLedger 項(xiàng)目形成當(dāng)前的超級賬本。根據(jù)超級賬本的設(shè)計(jì)目標(biāo),不同領(lǐng)域需要不同的網(wǎng)絡(luò),不同的網(wǎng)絡(luò)構(gòu)建不同的區(qū)塊鏈以便支持和服務(wù)不同的領(lǐng)域。超級賬本白皮書[35]中羅列了未來可能支持的區(qū)塊鏈應(yīng)用領(lǐng)域:金融市場網(wǎng)絡(luò)、全球貿(mào)易市場網(wǎng)絡(luò)、局部財(cái)務(wù)管理等。
超級賬本滿足多種網(wǎng)絡(luò)共同的屬性:身份標(biāo)識明確資產(chǎn)從屬關(guān)系與交易行為人、利用切斷身份和交易的聯(lián)系提供隱秘交易、加密獲得合約機(jī)密性、增值系統(tǒng)的可移植性、不同服務(wù)間互操作特性等。圖 17 給是超級賬本的整體架構(gòu),在對等網(wǎng)絡(luò)的基礎(chǔ)上提供成員關(guān)系服務(wù)、策略服務(wù)、區(qū)塊鏈服務(wù)和Chaincode 服務(wù)。成員關(guān)系服務(wù)管理網(wǎng)絡(luò)中的身份標(biāo)識、隱私和機(jī)密。策略管理服務(wù)負(fù)責(zé)訪問控制策略、聯(lián)盟策略、共識策略等非確定性策略機(jī)制。區(qū)塊鏈服務(wù)通過 P2P 協(xié)議管理建立在 HTTP/2 上的分布式賬本。智能合約服務(wù)提供安全運(yùn)行環(huán)境、智能合約管理等功能。
區(qū)塊鏈可以解決去中心化問題,防止單機(jī)構(gòu)對系統(tǒng)擁有獨(dú)立控制權(quán),惡意篡改系統(tǒng)中信息。區(qū)塊鏈節(jié)點(diǎn)間都是相互獨(dú)立。為保證系統(tǒng)正常、安全運(yùn)行,引入了共識機(jī)制,保證所有節(jié)點(diǎn)對某一事件的發(fā)生達(dá)成共識。
安全性是區(qū)塊鏈得以發(fā)展的支柱,所以不斷有人去研究。雖然區(qū)塊鏈已經(jīng)在安全方面展開了應(yīng)用并取得了一定成果,但區(qū)塊鏈本身仍存在安全問題。Ghassan 等人在 [36] 中分析了區(qū)塊鏈安全規(guī)定并指出其中的薄弱之處:首先,安全。1) 快速支付不足以阻止“雙花”攻擊,盡管基于PoW的時(shí)間戳機(jī)制可以驗(yàn)證“雙花”,但是驗(yàn)證周期長不適合快速支付。驗(yàn)證尚未結(jié)束,用戶已獲得了商品。2) 惡意主機(jī)可以阻止區(qū)塊和交易的發(fā)送到受害節(jié)點(diǎn)。其次,擴(kuò)展性。目前區(qū)塊鏈每秒處理的交易數(shù)為 7 筆,當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)不斷增加,用戶不斷增多,必將對擴(kuò)展性造成限制。最后,去中心化的限制:基于 PoW 的共識機(jī)制給去中心化引入漏洞,某些礦工可能集中網(wǎng)絡(luò)中計(jì)算力形成對整個(gè)系統(tǒng)的控制。不僅區(qū)塊鏈本身的設(shè)計(jì)思想,區(qū)塊鏈的實(shí)現(xiàn)工具也存在安全隱患。Michael Coblenz 等人在文獻(xiàn) [37] 中發(fā)現(xiàn)腳本語言 Solidity 設(shè)計(jì)的智能合約bug 非常多,因此設(shè)計(jì)了 Obsidian。
圖17 超級賬本的框架Fig.17 The architecture of hyperledger
Hyperledger 提出基于策略服務(wù)的安全機(jī)制與區(qū)塊鏈安全特點(diǎn)結(jié)合,基于策略的安全機(jī)制利用訪問控制對系統(tǒng)和數(shù)據(jù)形成安全保護(hù)。文獻(xiàn) [38] 提出Security Management Provider 負(fù)責(zé)基于內(nèi)容的固定策略或者動態(tài)的策略的訪問控制,用于控制數(shù)據(jù)和設(shè)備的訪問。Ali Dorri 在文獻(xiàn) [38] 中提出分布式可信(Distributed Trust) 概念。分布式可信確保收到的區(qū)塊有效,減少區(qū)塊驗(yàn)證負(fù)載。起初用戶Ψ沒有交易歷史,被認(rèn)為是惡意的,但是 Ψ 的交易都經(jīng)過 PubKey完成驗(yàn)證;然后,每個(gè) Cluster Head 基于直接或者間接證據(jù)維護(hù)其他 Cluster Head 的可信率。直接證據(jù)是ξ 可以通過 PubKey 直接驗(yàn)證數(shù)據(jù)是 ψ 產(chǎn)生,則 ξ 信任 ψ,如果 ξ 不能直接驗(yàn)證 ψ,但是多簽名交易有多個(gè) Cluster Head 簽名,則 ξ 間接信任 ψ。這是一種比較新穎的想法,也有研究者希望通過這種方法評估網(wǎng)絡(luò)鏈路的信譽(yù)度以評判是否從此鏈路路由。
安全可以保護(hù)數(shù)據(jù)不被非法使用,但不能阻止數(shù)據(jù)被觀察,因此隱私保護(hù)也是區(qū)塊鏈應(yīng)用研究的重要環(huán)節(jié)。比特幣提出隱私保護(hù)策略,旨在將用戶錢包賬戶和交易間的聯(lián)系匿名?!毒ū忍貛拧返谒恼陆o出匿名解決方案:為錢包提供不同的公鑰地址,并基于動態(tài)公鑰地址思想給出分層確定性錢包概念,利用種子為錢包衍生大量私鑰,產(chǎn)生不同公鑰,經(jīng)過 hash 生成不同錢包地址。每一次交易使用一個(gè)新的地址,達(dá)到匿名目的。Yves-Alexandre de Montjoye 等人在文獻(xiàn) [39] 中提出加入噪聲的聚合方法保護(hù)用戶隱私。但是文獻(xiàn) [39] 可能導(dǎo)致服務(wù)不準(zhǔn)確,Ali Dorri 在文獻(xiàn) [38] 中做了改進(jìn),通過創(chuàng)建 Overlay Network,在這個(gè) Overlay 中提出隱私區(qū) (Privacy Zone) 概念保護(hù)不同類型數(shù)據(jù)隱私,不同PrivacyZone 有不同檢查策略。
當(dāng)前 5G 研究主流思想是應(yīng)用 SDN/NFV 技術(shù)實(shí)現(xiàn)。文獻(xiàn) [40] 中提出 KSI 使用全局區(qū)塊鏈為 SDN 提供低層的安全保障。[41] 提出通信服務(wù)提供商應(yīng)用區(qū)塊鏈提供數(shù)據(jù)通信服務(wù),管理服務(wù),包括一些核心操作等。CSPs (Communications service providers) 將會看到區(qū)塊鏈對其核心管理系統(tǒng)、鄰接服務(wù)和降低消耗方面的重大影響,為 5G 提供新的接入方案。Catherine Mulligan 博士將在 2017 年于倫敦做過一個(gè)關(guān)于區(qū)塊鏈重新定義 5G 研發(fā)的演講。中國科學(xué)院信工所、聲學(xué)所等與侯自強(qiáng)老師提出將區(qū)塊鏈應(yīng)用于5G 與 ICN 融合,為網(wǎng)絡(luò)提供計(jì)費(fèi)、管理、安全等服務(wù)。項(xiàng)目仍處于研發(fā)階段,將不斷有新的研究成果和新的觀點(diǎn)產(chǎn)生。
IBM 在比特幣流行之初已經(jīng)開始研究并形成利用區(qū)塊鏈解決物聯(lián)網(wǎng)的問題,在 ADEPT 中逐漸成熟的文檔 [33, 42]。文獻(xiàn) [42] 提出 Empowering the edge的思想,將區(qū)塊鏈作為 IoT 去中心化的邊緣增強(qiáng)方案的一個(gè)研究方向。在區(qū)塊鏈中實(shí)時(shí)記錄智能設(shè)備的運(yùn)行狀態(tài),不僅保證設(shè)備的正常通信,而且有利于故障設(shè)備的跟蹤維護(hù)維修。在文獻(xiàn) [33] 中提出 Device Democracy 的概念,認(rèn)為未來的大規(guī)模多互連的場景中,對于 IoT 必須使用去中心化的管理方式獲取高效可靠的設(shè)備管理效果。Zheng Yan 在文獻(xiàn) [43] 中提出IoT 的可信管理。在這篇文章中提到 IoT 中的不同事物 (包括用戶、數(shù)據(jù)、身份標(biāo)識、傳輸、通信等) 的可信管理和隱私保護(hù)。文獻(xiàn) [40] 中提出 TO-BE——針對 IoT/M2M 的區(qū)塊鏈自管理 P2P 網(wǎng)絡(luò)。其中一個(gè)應(yīng)用案例形成自管理物流網(wǎng)絡(luò)、自管理產(chǎn)品網(wǎng)絡(luò)、自管理的能源網(wǎng)絡(luò),三者之間形成全局的互聯(lián)互通。
服務(wù)主要是指用于為公司、科研機(jī)構(gòu)、個(gè)人等上層用戶使用具體業(yè)務(wù)提供支持的接口、平臺或者應(yīng)用,如圖 18 可以具體到某一個(gè)行業(yè),比如金融、醫(yī)療等等。業(yè)務(wù)屬于最頂層的應(yīng)用,具體業(yè)務(wù)由服務(wù)支撐。
圖18 服務(wù)范圍縮略圖Fig.18 Service area
Baas (Blockchain as a Service) 是科技公司希望利用區(qū)塊鏈提供類似 IaaS、PaaS、SaaS 的供廣大用戶使用的服務(wù)平臺。IBM 最早提出 BaaS 的概念,并在 2016 年推出 BaaS。微軟在 2014 年開始區(qū)塊鏈領(lǐng)域的研究,2015 年聯(lián)合 Consens Ys 推出了基于云的區(qū)塊鏈技術(shù)平臺,并于 2016 年開放了基于 Azure 平臺 sandbox 區(qū)塊鏈服務(wù)。用戶可以簡單高效的為區(qū)塊鏈搭建虛擬機(jī)測試環(huán)境,降低開發(fā)成本。目前基于 Azure 平臺的 BaaS 已經(jīng)可以提供支持 26 種不同區(qū)塊鏈實(shí)現(xiàn)的服務(wù)。Tencent 最近也成立的獨(dú)立的區(qū)塊鏈部門,致力于打造金融機(jī)構(gòu)聯(lián)盟區(qū)塊鏈云服務(wù)。Google 和 Amazon 在 2016 年也加入了 BaaS 的爭奪戰(zhàn)。作為一種新的服務(wù)平臺,BaaS 成為互聯(lián)網(wǎng)公司爭奪的新戰(zhàn)場,從側(cè)面反映出 BaaS 的重要性。
在云存儲領(lǐng)域,與區(qū)塊鏈的結(jié)合目前尚處于起步階段,參與研究的機(jī)構(gòu)寥寥可數(shù)。但是區(qū)塊鏈安全性和去中心化的巨大優(yōu)勢與云存儲的結(jié)合將是必然的。目前基于區(qū)塊鏈的云存儲產(chǎn)品是 Storj[44],一款源自開源項(xiàng)目 Metadisk 的產(chǎn)品。Storj 有媲美大多數(shù)高端云存儲的可靠性。Storj 宣稱可以達(dá)到 99.99999% 的可靠性,但是成本只有傳統(tǒng)云存儲的 1-2%。盡管這樣的“物美價(jià)廉”,但是代表性產(chǎn)品屈指可數(shù),這恰恰說明區(qū)塊鏈在云存儲方面的價(jià)值。
AI 近幾年以前所未有的速度發(fā)展,與區(qū)塊鏈不分伯仲。IBM 于 2016 年將區(qū)塊鏈技術(shù)與 AI 產(chǎn)品Watson 融合。2017 年初,Google 子公司 DeepMind Health 借助人工智能和區(qū)塊鏈涉足英國醫(yī)療機(jī)構(gòu)。雖然 Watson 和 DeepMind Health 提出將兩者用于融合的方案,但對兩者的應(yīng)用仍停留在“劃江而治”的層面:區(qū)塊鏈在低層提供安全保障,AI 提供業(yè)務(wù)上的處理。資深 AI 研究人 Trent 在 2015 年到現(xiàn)在不斷思考 AI 與區(qū)塊鏈的互補(bǔ)和融合可能性,并撰寫了大量文章。Trent 借助 DAO 項(xiàng)目發(fā)表了三篇有關(guān) AI 與區(qū)塊鏈的文章 [45-47],并提出 DAO 應(yīng)該具有訪問資源、征用資源、拒絕干涉的能力。Trent 還提出了三種將 AI 與 BlockChain 結(jié)合的實(shí)現(xiàn)途徑:AI 負(fù)責(zé)區(qū)塊鏈的智能合約邊緣;AI 負(fù)責(zé)區(qū)塊鏈的智能合約中心;集群自動表現(xiàn) AI 復(fù)雜性。
大數(shù)據(jù)在計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域和社會生活中提供越來越多的服務(wù),然而安全問題卻一直沒有的到有效的解決。信息泄露稱為當(dāng)前網(wǎng)絡(luò)環(huán)境中的重要安全隱患。目前的主流思想是結(jié)合兩者優(yōu)勢:大數(shù)據(jù)內(nèi)容豐富,統(tǒng)計(jì)分析能力強(qiáng);區(qū)塊鏈安全性高,可以保證數(shù)據(jù)的安全性、可靠性和完整性。2016 年 Trent 發(fā)表的文章[48] 中思考區(qū)塊鏈與大數(shù)據(jù)的融合。大數(shù)據(jù)和區(qū)塊鏈有很多共同之處:分布式的計(jì)算與基于 P2P 網(wǎng)絡(luò)去中心化;MapReduce 與共識機(jī)制;HDFS 和區(qū)塊等。當(dāng)前有兩種結(jié)合方法:1) 在區(qū)塊鏈上實(shí)現(xiàn)大數(shù)據(jù),將大數(shù)據(jù)的統(tǒng)計(jì)分析等技術(shù)應(yīng)用到區(qū)塊鏈上;2) 將區(qū)塊鏈技術(shù)嫁接到大數(shù)據(jù)平臺,將區(qū)塊鏈的安全、不可更改特性移植到大數(shù)據(jù)平臺。具體哪種方法更有效,能夠獲得更好的融合效果,需進(jìn)一步研究。
區(qū)塊鏈基本原理的研究是所有工作的基礎(chǔ)。理解了區(qū)塊鏈工作原理才能在區(qū)塊鏈上進(jìn)一步研究。雖然目前有很多對區(qū)塊鏈的優(yōu)化研究,但是對區(qū)塊鏈固有的難題并沒有徹底解決。Zooko 三角難題[49]就是區(qū)塊鏈面臨的一個(gè)難以完全克服的問題。不同方向之間相互影響,獲取其中某一特性就要降低甚至舍棄其他特性。因此如何解決或者平衡好區(qū)塊鏈的三角難題才能更好的優(yōu)化區(qū)塊鏈。
當(dāng)前最廣泛應(yīng)用研究主要集中在安全、網(wǎng)絡(luò)和服務(wù)。安全方面主要是問責(zé)、隱私保護(hù)、路由路徑安全評估等。但是目前隱私保護(hù)由于保護(hù)的隱私內(nèi)容不同、范圍不同,提出的方法各種各樣。路由路徑安全評估,也稱信譽(yù)評估,是全新方向,但卻是保證網(wǎng)絡(luò)安全的重要方法。網(wǎng)絡(luò)方面主要將區(qū)塊鏈集中在5G 和 IoT 領(lǐng)域。5G 提供低層安全策略、隱私保護(hù)策略,網(wǎng)絡(luò)管理、計(jì)費(fèi)、新網(wǎng)絡(luò)服務(wù)接入平臺等。這些研究尚處概念階段,對于深入理解實(shí)現(xiàn)有不少挑戰(zhàn)。IoT[50-51]主要研究對終端設(shè)備的管理、隱私保護(hù),并在 ADEPT 上實(shí)現(xiàn),但是未來有更多新型智能設(shè)備,新型服務(wù)需要提供,因此仍有大量工作需要做。對于服務(wù)的研發(fā),目前金融服務(wù)是最成熟的,醫(yī)療服務(wù)由于主要利用區(qū)塊鏈公共賬本功能,實(shí)現(xiàn)難度相對較小。BaaS、云存儲等方面的應(yīng)用研究,尤其是人工智能方面面臨巨大挑戰(zhàn)。
區(qū)塊鏈本身具有去中心化、安全、獨(dú)立等優(yōu)勢,潛力非常巨大。對區(qū)塊鏈的深入挖掘、與新領(lǐng)域的融合和周邊應(yīng)用擴(kuò)展將是研究的重點(diǎn)。
[1] Nakamoto S.Bitcoin: A peer-to-peer electronic cash system[J].Consulted, 2008.
[2] International Organization for Standardization [OL]https://www.iso.org/home.html.
[3] Andreas M.Antonopoulos.Mastering Bitcoin [M].O'Reilly Atlas, 2013.
[4] Sharples M, Domingue J.The Blockchain and Kudos: A Distributed System for Educational Record, Reputation and Reward[C]//European Conference on Technology Enhanced Learning.Springer International Publishing,2016: 490-496.
[5] Biswas K, Muthukkumarasamy V.Securing Smart Cities Using Blockchain Technology[C]//High Performance Computing and Communications; IEEE 14th International Conference on Smart City; IEEE 2nd International Conference on Data Science and Systems (HPCC/SmartCity/DSS), 2016 IEEE 18th International Conference on.IEEE, 2016: 1392-1393.
[6] 袁勇, 王飛躍.區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J].自動化學(xué)報(bào), 2016, 42(4):481-494.
[7] im fiy, Node.js開發(fā)加密貨幣[E/OL] https://www.gitbook.com/book/im fiy/bitcoin-on-nodejs/details
[8] 中國人民銀行合肥中心支行科技處課題組, 謝鉉洋.區(qū)塊鏈結(jié)構(gòu)、參與主體及應(yīng)用展望[J].金融縱橫, 2017(1).
[9] Merkle Trees[OL] http://en.wikipedia.org/wiki/Merkle_tree.
[10] Redix Tree[OL] https://en.wikipedia.org/wiki/Radix_tree
[11] Merkle Patricia Tree[OL] https://github.com/ethereum/wiki/wiki/Patricia-Tree.
[12] 橢圓曲線密碼學(xué)[OL]https://zh.wikipedia.org/wiki/%E6%A4%AD%E5%9C%86%E6%9B%B2%E7%BA%BF%E5%AF%86%E7%A0%81%E5%AD%A6.
[13] Lamport L, Shostak R, Pease M.The Byzantine generals problem[J].ACM Transactions on Programming Languages and Systems (TOPLAS), 1982, 4(3): 382-401.
[14] 共識機(jī)制[OL] https://yeasy.gitbooks.io/blockchain_guide/content/bitcoin/consensus.html.
[15] Proof-of-Work[OL] https://en.bitcoin.it/wiki/Proof_of_work.
[16] Proof-of-Work[OL] https://en.wikipedia.org/wiki/Proofof-work_system.
[17] PoS [OL]https://bytecoin.org/blog/proof-of-stake-proofof-work-comparison/.
[18] DPoS White paper[OL]https://bitsharestalk.org/index.php?topic=4031.0.
[19] Ripple Consensus[OL]https://ripple.com/build/rippleledger-consensus-process/.
[20] PBFT Algorithm[OL] http://pmg.csail.mit.edu/papers/osdi99.pdf.
[21] Ethereum Mauve Paper[online] http://8btc.com/forum.php?mod=viewthread&tid=40113.
[22] Pool驗(yàn)證池[OL] http://blog.csdn.net/jeffrey__zhou/article/details/56672948.
[23] delegated BFT Algorithm[OL] http://www.8btc.com/onchain-paper-antshares.
[24] Crypto 2.0 Musings - Proof of Elapsed Time[OL] https://www.linkedin.com/pulse/crypto-20-musings-proofelapsed-time-alex-batlin.
[25] 中國區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書[OL] http://odbyaalgf.bkt.clouddn.com/%E4%B8%AD%E5%9B%B D%E5%8C%BA%E5%9D%97%E9%93%BE%E6%8A%80%E6%9C%AF%E5%BA%94%E7%94%A8%E5%8F%91%E5%B1%95%E7%99%BD%E7%9A%AE%E4%B9%A6-2016.pdf.
[26] Paxos Algorithm[OL] https://zh.wikipedia.org/wiki/Paxos%E7%AE%97%E6%B3%95.
[27] Raft Algorithm[OL]https://raft.github.io/.
[28] ethereum of ficial website[OL]https://ethereum.org/.
[29] Patricia-Tree[OL] https://github.com/ethereum/wiki/wiki/Patricia-Tree.
[30] ethereum-whitepaper [OL]http://ethfans.org/posts/ethereum-whitepaper.
[31] ADEPT Whitepaper[OL]http://8btc.com/doc-view-489.html.
[32] IBM ADEPT Practictioner Perspective - Pre Publication Draft - 7 Jan 2015 [OL]https://archive.org/stream/pdfy-esMcC00dKmdo53-_/IBM%20ADEPT%20 Practictioner%20Perspective%20-%20Pre%20 Publication%20Draft%20-%207%20Jan%202015#page/n7/mode/2up.
[33] Device democracy: Saving the future of the Internet of Things[OL]http://public.dhe.ibm.com/common/ssi/ecm/gb/en/gbe03620usen/GBE03620USEN.PDF.
[34] hyperledger of ficial website[OL] https://www.hyperledger.org/.
[35] hyperledger-whitepaper[OL] https://docs.google.com/document/d/1Z4M_qwILLRehPbVRUsJ3OF8Iir-gqSZYe7W-LE9gnE/edit#heading=h.m6iml6hqrnm2.
[36] Karame G.On the Security and Scalability of Bitcoin's Blockchain[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security.ACM, 2016: 1861-1862.
[37] Coblenz M.Obsidian: a safer blockchain programming language[C]//Proceedings of the 39th International Conference on Software Engineering Companion.IEEE Press, 2017: 97-99.
[38] Dorri A, Kanhere S S, Jurdak R.Towards an Optimized BlockChain for IoT[C]//Proceedings of the Second International Conference on Internetof-Things Design and Implementation.ACM, 2017:173-178.
[39] Yves-Alexandre de Montjoye, Erez Shmueli, Samuel S Wang, and Alex SandyPentland.2014.openpds: Protecting the privacy of metadata through safeanswers.PloS one 9, 7(2014), e98790.
[40] Guardtime KSI Use of a globally distributed blockchain to secure SDN whitepaper [OL]https://www.ciosummits.com/Guardtime_KSI_Use_of_a_globally_distributed_blockchain_to_secure_SDN_whitepaper_1602.pdf.
[41] Microsoft Azure BaaS[OL]https://azure.microsoft.com/enus/solutions/blockchain/.
[42] Empowering the edge: Practical insights on a decentralized Internet of Things[OL]https://www-935.ibm.com/services/multimedia/GBE03662USEN.pdf.
[43] Yan Z, Zhang P, Vasilakos A V.A survey on trust management for Internet of Things[J].Journal of network and computer applications, 2014, 42: 120-134.
[44] Storj of ficial website[OL]https://storj.io/.
[45] AI DAOs, and Three Paths to Get There[OL] https://blog.bigchaindb.com/ai-daos-and-three-paths-to-get-there-cfa0 a4cc37b8?gi=28320cd870d8#.8btx9jds3.
[46] Wild, Wooly AI DAOs[OL] https://blog.bigchaindb.com/wild-wooly-ai-daos-d1719e040956#.qquk7dsbs.
[47] The AI Existential Threat: Reflections of a Recovering Bio-Narcissist[OL] https://medium.com/@trentmc0/the-ai-existential-threat-and-the-bandwidth-scenario-4573c1cb085f#.8x4rgi4nc.
[48] Blockchains for Big Data[OL] https://blog.bigchaindb.com/blockchains-for-big-data-from-data-audit-trails-to-auniversal-data-exchange-cf9956ec58ea.
[49] Zooko’s triangle[OL]: http://en.wikipedia.org/wiki/Zookos_triangle’.
[50] Dorri A, Kanhere S S, Jurdak R.Towards an Optimized BlockChain for IoT[C]//Proceedings of the Second International Conference on Internet-of-Things Design and Implementation.ACM, 2017: 173-178.
[51] Bitcoin of ficial website[OL]https://bitcoin.org/en/.?
A Summary of the Theory and Application of BlockChain
Yao Zhongjiang1,2, Ge Jingguo1*
1.Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China
2.University of Chinese Academy of Sciences, Beijing 100049, China
In recent years, the value of bitcoin has risen year by year, and it can stand out in other electronic currencies, mainly due to its low level technology - blockchain.BlockChain provides the basic technology for bitcoin to provide centrality, openness, security, independence and anonymity.With the appreciation of bitcoin, the research of blockchain is more and more extensive.In this paper, the basic principle of blockchain is deeply analyzed, and some open source projects based on blockchain technology are analyzed, and some representative application fields are given.
Bitcoin; BlockChain; consensus mechanism; IoT; BaaS; 5G; AI; big data?
10.11871/j.issn.1674-9480.2017.02.001
國家科技重大專項(xiàng)“5G 與信息中心網(wǎng)絡(luò) (ICN) 融合技術(shù)研發(fā)”(2017ZX03001019);中國科學(xué)院科技服務(wù)網(wǎng)絡(luò)計(jì)劃(STS) 項(xiàng)目“5G 網(wǎng)絡(luò)關(guān)鍵技術(shù)研發(fā)與驗(yàn)證”
*通訊作者:葛敬國(gojingguo@iie.ac.cn)
2017年1月20日
姚忠將:中國科學(xué)院信息工程研究所,博士研究生,主要研究方向?yàn)榫W(wǎng)絡(luò)體系結(jié)構(gòu)、問責(zé)與隱私保護(hù)。
E-mail:yaozhongjiang@iie.ac.cn
葛敬國:中國科學(xué)院信息工程研究所,博士,博士生導(dǎo)師,研究員,主要研究方向?yàn)榫W(wǎng)絡(luò)體系結(jié)構(gòu)、未來網(wǎng)絡(luò)。
E-mail:gejingguo@iie.ac.cn