袁勇 王飛躍
區塊鏈技術發展現狀與展望
袁勇1,2王飛躍1,3
區塊鏈是隨著比特幣等數字加密貨幣的日益普及而逐漸興起的一種全新的去中心化基礎架構與分布式計算范式,目前已經引起政府部門、金融機構、科技企業和資本市場的高度重視與廣泛關注.區塊鏈技術具有去中心化、時序數據、集體維護、可編程和安全可信等特點,特別適合構建可編程的貨幣系統、金融系統乃至宏觀社會系統.本文通過解構區塊鏈的核心要素,提出了區塊鏈系統的基礎架構模型,詳細闡述了區塊鏈及與之相關的比特幣的基本原理、技術、方法與應用現狀,討論了智能合約的理念、應用和意義,介紹了基于區塊鏈的平行社會發展趨勢,致力于為未來相關研究提供有益的指導與借鑒.
區塊鏈,比特幣,共識機制,智能合約,平行社會
引用格式袁勇,王飛躍.區塊鏈技術發展現狀與展望.自動化學報,2016,42(4):481?494
區塊鏈是以比特幣為代表的數字加密貨幣體系的核心支撐技術.區塊鏈技術的核心優勢是去中心化,能夠通過運用數據加密、時間戳、分布式共識和經濟激勵等手段,在節點無需互相信任的分布式系統中實現基于去中心化信用的點對點交易、協調與協作,從而為解決中心化機構普遍存在的高成本、低效率和數據存儲不安全等問題提供了解決方案.隨著比特幣近年來的快速發展與普及,區塊鏈技術的研究與應用也呈現出爆發式增長態勢,被認為是繼大型機、個人電腦、互聯網、移動/社交網絡之后計算范式的第五次顛覆式創新,是人類信用進化史上繼血親信用、貴金屬信用、央行紙幣信用之后的第四個里程碑[1].區塊鏈技術是下一代云計算的雛形,有望像互聯網一樣徹底重塑人類社會活動形態,并實現從目前的信息互聯網向價值互聯網的轉變.
區塊鏈技術的快速發展引起了政府部門、金融機構、科技企業和資本市場的廣泛關注.2016年1月,英國政府發布區塊鏈專題研究報告[2],積極推行區塊鏈在金融和政府事務中的應用;中國人民銀行召開數字貨幣研討會探討采用區塊鏈技術發行虛擬貨幣的可行性,以提高金融活動的效率、便利性和透明度.美國納斯達克于2015年12月率先推出基于區塊鏈技術的證券交易平臺Linq,成為金融證券市場去中心化趨勢的重要里程碑;德勤和安永等專業審計服務公司相繼組建區塊鏈研發團隊,致力于提升其客戶審計服務質量.截止到2016年初,資本市場已經相繼投入10億美元以加速區塊鏈領域的發展.初創公司R3CEV基于微軟云服務平臺Azure推出的BaaS(Blockchain as a service,區塊鏈即服務)服務,已與美國銀行、花旗銀行等全球40余家大型銀行機構簽署區塊鏈合作項目,致力于制定銀行業的區塊鏈行業標準與協議.
區塊鏈技術起源于2008年由化名為“中本聰”(Satoshi nakamoto)的學者在密碼學郵件組發表的奠基性論文《比特幣:一種點對點電子現金系統》[3],目前尚未形成行業公認的區塊鏈定義.狹義來講,區塊鏈是一種按照時間順序將數據區塊以鏈條的方式組合成特定數據結構,并以密碼學方式保證的不可篡改和不可偽造的去中心化共享總賬(Decentralized shared ledger),能夠安全存儲簡單的、有先后關系的、能在系統內驗證的數據.廣義的區塊鏈技術則是利用加密鏈式區塊結構來驗證與存儲數據、利用分布式節點共識算法來生成和更新數據、利用自動化腳本代碼(智能合約)來編程和操作數據的一種全新的去中心化基礎架構與分布式計算范式.
區塊鏈具有去中心化、時序數據、集體維護、可編程和安全可信等特點.首先是去中心化:區塊鏈數據的驗證、記賬、存儲、維護和傳輸等過程均是基于分布式系統結構,采用純數學方法而不是中心機構來建立分布式節點間的信任關系,從而形成去中心化的可信任的分布式系統;其次是時序數據:區塊鏈采用帶有時間戳的鏈式區塊結構存儲數據,從而為數據增加了時間維度,具有極強的可驗證性和可追溯性;第三是集體維護:區塊鏈系統采用特定的經濟激勵機制來保證分布式系統中所有節點均可參與數據區塊的驗證過程(如比特幣的“挖礦”過程),并通過共識算法來選擇特定的節點將新區塊添加到區塊鏈;第四是可編程:區塊鏈技術可提供靈活的腳本代碼系統,支持用戶創建高級的智能合約、貨幣或其他去中心化應用.例如,以太坊(Ethereum)平臺即提供了圖靈完備的腳本語言以供用戶來構建任何可以精確定義的智能合約或交易類型[4];最后是安全可信:區塊鏈技術采用非對稱密碼學原理對數據進行加密,同時借助分布式系統各節點的工作量證明等共識算法形成的強大算力來抵御外部攻擊、保證區塊鏈數據不可篡改和不可偽造,因而具有較高的安全性.
區塊鏈技術是具有普適性的底層技術框架,可以為金融、經濟、科技甚至政治等各領域帶來深刻變革.按照目前區塊鏈技術的發展脈絡,區塊鏈技術將會經歷以可編程數字加密貨幣體系為主要特征的區塊鏈1.0模式、以可編程金融系統為主要特征的區塊鏈2.0模式和以可編程社會為主要特征的區塊鏈3.0模式[1].目前,一般認為區塊鏈技術正處于2.0模式的初期,股權眾籌和P2P借貸等各類基于區塊鏈技術的互聯網金融應用相繼涌現.然而,上述模式實際上是平行而非演進式發展的,區塊鏈1.0模式的數字加密貨幣體系仍然遠未成熟,距離其全球貨幣一體化的愿景實際上更遠、更困難.目前,區塊鏈領域已經呈現出明顯的技術和產業創新驅動的發展態勢,相關學術研究嚴重滯后、亟待跟進.截止到2016年2月,以萬方數據知識服務平臺為中文數據源、以Web of Science和EI Village為英文數據源的文獻檢索顯示,目前篇名包含關鍵詞“區塊鏈/blockchain”的僅有2篇中文[5?6]和9篇英文文獻[6?14].本文系統性地梳理了區塊鏈的基本原理、核心技術、典型應用和現存問題,以期為未來研究提供有益的啟發與借鑒.
本文組織結構為:第1節概述區塊鏈與比特幣的發展史及二者的關系;第2節闡述區塊鏈的基礎架構模型及其關鍵技術;第3節和第4節分別概要總結了區塊鏈技術的應用場景與現存的問題;第5節介紹智能合約及其在區塊鏈領域的應用現狀;第6節展望了區塊鏈驅動的平行社會發展趨勢;第7節總結本文內容.
比特幣是迄今為止最為成功的區塊鏈應用場景.據區塊鏈實時監控網站Blockchain.info統計顯示,平均每天有約7500萬美元的120000筆交易被寫入比特幣區塊鏈,目前已生成超過40萬個區塊[15].加密貨幣市值統計網站coinmarketcap.com顯示,截止到2016年2月,全球共有675種加密貨幣,總市值超過67億美元,其中比特幣市值約占86%,瑞波幣和以太幣分別居二、三位[16].目前比特幣供應量(即已經挖出的比特幣數量)已經超過1500萬枚,按照每枚比特幣389.50美元的現行價格估算其總市值已超過59億美元,在世界各國2015年GDP排名中占據第144位(略低于歐洲的摩爾多瓦).換言之,在沒有政府和中央銀行信用背書的情況下,去中心化的比特幣已經依靠算法信用創造出與歐洲小國體量相當的全球性經濟體.預計到2027年,全球10%的GDP將會通過區塊鏈技術存儲[17].
比特幣區塊鏈的第一個區塊(稱為創世區塊)誕生于2009年1月4日,由創始人中本聰持有.一周后,中本聰發送了10個比特幣給密碼學專家哈爾芬尼,形成了比特幣史上第一次交易;2010年5月,佛羅里達程序員用1萬比特幣購買價值為25美元的披薩優惠券,從而誕生了比特幣的第一個公允匯率.此后,比特幣價格快速上漲,并在2013年11月創下每枚比特幣兌換1242美元的歷史高值,超過同期每盎司1241.98美元的黃金價格.據CoinDesk估算,目前全球約有6萬商家接受比特幣交易,其中中國是比特幣交易增長最為迅速的國家[18].
比特幣本質上是由分布式網絡系統生成的數字貨幣,其發行過程不依賴特定的中心化機構,而是依賴于分布式網絡節點共同參與一種稱為工作量證明(Proof of work,PoW)的共識過程以完成比特幣交易的驗證與記錄.PoW共識過程(俗稱挖礦,每個節點稱為礦工)通常是各節點貢獻自己的計算資源來競爭解決一個難度可動態調整的數學問題,成功解決該數學問題的礦工將獲得區塊的記賬權,并將當前時間段的所有比特幣交易打包記入一個新的區塊、按照時間順序鏈接到比特幣主鏈上.比特幣系統同時會發行一定數量的比特幣以獎勵該礦工,并激勵其他礦工繼續貢獻算力.比特幣的流通過程依靠密碼學方法保障安全.每一次比特幣交易都會經過特殊算法處理和全體礦工驗證后記入區塊鏈,同時可以附帶具有一定靈活性的腳本代碼(智能合約)以實現可編程的自動化貨幣流通.由此可見,比特幣和區塊鏈系統一般具備如下五個關鍵要素,即公共的區塊鏈賬本、分布式的點對點網絡系統、去中心化的共識算法、適度的經濟激勵機制以及可編程的腳本代碼.
區塊鏈技術為比特幣系統解決了數字加密貨幣領域長期以來所必需面對的兩個重要問題,即雙重支付問題和拜占庭將軍問題[19].雙重支付問題又稱為“雙花”,即利用貨幣的數字特性兩次或多次使用“同一筆錢”完成支付.傳統金融和貨幣體系中,現金(法幣)因是物理實體,能夠自然地避免雙重支付;其他數字形式的貨幣則需要可信的第三方中心機構(如銀行)來保證.區塊鏈技術的貢獻是在沒有第三方機構的情況下,通過分布式節點的驗證和共識機制解決了去中心化系統的雙重支付問題,在信息傳輸的過程同時完成了價值轉移.拜占庭將軍問題是分布式系統交互過程普遍面臨的難題,即在缺少可信任的中央節點的情況下,分布式節點如何達成共識和建立互信[20].區塊鏈通過數字加密技術和分布式共識算法,實現了在無需信任單個節點的情況下構建一個去中心化的可信任系統.與傳統中心機構(如中央銀行)的信用背書機制不同的是,比特幣區塊鏈形成的是軟件定義的信用,這標志著中心化的國家信用向去中心化的算法信用的根本性變革.
比特幣憑借其先發優勢,目前已經形成體系完備的涵蓋發行、流通和金融衍生市場的生態圈與產業鏈(如圖1所示),這也是其長期占據絕大多數數字加密貨幣市場份額的主要原因.比特幣的開源特性吸引了大量開發者持續性地貢獻其創新技術、方法和機制;比特幣各網絡節點(礦工)提供算力以保證比特幣的穩定共識和安全性,其算力大多來自于設備商銷售的專門用于PoW共識算法的專業設備(礦機).比特幣網絡為每個新發現的區塊發行一定數量的比特幣以獎勵礦工,部分礦工可能會相互合作建立收益共享的礦池,以便匯集算力來提高獲得比特幣的概率.比特幣經發行進入流通環節后,持幣人可以通過特定的軟件平臺(如比特幣錢包)向商家支付比特幣來購買商品或服務,這體現了比特幣的貨幣屬性;同時由于比特幣價格的漲跌機制使其完全具備金融衍生品的所有屬性,因此出現了比特幣交易平臺以方便持幣人投資或者投機比特幣.在流通環節和金融市場中,每一筆比特幣交易都會由比特幣網絡的全體礦工驗證并記入區塊鏈.

