袁勇 王飛躍
區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望
袁勇1,2王飛躍1,3
區(qū)塊鏈?zhǔn)请S著比特幣等數(shù)字加密貨幣的日益普及而逐漸興起的一種全新的去中心化基礎(chǔ)架構(gòu)與分布式計算范式,目前已經(jīng)引起政府部門、金融機(jī)構(gòu)、科技企業(yè)和資本市場的高度重視與廣泛關(guān)注.區(qū)塊鏈技術(shù)具有去中心化、時序數(shù)據(jù)、集體維護(hù)、可編程和安全可信等特點,特別適合構(gòu)建可編程的貨幣系統(tǒng)、金融系統(tǒng)乃至宏觀社會系統(tǒng).本文通過解構(gòu)區(qū)塊鏈的核心要素,提出了區(qū)塊鏈系統(tǒng)的基礎(chǔ)架構(gòu)模型,詳細(xì)闡述了區(qū)塊鏈及與之相關(guān)的比特幣的基本原理、技術(shù)、方法與應(yīng)用現(xiàn)狀,討論了智能合約的理念、應(yīng)用和意義,介紹了基于區(qū)塊鏈的平行社會發(fā)展趨勢,致力于為未來相關(guān)研究提供有益的指導(dǎo)與借鑒.
區(qū)塊鏈,比特幣,共識機(jī)制,智能合約,平行社會
引用格式袁勇,王飛躍.區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望.自動化學(xué)報,2016,42(4):481?494
區(qū)塊鏈?zhǔn)且员忍貛艦榇淼臄?shù)字加密貨幣體系的核心支撐技術(shù).區(qū)塊鏈技術(shù)的核心優(yōu)勢是去中心化,能夠通過運(yùn)用數(shù)據(jù)加密、時間戳、分布式共識和經(jīng)濟(jì)激勵等手段,在節(jié)點無需互相信任的分布式系統(tǒng)中實現(xiàn)基于去中心化信用的點對點交易、協(xié)調(diào)與協(xié)作,從而為解決中心化機(jī)構(gòu)普遍存在的高成本、低效率和數(shù)據(jù)存儲不安全等問題提供了解決方案.隨著比特幣近年來的快速發(fā)展與普及,區(qū)塊鏈技術(shù)的研究與應(yīng)用也呈現(xiàn)出爆發(fā)式增長態(tài)勢,被認(rèn)為是繼大型機(jī)、個人電腦、互聯(lián)網(wǎng)、移動/社交網(wǎng)絡(luò)之后計算范式的第五次顛覆式創(chuàng)新,是人類信用進(jìn)化史上繼血親信用、貴金屬信用、央行紙幣信用之后的第四個里程碑[1].區(qū)塊鏈技術(shù)是下一代云計算的雛形,有望像互聯(lián)網(wǎng)一樣徹底重塑人類社會活動形態(tài),并實現(xiàn)從目前的信息互聯(lián)網(wǎng)向價值互聯(lián)網(wǎng)的轉(zhuǎn)變.
區(qū)塊鏈技術(shù)的快速發(fā)展引起了政府部門、金融機(jī)構(gòu)、科技企業(yè)和資本市場的廣泛關(guān)注.2016年1月,英國政府發(fā)布區(qū)塊鏈專題研究報告[2],積極推行區(qū)塊鏈在金融和政府事務(wù)中的應(yīng)用;中國人民銀行召開數(shù)字貨幣研討會探討采用區(qū)塊鏈技術(shù)發(fā)行虛擬貨幣的可行性,以提高金融活動的效率、便利性和透明度.美國納斯達(dá)克于2015年12月率先推出基于區(qū)塊鏈技術(shù)的證券交易平臺Linq,成為金融證券市場去中心化趨勢的重要里程碑;德勤和安永等專業(yè)審計服務(wù)公司相繼組建區(qū)塊鏈研發(fā)團(tuán)隊,致力于提升其客戶審計服務(wù)質(zhì)量.截止到2016年初,資本市場已經(jīng)相繼投入10億美元以加速區(qū)塊鏈領(lǐng)域的發(fā)展.初創(chuàng)公司R3CEV基于微軟云服務(wù)平臺Azure推出的BaaS(Blockchain as a service,區(qū)塊鏈即服務(wù))服務(wù),已與美國銀行、花旗銀行等全球40余家大型銀行機(jī)構(gòu)簽署區(qū)塊鏈合作項目,致力于制定銀行業(yè)的區(qū)塊鏈行業(yè)標(biāo)準(zhǔn)與協(xié)議.
區(qū)塊鏈技術(shù)起源于2008年由化名為“中本聰”(Satoshi nakamoto)的學(xué)者在密碼學(xué)郵件組發(fā)表的奠基性論文《比特幣:一種點對點電子現(xiàn)金系統(tǒng)》[3],目前尚未形成行業(yè)公認(rèn)的區(qū)塊鏈定義.狹義來講,區(qū)塊鏈?zhǔn)且环N按照時間順序?qū)?shù)據(jù)區(qū)塊以鏈條的方式組合成特定數(shù)據(jù)結(jié)構(gòu),并以密碼學(xué)方式保證的不可篡改和不可偽造的去中心化共享總賬(Decentralized shared ledger),能夠安全存儲簡單的、有先后關(guān)系的、能在系統(tǒng)內(nèi)驗證的數(shù)據(jù).廣義的區(qū)塊鏈技術(shù)則是利用加密鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)來驗證與存儲數(shù)據(jù)、利用分布式節(jié)點共識算法來生成和更新數(shù)據(jù)、利用自動化腳本代碼(智能合約)來編程和操作數(shù)據(jù)的一種全新的去中心化基礎(chǔ)架構(gòu)與分布式計算范式.
區(qū)塊鏈具有去中心化、時序數(shù)據(jù)、集體維護(hù)、可編程和安全可信等特點.首先是去中心化:區(qū)塊鏈數(shù)據(jù)的驗證、記賬、存儲、維護(hù)和傳輸?shù)冗^程均是基于分布式系統(tǒng)結(jié)構(gòu),采用純數(shù)學(xué)方法而不是中心機(jī)構(gòu)來建立分布式節(jié)點間的信任關(guān)系,從而形成去中心化的可信任的分布式系統(tǒng);其次是時序數(shù)據(jù):區(qū)塊鏈采用帶有時間戳的鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)存儲數(shù)據(jù),從而為數(shù)據(jù)增加了時間維度,具有極強(qiáng)的可驗證性和可追溯性;第三是集體維護(hù):區(qū)塊鏈系統(tǒng)采用特定的經(jīng)濟(jì)激勵機(jī)制來保證分布式系統(tǒng)中所有節(jié)點均可參與數(shù)據(jù)區(qū)塊的驗證過程(如比特幣的“挖礦”過程),并通過共識算法來選擇特定的節(jié)點將新區(qū)塊添加到區(qū)塊鏈;第四是可編程:區(qū)塊鏈技術(shù)可提供靈活的腳本代碼系統(tǒng),支持用戶創(chuàng)建高級的智能合約、貨幣或其他去中心化應(yīng)用.例如,以太坊(Ethereum)平臺即提供了圖靈完備的腳本語言以供用戶來構(gòu)建任何可以精確定義的智能合約或交易類型[4];最后是安全可信:區(qū)塊鏈技術(shù)采用非對稱密碼學(xué)原理對數(shù)據(jù)進(jìn)行加密,同時借助分布式系統(tǒng)各節(jié)點的工作量證明等共識算法形成的強(qiáng)大算力來抵御外部攻擊、保證區(qū)塊鏈數(shù)據(jù)不可篡改和不可偽造,因而具有較高的安全性.
區(qū)塊鏈技術(shù)是具有普適性的底層技術(shù)框架,可以為金融、經(jīng)濟(jì)、科技甚至政治等各領(lǐng)域帶來深刻變革.按照目前區(qū)塊鏈技術(shù)的發(fā)展脈絡(luò),區(qū)塊鏈技術(shù)將會經(jīng)歷以可編程數(shù)字加密貨幣體系為主要特征的區(qū)塊鏈1.0模式、以可編程金融系統(tǒng)為主要特征的區(qū)塊鏈2.0模式和以可編程社會為主要特征的區(qū)塊鏈3.0模式[1].目前,一般認(rèn)為區(qū)塊鏈技術(shù)正處于2.0模式的初期,股權(quán)眾籌和P2P借貸等各類基于區(qū)塊鏈技術(shù)的互聯(lián)網(wǎng)金融應(yīng)用相繼涌現(xiàn).然而,上述模式實際上是平行而非演進(jìn)式發(fā)展的,區(qū)塊鏈1.0模式的數(shù)字加密貨幣體系仍然遠(yuǎn)未成熟,距離其全球貨幣一體化的愿景實際上更遠(yuǎn)、更困難.目前,區(qū)塊鏈領(lǐng)域已經(jīng)呈現(xiàn)出明顯的技術(shù)和產(chǎn)業(yè)創(chuàng)新驅(qū)動的發(fā)展態(tài)勢,相關(guān)學(xué)術(shù)研究嚴(yán)重滯后、亟待跟進(jìn).截止到2016年2月,以萬方數(shù)據(jù)知識服務(wù)平臺為中文數(shù)據(jù)源、以Web of Science和EI Village為英文數(shù)據(jù)源的文獻(xiàn)檢索顯示,目前篇名包含關(guān)鍵詞“區(qū)塊鏈/blockchain”的僅有2篇中文[5?6]和9篇英文文獻(xiàn)[6?14].本文系統(tǒng)性地梳理了區(qū)塊鏈的基本原理、核心技術(shù)、典型應(yīng)用和現(xiàn)存問題,以期為未來研究提供有益的啟發(fā)與借鑒.
本文組織結(jié)構(gòu)為:第1節(jié)概述區(qū)塊鏈與比特幣的發(fā)展史及二者的關(guān)系;第2節(jié)闡述區(qū)塊鏈的基礎(chǔ)架構(gòu)模型及其關(guān)鍵技術(shù);第3節(jié)和第4節(jié)分別概要總結(jié)了區(qū)塊鏈技術(shù)的應(yīng)用場景與現(xiàn)存的問題;第5節(jié)介紹智能合約及其在區(qū)塊鏈領(lǐng)域的應(yīng)用現(xiàn)狀;第6節(jié)展望了區(qū)塊鏈驅(qū)動的平行社會發(fā)展趨勢;第7節(jié)總結(jié)本文內(nèi)容.
比特幣是迄今為止最為成功的區(qū)塊鏈應(yīng)用場景.據(jù)區(qū)塊鏈實時監(jiān)控網(wǎng)站Blockchain.info統(tǒng)計顯示,平均每天有約7500萬美元的120000筆交易被寫入比特幣區(qū)塊鏈,目前已生成超過40萬個區(qū)塊[15].加密貨幣市值統(tǒng)計網(wǎng)站coinmarketcap.com顯示,截止到2016年2月,全球共有675種加密貨幣,總市值超過67億美元,其中比特幣市值約占86%,瑞波幣和以太幣分別居二、三位[16].目前比特幣供應(yīng)量(即已經(jīng)挖出的比特幣數(shù)量)已經(jīng)超過1500萬枚,按照每枚比特幣389.50美元的現(xiàn)行價格估算其總市值已超過59億美元,在世界各國2015年GDP排名中占據(jù)第144位(略低于歐洲的摩爾多瓦).換言之,在沒有政府和中央銀行信用背書的情況下,去中心化的比特幣已經(jīng)依靠算法信用創(chuàng)造出與歐洲小國體量相當(dāng)?shù)娜蛐越?jīng)濟(jì)體.預(yù)計到2027年,全球10%的GDP將會通過區(qū)塊鏈技術(shù)存儲[17].
比特幣區(qū)塊鏈的第一個區(qū)塊(稱為創(chuàng)世區(qū)塊)誕生于2009年1月4日,由創(chuàng)始人中本聰持有.一周后,中本聰發(fā)送了10個比特幣給密碼學(xué)專家哈爾芬尼,形成了比特幣史上第一次交易;2010年5月,佛羅里達(dá)程序員用1萬比特幣購買價值為25美元的披薩優(yōu)惠券,從而誕生了比特幣的第一個公允匯率.此后,比特幣價格快速上漲,并在2013年11月創(chuàng)下每枚比特幣兌換1242美元的歷史高值,超過同期每盎司1241.98美元的黃金價格.據(jù)CoinDesk估算,目前全球約有6萬商家接受比特幣交易,其中中國是比特幣交易增長最為迅速的國家[18].
比特幣本質(zhì)上是由分布式網(wǎng)絡(luò)系統(tǒng)生成的數(shù)字貨幣,其發(fā)行過程不依賴特定的中心化機(jī)構(gòu),而是依賴于分布式網(wǎng)絡(luò)節(jié)點共同參與一種稱為工作量證明(Proof of work,PoW)的共識過程以完成比特幣交易的驗證與記錄.PoW共識過程(俗稱挖礦,每個節(jié)點稱為礦工)通常是各節(jié)點貢獻(xiàn)自己的計算資源來競爭解決一個難度可動態(tài)調(diào)整的數(shù)學(xué)問題,成功解決該數(shù)學(xué)問題的礦工將獲得區(qū)塊的記賬權(quán),并將當(dāng)前時間段的所有比特幣交易打包記入一個新的區(qū)塊、按照時間順序鏈接到比特幣主鏈上.比特幣系統(tǒng)同時會發(fā)行一定數(shù)量的比特幣以獎勵該礦工,并激勵其他礦工繼續(xù)貢獻(xiàn)算力.比特幣的流通過程依靠密碼學(xué)方法保障安全.每一次比特幣交易都會經(jīng)過特殊算法處理和全體礦工驗證后記入?yún)^(qū)塊鏈,同時可以附帶具有一定靈活性的腳本代碼(智能合約)以實現(xiàn)可編程的自動化貨幣流通.由此可見,比特幣和區(qū)塊鏈系統(tǒng)一般具備如下五個關(guān)鍵要素,即公共的區(qū)塊鏈賬本、分布式的點對點網(wǎng)絡(luò)系統(tǒng)、去中心化的共識算法、適度的經(jīng)濟(jì)激勵機(jī)制以及可編程的腳本代碼.
區(qū)塊鏈技術(shù)為比特幣系統(tǒng)解決了數(shù)字加密貨幣領(lǐng)域長期以來所必需面對的兩個重要問題,即雙重支付問題和拜占庭將軍問題[19].雙重支付問題又稱為“雙花”,即利用貨幣的數(shù)字特性兩次或多次使用“同一筆錢”完成支付.傳統(tǒng)金融和貨幣體系中,現(xiàn)金(法幣)因是物理實體,能夠自然地避免雙重支付;其他數(shù)字形式的貨幣則需要可信的第三方中心機(jī)構(gòu)(如銀行)來保證.區(qū)塊鏈技術(shù)的貢獻(xiàn)是在沒有第三方機(jī)構(gòu)的情況下,通過分布式節(jié)點的驗證和共識機(jī)制解決了去中心化系統(tǒng)的雙重支付問題,在信息傳輸?shù)倪^程同時完成了價值轉(zhuǎn)移.拜占庭將軍問題是分布式系統(tǒng)交互過程普遍面臨的難題,即在缺少可信任的中央節(jié)點的情況下,分布式節(jié)點如何達(dá)成共識和建立互信[20].區(qū)塊鏈通過數(shù)字加密技術(shù)和分布式共識算法,實現(xiàn)了在無需信任單個節(jié)點的情況下構(gòu)建一個去中心化的可信任系統(tǒng).與傳統(tǒng)中心機(jī)構(gòu)(如中央銀行)的信用背書機(jī)制不同的是,比特幣區(qū)塊鏈形成的是軟件定義的信用,這標(biāo)志著中心化的國家信用向去中心化的算法信用的根本性變革.
比特幣憑借其先發(fā)優(yōu)勢,目前已經(jīng)形成體系完備的涵蓋發(fā)行、流通和金融衍生市場的生態(tài)圈與產(chǎn)業(yè)鏈(如圖1所示),這也是其長期占據(jù)絕大多數(shù)數(shù)字加密貨幣市場份額的主要原因.比特幣的開源特性吸引了大量開發(fā)者持續(xù)性地貢獻(xiàn)其創(chuàng)新技術(shù)、方法和機(jī)制;比特幣各網(wǎng)絡(luò)節(jié)點(礦工)提供算力以保證比特幣的穩(wěn)定共識和安全性,其算力大多來自于設(shè)備商銷售的專門用于PoW共識算法的專業(yè)設(shè)備(礦機(jī)).比特幣網(wǎng)絡(luò)為每個新發(fā)現(xiàn)的區(qū)塊發(fā)行一定數(shù)量的比特幣以獎勵礦工,部分礦工可能會相互合作建立收益共享的礦池,以便匯集算力來提高獲得比特幣的概率.比特幣經(jīng)發(fā)行進(jìn)入流通環(huán)節(jié)后,持幣人可以通過特定的軟件平臺(如比特幣錢包)向商家支付比特幣來購買商品或服務(wù),這體現(xiàn)了比特幣的貨幣屬性;同時由于比特幣價格的漲跌機(jī)制使其完全具備金融衍生品的所有屬性,因此出現(xiàn)了比特幣交易平臺以方便持幣人投資或者投機(jī)比特幣.在流通環(huán)節(jié)和金融市場中,每一筆比特幣交易都會由比特幣網(wǎng)絡(luò)的全體礦工驗證并記入?yún)^(qū)塊鏈.
圖1 比特幣生態(tài)圈Fig.1 The Bitcoin ecosystem
比特幣是區(qū)塊鏈技術(shù)賦能的第一個“殺手級”應(yīng)用,迄今為止區(qū)塊鏈的核心技術(shù)和人才資源仍大多在比特幣研發(fā)領(lǐng)域.然而,區(qū)塊鏈作為未來新一代的底層基礎(chǔ)技術(shù),其應(yīng)用范疇勢必會超越數(shù)字加密貨幣而延伸到金融、經(jīng)濟(jì)、科技和政治等其他領(lǐng)域.比特幣的現(xiàn)有技術(shù)、模式和機(jī)制,將會對區(qū)塊鏈在新應(yīng)用領(lǐng)域的發(fā)展提供有益的借鑒,而新領(lǐng)域的區(qū)塊鏈創(chuàng)新也勢必反過來促進(jìn)解決比特幣系統(tǒng)現(xiàn)存的問題.因此,比特幣和區(qū)塊鏈技術(shù)存在著協(xié)同進(jìn)化、和諧共生而非相互競爭的良性反饋關(guān)系.
本節(jié)將結(jié)合比特幣系統(tǒng)的技術(shù)與應(yīng)用現(xiàn)狀,闡述區(qū)塊鏈技術(shù)的基礎(chǔ)模型、基本原理和關(guān)鍵技術(shù),以及區(qū)塊鏈在比特幣系統(tǒng)之外的若干創(chuàng)新模式.現(xiàn)存的其他區(qū)塊鏈應(yīng)用大多都與比特幣類似,僅在某些特定的環(huán)節(jié)或多或少地采用比特幣模式的變種.
區(qū)塊鏈技術(shù)的基礎(chǔ)架構(gòu)模型如圖2所示.一般說來,區(qū)塊鏈系統(tǒng)由數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層、合約層和應(yīng)用層組成.其中,數(shù)據(jù)層封裝了底層數(shù)據(jù)區(qū)塊以及相關(guān)的數(shù)據(jù)加密和時間戳等技術(shù);網(wǎng)絡(luò)層則包括分布式組網(wǎng)機(jī)制、數(shù)據(jù)傳播機(jī)制和數(shù)據(jù)驗證機(jī)制等;共識層主要封裝網(wǎng)絡(luò)節(jié)點的各類共識算法;激勵層將經(jīng)濟(jì)因素集成到區(qū)塊鏈技術(shù)體系中來,主要包括經(jīng)濟(jì)激勵的發(fā)行機(jī)制和分配機(jī)制等;合約層主要封裝各類腳本、算法和智能合約,是區(qū)塊鏈可編程特性的基礎(chǔ);應(yīng)用層則封裝了區(qū)塊鏈的各種應(yīng)用場景和案例.該模型中,基于時間戳的鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)、分布式節(jié)點的共識機(jī)制、基于共識算力的經(jīng)濟(jì)激勵和靈活可編程的智能合約是區(qū)塊鏈技術(shù)最具代表性的創(chuàng)新點.
圖2 區(qū)塊鏈基礎(chǔ)架構(gòu)模型Fig.2 A basic framework of blockchain
2.1數(shù)據(jù)層
狹義的區(qū)塊鏈即是去中心化系統(tǒng)各節(jié)點共享的數(shù)據(jù)賬本.每個分布式節(jié)點都可以通過特定的哈希算法和Merkle樹數(shù)據(jù)結(jié)構(gòu),將一段時間內(nèi)接收到的交易數(shù)據(jù)和代碼封裝到一個帶有時間戳的數(shù)據(jù)區(qū)塊中,并鏈接到當(dāng)前最長的主區(qū)塊鏈上,形成最新的區(qū)塊.該過程涉及區(qū)塊、鏈?zhǔn)浇Y(jié)構(gòu)、哈希算法、Merkle樹和時間戳等技術(shù)要素.
數(shù)據(jù)區(qū)塊:如圖3所示,每個數(shù)據(jù)區(qū)塊一般包含區(qū)塊頭(Header)和區(qū)塊體(Body)兩部分.區(qū)塊頭封裝了當(dāng)前版本號(Version)、前一區(qū)塊地址(Prev-block)、當(dāng)前區(qū)塊的目標(biāo)哈希值(Bits)、當(dāng)前區(qū)塊PoW共識過程的解隨機(jī)數(shù)(Nonce)、Merkle根(Merkle-root)以及時間戳(Timestamp)等信息[21].比特幣網(wǎng)絡(luò)可以動態(tài)調(diào)整PoW共識過程的難度值,最先找到正確的解隨機(jī)數(shù)Nonce并經(jīng)過全體礦工驗證的礦工將會獲得當(dāng)前區(qū)塊的記賬權(quán).區(qū)塊體則包括當(dāng)前區(qū)塊的交易數(shù)量以及經(jīng)過驗證的、區(qū)塊創(chuàng)建過程中生成的所有交易記錄.這些記錄通過Merkle樹的哈希過程生成唯一的Merkle根并記入?yún)^(qū)塊頭.
圖3 區(qū)塊結(jié)構(gòu)Fig.3 The structure of blocks
鏈?zhǔn)浇Y(jié)構(gòu):取得記賬權(quán)的礦工將當(dāng)前區(qū)塊鏈接到前一區(qū)塊,形成最新的區(qū)塊主鏈.各個區(qū)塊依次環(huán)環(huán)相接,形成從創(chuàng)世區(qū)塊到當(dāng)前區(qū)塊的一條最長主鏈,從而記錄了區(qū)塊鏈數(shù)據(jù)的完整歷史,能夠提供區(qū)塊鏈數(shù)據(jù)的溯源和定位功能,任意數(shù)據(jù)都可以通過此鏈?zhǔn)浇Y(jié)構(gòu)順藤摸瓜、追本溯源.需要說明的是,如果短時間內(nèi)有兩個礦工同時“挖出”兩個新的區(qū)塊加以鏈接的話,區(qū)塊主鏈可能會出現(xiàn)暫時的“分叉”現(xiàn)象,其解決方法是約定礦工總是選擇延長累計工作量證明最大的區(qū)塊鏈.因此,當(dāng)主鏈分叉后,后續(xù)區(qū)塊的礦工將通過計算和比較,將其區(qū)塊鏈接到當(dāng)前累計工作量證明最大化的備選鏈上,形成更長的新主鏈,從而解決分叉問題[19].
時間戳:區(qū)塊鏈技術(shù)要求獲得記賬權(quán)的節(jié)點必須在當(dāng)前數(shù)據(jù)區(qū)塊頭中加蓋時間戳,表明區(qū)塊數(shù)據(jù)的寫入時間.因此,主鏈上各區(qū)塊是按照時間順序依次排列的.時間戳技術(shù)本身并不復(fù)雜,但其在區(qū)塊鏈技術(shù)中的應(yīng)用是具有重要意義的創(chuàng)新.時間戳可以作為區(qū)塊數(shù)據(jù)的存在性證明(Proof of existence),有助于形成不可篡改和不可偽造的區(qū)塊鏈數(shù)據(jù)庫,從而為區(qū)塊鏈應(yīng)用于公證、知識產(chǎn)權(quán)注冊等時間敏感的領(lǐng)域奠定了基礎(chǔ).更為重要的是,時間戳為未來基于區(qū)塊鏈的互聯(lián)網(wǎng)和大數(shù)據(jù)增加了時間維度,使得通過區(qū)塊數(shù)據(jù)和時間戳來重現(xiàn)歷史成為可能.
哈希函數(shù):區(qū)塊鏈通常并不直接保存原始數(shù)據(jù)或交易記錄,而是保存其哈希函數(shù)值,即將原始數(shù)據(jù)編碼為特定長度的由數(shù)字和字母組成的字符串后記入?yún)^(qū)塊鏈.哈希函數(shù)(也稱散列函數(shù))具有諸多優(yōu)良特點,因而特別適合用于存儲區(qū)塊鏈數(shù)據(jù).例如,通過哈希輸出幾乎不能反推輸入值(單向性),不同長度輸入的哈希過程消耗大約相同的時間(定時性)且產(chǎn)生固定長度的輸出(定長性),即使輸入僅相差一個字節(jié)也會產(chǎn)生顯著不同的輸出值(隨機(jī)性)等.比特幣區(qū)塊鏈通常采用雙SHA256哈希函數(shù),即將任意長度的原始數(shù)據(jù)經(jīng)過兩次SHA256哈希運(yùn)算后轉(zhuǎn)換為長度為256位(32字節(jié))的二進(jìn)制數(shù)字來統(tǒng)一存儲和識別.除上述特點外,SHA256算法還具有巨大的散列空間(2256)和抗碰撞(避免不同輸入值產(chǎn)生相同哈希值)等特性,可滿足比特幣的任何相關(guān)標(biāo)記需要而不會出現(xiàn)沖突.
Merkle樹:Merkle樹是區(qū)塊鏈的重要數(shù)據(jù)結(jié)構(gòu),其作用是快速歸納和校驗區(qū)塊數(shù)據(jù)的存在性和完整性.如圖3所示,Merkle樹通常包含區(qū)塊體的底層(交易)數(shù)據(jù)庫,區(qū)塊頭的根哈希值(即Merkle根)以及所有沿底層區(qū)塊數(shù)據(jù)到根哈希的分支.Merkle樹運(yùn)算過程一般是將區(qū)塊體的數(shù)據(jù)進(jìn)行分組哈希,并將生成的新哈希值插入到Merkle樹中,如此遞歸直到只剩最后一個根哈希值并記為區(qū)塊頭的Merkle根.最常見的Merkle樹是比特幣采用的二叉Merkle樹,其每個哈希節(jié)點總是包含兩個相鄰的數(shù)據(jù)塊或其哈希值[22],其他變種則包括以太坊的Merkle patricia tree等[4].Merkle樹有諸多優(yōu)點:首先是極大地提高了區(qū)塊鏈的運(yùn)行效率和可擴(kuò)展性,使得區(qū)塊頭只需包含根哈希值而不必封裝所有底層數(shù)據(jù),這使得哈希運(yùn)算可以高效地運(yùn)行在智能手機(jī)甚至物聯(lián)網(wǎng)設(shè)備上;其次是Merkle樹可支持“簡化支付驗證”協(xié)議,即在不運(yùn)行完整區(qū)塊鏈網(wǎng)絡(luò)節(jié)點的情況下,也能夠?qū)Γń灰祝?shù)據(jù)進(jìn)行檢驗[3].例如,為驗證圖3中交易6,一個沒有下載完整區(qū)塊鏈數(shù)據(jù)的客戶端可以通過向其他節(jié)點索要包括從交易6哈希值沿Merkle樹上溯至區(qū)塊頭根哈希處的哈希序列(即哈希節(jié)點6,5,56,78,5678,1234)來快速確認(rèn)交易的存在性和正確性.一般說來,在N個交易組成的區(qū)塊體中確認(rèn)任一交易的算法復(fù)雜度僅為log2N.這將極大地降低區(qū)塊鏈運(yùn)行所需的帶寬和驗證時間,并使得僅保存部分相關(guān)區(qū)塊鏈數(shù)據(jù)的輕量級客戶端成為可能.
非對稱加密:非對稱加密是為滿足安全性需求和所有權(quán)驗證需求而集成到區(qū)塊鏈中的加密技術(shù),常見算法包括RSA、Elgamal、Rabin、D-H、ECC(即橢圓曲線加密算法)等.非對稱加密通常在加密和解密過程中使用兩個非對稱的密碼,分別稱為公鑰和私鑰.非對稱密鑰對具有兩個特點,首先是用其中一個密鑰(公鑰或私鑰)加密信息后,只有另一個對應(yīng)的密鑰才能解開;其次是公鑰可向其他人公開、私鑰則保密,其他人無法通過該公鑰推算出相應(yīng)的私鑰.非對稱加密技術(shù)在區(qū)塊鏈的應(yīng)用場景主要包括信息加密、數(shù)字簽名和登錄認(rèn)證等,其中信息加密場景主要是由信息發(fā)送者(記為A)使用接受者(記為B)的公鑰對信息加密后再發(fā)送給B,B利用自己的私鑰對信息解密.比特幣交易的加密即屬于此場景;數(shù)字簽名場景則是由發(fā)送者A采用自己的私鑰加密信息后發(fā)送給B,B使用A的公鑰對信息解密、從而可確保信息是由A發(fā)送的;登錄認(rèn)證場景則是由客戶端使用私鑰加密登錄信息后發(fā)送給服務(wù)器,后者接收后采用該客戶端的公鑰解密并認(rèn)證登錄信息.
以比特幣系統(tǒng)為例,其非對稱加密機(jī)制如圖4所示:比特幣系統(tǒng)一般通過調(diào)用操作系統(tǒng)底層的隨機(jī)數(shù)生成器來生成256位隨機(jī)數(shù)作為私鑰.比特幣私鑰的總量可達(dá)2256,極難通過遍歷全部私鑰空間來獲得存有比特幣的私鑰,因而是密碼學(xué)安全的.為便于識別,256位二進(jìn)制形式的比特幣私鑰將通過SHA256哈希算法和Base58轉(zhuǎn)換,形成50個字符長度的易識別和書寫的私鑰提供給用戶;比特幣的公鑰是由私鑰首先經(jīng)過Secp256k1橢圓曲線算法生成65字節(jié)長度的隨機(jī)數(shù).該公鑰可用于產(chǎn)生比特幣交易時使用的地址,其生成過程為首先將公鑰進(jìn)行SHA256和RIPEMD160雙哈希運(yùn)算并生成20字節(jié)長度的摘要結(jié)果(即hash160結(jié)果),再經(jīng)過SHA256哈希算法和Base58轉(zhuǎn)換形成33字符長度的比特幣地址[19].公鑰生成過程是不可逆的,即不能通過公鑰反推出私鑰.比特幣的公鑰和私鑰通常保存于比特幣錢包文件,其中私鑰最為重要.丟失私鑰就意味著丟失了對應(yīng)地址的全部比特幣資產(chǎn).現(xiàn)有的比特幣和區(qū)塊鏈系統(tǒng)中,根據(jù)實際應(yīng)用需求已經(jīng)衍生出多私鑰加密技術(shù),以滿足多重簽名等更為靈活和復(fù)雜的場景.
圖4 比特幣非對稱加密機(jī)制Fig.4 The asymmetric cryptography of the Bitcoin system
2.2網(wǎng)絡(luò)層
網(wǎng)絡(luò)層封裝了區(qū)塊鏈系統(tǒng)的組網(wǎng)方式、消息傳播協(xié)議和數(shù)據(jù)驗證機(jī)制等要素.結(jié)合實際應(yīng)用需求,通過設(shè)計特定的傳播協(xié)議和數(shù)據(jù)驗證機(jī)制,可使得區(qū)塊鏈系統(tǒng)中每一個節(jié)點都能參與區(qū)塊數(shù)據(jù)的校驗和記賬過程,僅當(dāng)區(qū)塊數(shù)據(jù)通過全網(wǎng)大部分節(jié)點驗證后,才能記入?yún)^(qū)塊鏈.
組網(wǎng)方式:區(qū)塊鏈系統(tǒng)的節(jié)點一般具有分布式、自治性、開放可自由進(jìn)出等特性,因而一般采用對等式網(wǎng)絡(luò)(Peer-to-peer network,P2P網(wǎng)絡(luò))來組織散布全球的參與數(shù)據(jù)驗證和記賬的節(jié)點.P2P網(wǎng)絡(luò)中的每個節(jié)點均地位對等且以扁平式拓?fù)浣Y(jié)構(gòu)相互連通和交互,不存在任何中心化的特殊節(jié)點和層級結(jié)構(gòu),每個節(jié)點均會承擔(dān)網(wǎng)絡(luò)路由、驗證區(qū)塊數(shù)據(jù)、傳播區(qū)塊數(shù)據(jù)、發(fā)現(xiàn)新節(jié)點等功能.按照節(jié)點存儲數(shù)據(jù)量的不同,可以分為全節(jié)點和輕量級節(jié)點.前者保存有從創(chuàng)世區(qū)塊到當(dāng)前最新區(qū)塊為止的完整區(qū)塊鏈數(shù)據(jù),并通過實時參與區(qū)塊數(shù)據(jù)的校驗和記賬來動態(tài)更新主鏈.全節(jié)點的優(yōu)勢在于不依賴任何其他節(jié)點而能夠獨立地實現(xiàn)任意區(qū)塊數(shù)據(jù)的校驗、查詢和更新,劣勢則是維護(hù)全節(jié)點的空間成本較高;以比特幣為例,截止到2016年2月,創(chuàng)世區(qū)塊至當(dāng)前區(qū)塊的數(shù)據(jù)量已經(jīng)超過60GB.與之相比,輕量級節(jié)點則僅保存一部分區(qū)塊鏈數(shù)據(jù),并通過第2.1節(jié)提到的簡易支付驗證方式向其相鄰節(jié)點請求所需的數(shù)據(jù)來完成數(shù)據(jù)校驗.
數(shù)據(jù)傳播協(xié)議:任一區(qū)塊數(shù)據(jù)生成后,將由生成該數(shù)據(jù)的節(jié)點廣播到全網(wǎng)其他所有的節(jié)點來加以驗證.現(xiàn)有的區(qū)塊鏈系統(tǒng)一般根據(jù)實際應(yīng)用需求設(shè)計比特幣傳播協(xié)議的變種,例如以太坊區(qū)塊鏈集成了所謂的“幽靈協(xié)議”以解決因區(qū)塊數(shù)據(jù)確認(rèn)速度快而導(dǎo)致的高區(qū)塊作廢率和隨之而來的安全性風(fēng)險[4].根據(jù)中本聰?shù)脑O(shè)計,比特幣系統(tǒng)的交易數(shù)據(jù)傳播協(xié)議包括如下步驟[3]:
1)比特幣交易節(jié)點將新生成的交易數(shù)據(jù)向全網(wǎng)所有節(jié)點進(jìn)行廣播;
2)每個節(jié)點都將收集到的交易數(shù)據(jù)存儲到一個區(qū)塊中;
3)每個節(jié)點基于自身算力在區(qū)塊中找到一個具有足夠難度的工作量證明;
4)當(dāng)節(jié)點找到區(qū)塊的工作量證明后,就向全網(wǎng)所有節(jié)點廣播此區(qū)塊;
5)僅當(dāng)包含在區(qū)塊中的所有交易都是有效的且之前未存在過的,其他節(jié)點才認(rèn)同該區(qū)塊的有效性;
6)其他節(jié)點接受該數(shù)據(jù)區(qū)塊,并在該區(qū)塊的末尾制造新的區(qū)塊以延長該鏈條,而將被接受區(qū)塊的隨機(jī)哈希值視為先于新區(qū)塊的隨機(jī)哈希值.
需要說明的是,如果交易節(jié)點是與其他節(jié)點無連接的新節(jié)點,比特幣系統(tǒng)通常會將一組長期穩(wěn)定運(yùn)行的“種子節(jié)點”推薦給新節(jié)點建立連接,或者推薦至少一個節(jié)點連接到新節(jié)點.此外,交易數(shù)據(jù)廣播時,并不需要全部節(jié)點均接收到,而是只要足夠多的節(jié)點做出響應(yīng)即可整合進(jìn)入?yún)^(qū)塊賬本中.未接收到特定交易數(shù)據(jù)的節(jié)點則可向鄰近節(jié)點請求下載該缺失的交易數(shù)據(jù)[19].
數(shù)據(jù)驗證機(jī)制:P2P網(wǎng)絡(luò)中的每個節(jié)點都時刻監(jiān)聽比特幣網(wǎng)絡(luò)中廣播的數(shù)據(jù)與新區(qū)塊.節(jié)點接收到鄰近節(jié)點發(fā)來的數(shù)據(jù)后,將首先驗證該數(shù)據(jù)的有效性.如果數(shù)據(jù)有效,則按照接收順序為新數(shù)據(jù)建立存儲池以暫存尚未記入?yún)^(qū)塊的有效數(shù)據(jù),同時繼續(xù)向鄰近節(jié)點轉(zhuǎn)發(fā);如果數(shù)據(jù)無效,則立即廢棄該數(shù)據(jù),從而保證無效數(shù)據(jù)不會在區(qū)塊鏈網(wǎng)絡(luò)繼續(xù)傳播.以比特幣為例,比特幣的礦工節(jié)點會收集和驗證P2P網(wǎng)絡(luò)中廣播的尚未確認(rèn)的交易數(shù)據(jù),并對照預(yù)定義的標(biāo)準(zhǔn)清單,從數(shù)據(jù)結(jié)構(gòu)、語法規(guī)范性、輸入輸出和數(shù)字簽名等各方面校驗交易數(shù)據(jù)的有效性,并將有效交易數(shù)據(jù)整合到當(dāng)前區(qū)塊中;同理,當(dāng)某礦工“挖”到新區(qū)塊后,其他礦工節(jié)點也會按照預(yù)定義標(biāo)準(zhǔn)來校驗該區(qū)塊是否包含足夠工作量證明,時間戳是否有效等;如確認(rèn)有效,其他礦工節(jié)點會將該區(qū)塊鏈接到主區(qū)塊鏈上,并開始競爭下一個新區(qū)塊.
由網(wǎng)絡(luò)層設(shè)計機(jī)理可見,區(qū)塊鏈?zhǔn)堑湫偷姆植际酱髷?shù)據(jù)技術(shù).全網(wǎng)數(shù)據(jù)同時存儲于去中心化系統(tǒng)的所有節(jié)點上,即使部分節(jié)點失效,只要仍存在一個正常運(yùn)行的節(jié)點,區(qū)塊鏈主鏈數(shù)據(jù)就可完全恢復(fù)而不會影響后續(xù)區(qū)塊數(shù)據(jù)的記錄與更新.這種高度分散化的區(qū)塊存儲模式與云存儲模式的區(qū)別在于,后者是基于中心化結(jié)構(gòu)基礎(chǔ)上的多重存儲和多重數(shù)據(jù)備份模式,即“多中心化”模式;而前者則是完全“去中心化”的存儲模式,具有更高的數(shù)據(jù)安全性.
2.3共識層
如何在分布式系統(tǒng)中高效地達(dá)成共識是分布式計算領(lǐng)域的重要研究問題.正如社會系統(tǒng)中“民主”和“集中”的對立關(guān)系相似,決策權(quán)越分散的系統(tǒng)達(dá)成共識的效率越低、但系統(tǒng)穩(wěn)定性和滿意度越高;而決策權(quán)越集中的系統(tǒng)更易達(dá)成共識,但同時更易出現(xiàn)專制和獨裁.區(qū)塊鏈技術(shù)的核心優(yōu)勢之一就是能夠在決策權(quán)高度分散的去中心化系統(tǒng)中使得各節(jié)點高效地針對區(qū)塊數(shù)據(jù)的有效性達(dá)成共識.
早期的比特幣區(qū)塊鏈采用高度依賴節(jié)點算力的工作量證明(Proof of work,PoW)機(jī)制來保證比特幣網(wǎng)絡(luò)分布式記賬的一致性.隨著區(qū)塊鏈技術(shù)的發(fā)展和各種競爭幣的相繼涌現(xiàn),研究者提出多種不依賴算力而能夠達(dá)成共識的機(jī)制,例如點點幣首創(chuàng)的權(quán)益證明(Proof of stake,PoS)共識[23]和比特股首創(chuàng)的授權(quán)股份證明機(jī)制(Delegated proof of stake,DPOS)共識機(jī)制[24]等.區(qū)塊鏈共識層即封裝了這些共識機(jī)制.
PoW共識:中本聰在其比特幣奠基性論文中設(shè)計了PoW共識機(jī)制,其核心思想是通過引入分布式節(jié)點的算力競爭來保證數(shù)據(jù)一致性和共識的安全性.比特幣系統(tǒng)中,各節(jié)點(即礦工)基于各自的計算機(jī)算力相互競爭來共同解決一個求解復(fù)雜但驗證容易的SHA256數(shù)學(xué)難題(即挖礦),最快解決該難題的節(jié)點將獲得區(qū)塊記賬權(quán)和系統(tǒng)自動生成的比特幣獎勵.該數(shù)學(xué)難題可表述為:根據(jù)當(dāng)前難度值,通過搜索求解一個合適的隨機(jī)數(shù)(Nonce)使得圖3中區(qū)塊頭各元數(shù)據(jù)的雙SHA256哈希值小于或等于目標(biāo)哈希值.比特幣系統(tǒng)通過靈活調(diào)整隨機(jī)數(shù)搜索的難度值來控制區(qū)塊的平均生成時間為10分鐘左右.一般說來,PoW共識的隨機(jī)數(shù)搜索過程如下(參照圖3區(qū)塊結(jié)構(gòu))[19]:
步驟1.搜集當(dāng)前時間段的全網(wǎng)未確認(rèn)交易,并增加一個用于發(fā)行新比特幣獎勵的Coinbase交易,形成當(dāng)前區(qū)塊體的交易集合;
步驟 2.計算區(qū)塊體交易集合的Merkle根記入?yún)^(qū)塊頭,并填寫區(qū)塊頭的其他元數(shù)據(jù),其中隨機(jī)數(shù)Nonce置零;
步驟3.隨機(jī)數(shù)Nonce加1;計算當(dāng)前區(qū)塊頭的雙SHA256哈希值,如果小于或等于目標(biāo)哈希值,則成功搜索到合適的隨機(jī)數(shù)并獲得該區(qū)塊的記賬權(quán);否則繼續(xù)步驟3直到任一節(jié)點搜索到合適的隨機(jī)數(shù)為止;
步驟4.如果一定時間內(nèi)未成功,則更新時間戳和未確認(rèn)交易集合、重新計算Merkle根后繼續(xù)搜索.
符合要求的區(qū)塊頭哈希值通常由多個前導(dǎo)零構(gòu)成,目標(biāo)哈希值越小,區(qū)塊頭哈希值的前導(dǎo)零越多,成功找到合適的隨機(jī)數(shù)并“挖”出新區(qū)塊的難度越大.據(jù)區(qū)塊鏈實時監(jiān)測網(wǎng)站Blockchain.info顯示,截止到2016年2月,符合要求的區(qū)塊頭哈希值一般有17個前導(dǎo)零,例如第398346號區(qū)塊哈希值為“0000000000000000077f754f22f21629a7975cf···”.按照概率計算,每16次隨機(jī)數(shù)搜索將會有找到一個含有一個前導(dǎo)零的區(qū)塊哈希值,因而比特幣目前17位前導(dǎo)零哈希值要求1617次隨機(jī)數(shù)搜索才能找到一個合適的隨機(jī)數(shù)并生成一個新的區(qū)塊.由此可見,比特幣區(qū)塊鏈系統(tǒng)的安全性和不可篡改性是由PoW共識機(jī)制的強(qiáng)大算力所保證的,任何對于區(qū)塊數(shù)據(jù)的攻擊或篡改都必須重新計算該區(qū)塊以及其后所有區(qū)塊的SHA256難題,并且計算速度必須使得偽造鏈長度超過主鏈,這種攻擊難度導(dǎo)致的成本將遠(yuǎn)超其收益.據(jù)估計,截止到2016年1月,比特幣區(qū)塊鏈的算力已經(jīng)達(dá)到800000000Gh/s,即每秒進(jìn)行8×1018次運(yùn)算,超過全球Top500超級計算機(jī)的算力總和.
PoW共識機(jī)制是具有重要意義的創(chuàng)新,其近乎完美地整合了比特幣系統(tǒng)的貨幣發(fā)行、交易支付和驗證等功能,并通過算力競爭保障系統(tǒng)的安全性和去中心性;PoW共識機(jī)制同時存在著顯著的缺陷,其強(qiáng)大算力造成的資源浪費(如電力)歷來為研究者所詬病,而且長達(dá)10分鐘的交易確認(rèn)時間使其相對不適合小額交易的商業(yè)應(yīng)用.
PoS共識機(jī)制:PoS共識是為解決PoW共識機(jī)制的資源浪費和安全性缺陷而提出的替代方案.限于篇幅,本文主要聚焦于PoS相對于PoW的創(chuàng)新之處.PoS共識本質(zhì)上是采用權(quán)益證明來代替PoW中的基于哈希算力的工作量證明,是由系統(tǒng)中具有最高權(quán)益而非最高算力的節(jié)點獲得區(qū)塊記賬權(quán).權(quán)益體現(xiàn)為節(jié)點對特定數(shù)量貨幣的所有權(quán),稱為幣齡或幣天數(shù)(Coin days).幣齡是特定數(shù)量的幣與其最后一次交易的時間長度的乘積,每次交易都將會消耗掉特定數(shù)量的幣齡.例如,某人在一筆交易中收到10個幣后并持有10天,則獲得100幣齡;而后其花掉5個幣后,則消耗掉50幣齡.顯然,采用PoS共識機(jī)制的系統(tǒng)在特定時間點上的幣齡總數(shù)是有限的,長期持幣者更傾向于擁有更多幣齡,因此幣齡可視為其在PoS系統(tǒng)中的權(quán)益.此外,PoW共識過程中各節(jié)點挖礦難度相同,而PoS共識過程中的難度與交易輸入的幣齡成反比,消耗幣齡越多則挖礦難度越低.節(jié)點判斷主鏈的標(biāo)準(zhǔn)也由PoW共識的最高累計難度轉(zhuǎn)變?yōu)樽罡呦膸琵g,每個區(qū)塊的交易都會將其消耗的幣齡提交給該區(qū)塊,累計消耗幣齡最高的區(qū)塊將被鏈接到主鏈.由此可見,PoS共識過程僅依靠內(nèi)部幣齡和權(quán)益而不需要消耗外部算力和資源,從根本上解決了PoW共識算力浪費的問題,并且能夠在一定程度上縮短達(dá)成共識的時間,因而比特幣之后的許多競爭幣均采用PoS共識機(jī)制.
DPoS共識機(jī)制:DPoS共識機(jī)制的基本思路類似于“董事會決策”,即系統(tǒng)中每個股東節(jié)點可以將其持有的股份權(quán)益作為選票授予一個代表,獲得票數(shù)最多且愿意成為代表的前101個節(jié)點將進(jìn)入“董事會”,按照既定的時間表輪流對交易進(jìn)行打包結(jié)算并且簽署(即生產(chǎn))一個新區(qū)塊.每個區(qū)塊被簽署之前,必須先驗證前一個區(qū)塊已經(jīng)被受信任的代表節(jié)點所簽署.“董事會”的授權(quán)代表節(jié)點可以從每筆交易的手續(xù)費中獲得收入,同時要成為授權(quán)代表節(jié)點必須繳納一定量的保證金,其金額相當(dāng)于生產(chǎn)一個區(qū)塊收入的100倍.授權(quán)代表節(jié)點必須對其他股東節(jié)點負(fù)責(zé),如果其錯過簽署相對應(yīng)的區(qū)塊,則股東將會收回選票從而將該節(jié)點“投出”董事會.因此,授權(quán)代表節(jié)點通常必須保證99%以上的在線時間以實現(xiàn)盈利目標(biāo)[24].顯然,與PoW共識機(jī)制必須信任最高算力節(jié)點和PoS共識機(jī)制必須信任最高權(quán)益節(jié)點不同的是,DPoS共識機(jī)制中每個節(jié)點都能夠自主決定其信任的授權(quán)節(jié)點且由這些節(jié)點輪流記賬生成新區(qū)塊,因而大幅減少了參與驗證和記賬的節(jié)點數(shù)量,可以實現(xiàn)快速共識驗證.
除上述三種主流共識機(jī)制外,實際區(qū)塊鏈應(yīng)用中也衍生出了PoW+PoS、行動證明(Proof of activity)等多個變種機(jī)制.這些共識機(jī)制各有優(yōu)劣勢,比特幣的PoW共識機(jī)制依靠其先發(fā)優(yōu)勢已經(jīng)形成成熟的挖礦產(chǎn)業(yè)鏈,支持者眾多,而PoS和DPoS等新興機(jī)制則更為安全、環(huán)保和高效,從而使得共識機(jī)制的選擇問題成為區(qū)塊鏈系統(tǒng)研究者最不易達(dá)成共識的問題.
2.4激勵層
區(qū)塊鏈共識過程通過匯聚大規(guī)模共識節(jié)點的算力資源來實現(xiàn)共享區(qū)塊鏈賬本的數(shù)據(jù)驗證和記賬工作,因而其本質(zhì)上是一種共識節(jié)點間的任務(wù)眾包過程.去中心化系統(tǒng)中的共識節(jié)點本身是自利的,最大化自身收益是其參與數(shù)據(jù)驗證和記賬的根本目標(biāo).因此,必須設(shè)計激勵相容的合理眾包機(jī)制,使得共識節(jié)點最大化自身收益的個體理性行為與保障去中心化區(qū)塊鏈系統(tǒng)的安全和有效性的整體目標(biāo)相吻合.區(qū)塊鏈系統(tǒng)通過設(shè)計適度的經(jīng)濟(jì)激勵機(jī)制并與共識過程相集成,從而匯聚大規(guī)模的節(jié)點參與并形成了對區(qū)塊鏈歷史的穩(wěn)定共識.
以比特幣為例,比特幣PoW共識中的經(jīng)濟(jì)激勵由新發(fā)行比特幣獎勵和交易流通過程中的手續(xù)費兩部分組成,獎勵給PoW共識過程中成功搜索到該區(qū)塊的隨機(jī)數(shù)并記錄該區(qū)塊的節(jié)點.因此,只有當(dāng)各節(jié)點通過合作共同構(gòu)建共享和可信的區(qū)塊鏈歷史記錄、并維護(hù)比特幣系統(tǒng)的有效性,其獲得的比特幣獎勵和交易手續(xù)費才會有價值.比特幣已經(jīng)形成成熟的挖礦生態(tài)圈,大量配備專業(yè)礦機(jī)設(shè)備的礦工積極參與基于挖礦的PoW共識過程,其根本目的就是通過獲取比特幣獎勵并轉(zhuǎn)換為相應(yīng)法幣來實現(xiàn)盈利.
發(fā)行機(jī)制:比特幣系統(tǒng)中每個區(qū)塊發(fā)行比特幣的數(shù)量是隨著時間階梯性遞減的.創(chuàng)世區(qū)塊起的每個區(qū)塊將發(fā)行50個比特幣獎勵給該區(qū)塊的記賬者,此后每隔約4年(21萬個區(qū)塊)每區(qū)塊發(fā)行比特幣的數(shù)量降低一半,依此類推,一直到比特幣的數(shù)量穩(wěn)定在上限2100萬為止[19].比特幣交易過程中會產(chǎn)生手續(xù)費,目前默認(rèn)手續(xù)費是萬分之一個比特幣,這部分費用也會記入?yún)^(qū)塊并獎勵給記賬者.這兩部分費用將會封裝在每個區(qū)塊的第一個交易(稱為Coinbase交易)中.雖然現(xiàn)在每個區(qū)塊的總手續(xù)費相對于新發(fā)行比特幣來說規(guī)模很小(通常不會超過1個比特幣),但隨著未來比特幣發(fā)行數(shù)量的逐步減少甚至停止發(fā)行,手續(xù)費將逐漸成為驅(qū)動節(jié)點共識和記賬的主要動力.同時,手續(xù)費還可以防止大量微額交易對比特幣網(wǎng)絡(luò)發(fā)起的“粉塵”攻擊,起到保障安全的作用.
分配機(jī)制:比特幣系統(tǒng)中,大量的小算力節(jié)點通常會選擇加入礦池,通過相互合作匯集算力來提高“挖”到新區(qū)塊的概率,并共享該區(qū)塊的比特幣和手續(xù)費獎勵.據(jù)Bitcoinmining.com統(tǒng)計,目前已經(jīng)存在13種不同的分配機(jī)制[25].主流礦池通常采用PPLNS(Pay per last N shares)、PPS(Pay per share)和PROP(PROPortionately)等機(jī)制.礦池將各節(jié)點貢獻(xiàn)的算力按比例劃分成不同的股份(Share),其中PPLNS機(jī)制是指發(fā)現(xiàn)區(qū)塊后,各合作節(jié)點根據(jù)其在最后N個股份內(nèi)貢獻(xiàn)的實際股份比例來分配區(qū)塊中的比特幣;PPS則直接根據(jù)股份比例為各節(jié)點估算和支付一個固定的理論收益,采用此方式的礦池將會適度收取手續(xù)費來彌補(bǔ)其為各節(jié)點承擔(dān)的收益不確定性風(fēng)險;PROP機(jī)制則根據(jù)節(jié)點貢獻(xiàn)的股份按比例地分配比特幣.礦池的出現(xiàn)是對比特幣和區(qū)塊鏈去中心化趨勢的潛在威脅,如何設(shè)計合理的分配機(jī)制引導(dǎo)各節(jié)點合理地合作、避免出現(xiàn)因算力過度集中而導(dǎo)致的安全性問題是亟待解決的研究問題.
2.5合約層
合約層封裝區(qū)塊鏈系統(tǒng)的各類腳本代碼、算法以及由此生成的更為復(fù)雜的智能合約.如果說數(shù)據(jù)、網(wǎng)絡(luò)和共識三個層次作為區(qū)塊鏈底層“虛擬機(jī)”分別承擔(dān)數(shù)據(jù)表示、數(shù)據(jù)傳播和數(shù)據(jù)驗證功能的話,合約層則是建立在區(qū)塊鏈虛擬機(jī)之上的商業(yè)邏輯和算法,是實現(xiàn)區(qū)塊鏈系統(tǒng)靈活編程和操作數(shù)據(jù)的基礎(chǔ).包括比特幣在內(nèi)的數(shù)字加密貨幣大多采用非圖靈完備的簡單腳本代碼來編程控制交易過程,這也是智能合約的雛形;隨著技術(shù)的發(fā)展,目前已經(jīng)出現(xiàn)以太坊等圖靈完備的可實現(xiàn)更為復(fù)雜和靈活的智能合約的腳本語言,使得區(qū)塊鏈能夠支持宏觀金融和社會系統(tǒng)的諸多應(yīng)用.本節(jié)將以比特幣腳本為例,從技術(shù)角度簡述合約層的基本技術(shù)和方法;關(guān)于智能合約的延伸內(nèi)容將在第5節(jié)討論.
比特幣采用一種簡單的、基于堆棧的、從左向右處理的腳本語言,而一個腳本本質(zhì)上是附著在比特幣交易上的一組指令的列表.比特幣交易依賴于兩類腳本來加以驗證,即鎖定腳本和解鎖腳本,二者的不同組合可在比特幣交易中衍生出無限數(shù)量的控制條件.其中,鎖定腳本是附著在交易輸出值上的“障礙”,規(guī)定以后花費這筆交易輸出的條件;解鎖腳本則是滿足被鎖定腳本在一個輸出上設(shè)定的花費條件的腳本,同時它將允許輸出被消費.舉例來說,大多數(shù)比特幣交易均是采用接受者的公鑰加密和私鑰解密,因而其對應(yīng)的P2PKH(Pay to public key hash)標(biāo)準(zhǔn)交易腳本中的鎖定腳本即是使用接受者的公鑰實現(xiàn)阻止輸出功能,而使用私鑰對應(yīng)的數(shù)字簽名來加以解鎖[19].
比特幣腳本系統(tǒng)可以實現(xiàn)靈活的交易控制.例如,通過規(guī)定某個時間段(如一周)作為解鎖條件,可以實現(xiàn)延時支付;通過規(guī)定接受者和擔(dān)保人必須共同私鑰簽名才能支配一筆比特幣,可以實現(xiàn)擔(dān)保交易;通過設(shè)計一種可根據(jù)外部信息源核查某概率事件是否發(fā)生的規(guī)則并作為解鎖腳本附著在一定數(shù)量的比特幣交易上,即可實現(xiàn)博彩和預(yù)測市場等類型的應(yīng)用;通過設(shè)定N個私鑰集合中至少提供M個私鑰才可解鎖,可實現(xiàn)M?N型多重簽名,即N個潛在接受者中至少有M 個同意簽名才可實現(xiàn)支付.多重簽名可廣泛應(yīng)用于公司決策、財務(wù)監(jiān)督、中介擔(dān)保甚至遺產(chǎn)分配等場景.
比特幣腳本是智能合約的雛形,催生了人類歷史上第一種可編程的全球性貨幣.然而,比特幣腳本系統(tǒng)是非圖靈完備的,其中不存在復(fù)雜循環(huán)和流控制,這在損失一定靈活性的同時能夠極大地降低復(fù)雜性和不確定性,并能夠避免因無限循環(huán)等邏輯炸彈而造成拒絕服務(wù)等類型的安全性攻擊.為提高腳本系統(tǒng)的靈活性和可擴(kuò)展性,研究者已經(jīng)嘗試在比特幣協(xié)議之上疊加新的協(xié)議,以滿足在區(qū)塊鏈上構(gòu)建更為復(fù)雜的智能合約的需求.以太坊已經(jīng)研發(fā)出一套圖靈完備的腳本語言,用戶可基于以太坊構(gòu)建任意復(fù)雜和精確定義的智能合約與去中心化應(yīng)用,從而為基于區(qū)塊鏈構(gòu)建可編程的金融與社會系統(tǒng)奠定了基礎(chǔ)[4].
由區(qū)塊鏈獨特的技術(shù)設(shè)計可見,區(qū)塊鏈系統(tǒng)具有分布式高冗余存儲、時序數(shù)據(jù)且不可篡改和偽造、去中心化信用、自動執(zhí)行的智能合約、安全和隱私保護(hù)等顯著的特點,這使得區(qū)塊鏈技術(shù)不僅可以成功應(yīng)用于數(shù)字加密貨幣領(lǐng)域,同時在經(jīng)濟(jì)、金融和社會系統(tǒng)中也存在廣泛的應(yīng)用場景.根據(jù)區(qū)塊鏈技術(shù)應(yīng)用的現(xiàn)狀,本文將區(qū)塊鏈目前的主要應(yīng)用籠統(tǒng)地歸納為數(shù)字貨幣、數(shù)據(jù)存儲、數(shù)據(jù)鑒證、金融交易、資產(chǎn)管理和選舉投票共六個場景,并概述除數(shù)字貨幣外的五大應(yīng)用場景以及區(qū)塊鏈的三種應(yīng)用模式.
數(shù)據(jù)存儲:區(qū)塊鏈的高冗余存儲(每個節(jié)點存儲一份數(shù)據(jù))、去中心化、高安全性和隱私保護(hù)等特點使其特別適合存儲和保護(hù)重要隱私數(shù)據(jù),以避免因中心化機(jī)構(gòu)遭受攻擊或權(quán)限管理不當(dāng)而造成的大規(guī)模數(shù)據(jù)丟失或泄露.與比特幣交易數(shù)據(jù)類似地,任意數(shù)據(jù)均可通過哈希運(yùn)算生成相應(yīng)的Merkle樹并打包記入?yún)^(qū)塊鏈,通過系統(tǒng)內(nèi)共識節(jié)點的算力和非對稱加密技術(shù)來保證安全性.區(qū)塊鏈的多重簽名技術(shù)可以靈活配置數(shù)據(jù)訪問的權(quán)限,例如必須獲得指定5個人中3個人的私鑰授權(quán)才可獲得訪問權(quán)限.目前,利用區(qū)塊鏈來存儲個人健康數(shù)據(jù)(如電子病歷、基因數(shù)據(jù)等)是極具前景的應(yīng)用領(lǐng)域,此外存儲各類重要電子文件(視頻、圖片、文本等)乃至人類思想和意識等也有一定應(yīng)用空間[7].
數(shù)據(jù)鑒證:區(qū)塊鏈數(shù)據(jù)帶有時間戳、由共識節(jié)點共同驗證和記錄、不可篡改和偽造,這些特點使得區(qū)塊鏈可廣泛應(yīng)用于各類數(shù)據(jù)公證和審計場景.例如,區(qū)塊鏈可以永久地安全存儲由政府機(jī)構(gòu)核發(fā)的各類許可證、登記表、執(zhí)照、證明、認(rèn)證和記錄等,并可在任意時間點方便地證明某項數(shù)據(jù)的存在性和一定程度上的真實性.包括德勤在內(nèi)的多家專業(yè)審計公司已經(jīng)部署區(qū)塊鏈技術(shù)來幫助其審計師實現(xiàn)低成本和高效地實時審計;Factom公司則基于區(qū)塊鏈設(shè)計了一套準(zhǔn)確的、可核查的和不可更改的審計公證流程與方法[26].
金融交易:區(qū)塊鏈技術(shù)與金融市場應(yīng)用有非常高的契合度.區(qū)塊鏈可以在去中心化系統(tǒng)中自發(fā)地產(chǎn)生信用,能夠建立無中心機(jī)構(gòu)信用背書的金融市場,從而在很大程度上實現(xiàn)了“金融脫媒”,這對第三方支付、資金托管等存在中介機(jī)構(gòu)的商業(yè)模式來說是顛覆性的變革;在互聯(lián)網(wǎng)金融領(lǐng)域,區(qū)塊鏈特別適合或者已經(jīng)應(yīng)用于股權(quán)眾籌、P2P網(wǎng)絡(luò)借貸和互聯(lián)網(wǎng)保險等商業(yè)模式;證券和銀行業(yè)務(wù)也是區(qū)塊鏈的重要應(yīng)用領(lǐng)域,傳統(tǒng)證券交易需要經(jīng)過中央結(jié)算機(jī)構(gòu)、銀行、證券公司和交易所等中心機(jī)構(gòu)的多重協(xié)調(diào),而利用區(qū)塊鏈自動化智能合約和可編程的特點,能夠極大地降低成本和提高效率,避免繁瑣的中心化清算交割過程,實現(xiàn)方便快捷的金融產(chǎn)品交易;同時,區(qū)塊鏈和比特幣的即時到帳的特點可使得銀行實現(xiàn)比SWIFT代碼體系更為快捷、經(jīng)濟(jì)和安全的跨境轉(zhuǎn)賬;這也是目前R3CEV和納斯達(dá)克等各大銀行、證券商和金融機(jī)構(gòu)相繼投入?yún)^(qū)塊鏈技術(shù)研發(fā)的重要原因.
資產(chǎn)管理:區(qū)塊鏈在資產(chǎn)管理領(lǐng)域的應(yīng)用具有廣泛前景,能夠?qū)崿F(xiàn)有形和無形資產(chǎn)的確權(quán)、授權(quán)和實時監(jiān)控.對于無形資產(chǎn)來說,基于時間戳技術(shù)和不可篡改等特點,可以將區(qū)塊鏈技術(shù)應(yīng)用于知識產(chǎn)權(quán)保護(hù)、域名管理、積分管理等領(lǐng)域;而對有形資產(chǎn)來說,通過結(jié)合物聯(lián)網(wǎng)技術(shù)為資產(chǎn)設(shè)計唯一標(biāo)識并部署到區(qū)塊鏈上,能夠形成“數(shù)字智能資產(chǎn)”,實現(xiàn)基于區(qū)塊鏈的分布式資產(chǎn)授權(quán)和控制.例如,通過對房屋、車輛等實物資產(chǎn)的區(qū)塊鏈密鑰授權(quán),可以基于特定權(quán)限來發(fā)放和回收資產(chǎn)的使用權(quán),有助于Airbnb等房屋租賃或車輛租賃等商業(yè)模式實現(xiàn)自動化的資產(chǎn)交接;通過結(jié)合物聯(lián)網(wǎng)的資產(chǎn)標(biāo)記和識別技術(shù),還可以利用區(qū)塊鏈實現(xiàn)靈活的供應(yīng)鏈管理和產(chǎn)品溯源等功能.
選舉投票:投票是區(qū)塊鏈技術(shù)在政治事務(wù)中的代表性應(yīng)用.基于區(qū)塊鏈的分布式共識驗證、不可篡改等特點,可以低成本高效地實現(xiàn)政治選舉、企業(yè)股東投票等應(yīng)用;同時,區(qū)塊鏈也支持用戶個體對特定議題的投票.例如,通過記錄用戶對特定事件是否發(fā)生的投票,可以將區(qū)塊鏈應(yīng)用于博彩和預(yù)測市場等場景[27];通過記錄用戶對特定產(chǎn)品的投票評分與建議,可以實現(xiàn)大規(guī)模用戶眾包設(shè)計產(chǎn)品的“社會制造”模式等.
根據(jù)實際應(yīng)用場景和需求,區(qū)塊鏈技術(shù)已經(jīng)演化出三種應(yīng)用模式,即公共鏈(Public blockchain)、聯(lián)盟鏈(Consortium blockchain)和私有鏈(Private blockchain).公共鏈?zhǔn)峭耆ブ行幕膮^(qū)塊鏈,分布式系統(tǒng)的任何節(jié)點均可參與鏈上數(shù)據(jù)的讀寫、驗證和共識過程,并根據(jù)其PoW或PoS貢獻(xiàn)獲得相應(yīng)的經(jīng)濟(jì)激勵.比特幣是公共鏈的典型代表.聯(lián)盟鏈則是部分去中心化(或稱多中心化)的區(qū)塊鏈,適用于多個實體構(gòu)成的組織或聯(lián)盟,其共識過程受到預(yù)定義的一組節(jié)點控制,例如生成區(qū)塊需要獲得10個預(yù)選的共識節(jié)點中的5個節(jié)點確認(rèn);私有鏈則是完全中心化的區(qū)塊鏈,適用于特定機(jī)構(gòu)的內(nèi)部數(shù)據(jù)管理與審計等,其寫入權(quán)限由中心機(jī)構(gòu)控制,而讀取權(quán)限可視需求有選擇性地對外開放.需要說明的是,由于去中心化程度不同,聯(lián)盟鏈和私有鏈可能不完全符合第2節(jié)提出的區(qū)塊鏈模型,例如中心化程度較高的區(qū)塊鏈可能不需要設(shè)計激勵層中的經(jīng)濟(jì)激勵等.
作為近年來興起并快速發(fā)展的新技術(shù),區(qū)塊鏈必然會面臨各種制約其發(fā)展的問題和障礙.本節(jié)將從安全、效率、資源和博弈四方面概述區(qū)塊鏈技術(shù)有待解決的問題.
4.1安全問題
安全性威脅是區(qū)塊鏈迄今為止所面臨的最重要的問題.其中,基于PoW共識過程的區(qū)塊鏈主要面臨的是51%攻擊問題,即節(jié)點通過掌握全網(wǎng)超過51%的算力就有能力成功篡改和偽造區(qū)塊鏈數(shù)據(jù).以比特幣為例,據(jù)統(tǒng)計中國大型礦池的算力已占全網(wǎng)總算力的60%以上,理論上這些礦池可以通過合作實施51%攻擊,從而實現(xiàn)比特幣的雙重支付[1].雖然實際系統(tǒng)中為掌握全網(wǎng)51%算力所需的成本投入遠(yuǎn)超成功實施攻擊后的收益,但51%攻擊的安全性威脅始終存在.基于PoS共識過程在一定程度上解決了51%攻擊問題,但同時也引入了區(qū)塊分叉時的N@S(Nothing at stake)攻擊問題.研究者已經(jīng)提出通過構(gòu)造同時依賴高算力和高內(nèi)存的PoW共識算法來部分解決51%攻擊問題[4],更為安全和有效的共識機(jī)制尚有待于更加深入的研究和設(shè)計.
區(qū)塊鏈的非對稱加密機(jī)制也將隨著數(shù)學(xué)、密碼學(xué)和計算技術(shù)的發(fā)展而變的越來越脆弱.據(jù)估計,以目前天河二號的算力來說,產(chǎn)生比特幣SHA256哈希算法的一個哈希碰撞大約需要248年,但隨著量子計算機(jī)等新計算技術(shù)的發(fā)展,未來非對稱加密算法具有一定的破解可能性,這也是區(qū)塊鏈技術(shù)面臨的潛在安全威脅.
區(qū)塊鏈的隱私保護(hù)也存在安全性風(fēng)險.區(qū)塊鏈系統(tǒng)內(nèi)各節(jié)點并非完全匿名,而是通過類似電子郵件地址的地址標(biāo)識(例如比特幣公鑰地址)來實現(xiàn)數(shù)據(jù)傳輸.雖然地址標(biāo)識并未直接與真實世界的人物身份相關(guān)聯(lián),但區(qū)塊鏈數(shù)據(jù)是完全公開透明的,隨著各類反匿名身份甄別技術(shù)的發(fā)展,實現(xiàn)部分重點目標(biāo)的定位和識別仍是有可能的.
4.2效率問題
區(qū)塊鏈效率也是制約其應(yīng)用的重要因素.首先是區(qū)塊膨脹問題:區(qū)塊鏈要求系統(tǒng)內(nèi)每個節(jié)點保存一份數(shù)據(jù)備份,這對于日益增長的海量數(shù)據(jù)存儲來說是極為困難的.以比特幣為例,完全同步自創(chuàng)世區(qū)塊至今的區(qū)塊數(shù)據(jù)需要約60GB存儲空間,雖然輕量級節(jié)點可部分解決此問題,但適用于更大規(guī)模的工業(yè)級解決方案仍有待研發(fā)[28].其次是交易效率問題:比特幣區(qū)塊鏈目前每秒僅能處理7筆交易,這極大地限制了區(qū)塊鏈在大多數(shù)金融系統(tǒng)高頻交易場景中的應(yīng)用(例如VISA信用卡每秒最多可處理10000筆交易)[1];最后是交易確認(rèn)時間問題:比特幣區(qū)塊生成時間為10分鐘,因而交易確認(rèn)時間一般為10分鐘,這在一定程度上限制了比特幣在小額交易和時間敏感交易中的應(yīng)用.
4.3資源問題
PoW共識過程高度依賴區(qū)塊鏈網(wǎng)絡(luò)節(jié)點貢獻(xiàn)的算力,這些算力主要用于解決SHA256哈希和隨機(jī)數(shù)搜索,除此之外并不產(chǎn)生任何實際社會價值,因而一般意義上認(rèn)為這些算力資源是被“浪費”掉了,同時被浪費掉的還有大量的電力資源.隨著比特幣的日益普及和專業(yè)挖礦設(shè)備的出現(xiàn),比特幣生態(tài)圈已經(jīng)在資本和設(shè)備方面呈現(xiàn)出明顯的軍備競賽態(tài)勢,逐漸成為高耗能的資本密集型行業(yè),進(jìn)一步凸顯了資源消耗問題的重要性.因此,如何能有效匯集分布式節(jié)點的網(wǎng)絡(luò)算力來解決實際問題,是區(qū)塊鏈技術(shù)需要解決的重要問題.研究者目前已經(jīng)開始嘗試解決此問題,例如Primecoin(質(zhì)數(shù)幣)要求各節(jié)點在共識過程中找到素數(shù)的最長鏈條(坎寧安鏈和雙向雙鏈)而非無意義的SHA256哈希值[29].未來的潛在發(fā)展趨勢是設(shè)計行之有效的交互機(jī)制來匯聚和利用分布式共識節(jié)點的群體智能,以輔助解決大規(guī)模的實際問題.
4.4博弈問題
區(qū)塊鏈網(wǎng)絡(luò)作為去中心化的分布式系統(tǒng),其各節(jié)點在交互過程中不可避免地會存在相互競爭與合作的博弈關(guān)系,這在比特幣挖礦過程中尤為明顯.通常來說,比特幣礦池間可以通過相互合作保持各自穩(wěn)定的收益.然而,礦池可以通過稱為區(qū)塊截留攻擊(Block withholding attacks)的方式、通過偽裝為對手礦池的礦工、享受對手礦池的收益但不實際貢獻(xiàn)完整工作量證明來攻擊其他礦池,從而降低對手礦池的收益.如果礦池相互攻擊,則雙方獲得的收益均少于不攻擊對方的收益.當(dāng)?shù)V池收益函數(shù)滿足特定條件時,這種攻擊和競爭將會造成“囚徒困境”博弈結(jié)局[30].如何設(shè)計合理的懲罰函數(shù)來抑制非理性競爭、使得合作成為重復(fù)性礦池博弈的穩(wěn)定均衡解,尚需進(jìn)一步深入研究.此外,正如前文提到的,區(qū)塊鏈共識過程本質(zhì)上是眾包過程,如何設(shè)計激勵相容的共識機(jī)制,使得去中心化系統(tǒng)中的自利節(jié)點能夠自發(fā)地實施區(qū)塊數(shù)據(jù)的驗證和記賬工作,并提高系統(tǒng)內(nèi)非理性行為的成本以抑制安全性攻擊和威脅,是區(qū)塊鏈有待解決的重要科學(xué)問題.
智能合約概念最早在1994年由學(xué)者Nick Szabo提出,最初被定義為一套以數(shù)字形式定義的承諾,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議,其設(shè)計初衷是希望通過將智能合約內(nèi)置到物理實體來創(chuàng)造各種靈活可控的智能資產(chǎn).由于計算手段的落后和應(yīng)用場景的缺失,智能合約并未受到研究者的廣泛關(guān)注.
區(qū)塊鏈技術(shù)的出現(xiàn)重新定義了智能合約.智能合約是區(qū)塊鏈的核心構(gòu)成要素(合約層),是由事件驅(qū)動的、具有狀態(tài)的、運(yùn)行在可復(fù)制的共享區(qū)塊鏈數(shù)據(jù)賬本上的計算機(jī)程序,能夠?qū)崿F(xiàn)主動或被動的處理數(shù)據(jù),接受、儲存和發(fā)送價值,以及控制和管理各類鏈上智能資產(chǎn)等功能.智能合約作為一種嵌入式程序化合約,可以內(nèi)置在任何區(qū)塊鏈數(shù)據(jù)、交易、有形或無形資產(chǎn)上,形成可編程控制的軟件定義的系統(tǒng)、市場和資產(chǎn).智能合約不僅為傳統(tǒng)金融資產(chǎn)的發(fā)行、交易、創(chuàng)造和管理提供了創(chuàng)新性的解決方案,同時能夠在社會系統(tǒng)中的資產(chǎn)管理、合同管理、監(jiān)管執(zhí)法等事務(wù)中發(fā)揮重要作用.
具體說來,智能合約是一組情景-應(yīng)對型的程序化規(guī)則和邏輯,是部署在區(qū)塊鏈上的去中心化、可信共享的程序代碼.智能合約同樣具有區(qū)塊鏈數(shù)據(jù)的一般特征,如分布式記錄、存儲和驗證,不可篡改和偽造等.簽署合約的各參與方就合約內(nèi)容、違約條件、違約責(zé)任和外部核查數(shù)據(jù)源達(dá)成一致,必要時檢查和測試合約代碼以確保無誤后,以智能合約的形式部署在區(qū)塊鏈上,即可不依賴任何中心機(jī)構(gòu)地自動化代表各簽署方執(zhí)行合約.智能合約的可編程特性使得簽署方可以增加任意復(fù)雜的條款.
智能合約的運(yùn)作機(jī)理如圖5所示:通常情況下,智能合約經(jīng)各方簽署后,以程序代碼的形式附著在區(qū)塊鏈數(shù)據(jù)(例如一筆比特幣交易)上,經(jīng)P2P網(wǎng)絡(luò)傳播和節(jié)點驗證后記入?yún)^(qū)塊鏈的特定區(qū)塊中.智能合約封裝了預(yù)定義的若干狀態(tài)及轉(zhuǎn)換規(guī)則、觸發(fā)合約執(zhí)行的情景(如到達(dá)特定時間或發(fā)生特定事件等)、特定情景下的應(yīng)對行動等.區(qū)塊鏈可實時監(jiān)控智能合約的狀態(tài),并通過核查外部數(shù)據(jù)源、確認(rèn)滿足特定觸發(fā)條件后激活并執(zhí)行合約.
圖5 智能合約的運(yùn)作機(jī)理Fig.5 The rationale of smart contracts
區(qū)塊鏈和智能合約有極為廣闊的應(yīng)用場景.例如,互聯(lián)網(wǎng)金融領(lǐng)域的股權(quán)眾籌或P2P網(wǎng)絡(luò)借貸等商業(yè)模式可以通過區(qū)塊鏈和智能合約加以實現(xiàn).傳統(tǒng)方式是通過股權(quán)眾籌或P2P借貸的交易所或網(wǎng)絡(luò)平臺作為中心機(jī)構(gòu)完成資金募集、管理和投資,實際操作過程中容易出現(xiàn)因中心機(jī)構(gòu)的信用缺失而導(dǎo)致的資金風(fēng)險.利用智能合約,這些功能均可以封裝在去中心化可信的區(qū)塊鏈上自動執(zhí)行.區(qū)塊鏈可記錄每一筆融資,當(dāng)成功達(dá)到特定融資額度時計算每個投資人的股權(quán)份額,或在一段時間內(nèi)未達(dá)到融資額度時自動將資金退還給投資人.再如,通過將房屋和車輛等實體資產(chǎn)進(jìn)行非對稱加密,并嵌入含有特定訪問控制規(guī)則的智能合約后部署在區(qū)塊鏈上,使用者符合特定的訪問權(quán)限或執(zhí)行特定操作(如付款)后就可使用這些資產(chǎn),這能夠有效解決房屋或車輛租賃商業(yè)模式中資產(chǎn)交接和使用許可方面的痛點.
智能合約具有自治、自足和去中心化等特征.自治表示合約一旦啟動就會自動運(yùn)行,而不需要其他簽署方進(jìn)行任何干預(yù);自足則意味著合約能夠通過提供服務(wù)或發(fā)行資產(chǎn)來獲取資金,并在需要時使用這些資金;去中心化則意味著智能合約是由去中心化存儲和驗證的程序代碼而非中心化實體來保障執(zhí)行的合約,能在很大程度上保證合約的公平和公正性[1].
智能合約對于區(qū)塊鏈技術(shù)來說具有重要的意義.一方面,智能合約是區(qū)塊鏈的激活器,為靜態(tài)的底層區(qū)塊鏈數(shù)據(jù)賦予了靈活可編程的機(jī)制和算法,并為構(gòu)建區(qū)塊鏈2.0和3.0時代的可編程金融系統(tǒng)與社會系統(tǒng)奠定了基礎(chǔ);另一方面,智能合約的自動化和可編程特性使其可封裝分布式區(qū)塊鏈系統(tǒng)中各節(jié)點的復(fù)雜行為,成為區(qū)塊鏈構(gòu)成的虛擬世界中的軟件代理機(jī)器人,這有助于促進(jìn)區(qū)塊鏈技術(shù)在各類分布式人工智能系統(tǒng)中的應(yīng)用,使得基于區(qū)塊鏈技術(shù)構(gòu)建各類去中心化應(yīng)用(Decentralized application,Dapp)、去中心化自治組織(Decentralized autonomous organization,DAO)、去中心化自治公司(Decentralized autonomous corporation,DAC)甚至去中心化自治社會(Decentralized autonomous society,DAS)成為可能.
就現(xiàn)狀而言,區(qū)塊鏈和智能合約技術(shù)的主要發(fā)展趨勢是由自動化向智能化方向演化.現(xiàn)存的各類智能合約及其應(yīng)用的本質(zhì)邏輯大多仍是根據(jù)預(yù)定義場景的“IF-THEN”類型的條件響應(yīng)規(guī)則,能夠滿足目前自動化交易和數(shù)據(jù)處理的需求.未來的智能合約應(yīng)具備根據(jù)未知場景的“WHAT-IF”推演、計算實驗和一定程度上的自主決策功能,從而實現(xiàn)由目前“自動化”合約向真正的“智能”合約的飛躍[31?32].
互聯(lián)網(wǎng)近年來的迅猛發(fā)展及其與物理世界的深度耦合與強(qiáng)力反饋,已經(jīng)根本性地改變了現(xiàn)代社會的生產(chǎn)、生活與管理決策模式,形成了現(xiàn)實物理世界-虛擬網(wǎng)絡(luò)空間緊密耦合、虛實互動和協(xié)同演化的平行社會空間,催生了“互聯(lián)網(wǎng)+”和工業(yè)4.0等一系列國家戰(zhàn)略.未來社會的發(fā)展趨勢則必將從物理+網(wǎng)絡(luò)的CPS實際世界(Cyber-physical systems,CPS)走向精神層面的人工世界,形成物理+網(wǎng)絡(luò)+人工的人-機(jī)-物一體化的三元耦合系統(tǒng),稱為社會物理信息系統(tǒng)(Cyber-physical-social systems,CPSS).目前,基于CPSS的平行社會已現(xiàn)端倪,其核心和本質(zhì)特征是虛實互動與平行演化[33].
區(qū)塊鏈?zhǔn)菍崿F(xiàn)CPSS平行社會的基礎(chǔ)架構(gòu)之一,其主要貢獻(xiàn)是為分布式社會系統(tǒng)和分布式人工智能研究提供了一套行之有效的去中心化的數(shù)據(jù)結(jié)構(gòu)、交互機(jī)制和計算模式,并為實現(xiàn)平行社會奠定了堅實的數(shù)據(jù)基礎(chǔ)和信用基礎(chǔ).就數(shù)據(jù)基礎(chǔ)而言,管理學(xué)家愛德華戴明曾說過:除了上帝,所有人必須以數(shù)據(jù)說話.然而在中心化社會系統(tǒng)中,數(shù)據(jù)通常掌握在政府和大型企業(yè)等“少數(shù)人”手中,為少數(shù)人“說話”,其公正性、權(quán)威性甚至安全性可能都無法保證.區(qū)塊鏈數(shù)據(jù)則通過高度冗余的分布式節(jié)點存儲,掌握在“所有人”手中,能夠做到真正的“數(shù)據(jù)民主”.就信用基礎(chǔ)而言,中心化社會系統(tǒng)因其高度工程復(fù)雜性和社會復(fù)雜性而不可避免地會存在“默頓系統(tǒng)”的特性,即不確定性、多樣性和復(fù)雜性,社會系統(tǒng)中的中心機(jī)構(gòu)和規(guī)則制定者可能會因個體利益而出現(xiàn)失信行為;區(qū)塊鏈技術(shù)有助于實現(xiàn)軟件定義的社會系統(tǒng),其基本理念就是剔除中心化機(jī)構(gòu)、將不可預(yù)測的行為以智能合約的程序化代碼形式提前部署和固化在區(qū)塊鏈數(shù)據(jù)中,事后不可偽造和篡改并自動化執(zhí)行,從而在一定程度上能夠?qū)ⅰ澳D”社會系統(tǒng)轉(zhuǎn)化為可全面觀察、可主動控制、可精確預(yù)測的“牛頓”社會系統(tǒng)[34].
ACP(人工社會Artificial societies、計算實驗Computational experiments和平行執(zhí)行Parallel execution)方法是迄今為止平行社會管理領(lǐng)域唯一成體系化的、完整的研究框架,是復(fù)雜性科學(xué)在新時代平行社會環(huán)境下的邏輯延展和創(chuàng)新[35].ACP方法可以自然地與區(qū)塊鏈技術(shù)相結(jié)合,實現(xiàn)區(qū)塊鏈驅(qū)動的平行社會管理.首先,區(qū)塊鏈的P2P組網(wǎng)、分布式共識協(xié)作和基于貢獻(xiàn)的經(jīng)濟(jì)激勵等機(jī)制本身就是分布式社會系統(tǒng)的自然建模,其中每個節(jié)點都將作為分布式系統(tǒng)中的一個自主和自治的智能體(Agent).隨著區(qū)塊鏈生態(tài)體系的完善,區(qū)塊鏈各共識節(jié)點和日益復(fù)雜與自治的智能合約將通過參與各種形式的Dapp,形成特定組織形式的DAC和DAO,最終形成DAS,即ACP中的人工社會[36].其次,智能合約的可編程特性使得區(qū)塊鏈可進(jìn)行各種“WHAT-IF”類型的虛擬實驗設(shè)計、場景推演和結(jié)果評估,通過這種計算實驗過程獲得并自動或半自動地執(zhí)行最優(yōu)決策.最后,區(qū)塊鏈與物聯(lián)網(wǎng)等相結(jié)合形成的智能資產(chǎn)使得聯(lián)通現(xiàn)實物理世界和虛擬網(wǎng)絡(luò)空間成為可能,并可通過真實和人工社會系統(tǒng)的虛實互動和平行調(diào)諧實現(xiàn)社會管理和決策的協(xié)同優(yōu)化.不難預(yù)見,未來現(xiàn)實物理世界的實體資產(chǎn)都登記為鏈上智能資產(chǎn)的時候,就是區(qū)塊鏈驅(qū)動的平行社會到來之時.
隨著以比特幣為代表的數(shù)字加密貨幣的強(qiáng)勢崛起,新興的區(qū)塊鏈技術(shù)逐漸成為學(xué)術(shù)界和產(chǎn)業(yè)界的熱點研究課題.區(qū)塊鏈技術(shù)的去中心化信用、不可篡改和可編程等特點,使其在數(shù)字加密貨幣、金融和社會系統(tǒng)中有廣泛的應(yīng)用前景.然而,與蓬勃發(fā)展的區(qū)塊鏈商業(yè)應(yīng)用相比,區(qū)塊鏈的基礎(chǔ)理論和技術(shù)研究仍處于起步階段,許多更為本質(zhì)性的、對區(qū)塊鏈產(chǎn)業(yè)發(fā)展至關(guān)重要的科學(xué)問題亟待研究跟進(jìn).本文系統(tǒng)地梳理了區(qū)塊鏈技術(shù)的基本原理、技術(shù)、方法與應(yīng)用,以期為未來研究提供有益的啟發(fā)與借鑒.
References
1 Swan M.Blockchain:Blueprint for a New Economy.USA: O'Reilly Media Inc.,2015.
2 Technical report by the UK government chief scientific adviser[Online],available:https://www.gov.uk/government/ uploads/system/uploads/attachment_data/file/492972/gs-16-1-distributed-ledger-technology.pdf,F(xiàn)ebruary 21,2016
3 Nakamoto S.Bitcoin:a peer-to-peer electronic cash system[Online],available:https://bitcoin.org/bitcoin.pdf,2009
4 Ethereum White Paper.A next-generation smart contractanddecentralizedapplicationplatform[Online],available:https://github.com/ethereum/wiki/wiki/White-Paper,November 12,2015
5 Ding Wei.Block chain based instrument data management system.China Instrumentation,2015,(10):15?17(丁未.基于區(qū)塊鏈技術(shù)的儀器數(shù)據(jù)管理創(chuàng)新系統(tǒng).中國儀器儀表,2015,(10):15?17)
6 Zhao He,Li Xiao-Feng,Zhan Li-Kui,Wu Zhong-Cheng. Data integrity protection method for microorganism sampling robots based on blockchain technology.Journal of Huazhong University of Science and Technology(Natural Science Edition),2015,43(Z1):216?219(趙赫,李曉風(fēng),占禮葵,吳仲城.基于區(qū)塊鏈技術(shù)的采樣機(jī)器人數(shù)據(jù)保護(hù)方法.華中科技大學(xué)學(xué)報(自然科學(xué)版),2015,43(增刊): 216?219)
7 Swan M.Blockchain thinking:the brain as a decentralized autonomous corporation.IEEE Technology and Society Magazine,2015,34(4):41?52
8 Davidson Eric.Letter.New Scientist,2015,228(3043): 52?52
9 Anonymous.New kid on the blockchain.New Scientist,2015,225(3009):7
10 Godsiff P.Bitcoin:bubble or blockchain.In:Proceedings of the 9th KES International Conference on Agent and Multi-Agent Systems:Technologies and Applications(KESAMSTA).Sorrento,Italy:Springer,2015,38:191?203
11 Kraft D.Difficulty control for blockchain-based consensus systems.Peer-to-Peer Networking and Applications,2016,9(2):397?413
12 Wilson D,Ateniese G.From pretty good to great:enhancing PGP using Bitcoin and the blockchain.In:Proceedings of the 9th International Conference on Network and System Security.New York:Springer International Publishing,2015,9408:368?375
13 Zyskind G,Nathan O,Pentland A S.Decentralizing privacy: using blockchain to protect personal data.In:Proceedings of the 2015 IEEE Security and Privacy Workshops(SPW 2015).San Jose,CA:IEEE,2015.180?184
14 Kypriotaki K N,Zamani E D,Giaglis G M.From Bitcoin to decentralized autonomous corporations:extending the application scope of decentralized peer-to-peer networks and blockchains.In:Proceedings of the 17th International Conference on Enterprise Information Systems(ICEIS2015). 2015,3:284?290
15 BlockchainMonitoringWebsite[Online],available: https://blockchain.info/,January 8,2016
16 Cryptocurrency Monitoring Website[Online],available: http://coinmarketcap.com/,November 24,2015
17 World Economic Forum Survey[Online],available:http:// www.coinfox.info/news/3184-world-economic-forum-survey -10-of-global-gdp-may-be-stored-with-blockchain-technolog y-by-2027,F(xiàn)ebruary 21,2016
18 CoinDesk Report[Online],available:http://www.bitcoin86.com/news/3527.html,F(xiàn)ebruary 21,2016
19 Antonopoulos A M.Mastering Bitcoin:Unlocking Digital Cryptocurrencies.USA:O'Reilly Media Inc.,2014.
20 Fan Jie,Yi Le-Tian,Shu Ji-Wu.Research on the technologies of Byzantine system.Journal of Software,2013,24(6): 1346?1360(范捷,易樂天,舒繼武.拜占庭系統(tǒng)技術(shù)研究綜述.軟件學(xué)報,2013,24(6):1346?1360)
21 Bitcoin Sourcecode[Online],available:https://github.com/ bitcoin/bitcoin/,January 18,2016
22 Merkle R C.Protocols for public key cryptosystems.In:Proceedings of the 1980 IEEE Symposium on Security and Privacy.Oakland,CA,USA:IEEE,1980.122
23 LarimerD.Transactionsasproof-of-stake[Online],available:http://7fvhfe.com1.z0.glb.clouddn.com/@/wpcontent/uploads/2014/01/TransactionsAsProofOfStake10. pdf,2013
24 Larimer D.Delegated proof-of-stake white paper[Online],available:http://www.bts.hk/dpos-baipishu.html,2014
25 Bitcoinmining Article[Online],available:https://www. bitcoinmining.com/bitcoin-mining-pools,December 8,2015
26 Factom White Paper[Online],available:http://bite01. com/bit/1421,December 29,2015
27 Brito J,Shadab H,Castillo A.Bitcoin financial regulation: securities,derivatives,prediction markets,and gambling. The Columbia Science&Technology Law Review,2014,16: 144?221
28 Eyal I,Efe Gencer A,Sirer E G,van Renesse R.Bitcoin-NG: a scalable blockchain protocol.Cryptography and Security,arXiv:1510.02037
29 Primecoin Website[Online],available:http://primecoin.io/,F(xiàn)ebruary 9,2016
30 Courtois N T,Bahack L.On subversive miner strategies and block withholding attack in Bitcoin digital currency.Cryptography and Security,arXiv:1402.1718
31 Wang Fei-Yue.Computational experiments for behavior analysis and decision evaluation of complex systems.Journal of System Simulation,2004,16(5):893?897(王飛躍.計算實驗方法與復(fù)雜系統(tǒng)行為分析和決策評估.系統(tǒng)仿真學(xué)報,2004,16(5):893?897)
32 Wang Fei-Yue,Qiu Xiao-Gang,Zeng Da-Jun,Cao Zhi-Dong,F(xiàn)an Zong-Chen.A computational experimental platform for emergency response based on parallel systems. Complex Systems and Complexity Science,2010,7(4): 1?10(王飛躍,邱曉剛,曾大軍,曹志冬,樊宗臣.基于平行系統(tǒng)的非常規(guī)突發(fā)事件計算實驗平臺研究.復(fù)雜系統(tǒng)與復(fù)雜性科學(xué),2010,7(4): 1?10)
33 Wang Fei-Yue,Wang Xiao,Yuan Yong,Wang Tao,Lin Yi-Lun.Social computing and computational societies:the foundation and consequence of smart societies.Chinese Science Bulletin,2015,60(5?6):460?469(王飛躍,王曉,袁勇,王濤,林懿倫.社會計算與計算社會:智慧社會的基礎(chǔ)與必然.科學(xué)通報,2015,60(5?6):460?469)
34 Wang Fei-Yue.Software-defined systems and knowledge automation:a parallel paradigm shift from Newton to Merton. Acta Automatica Sinica,2015,41(1):1?8(王飛躍.軟件定義的系統(tǒng)與知識自動化:從牛頓到默頓的平行升華.自動化學(xué)報,2015,41(1):1?8)
35 Wang Fei-Yue.Artificial societies,computational experiments,and parallel systems:a discussion on computational theory of complex social-economic systems.Complex Systems and Complexity Science,2004,1(4):25?35(王飛躍.人工社會、計算實驗、平行系統(tǒng):關(guān)于復(fù)雜社會經(jīng)濟(jì)系統(tǒng)計算研究的討論.復(fù)雜系統(tǒng)與復(fù)雜性科學(xué),2004,1(4):25?35)
36 Wang Fei-Yue,Jiang Zheng-Hua,Dai Ru-Wei.Population studies and artificial societies:a discussion of artificial population systems and their applications.Complex Systems and Complexity Science,2005,2(1):1?9(王飛躍,蔣正華,戴汝為.人口問題與人工社會方法:人工人口系統(tǒng)的設(shè)想與應(yīng)用.復(fù)雜系統(tǒng)與復(fù)雜性科學(xué),2005,2(1):1?9)
袁 勇中國科學(xué)院自動化研究所復(fù)雜系統(tǒng)管理與控制國家重點實驗室副研究員.2008年于山東科技大學(xué)獲得計算機(jī)軟件與理論專業(yè)博士學(xué)位.主要研究方向為商務(wù)智能與計算廣告學(xué).本文通信作者.E-mail:yong.yuan@ia.ac.cn
(YUAN YongAssociate professor at the State Key Laboratory of Management and Control for Complex Systems,Institute of Automation,Chinese Academy of Sciences.He received his Ph.D.degree in computer software and theory from Shandong University of Science and Technology in 2008.His research interest covers business intelligence and computational advertising.Corresponding author of this paper.)
王飛躍中國科學(xué)院自動化研究所復(fù)雜系統(tǒng)管理與控制國家重點實驗室研究員,國防科技大學(xué)軍事計算實驗與平行系統(tǒng)技術(shù)中心教授.主要研究方向為智能系統(tǒng)和復(fù)雜系統(tǒng)的建模,分析與控制.E-mail:feiyue.wang@ia.ac.cn
(WANG Fei-YueProfessor at the State Key Laboratory of Management and Control for Complex Systems,Institute of Automation,Chinese Academy of Sciences.He is also a professor at the Research Center of Military Computational Experiments and Parallel System,National University of Defense Technology.His research interest covers modeling,analysis,and control of intelligent systems and complex systems.)
Blockchain:The State of the Art and Future Trends
YUAN Yong1,2WANG Fei-Yue1,3
Blockchain is an emerging decentralized architecture and distributed computing paradigm underlying Bitcoin and other cryptocurrencies,and has recently attracted intensive attention from governments,financial institutions,hightech enterprises,and the capital markets.Blockchain's key advantages include decentralization,time-series data,collective maintenance,programmability and security,and thus is particularly suitable for constructing a programmable monetary system,financial system,and even the macroscopic societal system.In this paper,we proposed a basic model of the blockchain system,discussed the principles,technologies,methods and applications of blockchain and the related Bitcoin systems.We also discussed the smart contract and its applications,and presented the future trends of blockchain-enabled paralleled societies.This paper is aimed at providing helpful guidance and reference for future research efforts.
Blockchain,Bitcoin,consensus mechanism,smart contract,paralleled society
Manuscript February 22,2016;accepted March 2,2016
10.16383/j.aas.2016.c160158
Yuan Yong,Wang Fei-Yue.Blockchain:the state of the art and future trends.Acta Automatica Sinica,2016,42(4):481?494
2016-02-22錄用日期2016-03-02
國家自然科學(xué)基金(71472174,71102117,61533019,71232006,61233001)資助
Supported by National Natural Science Foundation of China(71472174,71102117,61533019,71232006,61233001)
本文責(zé)任編委林宗利
Recommended by Associate Editor LIN Zong-Li
1.中國科學(xué)院自動化研究所復(fù)雜系統(tǒng)管理與控制國家重點實驗室北京1001902.青島智能產(chǎn)業(yè)技術(shù)研究院青島2661093.國防科技大學(xué)軍事計算實驗與平行系統(tǒng)技術(shù)中心長沙410073
1.The State Key Laboratory of Management and Control for Complex Systems,Institute of Automation,Chinese Academy of Sciences,Beijing 1001902.Qingdao Academy of Intelligent Industries,Qingdao 2661093.Research Center of Military Computational Experiments and Parallel System,National University of Defense Technology,Changsha 410073