區塊鏈的本質和架構模型
區塊鏈的定義和本質
筆者經過對各種區塊鏈異同點的分析和歸納思考,先給出了一個區塊鏈定義。
區塊鏈是在符合現實社會法律法規前提下,可治理的,依賴于密碼學算法和博弈經濟性設計,基于共識算法,對發生在主體間的價值創造,價值轉移,價值交換,以及涉及到各個價值主體由機器驅動的業務流程,在多個對等的主體間形成的共識,從而達到共享業務狀態,共享價值狀態,即共享賬本,以達到加速社會資源配置和價值流通,最終提高生產力的目的。
區塊鏈的本質是共識,在互不信任的主體間的共識就形成了公認的價值。區塊鏈的目標是解放和提高整個社會的生產力,手段是將生產關系虛擬化,運用IoT和價值錨定技術將現實世界和虛擬世界無縫連接起來,虛擬化的業務合約可以由機器自動化驅動現實和虛擬社會的資源配置,價值生產和流通,結合大數據智能分析優化虛擬的生產關系,現實和虛擬的法律法規和治理機制為虛擬的區塊鏈社會的穩定發展提供保障。
區塊鏈的架構模型
作者從區塊鏈的本質出發,以發展的眼光看待區塊鏈的架構和架構未來的發展,關注于主要業務和技術能力,給出一個全面而高度概括的區塊鏈架構模型。這是一個面向鏈合約服務的高階架構模型,體現了未來基于區塊鏈實現高度自動化、智能化、公平守約的虛擬社會生產關系的能力。
面向鏈合約服務的高階層次化架構包括了三大部分:業務合約和賬本,區塊鏈平臺服務,UI界面和API接口。以下對各個部分進行詳細說明。
?
圖1 區塊鏈架構模型
業務合約和賬本
在現實世界,我們每個人都處在各種關系契約中,所有人在契約的約定下參與整個社會的生產和生活。區塊鏈技術最終要能促進生產關系虛擬化,推動生產力的發展,整個區塊鏈生態系統的核心就是要能支持各種契約,即業務合約,并在相關參與者間共享交易賬本。
業務合約大到非常復雜的業務合約流程,這要高于企業各自的流程,是各個企業、組織或個人作為流程主體共同參與制定共同認可的生產關系流程契約。比業務合約流程粒度小的業務合約稱為合約服務,合約服務是在語義層面對業務行為進行抽象的最小契約,合約服務由一組合約動作(action)構成。作為抽象的合約服務的具體實現,合約代碼可以由不同合約語言編寫,合約代碼中引用的業務條款和法律條款也都可以有具體的不同實現語言。
合約流程
合約流程實現了基于合約服務的一系列固定的,按照既定業務規則和法律條款串聯或并聯起來的合約動作,通過各個合約動作的完成,實現業務在各個流程參與方的執行,實現由機器流程引擎驅動的價值高速自動創造,自動流轉,自動交換。合約流程一旦運行起來就是一個狀態機,合約流程在參與方間共享流程狀態,也就是共享一致的狀態機的狀態。
業務參與各方在閱讀具體的業務合約流程業務規則,法律條款后,簽定合約流程契約,合約流程生效,流程可以通過時間觸發,也可以是鏈上的事件觸發,也可以Oracle事件觸發,也可以人工觸發。初始化后的流程實例按照后續節點的類型,人工節點或是計算節點,實現通過UI界面或API的外部輸入確認的人工執行驅動,或調用合約服務的具體action實現代碼的機器計算驅動,形成業務價值交易,流程引擎調用業務條款檢查服務和法律條款檢查服務,獲得業務節點的業務規則狀態和法律條款滿足狀態,按照既定的流程規則,引擎驅動流程判斷流向下一(多)個節點。
業務流程在各個節點流轉時,由流程引擎驅動形成一個個的流程流轉交易,業務流程合約參與方通過共享流程流轉交易實現流程狀態共享的目的。流程驗證者在本地的沙盒中執行對流程流轉交易的驗證,實現流程狀態機一致的狀態流轉。
合約服務
作為業務合約的主體,定義了業務合約最基本的服務內容,每一個合約服務就是一種最小的完整的概念層面的業務語義定義。合約服務定義了完成業務所需的一個或多個合約動作(action),每個合約動作定義了輸入狀態和輸出狀態和要執行的業務邏輯命令。
合約服務本身和每一個合約動作,以及其中用到的任何合約條款法律條款都需要用人類語言進行清晰明確的描述,必要時提供形式化語義描述以免出現語言理解偏差。每一個合約動作的執行形成一個明確的合約價值交易。合約流程引擎在執行流程節點流轉時,按照流程定義的對合約服務動作的調用,自動進行服務動作的執行,從而產生業務價值交易,這是一種內在的合約服務調用。合約服務的調用也可以是外在的,由用戶通過UI界面基于外部API接口實現調用。
合約服務可以是一種組合服務,對現有的合約服務動作進行組合,形成新的服務動作業務語義。合約服務的可組合化有利于基于已有的業務合約定義,通過快速構建新型的業務合約進行生產關系創新,實現不同產業價值服務的零距離整合。為了實現合約服務的自包含化,并支持服務流程的編排,以及服務計算容器化、分布式、可擴展的架構部署要求,合約服務需要定義成無狀態的。當簽約用戶或流程調用合約服務時,合約服務會進行服務路由,基于鏈服務管理的路由規則,選擇特定的合約代碼實現來具體驗證執行業務價值交易。
合約代碼
合約服務的每一個合約動作都會產生業務價值交易,業務價值交易會在合約代碼實現上進行執行和驗證。作為交易驗證者,合約服務可以有多種實現,如不同合約語言的實現,不同合約提供商的版本實現,不同利益相關方的合約代碼實現,這有利于所有的合約服務參與者去中心化,并在抽象的業務層面就達成共識。
合約代碼實現了合約動作定義的輸入狀態和輸出狀態和要執行的一組業務邏輯命令計算,命令是最小的執行單元,可以是調用一個技術服務,如生成zkSNARK證明,也可以是輸入和輸出狀態檢查、邏輯計算、法律條款服務檢查等。
經過所有的命令執行,如果輸入狀態可以確定性地得到輸出狀態,對于合約服務的發起者就可以形成一個業務價值交易建議,而其他參與者可以對這個業務價值交易建議進行驗證。對于合約流程產生的流程流轉交易,由流程執行建議者計算出狀態遷移交易建議,由流程執行驗證者進行本地流程流轉驗證。
價值共享賬本
合約流程的流轉會產生流程流轉交易,合約服務的執行會形成業務價值交易,所有的這些交易日志,被分類按應用按聯盟團體組織成區塊鏈或者交易鏈,形成不可更改和抵賴的數據結構,在各個參與方之間形成一個統一的狀態賬本。價值共享賬本需要以高效、規范的方式進行數據組織,包括交易日志和賬本狀態,以便于流程狀態(狀態機)和資產狀態數據庫的快速更新,也便于對歷史交易進行快速查找和回溯。另外,價值共享賬本底層還需要有共享的通信機制,如使用各種P2P算法,便于相關方進行基于權限的相關交易數據的快速同步。
區塊鏈平臺服務
區塊鏈平臺服務提供所有區塊鏈平臺層面的公共服務,平臺服務同具體的業務無關,是可以為所有業務合約所共享的服務。各種平臺服務可以是鏈上的,也可以是鏈外的,一同構成一個區塊鏈平臺不可或缺的能力。主要包括合約合規,安全控制,鏈上共識,鏈服務管理,治理(鏈上、鏈外),開發運維。
合約合規
合約合規服務將那些公共的合規性要求抽取出來,形成各個業務都通用的規則條款檢查服務,合約條款驗證服務,法律條款驗證服務,Oracle服務約定,合約憲法條款約定。
合約憲法指明了合約糾紛適用的法律,爭議解決辦法,以及人類可讀的合約意圖等。一個實際的區塊鏈平臺能夠同現實社會經濟并行運行的一個前提條件就是同現實社會一致的合法合規性。不論是把現實世界中心化的合約去中心化建模成虛擬世界的業務合約,還是基于區塊鏈新型的生產關系新創造的業務合約,合法合規依然是根本。
法律和規則都可以以最低粒度的條款內容存在,為了支持業務合約的快速搭建和創新,將通用的合約條款,規則條款,法律條款實現為一種服務,基于對條款服務的引用和基于條款服務的組合,可以實現更高粒度的合規合法性驗證要求。業務合約可以基于這些合約規則,合約條款,法律條款和組合的合規合法性驗證要求自動進行交易的合規性驗證。
對于那些無法由代碼實現的驗證內容和合約意圖,可以通過人類可以理解的方式通過合約憲法指定合約運行所依賴的現實世界法律,指定出現無法在鏈上解決的爭議,在現實世界的解決辦法。合約流程和合約服務如果使用現實世界數據輸入的,為了達到確定性運行,所有驗證人的驗證執行都必須依賴相同的Oracle服務或者交易各方都認可的Oracle服務。
安全控制
區塊鏈在平臺安全層面需要設計隱私模型,權限模型。
同現實世界人們需要一定的隱私性和匿名性一樣,區塊鏈虛擬世界也需要提供相應的隱私保護給用戶。對于公有鏈,出于網絡的安全考慮,往往需要交易無關方對交易內容執行驗證,必須讓用戶身份信息同用戶的交易信息隔離,使用戶身份得到保護,甚至采用零知識證明zkSNARK算法僅向驗證者提供一個無需暴露交易內容的證明,驗證者就可完成驗證,做到絕對的交易身份隱匿。
許可鏈由于網絡的參與方都是受控的,所以防范網絡攻擊的安全需求沒有公有鏈那么高,共識機制只需確保技術層面的一致和完備,交易業務層面的驗證可以只在交易相關方進行驗證,這樣可以保證交易無關方看不到任何交易內容,即使是加密的交易內容也看不到。
公有鏈是一種開放權限的設計思路,不會顯式的設定不同參與人的操作權限,只會采用黑名單機制。而許可鏈是一種白名單機制,有非常嚴格的準入機制,只有允許的參與方才可以參與被允許的業務合約。許可鏈通常采用PKI基礎設施通過自身的CA機構,同企業現有的權限管理系統進行集成,如LDAP、AD服務器,進而控制不同的人具有不同的合約操作權限。
區塊鏈由于采用公私鑰機制進行交易,不論采用哪種數據模型,都存在最小粒度的基于私鑰的賬戶概念。區塊鏈存在兩種類型的合約賬戶:合約流程賬戶(Contract Process Account, CPA)和合約服務賬戶(Contract Service Account, CSA)。外部用戶也會有自己的私鑰賬戶(User Account, UA),外部用戶賬戶會參與到合約流程賬戶和合約服務賬戶相關的活動中,而合約流程賬戶會依賴合約服務賬戶執行相關的合約動作調用。
不同的合約流程和合約服務實例化后的相互關系會非常復雜,我們可以把這三種賬戶按照使用關系和依賴關系組織成樹狀結構,采用merkle證明的方式進行權限證明驗證。
鏈上共識
共識機制是區塊鏈建立信任的基石。不同類型的區塊鏈出于不同的考慮會選擇不同的共識算法或者采用共識算法的組合。共識的內容包括賬本的規范化(如何組織區塊,組織交易鏈),交易的確定性執行結果,交易的非雙花唯一性,交易的順序完備性,以及其他保證網絡安全穩定運行的其他信息(如數據可用性)。
另一方面,共識機制的運行又不應同賬本的規范化和交易的驗證緊密綁定在一起,這也遵從關注點分離的架構原則,有利于區塊鏈平臺整體的模塊化,插件化,容器化,有利于平臺的橫向擴展性。
鏈服務管理
區塊鏈平臺服務一個很重要的能力體現就是對于鏈上服務的高效可靠的管理,所有區塊鏈的業務合約的正常穩定運行都依賴于這些注冊的鏈服務。這種重要性使得鏈服務的管理需要遵從區塊鏈治理體制和治理流程規則。鏈服務包括以下幾種類型:
- 合約流程管理:包括對合約流程的建立,版本升級,退出的管理。一旦某個用戶賬戶綁定在合約流程實例賬戶上運行,一直要運行到整個合約流程實例完全結束,可以提供退出子流程供中途退出,或者通過治理流程,讓所有參與者選舉主動結束合約流程實例。
- 合約服務管理:包括對合約服務的注冊,版本升級,退出的管理。每一個合約服務是一個有完整業務意義的抽象的合約規約,其中每一個合約動作都代表了不同利益方共同遵守的價值約定,一旦簽約加入合約服務,就從法律意義上確認了這樣的價值約定。
- 鏈技術服務管理:包括對鏈技術服務的注冊,版本升級,刪除操作。合約服務和合約流程運行時所依賴的公共技術服務,如生成鏈平臺的zkSNARK證明,驗證簽名,如果暴露成鏈服務的形式,就可以完成基于無狀態服務的計算可擴展性,特別適用于計算密集型的技術服務高負載運行時,可最大并行度地支持合約服務的驗證執行,也有利于采用特定的硬件加速技術服務。
- Oracle服務管理:包括Oracle服務的注冊,版本升級,刪除操作。Oracle服務是虛擬世界同現實世界的橋梁,很多業務合約的運行都離不開來自于現實世界的信息,必須提供統一的Oracle服務,供所有的驗證人進行運行時驗證,才能保證交易驗證的確定性。Oracle服務橫跨兩個世界,所以必須在兩個世界都要設立對其的監督制約機制。虛擬世界的監督機制設計,如存入大額抵押金成為Oracle服務提供方,成立賞金獵人監督機制,一旦被發現非法行為,如提供同實際情況不符的Oracle證明,即被沒收所有抵押金,吊銷Oracle服務資質,記錄征信檔案,在現實世界也需要做出相應的懲罰。
鏈上治理和鏈外治理
任何不同利益主體參與的活動,從長期穩定發展的角度來看,都需要配套的治理策略和機制保障。區塊鏈作為多利益主體參與的動態變化的系統,架構處于不斷演進過程中,運行的業務合約也不斷發展變化,還面臨利益驅使的惡意行為,及有組織的黑客攻擊行為,運行的業務合約和交易都存在監管和審計的需求。
為了讓區塊鏈可以平穩安全的運行,特別是對于公有鏈,需要從公平正義的基本法理出發,預先設計出完整的博弈經濟模型和社會化治理機制。博弈經濟模型可以保證區塊鏈的參與者都以不同的角色,積極高效自覺地參與和維護區塊鏈的生產、管理和治理,對符合區塊鏈整體利益的行為進行激勵,對正義行為進行獎勵,對惡意行為進行懲罰,使用經濟手段阻斷黑客攻擊,讓攻擊行為得不償失,另外,模仿現實世界對經濟活動征收稅收,稅收用于整個區塊鏈平臺的治理。
為了能高效公平地推進鏈的治理,可以預先設計出擴展性良好的底層治理機制,如設計底層的鏈上投票合約,基于這個底層機制可以進行相關平臺重大事項的社會化投票公決,如區塊鏈主憲法的更改,鏈參數的更新,鏈系統合約的升級,業務合約(合約流程,合約服務,合約代碼)以及合約法律的升級。
對于那些無法通過鏈上解決的治理問題,或者需要現實世界配合解決的問題,以及那些還無法預見的問題,需要設定鏈外治理的策略和機制,如對于確認的業務合約中的惡意行為或黑客行為,除了經濟手段懲罰,還可以訴諸現實世界法律手段。
一個穩定運行的區塊鏈系統就形成一個經濟和金融體系,離不開對在其中運行的經濟交易的持續審計和監管,以杜絕違法合約和交易行為,如反洗錢交易。每一個業務合約的接入方需要負責對客戶進行盡職調查,做到KYC監管要求。對于區塊鏈的有效治理,還離不開基于區塊鏈交易數據的大數據智能分析,由于區塊鏈是一個經濟系統,可能還需要基于分析結果施加以適應經濟規律的宏觀政策。
開發運維
一個成功的區塊鏈平臺就是一個多利益主體參與的生態系統,每一個參與主體(政府、企業、組織、個人)都有可能參與到平臺的開發和運維工作中來。
設計和開發人員可以參與到基礎平臺層服務的設計開發,也可以實現業務合約的規格制定和開發,這其中會涉及到架構人員,業務人員,法律人員,技術人員,監管人員等各種專業人員。
對于一個業務合約的設計和開發,首先需要由業務人員,法律人員和架構師完成完整的業務合約規約的制定,不同價值主體可以共同完成或由一方完成后討論,形成合約共識,制定出完整的合約流程,合約服務規格說明書;再由不同的參與主體自行開發實現或委托實現,可以不斷迭代提煉出通用的服務,如法律條款檢查服務,通用技術服務,各方在自行開發實現時充分利用平臺已有的成熟的通用服務以提高實現效率和服務穩定性,參與各方可以采用不同的語言實現合約服務邏輯,以保證合約服務語義層面的一致性和合約的分布性。可以設計和開發的要件有:合約流程,合約服務,合約代碼,技術服務,規則服務,合規服務。
每一個參與主體特別是驗證節點都可以參與到區塊鏈的平臺運維中來,運維行為包括對運行節點服務的容器化集群,提供動態擴展能力,安裝多語言多VM實現節點,支持多節點并行運行,并行驗證。生產運維需要有完善的流程,面對區塊鏈日新月異的變化,可以充分利用DevOps進行持續開發,持續集成的新開發運維體制和自動化測試部署流程。
對于生產系統需要能夠進行監控,進行事件記錄,對重要事件發出告警,對于告警錯誤碼需要預先制定處理流程,針對區塊鏈系統和業務,還需要預先制定出正常情況和異常情況下的運維流程。
UI界面和API接口
整個區塊鏈服務對外的交互接口,包括提供給人的UI界面和提供給其他信息系統或人工智能代理的API接口。交互的主要內容包括:
個性化任務列表
價值主體加入某個合約流程后,如果合約流程的某個業務流程節點需要主體的輸入和確認,這就轉化成對這個主體的界面交互請求,用戶需要在一個業務界面中輸入必須的內容,或者確認系統提供的業務信息,并使用主體的業務操作私鑰進行簽名,以表明主體的操作權限,讓業務合約得以繼續進行下去。主體可以同時加入多個合約流程,這就會存在一個任務列表,需要主體逐個進行界面操作完成。
個性化分布式APP
每一個業務合約都可能是一個App,多個業務合約一起也可以是一個App,用戶,用戶的IoT智能終端,或者用戶的人工智能代理,加入的每一個業務合約(合約流程或合約服務)都是一個業務應用,所以需要為用戶提供定制化的分布式App,滿足用戶的個性化需求。比如設計一個大一統的App基礎平臺,在其上提供各種插件式的個性化小應用,為用戶加入的各個業務合約提供界面,用戶自己管理自己身份,不再控制在集中的機構手中,所有小應用的交易和授權都是基于用戶各個應用的私鑰進行,只由用戶本人控制。
IoT協議適配和價值錨定
區塊鏈一個大的應用方向就是同物聯網的結合,物聯網的各種終端要實現智能化自動制造,智能化自主服務,就需要將他們綁定到虛擬世界里,傳統的IoT中心化控制架構是無法直接反應社會化生產和服務要求的。
區塊鏈作為一個虛擬的經濟社會,維持了虛擬的經濟生產關系,讓IoT智能終端參與區塊鏈群體中,參與到具體的區塊鏈合約流程和合約服務中,由社會化的區塊鏈機器自動驅動IoT終端進行自動化的生產和服務,并引入人工智能代理加速人工處理,可以極大提高生產力。區塊鏈需要同IoT的協議進行適配,以確保雙向交易的無障礙流通。
另外,為了在虛擬世界建模現實世界的價值生產,轉移和交換,將現實世界真正融入到虛擬世界的生產關系合約中,需要為現實世界生產的產品和服務價值,在虛擬社會分配一個價值錨定標簽,就如同虛擬世界擁有了私鑰就可以鎖定價值一樣,在現實世界,也需要有一套可行的方案將虛擬世界的價值錨定標簽植入到現實世界的產品和服務中去,不同的產品和服務可能需要不同的錨定機制。通過價值錨定標簽,現實世界價值的生產、轉移和交換就可以無縫融合進虛擬世界的生產關系合約流程和服務中去。
人工智能代理
作為價值主體,可以使用人工智能代理幫助其完成合約流程的自動流轉和合約服務動作的自動發起。一個虛擬世界高速運轉的生產關系需要這樣的角色,隨著人工智能的發展,人工智能代理也能夠勝任基本的基于規則和用戶習慣的操作。另外,結合大數據智能分析,在設定一定的業務目標后,可以由人工智能代理主動發起一些優化的交易,降低人工操作,提高整個合約服務的運行效率,可以預見性地優化資源配置,減少整個社會化生產的資源浪費。
開放API
整個區塊鏈平臺對于可以開放的或者可以權限開放的接口,都提供標準的API,允許外部系統或人工智能代理進行訪問和操作。區塊鏈的各種業務合約(合約流程,合約服務)信息,區塊鏈的各種交易結果,當前流程狀態,資產狀態,或者區塊鏈的交易發生證明,資產存在證明,鏈上治理接口,也都可以API的方式向外部系統提供。通過API接口,也可以進行各種業務合約的操作,如人工處理的提交,合約動作交易的提交等。
業務合約瀏覽器
通過業務合約瀏覽器,用戶可以看到權限范圍內的所有可參與的業務合約,包括合約具體的規格化內容,如合約流程、合約服務各動作、合約具體規則、合約法律條款、合約憲法、治理規則等。
區塊鏈瀏覽器
區塊鏈瀏覽器可以瀏覽所有的區塊,以及權限許可的交易內容,可以對可瀏覽的交易進行回溯查看,可以從不同的維度進行交易、流程和價值資產的審查。
資產瀏覽器
資產瀏覽器運行用戶以統一的視角看待用戶關聯的所有合約資產。資產瀏覽器可以同個性化分布式App整合在一起,讓用戶可以看到當前各個參與合約流程的當前狀態,各個合約服務的狀態資產,以統一的視圖幫助用戶進行交易的優化決策。
責任編輯:售電衡衡
-
權威發布 | 新能源汽車產業頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業,設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數據中心 打造融合型綜合能源系統
2020-06-16綜合能源服務,新能源消納,能源互聯網
-
新基建助推 數據中心建設將迎爆發期
2020-06-16數據中心,能源互聯網,電力新基建 -
泛在電力物聯網建設下看電網企業數據變現之路
2019-11-12泛在電力物聯網 -
泛在電力物聯網建設典型實踐案例
2019-10-15泛在電力物聯網案例
-
權威發布 | 新能源汽車產業頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業,設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長期助力儲能行業發展
-
探索 | 既耗能又可供能的數據中心 打造融合型綜合能源系統
2020-06-16綜合能源服務,新能源消納,能源互聯網 -
5G新基建助力智能電網發展
2020-06-125G,智能電網,配電網 -
從智能電網到智能城市