圖1 比特幣生態圈Fig.1 The Bitcoin ecosystem
比特幣是區塊鏈技術賦能的第一個“殺手級”應用,迄今為止區塊鏈的核心技術和人才資源仍大多在比特幣研發領域.然而,區塊鏈作為未來新一代的底層基礎技術,其應用范疇勢必會超越數字加密貨幣而延伸到金融、經濟、科技和政治等其他領域.比特幣的現有技術、模式和機制,將會對區塊鏈在新應用領域的發展提供有益的借鑒,而新領域的區塊鏈創新也勢必反過來促進解決比特幣系統現存的問題.因此,比特幣和區塊鏈技術存在著協同進化、和諧共生而非相互競爭的良性反饋關系.
本節將結合比特幣系統的技術與應用現狀,闡述區塊鏈技術的基礎模型、基本原理和關鍵技術,以及區塊鏈在比特幣系統之外的若干創新模式.現存的其他區塊鏈應用大多都與比特幣類似,僅在某些特定的環節或多或少地采用比特幣模式的變種.
區塊鏈技術的基礎架構模型如圖2所示.一般說來,區塊鏈系統由數據層、網絡層、共識層、激勵層、合約層和應用層組成.其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等技術;網絡層則包括分布式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網絡節點的各類共識算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各種應用場景和案例.該模型中,基于時間戳的鏈式區塊結構、分布式節點的共識機制、基于共識算力的經濟激勵和靈活可編程的智能合約是區塊鏈技術最具代表性的創新點.

圖2 區塊鏈基礎架構模型Fig.2 A basic framework of blockchain
2.1數據層
狹義的區塊鏈即是去中心化系統各節點共享的數據賬本.每個分布式節點都可以通過特定的哈希算法和Merkle樹數據結構,將一段時間內接收到的交易數據和代碼封裝到一個帶有時間戳的數據區塊中,并鏈接到當前最長的主區塊鏈上,形成最新的區塊.該過程涉及區塊、鏈式結構、哈希算法、Merkle樹和時間戳等技術要素.
數據區塊:如圖3所示,每個數據區塊一般包含區塊頭(Header)和區塊體(Body)兩部分.區塊頭封裝了當前版本號(Version)、前一區塊地址(Prev-block)、當前區塊的目標哈希值(Bits)、當前區塊PoW共識過程的解隨機數(Nonce)、Merkle根(Merkle-root)以及時間戳(Timestamp)等信息[21].比特幣網絡可以動態調整PoW共識過程的難度值,最先找到正確的解隨機數Nonce并經過全體礦工驗證的礦工將會獲得當前區塊的記賬權.區塊體則包括當前區塊的交易數量以及經過驗證的、區塊創建過程中生成的所有交易記錄.這些記錄通過Merkle樹的哈希過程生成唯一的Merkle根并記入區塊頭.

