CCF區塊鏈專委會主席斯雪明:區塊鏈體系結構或向擬態群體異構體系結構演進
11月24日--25日,由中國計算機學會主辦的首屆中國區塊鏈技術大會(China Computer Federation ChinaBC 2018)在杭州未來科技城舉行。復旦大學教授、中國計算機學會區塊鏈專委會主任 斯雪明 在25日上午發表了題為 “區塊鏈—形式化表示與體系結構演進” 的演講。
以下為現場演講速記,由巴位元整理髮布:
尊敬的各位嘉賓,大家上午好。我今天的演講主題是“區塊鏈—形式化表示與體系結構演進”。分為四個部分:
第一部分是傳播資訊系統的數學模型與特點 第二部分是區塊鏈系統的形式化表示 第三部分是典型區塊鏈體系結構 第四部分是區塊鏈體系結構可能的演進方向
一、傳播資訊系統的數學模型與特點
我們首先要講一下什麼是資訊系統, 資訊系統 是一個人造系統,它由人、硬體、軟體和資料 資源組成,目的是及時、正確的收集、加工儲存、傳遞 和提供資訊,實現組織中各項活動的管理、調節和控制。
下圖是一個資訊系統形式化的表示。資訊系統由資訊系統的不同模組組成,我們稱之為 “論域” 。
通過這樣的形式化表示,最終得到論域到U的狀態轉換函式,這個函式隨著時間的變化而變化。我們考慮到傳統的資訊系統的某一論域時,屬性取值在時間軸上是穩定不變的。所以傳統的資訊系統具有 靜態性 的特點。
另外,當兩個資訊系統S和S’進行比較的時候,S’越小表示兩個系統越 相似 ,對於傳統的計算機系統,這兩個系統往往會更小。
最後,傳統資訊系統具有中心化的特點,中心(特權使用者) 獨自可以進行資料的增、刪、改、存等操作,也可以執 行服務的釋出與撤回等。而普通使用者與特權使用者的許可權有 很大的差別。中心化導致系統的機密性、完整性、可用 性容易受到內部人或外部黑客的破壞。
總而言之, 傳統的資訊系統具有靜態性、相似性、中心化等特點 。傳統資訊系統各維度通常是靜態的,資料通常無冗餘或少冗餘(可能有2-3個備份),各資訊系統之間通常是相似的,具有中心化的特點,操作許可權和資料的增刪改許可權總是集中的。
二、區塊鏈系統的形式化表示
目前典型的區塊鏈系統包括了四個環節: 發起交易、傳播交易、驗證交易、新增區塊 。(這裡的“交易”是廣義的交易)
發起交易:可能涉及Token,智慧合約,記錄或其他資訊; 傳播交易:在節點的幫助下,該交易被廣播到P2P網路中; 驗證交易:藉助已知的演算法,網路中節點驗證交易的合法性和使用者狀態; 新增區塊:交易一旦完成,新的區塊被新增到區塊鏈上,從此永久不可篡改。
下圖是我們對 區塊鏈系統的一般的形式化表示 ,其中包括訊息單元、共識(包括打包和同步)和儲存(包括資料儲存和狀態儲存)的過程。
訊息單元主要包括訊息的資料格式、處理方式,打包過程主要包括訊息的驗證,驗證通過加入區塊,同時提出證明(證明自己打包的許可權),同時將形成的區塊的證明打包CON。同步操作主要是對區塊證明的打包CON進行驗證,驗證通過就開始下一步的共識或繼續進行打包操作。
目前來看, 比特幣是最具有代表性的單鏈未許可鏈 。
訊息單元以普通轉賬交易為主(交易雙方地址、輸入輸出金額),訊息打包前,需要工作量證明(PoW)取得記賬權,算力決定了進行PoW的能力,PoW的驗證與區塊的傳播非同步,可能存在分叉,狀態以UTXO為主,傳遞模式。
除了比特幣之外,以太坊也是單鏈未許可鏈的一個典型代表,主要涉及智慧合約和世界狀態概念。
下圖為比特幣系統的形式化表示。以(上述)區塊鏈一般的形式化表示為前提,給出了比特幣的具體情況。主要包括PoW打包和UTXO狀態儲存過程。
以fabric為代表的單鏈許可鏈,CA(Certification Authority)作為所有節點加入系統的認證,普通客戶端通過部署鏈碼(chaincode)、呼叫鏈碼發起交易,通過背書策略申請peer節點(Endorse node)的背書籤名,Order節點驗證客戶端節點的交易和背書訊息,轉發給peer節點(Commit node),通過Kafka(Zookeeper)對交易進行排序Commit node通過CouchDB(或者LevelDB)儲存區塊資訊和實時狀態以及世界狀態。
下圖為 fabric的形式化表示,這裡就不再專門介紹了。
除了前面提到的典型的區塊鏈系統之外,現在還出現了新型的以IOTA為代表的DAG結構的區塊鏈。DAG(Directed Acyclic Graph,有向無環圖)中沒有傳統的區塊的概念,交易併發進入系統,交易產生的同時對已有交易進行驗證(這使得DAG結構的吞吐率遠遠大於單鏈結構),訊息產生後直接進入Tangle系統。存在安全性差和中心化傾向等問題。
下圖為IOTA的形式化表示。圖中,訊息單元除了基本的區塊鏈元素之外,還包括了對兩個父交節點的引用。由於IOTA沒有區塊的概念,所以打包過程是直接對訊息單元進行驗證,沒有同步的操作。
三、典型區塊鏈體系結構
我們對比特幣、以太坊、、fabric、IOTA體系結構及其特點進行了深入研究,今天講的絕大部分內容都是第一次講,所以有不當之處還請大家批評指正。
下圖是我們提煉的比特幣的體系結構。在這個體系結構中,比特幣的節點發起的交易進入了交易池,節點通過散落的最低區塊從交易池中來選取部分交易,不停地變更區塊頭的隨機數進行PoW競爭。競爭成功後產生新的區塊,加入到區塊鏈中,並廣播到整個網路。
下圖為比特幣流程示意圖。因為在做的各位對比特幣系統比較熟悉,所以在這裡也不再多講。
下圖為以太坊的體系結構圖。在以太坊中,節點分為內部節點和智慧合約節點。與比特幣不同的是,以太坊有叔塊的概念。由於以太坊的出塊間隔只有十幾秒的時間,因此以太坊中臨時分叉與孤塊會大量產生,整個網路的安全性都會下降,以太坊鼓勵人們引用叔塊就可以提高網路安全性。
下圖為以太坊的流程示意圖,由於時間關係,這個示意圖在這裡就不細講了。
下圖為EOS的體系結構圖,EOS是更加去中心化的,但是這樣的作業系統也會存在一些安全隱患。
下圖為EOS的流程示意圖。
下圖為fabric1.2的體系結構圖。在fabric1.2中,客戶端節點發生交易,通過鏈碼(ChainCode)的背書策略,背書(Endorser)節點收到交易提案(Proposal)後,驗證簽名並確定提交者是否有權執行操作,同時根據背書策略模擬執行智慧合約,並將結果還給客戶端。
客戶端收到背書(Endorser)節點返回的資訊後,判斷提案結果是否一致,以及是否參照指定的背書策略執行,如果沒有足夠的背書,則中止處理;否則,應用程式客戶端把資料打包到一起組成一個交易並簽名,傳送給Orderers。Orderers對接收到的交易進行共識排序,然後按照區塊生成策略,將一批交易打包到一起,生成新的區塊,傳送給提交(Committer)節點;提交(Committer)節點收到區塊後,會對區塊中的每筆交易進行校驗,檢查交易依賴的輸入輸出是否符合當前區塊鏈的狀態,完成後將區塊追加到本地的區塊鏈,並修改世界狀態。
下圖為fabric1.2的流程示意圖。
下圖為IOTA的體系結構圖。IOTA設計POW這一步是為了防止有人惡意發很多transaction從而阻塞整個網路,或者更進一步通過更改整個DAG的形狀而達成一些攻擊。
下圖為IOTA的流程示意圖。
最後,我們來談一下區塊鏈系統的特點。我們認為, 區塊鏈系統具有靜態性、多中心、分散式、冗餘、高度同構等特點 。
目前的區塊鏈資訊系統通常也是靜態的,具有多中心的特點,資料分散式儲存和共享,在許可鏈中,各節點資料存在一定的冗餘,在非許可鏈中,高度冗餘,各節點執行的系統高度同構。
四、區塊鏈體系結構可能的演進方向
我不敢說區塊鏈體系結構一定會往這個方向演進,但是它是一種可能。
傳統的資訊系統具有靜態性、相似性和中心化等特點; 典型的區塊鏈系統具有靜態性、多中心、分散式、冗餘和高度同構等特點; 理想的區塊鏈系統應該具有動態性、多中心,分散式、適度冗餘、異構性和群體性等特點。
那麼, 如何構建理想的區塊鏈體系結構呢? 我們可以從自然界中得到啟示。
自然界的啟示一:擬態現象
擬態現象是一個生物學概念,指一種生物在形態、行為等特徵上模擬另一種生物,從而使一方或雙方受益的生態適應現象。比如:擬態章魚。
擬態章魚通常生活在15米以內的淺水沙地,通常在河口水域,在這種水域裡,有很多貝殼、蝦蟹等擬態章魚喜歡的食物。擬態章魚是自然界中頂級偽裝高手,會模仿各種還有生物,包括海蛇、獅子魚、扁魚、蛙魚、海星、大蟹、貝類、鰩魚等15種動物的外觀和運動。
它的身體有數萬個色袋,叫作“色包”,它靠一個複雜的肌肉網路控制。色包含色素,並靠色素 (顏色) 來表現多種色度。通過放鬆或收縮色袋,擬態章魚僅用不到1秒就能讓自身與任何背景顏色及圖案相一致。
自然界的啟示二:群飛和群遊現象
群飛又叫聚集式飛行,鳥群能夠在快速飛行的過程中整齊劃一地轉向, 其目的是能夠免遭老鷹等捕食者的襲擊。典型代表是椋(liáng)鳥。
椋鳥在飛行中形成球狀緊湊隊形,並在接下來擴大和收縮,不斷變換形狀。一大群椋鳥在稱為“輥式覓食”(roller-feeding)的做法中一起覓食:鳥群后面的椋鳥不斷飛到前面去尋找食物。這種有組織的覓食方法意味著每隻鳥都可以變成頭鳥,同時能密切注意捕食者來襲。
群遊是一種魚群的集體行為,魚群能夠通過對周圍環境變化做出迅速 感知和統一變向,不僅可以有效抵禦捕食者,還能夠提高捕食效率和 遊動速度。
根據上述生物學中的擬態現象和群飛、群遊現象,我們提出了 擬態群體異構體系結構 ,簡稱MCH體系結構。
• 區塊鏈系統中的部件可以根據應用場景動態調整變化 • 不同部件的不同實現方式,完成統一的目的 • 系統的部件異構,構建最適合應用的區塊鏈系統
針對特定的應用場景,選擇合適的異構部件,構建最優的體系結構, 達到理想的應用目標。
下圖為擬態群體異構體系結構。
下圖為擬態群體異構體系結構主要組成。
我們下面來看它怎麼來變化出來的,在擬態群體異構體系結構中,DAPP1、DAPP2、DAPP3是不同的應用,比如DAPP2,從C1到CK,然後到擬態決策,變成異構候選集。然後就構成了不同的節點,這些節點之間我們希望能從軟硬體來說它是異構或部分異構。這樣的異構節點最後就產生了不同的區塊鏈。
值得注意的是,現在很多區塊鏈的體系結構,並不適合真實的應用場景。所以我們認為,體系結構應該是動態可變的,根據不同的應用場景有不同的體系結構。
最後,我要講的是, 長期以來,資訊系統在不斷地演進,體系結構創新是資訊系統發展的永恆之路 。我們從資訊系統的角度來考察區塊鏈的體系結構演進,首先對傳統資訊系統進行了數學建模,指出了傳統資訊系統的特點;然後對經典區塊鏈系統進行了研究,給出了區塊鏈系統的形式化表示和體系結構模型,提煉了經典區塊鏈系統的特點;最後,我們根據理想區塊鏈系統的特點, 從自然界的擬態、群飛、群遊現象中得到啟發,提出了擬態群體異構體系結構。
我的報告就到這裡,謝謝大家。