文獻標識碼:A
DOI: 10.19358/j.issn.2096-5133.2018.08.004
中文引用格式:白杰,李東云,吳先鋒.發布區塊鏈標準應用模型及應用部署技術研究[J].信息技術與網絡安全,2018,37(8):13-18.
0 引言
區塊鏈提供了一種去除中心化的系統思想理念,這種思想最根本原理就是通過公眾共識的方式,創建一個相對客觀的抗抵賴數字環境。區塊鏈以分布式數據技術為基礎,加密技術為手段,對數據副本的分布存儲和抗抵賴驗證。目前的區塊鏈平臺,都是基于分布式技術、密碼學、點對點網絡及各種共識算法搭建的。這些區塊鏈平臺,無論是理論上或實際應用中,以及是否支持具體現實中的應用落地,均存在問題,并且各個平臺相互隔離,導致數據和應用的碎片化及孤島現象。其主要原因是:這些平臺雖然采用了區塊鏈思想,但從具體的技術架構設計環節,并沒有從系統化的角度側重考慮對于應用的部署和支撐。
本文定義發布了區塊鏈標準應用模型及應用部署的方法,提出了應用系統獨立部署到區塊鏈的完整系統級解決方法。該方法通過標準化及支持自由擴展的數據接口,標準結構化及格式化的表達式用以描述任何智能合約,以及從數據區塊層至跨域層(數據區塊層、網絡層、平臺框架層、應用層、跨域層,由低至高共計五層)的系統模型,提供一個可以容納并支撐任何應用的區塊鏈環境。它支持任何開發者快速地將自己開發的任何應用部署到該區塊鏈平臺;自由地定義并創建智能合約,并按照合約的定義,自動執行鏈上或鏈下任何應用系統或程序;支持將其已有的任何應用業務系統無縫地與主鏈對接;模型中的平行鏈和混鏈模式,可以雙向兼容任何區塊鏈主鏈或行業鏈。
模型既保證了抗抵賴性、開放性和完全的去中心化,同時保證了數據的私密性。在防篡改性、開放性、完全的去中心化及數據私密性之間,達到了完全兼顧。解決當前區塊鏈技術本身存在的缺陷,為各行業提供了在區塊鏈環境中的應用落地方法和基礎設施。
1 Web3.0與區塊鏈標準網絡應用模型
1.1 目前Web3.0架構的缺陷
當前對于Web 3.0的描述中具代表性的是TUALS的描述,該描述對Web3.0做了抽象概括,但在具體應用實施中有不足之處:將數據層跨接在網絡層之上,但是二者的關系應該是相反的,至多是平行的關系。同時,當前這些碎片化、孤島化的區塊鏈網絡、數據及DApps的融合缺乏有效的手段。
1.2 定義發布區塊鏈標準網絡應用Web3.0模型(Chain NetWork Web3.0,CNWW3模型)
相對于現有的中心化互聯網及應用,基于去中心化思想而構建的互聯網框架及應用,與最終在這些應用之上的跨域聚合,融合現有的中心化互聯網和應用,組成的完整的去中心化,部分領域完全自治的生態環境,是區塊鏈Web3.0標準網絡框架的完整描述。
去中心化應用層與跨域層,是CNWW3模型針對應用部署的定義,其目標是支持任何鏈下應用系統無縫接入或直接部署到鏈上;任何應用系統可采用熱插拔的方式上鏈或下鏈;支持任何鏈上的系統實現跨域交互。
CNWW3模型結構,如圖1所示。
圖 1 區塊鏈標準網絡應用Web3.0模型(CNWW3模型)
各個層級的描述和定義可以參考圖1。實現跨域層的基礎是提供可支持跨鏈的合約和共識系統。
1.3 針對CNWW3模型的定義和描述
第1層,數據區塊層(Data Block Layer)。定義:基本物理數據塊的順序集合,是主鏈的基本組成單元,還有相應的數字憑證和文件。描述:提供全網的分布式數據存儲,通過諸如IPFS、加密、訪問控制等技術來實現數據的去中心化式存儲、加解密和使用。工作方式:通過提供全局一致性的數據接口進行數據的存儲、加密和訪問能力。
第2層,網絡交換層(Network Layer)。定義:集合多種通信協議,是各個節點相互通信和節點發現,數據和信息交換的基礎網絡設施。描述:系統的分布式節點通過網絡交換層完成組網、數據的交換和同步、共識協商、交易廣播等功能。工作方式:通過分層的P2P網絡,實現節點的自動登記和發現,并完成最終的數據和信息的交換。
第3層,平臺框架層(Framework Layer)。定義:不同鏈能力集合,鏈與鏈間的相互功能注冊、發現、集成平臺,跨鏈間交互的基礎。描述:基于數據和網絡,框架層提供對應的基礎區塊鏈功能和架構。其中最重要的能力就是跨鏈,通過跨鏈功能將各個區塊鏈能有機的進行組合,從而提供更多的能力。作用:提供去中心化應用開發基礎平臺和框架支持。工作方式:通過聚合不同的區塊鏈平臺,并提供有效的跨鏈解決方案,從而能集中使用各個區塊鏈平臺提供的能力,構建基于全網的去中心化應用。
第4層,去中心化應用層(Decentralized Application Layer)。定義:鏈上和鏈下應用的一體化創建、部署、對接和使用。描述:大部分應用場景在這一層進行實現和滿足。基于框架層的支持,開發者、組織或結構都可以構建自己的去中心化應用,實現自己的需求。工作方式:和傳統的應用開發類似,應用開發者通過框架層提供的各類API或接口,定義、創建、發布和使用去中心化的應用。
第5層,跨域層(Cross Domain Layer):定義:跨鏈,跨去中心化應用的聚合連接,構建完整的去中心化生態。描述:去中心化的互聯網平臺最重要的就是數據、網絡和平臺的分布式和共享,所以在應用層,也需要提供一個完整統一的方式,跨域層就需要完成這項工作。通過對不同應用的打通和連接,最終提供整體的去中心化網絡。工作方式:通過用戶授權和驗證,從數據層到應用層,將所有去中心化應用通過有序的方式組合,提供統一的入口和完整的用戶服務和體驗。
2 CNWW3模型的說明
2.1 建立公鏈
實施CNWW3模型示意圖如圖2所示。
圖 2 實施CNWW3模型示意圖
建立基礎公鏈平臺,規范定義數據接口和結構,支持其他區塊鏈對接,是支持跨鏈基礎。跨鏈的共識通過統一的公鏈平臺進行提供。
(1)公鏈用于跨鏈中繼,完成交易驗證,數據證明,智能合約執行;
(2)統一接口和規范,快速接入公鏈并支持跨鏈;
(3)提供基礎區塊鏈平臺,完成區塊鏈方案快速部署和驗證;
(4)提供公共開發平臺,一次性完成多個平行鏈智能合約協同開發和部署。
公鏈內容:公鏈數據+平行鏈信息摘要(交易摘要或散列值)。通過格式化的表達式描述交易,使用壓縮算法有效地提高區塊存儲能力,記錄更多平行鏈的信息。公鏈的區塊數據必須包含如下內容:
(1)標識:序號、時間戳、區塊hash值、前區塊hash值;
(2)歸屬:區塊生成者;
(3)其他信息:隨機值、難度值、附加信息等;
(4)權重:大小;
(5)信息摘要:交易樹、狀態樹、收據樹、數據樹。
行業鏈或聯盟鏈或私有鏈,都可以通過公鏈平臺快速建立。CNWW3支持調用創建鏈的封裝快速建鏈。
2.2 中繼模式支持跨鏈
跨鏈解決現有區塊鏈網絡相互隔離的問題,真正打通不同網絡/應用之間的隔閡。
(1)在不改變現有區塊鏈的基礎上,通過提供獨立平行鏈,完成平行鏈與公鏈的對接;
(2)提供標準的接口規范。新區塊鏈基于對接規范適配開發即完成跨鏈。其中非常重要的一點是,如果新鏈是基于公鏈創建的,就可以認其為公鏈的側鏈,天然具有支持跨鏈的功能。
2.3 共識機制
CNWW3模型采用一種混合的共識機制(Proof of Mixture,POM),基于POW(Proof of Work)的工作量證明與有效性權重(Proof of Validity Weight)方式。周期內隨機選定符合條件的節點,在分層的基礎上,通過打包進入區塊的驗證信息(多個維度)的權重來決定區塊的有效性,并完成全網區塊同步。相關維度包括:
(1)來源。不同平行鏈有不同優先級。
(2)價值。基于一個時間段的平均值。
(3)等待時長。等待時間越長,權重越高。
(4)類型。不同類型有不同權重。
(5)其他維度。合約的層級或特殊權重地址等。
2.4 擴展性和兼容性
并非所有交易合約都需全網驗證,最終區塊全網一致即可;采用隨機算法,各類BFT和零知識證明等算法,通過部分節點快速確認和驗證交易和合約,并最終在全網達成共識;網絡結構分層和節點分類,使數據、交易、合約和共識相互分離,避免相互制約和耦合,滿足獨立和可擴展性。
通過CNWW3模型中交易鎖定方式,在CNWW3模型定義的公鏈發起有鎖定條件的交易,平行鏈監聽其他區塊鏈的交易結果并同步至公鏈,完成跨鏈交易。對于支持智能合約的區塊鏈網絡,調用公鏈智能合約,通過平行鏈的智能合約橋接,執行主鏈部署的智能合約進行交易。平行鏈監聽主鏈交易和狀態并同步至公鏈,完成跨鏈交易。
2.5 分層機制
CNWW3模型在協議分層:
(1)數據層、交易層、共識層、合約層、應用層,按照對應邏輯進行清晰劃分;
(2)軟件結構層面,定義接口的方式,進行獨立和解耦。通過標準的UBCI(Universal Block Communication Interface)接口協議,各層使用不同的方式(如不同的語言,環境等)實現對應的功能和接口;
(3)不同層級采用不同共識的方式,相互間非阻塞異步處理;
(4)信息哈希處理,區塊同步時能有效調整已經被驗證過的區塊順序。
2.6 分片機制
CNWW3模型中,數據同步、共識處理和合約執行,通過強隨機分片方式進行高速分離處理。即:數據無需全網同步,共識無需全網處理,合約無需全網執行。通過交易參與方靈活指定,達成交易快速處理。最后通過公鏈分層共識機制,完成最終的全網同步。
2.7 支持超過十萬TPS級別的交易和合約執行能力
通過對于交易和合約執行的共識分區隔離,通過算法確定全網的一致,能支持高交易量。在CNWW3模型中,通過交易個數動態調整區塊大小,并在區塊中將交易和合約本身的內容進行分離,主塊中只存儲交易和合約的摘要值或散列值,同時提供異步調用合約機制,提高同一個區塊處理的交易和合約的個數。
2.8 關于交易
CNWW3模型中,交易是具有狀態的:
(1)創建:基于本地新建交易,除常規內容,支持指定其他規則,如時間、區塊號、驗證人數、鎖定時長/區塊、簽名規則、通知信息等;
(2)發布:發布交易至區塊鏈,等待驗證確認;
(3)待驗證:已經收到交易,并等待驗證;
(4)驗證:開始驗證交易;
(5)鎖定:如指定鎖定規則,則按照規則鎖定;
(6)解鎖:按規則解鎖交易;
(7)成功:驗證成功/解鎖成功并成功進入區塊;
(8)失敗:無法進入區塊的其他情況。
對應的狀態變遷如圖3所示。
圖 3 交易狀態變遷示意圖
2.9 智能合約
CNWW3模型中公鏈提供完備的智能合約機制,便于應用開發者進行相應的智能合約開發,公鏈網絡自身部分工作也是內置的智能合約完成的,如:節點角色分配和申報、投票和表決、平行鏈維護、分片機制、有效性驗證調用、監察維護及非法舉報、跨鏈合約鎖定。編寫智能合約沒有嚴格的限定,通過多編程語言的API接口,準許使用者任意選擇語言對合約開發和部署。提供智能合約升級功能,可最大限度保障安全和可靠性。在公鏈中,智能合約的狀態有如下幾種:
(1)創建:新建一個智能合約;
(2)更新:更新一個智能合約,某些特定合約支持更新功能;
(3)調用:執行智能合約;
(4)暫停:暫停智能合約執行;
(5)恢復:恢復智能合約執行;
(6)停止:停止智能合約執行。
CNWW3模型中智能合約調用執行方式如下:交易驅動型、消息驅動型及Oracle驅動型。通過分層共識,分片調配,支持異步合約,為合約提供更大自由度。合約代碼和數據的存儲位置可在不同的節點。
對應的狀態變遷如圖4所示。
圖 4 智能合約狀態變遷圖
2.10 角色描述
CNWW3模型中,不同角色分別維護公鏈和平行鏈。為了在平行鏈和公鏈上以最簡方式存儲必要的數據,也提供分布存儲能力,用于存儲其他類型的基礎數據。
(1)權益所有者(O)。具有系統Token的用戶。
(2)公鏈維護者(M)。任意節點都是維護者。
(3)平行鏈維護者(P)。任意節點可申請成為平行鏈維護者。
(4)所有的節點都自動具有監督者/候選者(C)的角色。在指定周期內未被選中承擔M或者P角色的節點,可以自動作為C的角色進行監督和監察的工作。也可能被選中作為M或P的角色,在不同階段承擔不同角色。
(5)公鏈服務提供者(S)。提供公鏈服務的節點。
(6)數據存儲者(D)。分布式數據存儲的節點。
角色示意圖如圖5所示。
圖 5 角色示意圖
2.11 網絡平臺
CNWW3模型對于網絡層是可自動伸縮的自適應網絡,分層如圖6所示。
圖 6 網絡層級示意圖
(1)公鏈平臺、平行鏈平臺和基礎數據存儲平臺,在點對點網絡層分為公鏈層、平行鏈層和數據存儲層;
(2)公鏈層網絡承擔最高并發和同步要求的網絡層,處于最高優先級。當節點身兼多職,對應公鏈的網絡信息將是第一優先級;
(3)平行鏈網絡的能動態調整和伸縮;
(4)數據存儲網絡支持數據的安全性校驗。
3 CNWW3模型的應用場景
幾種常見場景的描述如下,便于更進一步理解方案內容。
3.1 平行鏈維護
CNWW3模型提供支持以太坊及其他區塊鏈的平行鏈。開發者可按照CNWW3模型的定義進行實施,完成第三方區塊鏈平行鏈接入。同步母鏈區塊鏈信息到平行鏈,并觸發公鏈智能合約執行;同步公鏈交易/智能合約到平行鏈,并觸發母鏈智能合約進行交易/合約執行。
這兩項工作,均涉及平行鏈的數據和狀態的維護,下面是涉及的相應操作步驟:
(1)周期內平行鏈選擇維護節點Pn;
(2)同步上一個周期內的Pn-1節點的數據到Pn;
(3)觸發平行鏈的交易和合約;
(4)平行鏈觸發母鏈的交易和合約;
(5)Pn節點查詢母鏈的執行結果;
(6)觸發公鏈的交易和合約;
(7)Pn節點查詢公鏈的執行結果;
(8)Pn節點提交母鏈結果至公鏈;
(9)Pn節點提交公鏈結果至母鏈;
(10)Pn節點打包平行鏈區塊并廣播;
(11)Pn節點提交平行鏈區塊結果至公鏈;
(12)公鏈完成最終驗證并打包區塊。
3.2 跨鏈交易/智能合約執行
首先需要考慮的是交易部分,其中涉及兩種類型的母鏈,一種是支持智能合約的,如以太坊;另外一種是完全不支持智能合約的,需要分別進行考慮。
3.2.1 無智能合約能力的母鏈跨鏈交易——不支持鎖定
該場景下,通過公鏈的交易狀態屬性,能完成對應的跨鏈交易。
整個過程簡要描述如下:
(1)PB……>PA(x)(鎖定交易);
(2)OA——>OB(y)(起始鏈交易);
(3)PB——>PA(x)(鎖定交易確認);
(4)PA……>PB(x)(再次鎖定交易);
(5)DB——>DA(z)(目標鏈交易);
(6)PA——>PB(x)(再次鎖定交易確認)
3.2.2 無智能合約能力的母鏈跨鏈交易——支持鎖定
母鏈支持鎖定狀態的話,一種可能的跨鏈交易方式如下:
(1)OA……>OB(y)(起始鏈鎖定交易);
(2)DB——>DA(z)(目標鏈交易);
(3)OA——>OB(y)(起始鏈鎖定交易確認)
3.2.3 有智能合約能力的母鏈跨鏈交易
這種場景下的跨鏈交易,通過智能合約的支持,將大大降低對應的難度,與無智能合約能力支持鎖定的母鏈跨交易類型相比,在OB和DB上均可以通過智能合約,完成對應的鎖定和釋放工作,同時,交易的結果可以直接通過消息告知,不用通過OP和DP進行輪詢查找。
3.2.4 跨鏈智能合約執行
智能合約的執行,母鏈一定是支持智能合約的。這種方案和具有智能合約的母鏈跨鏈交易原理是一致的,這里不再贅述,可以通過公鏈的智能合約能非常便捷地完成對應的跨鏈合約。
4 結論
本方案通過對現有區塊鏈平臺的分析并結合實際的行業需求,在多個維度對區塊鏈技術和應用快速落地進行了突破,提出相關的改進和解決方案,完成并發布CNWW3模型標準:
(1)通過標準的接口和數據結構定義,任何應用均可以無縫接入區塊主鏈,解決傳統應用上鏈的問題;
(2)通過標準、結構化和可擴展的描述表達式完成智能合約的描述,突破了當前沒有一套標準的智能合約表達描述,所有的系統只能自己定義自己的合約執行系統,不能夠相互兼容的問題;
(3)通過中繼方式,使用側鏈技術和平行鏈技術完成跨鏈的信息和價值交換,解決了當前區塊鏈主鏈相互不兼容的難點;
(4)將分布式網絡進行分層處理,提供不同的優先級,保障最重要的信息和數據進行交換和同步;
(5)通過交易和合約完整狀態定義,提供交易驗證的后置技術方案,解決交易和驗證的高并發問題。
通過CNWW3標準模型,現有的區塊鏈網絡可以快速進行跨鏈的價值和信息交換,新的應用也能基于公鏈進行快速開發、部署和驗證,最終構建完整的基于去中心化網絡的應用生態體系。
(收稿日期:2018-07-06)
作者簡介:
白杰(1980-),男,本科,系統分析師,高級技術職稱(國家副高職),主要研究方向:信息安全、數字加密與身份識別、數據基因技術、數字基因工程、超大規模數據傳輸與處理、基于“云”網絡的大規模數據集中并發運算處理技術、基于“云”網絡的大規模數據分布式協同運算處理技術。
李東云(1981-),男,本科,主要研究方向:電子信息科學與技術、智能設備、網絡系統安全和互聯網技術。
吳先鋒(1978-),男,碩士,主要研究方向:計算機軟件、算法和軟件及系統結構、軟件中間件服務器。