圖3 區塊結構Fig.3 The structure of blocks
鏈式結構:取得記賬權的礦工將當前區塊鏈接到前一區塊,形成最新的區塊主鏈.各個區塊依次環環相接,形成從創世區塊到當前區塊的一條最長主鏈,從而記錄了區塊鏈數據的完整歷史,能夠提供區塊鏈數據的溯源和定位功能,任意數據都可以通過此鏈式結構順藤摸瓜、追本溯源.需要說明的是,如果短時間內有兩個礦工同時“挖出”兩個新的區塊加以鏈接的話,區塊主鏈可能會出現暫時的“分叉”現象,其解決方法是約定礦工總是選擇延長累計工作量證明最大的區塊鏈.因此,當主鏈分叉后,后續區塊的礦工將通過計算和比較,將其區塊鏈接到當前累計工作量證明最大化的備選鏈上,形成更長的新主鏈,從而解決分叉問題[19].
時間戳:區塊鏈技術要求獲得記賬權的節點必須在當前數據區塊頭中加蓋時間戳,表明區塊數據的寫入時間.因此,主鏈上各區塊是按照時間順序依次排列的.時間戳技術本身并不復雜,但其在區塊鏈技術中的應用是具有重要意義的創新.時間戳可以作為區塊數據的存在性證明(Proof of existence),有助于形成不可篡改和不可偽造的區塊鏈數據庫,從而為區塊鏈應用于公證、知識產權注冊等時間敏感的領域奠定了基礎.更為重要的是,時間戳為未來基于區塊鏈的互聯網和大數據增加了時間維度,使得通過區塊數據和時間戳來重現歷史成為可能.
哈希函數:區塊鏈通常并不直接保存原始數據或交易記錄,而是保存其哈希函數值,即將原始數據編碼為特定長度的由數字和字母組成的字符串后記入區塊鏈.哈希函數(也稱散列函數)具有諸多優良特點,因而特別適合用于存儲區塊鏈數據.例如,通過哈希輸出幾乎不能反推輸入值(單向性),不同長度輸入的哈希過程消耗大約相同的時間(定時性)且產生固定長度的輸出(定長性),即使輸入僅相差一個字節也會產生顯著不同的輸出值(隨機性)等.比特幣區塊鏈通常采用雙SHA256哈希函數,即將任意長度的原始數據經過兩次SHA256哈希運算后轉換為長度為256位(32字節)的二進制數字來統一存儲和識別.除上述特點外,SHA256算法還具有巨大的散列空間(2256)和抗碰撞(避免不同輸入值產生相同哈希值)等特性,可滿足比特幣的任何相關標記需要而不會出現沖突.
Merkle樹:Merkle樹是區塊鏈的重要數據結構,其作用是快速歸納和校驗區塊數據的存在性和完整性.如圖3所示,Merkle樹通常包含區塊體的底層(交易)數據庫,區塊頭的根哈希值(即Merkle根)以及所有沿底層區塊數據到根哈希的分支.Merkle樹運算過程一般是將區塊體的數據進行分組哈希,并將生成的新哈希值插入到Merkle樹中,如此遞歸直到只剩最后一個根哈希值并記為區塊頭的Merkle根.最常見的Merkle樹是比特幣采用的二叉Merkle樹,其每個哈希節點總是包含兩個相鄰的數據塊或其哈希值[22],其他變種則包括以太坊的Merkle patricia tree等[4].Merkle樹有諸多優點:首先是極大地提高了區塊鏈的運行效率和可擴展性,使得區塊頭只需包含根哈希值而不必封裝所有底層數據,這使得哈希運算可以高效地運行在智能手機甚至物聯網設備上;其次是Merkle樹可支持“簡化支付驗證”協議,即在不運行完整區塊鏈網絡節點的情況下,也能夠對(交易)數據進行檢驗[3].例如,為驗證圖3中交易6,一個沒有下載完整區塊鏈數據的客戶端可以通過向其他節點索要包括從交易6哈希值沿Merkle樹上溯至區塊頭根哈希處的哈希序列(即哈希節點6,5,56,78,5678,1234)來快速確認交易的存在性和正確性.一般說來,在N個交易組成的區塊體中確認任一交易的算法復雜度僅為log2N.這將極大地降低區塊鏈運行所需的帶寬和驗證時間,并使得僅保存部分相關區塊鏈數據的輕量級客戶端成為可能.
非對稱加密:非對稱加密是為滿足安全性需求和所有權驗證需求而集成到區塊鏈中的加密技術,常見算法包括RSA、Elgamal、Rabin、D-H、ECC(即橢圓曲線加密算法)等.非對稱加密通常在加密和解密過程中使用兩個非對稱的密碼,分別稱為公鑰和私鑰.非對稱密鑰對具有兩個特點,首先是用其中一個密鑰(公鑰或私鑰)加密信息后,只有另一個對應的密鑰才能解開;其次是公鑰可向其他人公開、私鑰則保密,其他人無法通過該公鑰推算出相應的私鑰.非對稱加密技術在區塊鏈的應用場景主要包括信息加密、數字簽名和登錄認證等,其中信息加密場景主要是由信息發送者(記為A)使用接受者(記為B)的公鑰對信息加密后再發送給B,B利用自己的私鑰對信息解密.比特幣交易的加密即屬于此場景;數字簽名場景則是由發送者A采用自己的私鑰加密信息后發送給B,B使用A的公鑰對信息解密、從而可確保信息是由A發送的;登錄認證場景則是由客戶端使用私鑰加密登錄信息后發送給服務器,后者接收后采用該客戶端的公鑰解密并認證登錄信息.
以比特幣系統為例,其非對稱加密機制如圖4所示:比特幣系統一般通過調用操作系統底層的隨機數生成器來生成256位隨機數作為私鑰.比特幣私鑰的總量可達2256,極難通過遍歷全部私鑰空間來獲得存有比特幣的私鑰,因而是密碼學安全的.為便于識別,256位二進制形式的比特幣私鑰將通過SHA256哈希算法和Base58轉換,形成50個字符長度的易識別和書寫的私鑰提供給用戶;比特幣的公鑰是由私鑰首先經過Secp256k1橢圓曲線算法生成65字節長度的隨機數.該公鑰可用于產生比特幣交易時使用的地址,其生成過程為首先將公鑰進行SHA256和RIPEMD160雙哈希運算并生成20字節長度的摘要結果(即hash160結果),再經過SHA256哈希算法和Base58轉換形成33字符長度的比特幣地址[19].公鑰生成過程是不可逆的,即不能通過公鑰反推出私鑰.比特幣的公鑰和私鑰通常保存于比特幣錢包文件,其中私鑰最為重要.丟失私鑰就意味著丟失了對應地址的全部比特幣資產.現有的比特幣和區塊鏈系統中,根據實際應用需求已經衍生出多私鑰加密技術,以滿足多重簽名等更為靈活和復雜的場景.

