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