圖4 比特幣非對稱加密機制Fig.4 The asymmetric cryptography of the Bitcoin system
2.2網絡層
網絡層封裝了區塊鏈系統的組網方式、消息傳播協議和數據驗證機制等要素.結合實際應用需求,通過設計特定的傳播協議和數據驗證機制,可使得區塊鏈系統中每一個節點都能參與區塊數據的校驗和記賬過程,僅當區塊數據通過全網大部分節點驗證后,才能記入區塊鏈.
組網方式:區塊鏈系統的節點一般具有分布式、自治性、開放可自由進出等特性,因而一般采用對等式網絡(Peer-to-peer network,P2P網絡)來組織散布全球的參與數據驗證和記賬的節點.P2P網絡中的每個節點均地位對等且以扁平式拓撲結構相互連通和交互,不存在任何中心化的特殊節點和層級結構,每個節點均會承擔網絡路由、驗證區塊數據、傳播區塊數據、發現新節點等功能.按照節點存儲數據量的不同,可以分為全節點和輕量級節點.前者保存有從創世區塊到當前最新區塊為止的完整區塊鏈數據,并通過實時參與區塊數據的校驗和記賬來動態更新主鏈.全節點的優勢在于不依賴任何其他節點而能夠獨立地實現任意區塊數據的校驗、查詢和更新,劣勢則是維護全節點的空間成本較高;以比特幣為例,截止到2016年2月,創世區塊至當前區塊的數據量已經超過60GB.與之相比,輕量級節點則僅保存一部分區塊鏈數據,并通過第2.1節提到的簡易支付驗證方式向其相鄰節點請求所需的數據來完成數據校驗.
數據傳播協議:任一區塊數據生成后,將由生成該數據的節點廣播到全網其他所有的節點來加以驗證.現有的區塊鏈系統一般根據實際應用需求設計比特幣傳播協議的變種,例如以太坊區塊鏈集成了所謂的“幽靈協議”以解決因區塊數據確認速度快而導致的高區塊作廢率和隨之而來的安全性風險[4].根據中本聰的設計,比特幣系統的交易數據傳播協議包括如下步驟[3]:
1)比特幣交易節點將新生成的交易數據向全網所有節點進行廣播;
2)每個節點都將收集到的交易數據存儲到一個區塊中;
3)每個節點基于自身算力在區塊中找到一個具有足夠難度的工作量證明;
4)當節點找到區塊的工作量證明后,就向全網所有節點廣播此區塊;
5)僅當包含在區塊中的所有交易都是有效的且之前未存在過的,其他節點才認同該區塊的有效性;
6)其他節點接受該數據區塊,并在該區塊的末尾制造新的區塊以延長該鏈條,而將被接受區塊的隨機哈希值視為先于新區塊的隨機哈希值.
需要說明的是,如果交易節點是與其他節點無連接的新節點,比特幣系統通常會將一組長期穩定運行的“種子節點”推薦給新節點建立連接,或者推薦至少一個節點連接到新節點.此外,交易數據廣播時,并不需要全部節點均接收到,而是只要足夠多的節點做出響應即可整合進入區塊賬本中.未接收到特定交易數據的節點則可向鄰近節點請求下載該缺失的交易數據[19].
數據驗證機制:P2P網絡中的每個節點都時刻監聽比特幣網絡中廣播的數據與新區塊.節點接收到鄰近節點發來的數據后,將首先驗證該數據的有效性.如果數據有效,則按照接收順序為新數據建立存儲池以暫存尚未記入區塊的有效數據,同時繼續向鄰近節點轉發;如果數據無效,則立即廢棄該數據,從而保證無效數據不會在區塊鏈網絡繼續傳播.以比特幣為例,比特幣的礦工節點會收集和驗證P2P網絡中廣播的尚未確認的交易數據,并對照預定義的標準清單,從數據結構、語法規范性、輸入輸出和數字簽名等各方面校驗交易數據的有效性,并將有效交易數據整合到當前區塊中;同理,當某礦工“挖”到新區塊后,其他礦工節點也會按照預定義標準來校驗該區塊是否包含足夠工作量證明,時間戳是否有效等;如確認有效,其他礦工節點會將該區塊鏈接到主區塊鏈上,并開始競爭下一個新區塊.
由網絡層設計機理可見,區塊鏈是典型的分布式大數據技術.全網數據同時存儲于去中心化系統的所有節點上,即使部分節點失效,只要仍存在一個正常運行的節點,區塊鏈主鏈數據就可完全恢復而不會影響后續區塊數據的記錄與更新.這種高度分散化的區塊存儲模式與云存儲模式的區別在于,后者是基于中心化結構基礎上的多重存儲和多重數據備份模式,即“多中心化”模式;而前者則是完全“去中心化”的存儲模式,具有更高的數據安全性.
2.3共識層
如何在分布式系統中高效地達成共識是分布式計算領域的重要研究問題.正如社會系統中“民主”和“集中”的對立關系相似,決策權越分散的系統達成共識的效率越低、但系統穩定性和滿意度越高;而決策權越集中的系統更易達成共識,但同時更易出現專制和獨裁.區塊鏈技術的核心優勢之一就是能夠在決策權高度分散的去中心化系統中使得各節點高效地針對區塊數據的有效性達成共識.
早期的比特幣區塊鏈采用高度依賴節點算力的工作量證明(Proof of work,PoW)機制來保證比特幣網絡分布式記賬的一致性.隨著區塊鏈技術的發展和各種競爭幣的相繼涌現,研究者提出多種不依賴算力而能夠達成共識的機制,例如點點幣首創的權益證明(Proof of stake,PoS)共識[23]和比特股首創的授權股份證明機制(Delegated proof of stake,DPOS)共識機制[24]等.區塊鏈共識層即封裝了這些共識機制.
PoW共識:中本聰在其比特幣奠基性論文中設計了PoW共識機制,其核心思想是通過引入分布式節點的算力競爭來保證數據一致性和共識的安全性.比特幣系統中,各節點(即礦工)基于各自的計算機算力相互競爭來共同解決一個求解復雜但驗證容易的SHA256數學難題(即挖礦),最快解決該難題的節點將獲得區塊記賬權和系統自動生成的比特幣獎勵.該數學難題可表述為:根據當前難度值,通過搜索求解一個合適的隨機數(Nonce)使得圖3中區塊頭各元數據的雙SHA256哈希值小于或等于目標哈希值.比特幣系統通過靈活調整隨機數搜索的難度值來控制區塊的平均生成時間為10分鐘左右.一般說來,PoW共識的隨機數搜索過程如下(參照圖3區塊結構)[19]:
步驟1.搜集當前時間段的全網未確認交易,并增加一個用于發行新比特幣獎勵的Coinbase交易,形成當前區塊體的交易集合;
步驟 2.計算區塊體交易集合的Merkle根記入區塊頭,并填寫區塊頭的其他元數據,其中隨機數Nonce置零;
步驟3.隨機數Nonce加1;計算當前區塊頭的雙SHA256哈希值,如果小于或等于目標哈希值,則成功搜索到合適的隨機數并獲得該區塊的記賬權;否則繼續步驟3直到任一節點搜索到合適的隨機數為止;
步驟4.如果一定時間內未成功,則更新時間戳和未確認交易集合、重新計算Merkle根后繼續搜索.
符合要求的區塊頭哈希值通常由多個前導零構成,目標哈希值越小,區塊頭哈希值的前導零越多,成功找到合適的隨機數并“挖”出新區塊的難度越大.據區塊鏈實時監測網站Blockchain.info顯示,截止到2016年2月,符合要求的區塊頭哈希值一般有17個前導零,例如第398346號區塊哈希值為“0000000000000000077f754f22f21629a7975cf···”.按照概率計算,每16次隨機數搜索將會有找到一個含有一個前導零的區塊哈希值,因而比特幣目前17位前導零哈希值要求1617次隨機數搜索才能找到一個合適的隨機數并生成一個新的區塊.由此可見,比特幣區塊鏈系統的安全性和不可篡改性是由PoW共識機制的強大算力所保證的,任何對于區塊數據的攻擊或篡改都必須重新計算該區塊以及其后所有區塊的SHA256難題,并且計算速度必須使得偽造鏈長度超過主鏈,這種攻擊難度導致的成本將遠超其收益.據估計,截止到2016年1月,比特幣區塊鏈的算力已經達到800000000Gh/s,即每秒進行8×1018次運算,超過全球Top500超級計算機的算力總和.
PoW共識機制是具有重要意義的創新,其近乎完美地整合了比特幣系統的貨幣發行、交易支付和驗證等功能,并通過算力競爭保障系統的安全性和去中心性;PoW共識機制同時存在著顯著的缺陷,其強大算力造成的資源浪費(如電力)歷來為研究者所詬病,而且長達10分鐘的交易確認時間使其相對不適合小額交易的商業應用.
PoS共識機制:PoS共識是為解決PoW共識機制的資源浪費和安全性缺陷而提出的替代方案.限于篇幅,本文主要聚焦于PoS相對于PoW的創新之處.PoS共識本質上是采用權益證明來代替PoW中的基于哈希算力的工作量證明,是由系統中具有最高權益而非最高算力的節點獲得區塊記賬權.權益體現為節點對特定數量貨幣的所有權,稱為幣齡或幣天數(Coin days).幣齡是特定數量的幣與其最后一次交易的時間長度的乘積,每次交易都將會消耗掉特定數量的幣齡.例如,某人在一筆交易中收到10個幣后并持有10天,則獲得100幣齡;而后其花掉5個幣后,則消耗掉50幣齡.顯然,采用PoS共識機制的系統在特定時間點上的幣齡總數是有限的,長期持幣者更傾向于擁有更多幣齡,因此幣齡可視為其在PoS系統中的權益.此外,PoW共識過程中各節點挖礦難度相同,而PoS共識過程中的難度與交易輸入的幣齡成反比,消耗幣齡越多則挖礦難度越低.節點判斷主鏈的標準也由PoW共識的最高累計難度轉變為最高消耗幣齡,每個區塊的交易都會將其消耗的幣齡提交給該區塊,累計消耗幣齡最高的區塊將被鏈接到主鏈.由此可見,PoS共識過程僅依靠內部幣齡和權益而不需要消耗外部算力和資源,從根本上解決了PoW共識算力浪費的問題,并且能夠在一定程度上縮短達成共識的時間,因而比特幣之后的許多競爭幣均采用PoS共識機制.
DPoS共識機制:DPoS共識機制的基本思路類似于“董事會決策”,即系統中每個股東節點可以將其持有的股份權益作為選票授予一個代表,獲得票數最多且愿意成為代表的前101個節點將進入“董事會”,按照既定的時間表輪流對交易進行打包結算并且簽署(即生產)一個新區塊.每個區塊被簽署之前,必須先驗證前一個區塊已經被受信任的代表節點所簽署.“董事會”的授權代表節點可以從每筆交易的手續費中獲得收入,同時要成為授權代表節點必須繳納一定量的保證金,其金額相當于生產一個區塊收入的100倍.授權代表節點必須對其他股東節點負責,如果其錯過簽署相對應的區塊,則股東將會收回選票從而將該節點“投出”董事會.因此,授權代表節點通常必須保證99%以上的在線時間以實現盈利目標[24].顯然,與PoW共識機制必須信任最高算力節點和PoS共識機制必須信任最高權益節點不同的是,DPoS共識機制中每個節點都能夠自主決定其信任的授權節點且由這些節點輪流記賬生成新區塊,因而大幅減少了參與驗證和記賬的節點數量,可以實現快速共識驗證.
除上述三種主流共識機制外,實際區塊鏈應用中也衍生出了PoW+PoS、行動證明(Proof of activity)等多個變種機制.這些共識機制各有優劣勢,比特幣的PoW共識機制依靠其先發優勢已經形成成熟的挖礦產業鏈,支持者眾多,而PoS和DPoS等新興機制則更為安全、環保和高效,從而使得共識機制的選擇問題成為區塊鏈系統研究者最不易達成共識的問題.
2.4激勵層
區塊鏈共識過程通過匯聚大規模共識節點的算力資源來實現共享區塊鏈賬本的數據驗證和記賬工作,因而其本質上是一種共識節點間的任務眾包過程.去中心化系統中的共識節點本身是自利的,最大化自身收益是其參與數據驗證和記賬的根本目標.因此,必須設計激勵相容的合理眾包機制,使得共識節點最大化自身收益的個體理性行為與保障去中心化區塊鏈系統的安全和有效性的整體目標相吻合.區塊鏈系統通過設計適度的經濟激勵機制并與共識過程相集成,從而匯聚大規模的節點參與并形成了對區塊鏈歷史的穩定共識.
以比特幣為例,比特幣PoW共識中的經濟激勵由新發行比特幣獎勵和交易流通過程中的手續費兩部分組成,獎勵給PoW共識過程中成功搜索到該區塊的隨機數并記錄該區塊的節點.因此,只有當各節點通過合作共同構建共享和可信的區塊鏈歷史記錄、并維護比特幣系統的有效性,其獲得的比特幣獎勵和交易手續費才會有價值.比特幣已經形成成熟的挖礦生態圈,大量配備專業礦機設備的礦工積極參與基于挖礦的PoW共識過程,其根本目的就是通過獲取比特幣獎勵并轉換為相應法幣來實現盈利.
發行機制:比特幣系統中每個區塊發行比特幣的數量是隨著時間階梯性遞減的.創世區塊起的每個區塊將發行50個比特幣獎勵給該區塊的記賬者,此后每隔約4年(21萬個區塊)每區塊發行比特幣的數量降低一半,依此類推,一直到比特幣的數量穩定在上限2100萬為止[19].比特幣交易過程中會產生手續費,目前默認手續費是萬分之一個比特幣,這部分費用也會記入區塊并獎勵給記賬者.這兩部分費用將會封裝在每個區塊的第一個交易(稱為Coinbase交易)中.雖然現在每個區塊的總手續費相對于新發行比特幣來說規模很?。ㄍǔ2粫^1個比特幣),但隨著未來比特幣發行數量的逐步減少甚至停止發行,手續費將逐漸成為驅動節點共識和記賬的主要動力.同時,手續費還可以防止大量微額交易對比特幣網絡發起的“粉塵”攻擊,起到保障安全的作用.
分配機制:比特幣系統中,大量的小算力節點通常會選擇加入礦池,通過相互合作匯集算力來提高“挖”到新區塊的概率,并共享該區塊的比特幣和手續費獎勵.據Bitcoinmining.com統計,目前已經存在13種不同的分配機制[25].主流礦池通常采用PPLNS(Pay per last N shares)、PPS(Pay per share)和PROP(PROPortionately)等機制.礦池將各節點貢獻的算力按比例劃分成不同的股份(Share),其中PPLNS機制是指發現區塊后,各合作節點根據其在最后N個股份內貢獻的實際股份比例來分配區塊中的比特幣;PPS則直接根據股份比例為各節點估算和支付一個固定的理論收益,采用此方式的礦池將會適度收取手續費來彌補其為各節點承擔的收益不確定性風險;PROP機制則根據節點貢獻的股份按比例地分配比特幣.礦池的出現是對比特幣和區塊鏈去中心化趨勢的潛在威脅,如何設計合理的分配機制引導各節點合理地合作、避免出現因算力過度集中而導致的安全性問題是亟待解決的研究問題.
2.5合約層
合約層封裝區塊鏈系統的各類腳本代碼、算法以及由此生成的更為復雜的智能合約.如果說數據、網絡和共識三個層次作為區塊鏈底層“虛擬機”分別承擔數據表示、數據傳播和數據驗證功能的話,合約層則是建立在區塊鏈虛擬機之上的商業邏輯和算法,是實現區塊鏈系統靈活編程和操作數據的基礎.包括比特幣在內的數字加密貨幣大多采用非圖靈完備的簡單腳本代碼來編程控制交易過程,這也是智能合約的雛形;隨著技術的發展,目前已經出現以太坊等圖靈完備的可實現更為復雜和靈活的智能合約的腳本語言,使得區塊鏈能夠支持宏觀金融和社會系統的諸多應用.本節將以比特幣腳本為例,從技術角度簡述合約層的基本技術和方法;關于智能合約的延伸內容將在第5節討論.
比特幣采用一種簡單的、基于堆棧的、從左向右處理的腳本語言,而一個腳本本質上是附著在比特幣交易上的一組指令的列表.比特幣交易依賴于兩類腳本來加以驗證,即鎖定腳本和解鎖腳本,二者的不同組合可在比特幣交易中衍生出無限數量的控制條件.其中,鎖定腳本是附著在交易輸出值上的“障礙”,規定以后花費這筆交易輸出的條件;解鎖腳本則是滿足被鎖定腳本在一個輸出上設定的花費條件的腳本,同時它將允許輸出被消費.舉例來說,大多數比特幣交易均是采用接受者的公鑰加密和私鑰解密,因而其對應的P2PKH(Pay to public key hash)標準交易腳本中的鎖定腳本即是使用接受者的公鑰實現阻止輸出功能,而使用私鑰對應的數字簽名來加以解鎖[19].
比特幣腳本系統可以實現靈活的交易控制.例如,通過規定某個時間段(如一周)作為解鎖條件,可以實現延時支付;通過規定接受者和擔保人必須共同私鑰簽名才能支配一筆比特幣,可以實現擔保交易;通過設計一種可根據外部信息源核查某概率事件是否發生的規則并作為解鎖腳本附著在一定數量的比特幣交易上,即可實現博彩和預測市場等類型的應用;通過設定N個私鑰集合中至少提供M個私鑰才可解鎖,可實現M?N型多重簽名,即N個潛在接受者中至少有M 個同意簽名才可實現支付.多重簽名可廣泛應用于公司決策、財務監督、中介擔保甚至遺產分配等場景.
比特幣腳本是智能合約的雛形,催生了人類歷史上第一種可編程的全球性貨幣.然而,比特幣腳本系統是非圖靈完備的,其中不存在復雜循環和流控制,這在損失一定靈活性的同時能夠極大地降低復雜性和不確定性,并能夠避免因無限循環等邏輯炸彈而造成拒絕服務等類型的安全性攻擊.為提高腳本系統的靈活性和可擴展性,研究者已經嘗試在比特幣協議之上疊加新的協議,以滿足在區塊鏈上構建更為復雜的智能合約的需求.以太坊已經研發出一套圖靈完備的腳本語言,用戶可基于以太坊構建任意復雜和精確定義的智能合約與去中心化應用,從而為基于區塊鏈構建可編程的金融與社會系統奠定了基礎[4].
由區塊鏈獨特的技術設計可見,區塊鏈系統具有分布式高冗余存儲、時序數據且不可篡改和偽造、去中心化信用、自動執行的智能合約、安全和隱私保護等顯著的特點,這使得區塊鏈技術不僅可以成功應用于數字加密貨幣領域,同時在經濟、金融和社會系統中也存在廣泛的應用場景.根據區塊鏈技術應用的現狀,本文將區塊鏈目前的主要應用籠統地歸納為數字貨幣、數據存儲、數據鑒證、金融交易、資產管理和選舉投票共六個場景,并概述除數字貨幣外的五大應用場景以及區塊鏈的三種應用模式.
數據存儲:區塊鏈的高冗余存儲(每個節點存儲一份數據)、去中心化、高安全性和隱私保護等特點使其特別適合存儲和保護重要隱私數據,以避免因中心化機構遭受攻擊或權限管理不當而造成的大規模數據丟失或泄露.與比特幣交易數據類似地,任意數據均可通過哈希運算生成相應的Merkle樹并打包記入區塊鏈,通過系統內共識節點的算力和非對稱加密技術來保證安全性.區塊鏈的多重簽名技術可以靈活配置數據訪問的權限,例如必須獲得指定5個人中3個人的私鑰授權才可獲得訪問權限.目前,利用區塊鏈來存儲個人健康數據(如電子病歷、基因數據等)是極具前景的應用領域,此外存儲各類重要電子文件(視頻、圖片、文本等)乃至人類思想和意識等也有一定應用空間[7].
數據鑒證:區塊鏈數據帶有時間戳、由共識節點共同驗證和記錄、不可篡改和偽造,這些特點使得區塊鏈可廣泛應用于各類數據公證和審計場景.例如,區塊鏈可以永久地安全存儲由政府機構核發的各類許可證、登記表、執照、證明、認證和記錄等,并可在任意時間點方便地證明某項數據的存在性和一定程度上的真實性.包括德勤在內的多家專業審計公司已經部署區塊鏈技術來幫助其審計師實現低成本和高效地實時審計;Factom公司則基于區塊鏈設計了一套準確的、可核查的和不可更改的審計公證流程與方法[26].
金融交易:區塊鏈技術與金融市場應用有非常高的契合度.區塊鏈可以在去中心化系統中自發地產生信用,能夠建立無中心機構信用背書的金融市場,從而在很大程度上實現了“金融脫媒”,這對第三方支付、資金托管等存在中介機構的商業模式來說是顛覆性的變革;在互聯網金融領域,區塊鏈特別適合或者已經應用于股權眾籌、P2P網絡借貸和互聯網保險等商業模式;證券和銀行業務也是區塊鏈的重要應用領域,傳統證券交易需要經過中央結算機構、銀行、證券公司和交易所等中心機構的多重協調,而利用區塊鏈自動化智能合約和可編程的特點,能夠極大地降低成本和提高效率,避免繁瑣的中心化清算交割過程,實現方便快捷的金融產品交易;同時,區塊鏈和比特幣的即時到帳的特點可使得銀行實現比SWIFT代碼體系更為快捷、經濟和安全的跨境轉賬;這也是目前R3CEV和納斯達克等各大銀行、證券商和金融機構相繼投入區塊鏈技術研發的重要原因.
資產管理:區塊鏈在資產管理領域的應用具有廣泛前景,能夠實現有形和無形資產的確權、授權和實時監控.對于無形資產來說,基于時間戳技術和不可篡改等特點,可以將區塊鏈技術應用于知識產權保護、域名管理、積分管理等領域;而對有形資產來說,通過結合物聯網技術為資產設計唯一標識并部署到區塊鏈上,能夠形成“數字智能資產”,實現基于區塊鏈的分布式資產授權和控制.例如,通過對房屋、車輛等實物資產的區塊鏈密鑰授權,可以基于特定權限來發放和回收資產的使用權,有助于Airbnb等房屋租賃或車輛租賃等商業模式實現自動化的資產交接;通過結合物聯網的資產標記和識別技術,還可以利用區塊鏈實現靈活的供應鏈管理和產品溯源等功能.
選舉投票:投票是區塊鏈技術在政治事務中的代表性應用.基于區塊鏈的分布式共識驗證、不可篡改等特點,可以低成本高效地實現政治選舉、企業股東投票等應用;同時,區塊鏈也支持用戶個體對特定議題的投票.例如,通過記錄用戶對特定事件是否發生的投票,可以將區塊鏈應用于博彩和預測市場等場景[27];通過記錄用戶對特定產品的投票評分與建議,可以實現大規模用戶眾包設計產品的“社會制造”模式等.
根據實際應用場景和需求,區塊鏈技術已經演化出三種應用模式,即公共鏈(Public blockchain)、聯盟鏈(Consortium blockchain)和私有鏈(Private blockchain).公共鏈是完全去中心化的區塊鏈,分布式系統的任何節點均可參與鏈上數據的讀寫、驗證和共識過程,并根據其PoW或PoS貢獻獲得相應的經濟激勵.比特幣是公共鏈的典型代表.聯盟鏈則是部分去中心化(或稱多中心化)的區塊鏈,適用于多個實體構成的組織或聯盟,其共識過程受到預定義的一組節點控制,例如生成區塊需要獲得10個預選的共識節點中的5個節點確認;私有鏈則是完全中心化的區塊鏈,適用于特定機構的內部數據管理與審計等,其寫入權限由中心機構控制,而讀取權限可視需求有選擇性地對外開放.需要說明的是,由于去中心化程度不同,聯盟鏈和私有鏈可能不完全符合第2節提出的區塊鏈模型,例如中心化程度較高的區塊鏈可能不需要設計激勵層中的經濟激勵等.
作為近年來興起并快速發展的新技術,區塊鏈必然會面臨各種制約其發展的問題和障礙.本節將從安全、效率、資源和博弈四方面概述區塊鏈技術有待解決的問題.
4.1安全問題
安全性威脅是區塊鏈迄今為止所面臨的最重要的問題.其中,基于PoW共識過程的區塊鏈主要面臨的是51%攻擊問題,即節點通過掌握全網超過51%的算力就有能力成功篡改和偽造區塊鏈數據.以比特幣為例,據統計中國大型礦池的算力已占全網總算力的60%以上,理論上這些礦池可以通過合作實施51%攻擊,從而實現比特幣的雙重支付[1].雖然實際系統中為掌握全網51%算力所需的成本投入遠超成功實施攻擊后的收益,但51%攻擊的安全性威脅始終存在.基于PoS共識過程在一定程度上解決了51%攻擊問題,但同時也引入了區塊分叉時的N@S(Nothing at stake)攻擊問題.研究者已經提出通過構造同時依賴高算力和高內存的PoW共識算法來部分解決51%攻擊問題[4],更為安全和有效的共識機制尚有待于更加深入的研究和設計.
區塊鏈的非對稱加密機制也將隨著數學、密碼學和計算技術的發展而變的越來越脆弱.據估計,以目前天河二號的算力來說,產生比特幣SHA256哈希算法的一個哈希碰撞大約需要248年,但隨著量子計算機等新計算技術的發展,未來非對稱加密算法具有一定的破解可能性,這也是區塊鏈技術面臨的潛在安全威脅.
區塊鏈的隱私保護也存在安全性風險.區塊鏈系統內各節點并非完全匿名,而是通過類似電子郵件地址的地址標識(例如比特幣公鑰地址)來實現數據傳輸.雖然地址標識并未直接與真實世界的人物身份相關聯,但區塊鏈數據是完全公開透明的,隨著各類反匿名身份甄別技術的發展,實現部分重點目標的定位和識別仍是有可能的.
4.2效率問題
區塊鏈效率也是制約其應用的重要因素.首先是區塊膨脹問題:區塊鏈要求系統內每個節點保存一份數據備份,這對于日益增長的海量數據存儲來說是極為困難的.以比特幣為例,完全同步自創世區塊至今的區塊數據需要約60GB存儲空間,雖然輕量級節點可部分解決此問題,但適用于更大規模的工業級解決方案仍有待研發[28].其次是交易效率問題:比特幣區塊鏈目前每秒僅能處理7筆交易,這極大地限制了區塊鏈在大多數金融系統高頻交易場景中的應用(例如VISA信用卡每秒最多可處理10000筆交易)[1];最后是交易確認時間問題:比特幣區塊生成時間為10分鐘,因而交易確認時間一般為10分鐘,這在一定程度上限制了比特幣在小額交易和時間敏感交易中的應用.
4.3資源問題
PoW共識過程高度依賴區塊鏈網絡節點貢獻的算力,這些算力主要用于解決SHA256哈希和隨機數搜索,除此之外并不產生任何實際社會價值,因而一般意義上認為這些算力資源是被“浪費”掉了,同時被浪費掉的還有大量的電力資源.隨著比特幣的日益普及和專業挖礦設備的出現,比特幣生態圈已經在資本和設備方面呈現出明顯的軍備競賽態勢,逐漸成為高耗能的資本密集型行業,進一步凸顯了資源消耗問題的重要性.因此,如何能有效匯集分布式節點的網絡算力來解決實際問題,是區塊鏈技術需要解決的重要問題.研究者目前已經開始嘗試解決此問題,例如Primecoin(質數幣)要求各節點在共識過程中找到素數的最長鏈條(坎寧安鏈和雙向雙鏈)而非無意義的SHA256哈希值[29].未來的潛在發展趨勢是設計行之有效的交互機制來匯聚和利用分布式共識節點的群體智能,以輔助解決大規模的實際問題.
4.4博弈問題
區塊鏈網絡作為去中心化的分布式系統,其各節點在交互過程中不可避免地會存在相互競爭與合作的博弈關系,這在比特幣挖礦過程中尤為明顯.通常來說,比特幣礦池間可以通過相互合作保持各自穩定的收益.然而,礦池可以通過稱為區塊截留攻擊(Block withholding attacks)的方式、通過偽裝為對手礦池的礦工、享受對手礦池的收益但不實際貢獻完整工作量證明來攻擊其他礦池,從而降低對手礦池的收益.如果礦池相互攻擊,則雙方獲得的收益均少于不攻擊對方的收益.當礦池收益函數滿足特定條件時,這種攻擊和競爭將會造成“囚徒困境”博弈結局[30].如何設計合理的懲罰函數來抑制非理性競爭、使得合作成為重復性礦池博弈的穩定均衡解,尚需進一步深入研究.此外,正如前文提到的,區塊鏈共識過程本質上是眾包過程,如何設計激勵相容的共識機制,使得去中心化系統中的自利節點能夠自發地實施區塊數據的驗證和記賬工作,并提高系統內非理性行為的成本以抑制安全性攻擊和威脅,是區塊鏈有待解決的重要科學問題.
智能合約概念最早在1994年由學者Nick Szabo提出,最初被定義為一套以數字形式定義的承諾,包括合約參與方可以在上面執行這些承諾的協議,其設計初衷是希望通過將智能合約內置到物理實體來創造各種靈活可控的智能資產.由于計算手段的落后和應用場景的缺失,智能合約并未受到研究者的廣泛關注.
區塊鏈技術的出現重新定義了智能合約.智能合約是區塊鏈的核心構成要素(合約層),是由事件驅動的、具有狀態的、運行在可復制的共享區塊鏈數據賬本上的計算機程序,能夠實現主動或被動的處理數據,接受、儲存和發送價值,以及控制和管理各類鏈上智能資產等功能.智能合約作為一種嵌入式程序化合約,可以內置在任何區塊鏈數據、交易、有形或無形資產上,形成可編程控制的軟件定義的系統、市場和資產.智能合約不僅為傳統金融資產的發行、交易、創造和管理提供了創新性的解決方案,同時能夠在社會系統中的資產管理、合同管理、監管執法等事務中發揮重要作用.
具體說來,智能合約是一組情景-應對型的程序化規則和邏輯,是部署在區塊鏈上的去中心化、可信共享的程序代碼.智能合約同樣具有區塊鏈數據的一般特征,如分布式記錄、存儲和驗證,不可篡改和偽造等.簽署合約的各參與方就合約內容、違約條件、違約責任和外部核查數據源達成一致,必要時檢查和測試合約代碼以確保無誤后,以智能合約的形式部署在區塊鏈上,即可不依賴任何中心機構地自動化代表各簽署方執行合約.智能合約的可編程特性使得簽署方可以增加任意復雜的條款.
智能合約的運作機理如圖5所示:通常情況下,智能合約經各方簽署后,以程序代碼的形式附著在區塊鏈數據(例如一筆比特幣交易)上,經P2P網絡傳播和節點驗證后記入區塊鏈的特定區塊中.智能合約封裝了預定義的若干狀態及轉換規則、觸發合約執行的情景(如到達特定時間或發生特定事件等)、特定情景下的應對行動等.區塊鏈可實時監控智能合約的狀態,并通過核查外部數據源、確認滿足特定觸發條件后激活并執行合約.

圖5 智能合約的運作機理Fig.5 The rationale of smart contracts
區塊鏈和智能合約有極為廣闊的應用場景.例如,互聯網金融領域的股權眾籌或P2P網絡借貸等商業模式可以通過區塊鏈和智能合約加以實現.傳統方式是通過股權眾籌或P2P借貸的交易所或網絡平臺作為中心機構完成資金募集、管理和投資,實際操作過程中容易出現因中心機構的信用缺失而導致的資金風險.利用智能合約,這些功能均可以封裝在去中心化可信的區塊鏈上自動執行.區塊鏈可記錄每一筆融資,當成功達到特定融資額度時計算每個投資人的股權份額,或在一段時間內未達到融資額度時自動將資金退還給投資人.再如,通過將房屋和車輛等實體資產進行非對稱加密,并嵌入含有特定訪問控制規則的智能合約后部署在區塊鏈上,使用者符合特定的訪問權限或執行特定操作(如付款)后就可使用這些資產,這能夠有效解決房屋或車輛租賃商業模式中資產交接和使用許可方面的痛點.
智能合約具有自治、自足和去中心化等特征.自治表示合約一旦啟動就會自動運行,而不需要其他簽署方進行任何干預;自足則意味著合約能夠通過提供服務或發行資產來獲取資金,并在需要時使用這些資金;去中心化則意味著智能合約是由去中心化存儲和驗證的程序代碼而非中心化實體來保障執行的合約,能在很大程度上保證合約的公平和公正性[1].
智能合約對于區塊鏈技術來說具有重要的意義.一方面,智能合約是區塊鏈的激活器,為靜態的底層區塊鏈數據賦予了靈活可編程的機制和算法,并為構建區塊鏈2.0和3.0時代的可編程金融系統與社會系統奠定了基礎;另一方面,智能合約的自動化和可編程特性使其可封裝分布式區塊鏈系統中各節點的復雜行為,成為區塊鏈構成的虛擬世界中的軟件代理機器人,這有助于促進區塊鏈技術在各類分布式人工智能系統中的應用,使得基于區塊鏈技術構建各類去中心化應用(Decentralized application,Dapp)、去中心化自治組織(Decentralized autonomous organization,DAO)、去中心化自治公司(Decentralized autonomous corporation,DAC)甚至去中心化自治社會(Decentralized autonomous society,DAS)成為可能.
就現狀而言,區塊鏈和智能合約技術的主要發展趨勢是由自動化向智能化方向演化.現存的各類智能合約及其應用的本質邏輯大多仍是根據預定義場景的“IF-THEN”類型的條件響應規則,能夠滿足目前自動化交易和數據處理的需求.未來的智能合約應具備根據未知場景的“WHAT-IF”推演、計算實驗和一定程度上的自主決策功能,從而實現由目前“自動化”合約向真正的“智能”合約的飛躍[31?32].
互聯網近年來的迅猛發展及其與物理世界的深度耦合與強力反饋,已經根本性地改變了現代社會的生產、生活與管理決策模式,形成了現實物理世界-虛擬網絡空間緊密耦合、虛實互動和協同演化的平行社會空間,催生了“互聯網+”和工業4.0等一系列國家戰略.未來社會的發展趨勢則必將從物理+網絡的CPS實際世界(Cyber-physical systems,CPS)走向精神層面的人工世界,形成物理+網絡+人工的人-機-物一體化的三元耦合系統,稱為社會物理信息系統(Cyber-physical-social systems,CPSS).目前,基于CPSS的平行社會已現端倪,其核心和本質特征是虛實互動與平行演化[33].
區塊鏈是實現CPSS平行社會的基礎架構之一,其主要貢獻是為分布式社會系統和分布式人工智能研究提供了一套行之有效的去中心化的數據結構、交互機制和計算模式,并為實現平行社會奠定了堅實的數據基礎和信用基礎.就數據基礎而言,管理學家愛德華戴明曾說過:除了上帝,所有人必須以數據說話.然而在中心化社會系統中,數據通常掌握在政府和大型企業等“少數人”手中,為少數人“說話”,其公正性、權威性甚至安全性可能都無法保證.區塊鏈數據則通過高度冗余的分布式節點存儲,掌握在“所有人”手中,能夠做到真正的“數據民主”.就信用基礎而言,中心化社會系統因其高度工程復雜性和社會復雜性而不可避免地會存在“默頓系統”的特性,即不確定性、多樣性和復雜性,社會系統中的中心機構和規則制定者可能會因個體利益而出現失信行為;區塊鏈技術有助于實現軟件定義的社會系統,其基本理念就是剔除中心化機構、將不可預測的行為以智能合約的程序化代碼形式提前部署和固化在區塊鏈數據中,事后不可偽造和篡改并自動化執行,從而在一定程度上能夠將“默頓”社會系統轉化為可全面觀察、可主動控制、可精確預測的“牛頓”社會系統[34].
ACP(人工社會Artificial societies、計算實驗Computational experiments和平行執行Parallel execution)方法是迄今為止平行社會管理領域唯一成體系化的、完整的研究框架,是復雜性科學在新時代平行社會環境下的邏輯延展和創新[35].ACP方法可以自然地與區塊鏈技術相結合,實現區塊鏈驅動的平行社會管理.首先,區塊鏈的P2P組網、分布式共識協作和基于貢獻的經濟激勵等機制本身就是分布式社會系統的自然建模,其中每個節點都將作為分布式系統中的一個自主和自治的智能體(Agent).隨著區塊鏈生態體系的完善,區塊鏈各共識節點和日益復雜與自治的智能合約將通過參與各種形式的Dapp,形成特定組織形式的DAC和DAO,最終形成DAS,即ACP中的人工社會[36].其次,智能合約的可編程特性使得區塊鏈可進行各種“WHAT-IF”類型的虛擬實驗設計、場景推演和結果評估,通過這種計算實驗過程獲得并自動或半自動地執行最優決策.最后,區塊鏈與物聯網等相結合形成的智能資產使得聯通現實物理世界和虛擬網絡空間成為可能,并可通過真實和人工社會系統的虛實互動和平行調諧實現社會管理和決策的協同優化.不難預見,未來現實物理世界的實體資產都登記為鏈上智能資產的時候,就是區塊鏈驅動的平行社會到來之時.
隨著以比特幣為代表的數字加密貨幣的強勢崛起,新興的區塊鏈技術逐漸成為學術界和產業界的熱點研究課題.區塊鏈技術的去中心化信用、不可篡改和可編程等特點,使其在數字加密貨幣、金融和社會系統中有廣泛的應用前景.然而,與蓬勃發展的區塊鏈商業應用相比,區塊鏈的基礎理論和技術研究仍處于起步階段,許多更為本質性的、對區塊鏈產業發展至關重要的科學問題亟待研究跟進.本文系統地梳理了區塊鏈技術的基本原理、技術、方法與應用,以期為未來研究提供有益的啟發與借鑒.
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,February 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(丁未.基于區塊鏈技術的儀器數據管理創新系統.中國儀器儀表,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(趙赫,李曉風,占禮葵,吳仲城.基于區塊鏈技術的采樣機器人數據保護方法.華中科技大學學報(自然科學版),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,February 21,2016
18 CoinDesk Report[Online],available:http://www.bitcoin86.com/news/3527.html,February 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(范捷,易樂天,舒繼武.拜占庭系統技術研究綜述.軟件學報,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/,February 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(王飛躍.計算實驗方法與復雜系統行為分析和決策評估.系統仿真學報,2004,16(5):893?897)
32 Wang Fei-Yue,Qiu Xiao-Gang,Zeng Da-Jun,Cao Zhi-Dong,Fan Zong-Chen.A computational experimental platform for emergency response based on parallel systems. Complex Systems and Complexity Science,2010,7(4): 1?10(王飛躍,邱曉剛,曾大軍,曹志冬,樊宗臣.基于平行系統的非常規突發事件計算實驗平臺研究.復雜系統與復雜性科學,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(王飛躍,王曉,袁勇,王濤,林懿倫.社會計算與計算社會:智慧社會的基礎與必然.科學通報,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(王飛躍.軟件定義的系統與知識自動化:從牛頓到默頓的平行升華.自動化學報,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(王飛躍.人工社會、計算實驗、平行系統:關于復雜社會經濟系統計算研究的討論.復雜系統與復雜性科學,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(王飛躍,蔣正華,戴汝為.人口問題與人工社會方法:人工人口系統的設想與應用.復雜系統與復雜性科學,2005,2(1):1?9)

袁 勇中國科學院自動化研究所復雜系統管理與控制國家重點實驗室副研究員.2008年于山東科技大學獲得計算機軟件與理論專業博士學位.主要研究方向為商務智能與計算廣告學.本文通信作者.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.)

王飛躍中國科學院自動化研究所復雜系統管理與控制國家重點實驗室研究員,國防科技大學軍事計算實驗與平行系統技術中心教授.主要研究方向為智能系統和復雜系統的建模,分析與控制.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
國家自然科學基金(71472174,71102117,61533019,71232006,61233001)資助
Supported by National Natural Science Foundation of China(71472174,71102117,61533019,71232006,61233001)
本文責任編委林宗利
Recommended by Associate Editor LIN Zong-Li
1.中國科學院自動化研究所復雜系統管理與控制國家重點實驗室北京1001902.青島智能產業技術研究院青島2661093.國防科技大學軍事計算實驗與平行系統技術中心長沙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