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,然後到擬態決策,變成異構候選集。然後就構成了不同的節點,這些節點之間我們希望能從軟硬體來說它是異構或部分異構。這樣的異構節點最後就產生了不同的區塊鏈。
值得注意的是,現在很多區塊鏈的體系結構,並不適合真實的應用場景。所以我們認為,體系結構應該是動態可變的,根據不同的應用場景有不同的體系結構。
最後,我要講的是,長期以來,信息系統在不斷地演進,體系結構創新是信息系統發展的永恆之路。我們從信息系統的角度來考察區塊鏈的體系結構演進,首先對傳統信息系統進行了數學建模,指出了傳統信息系統的特點;然後對經典區塊鏈系統進行了研究,給出了區塊鏈系統的形式化表示和體系結構模型,提煉了經典區塊鏈系統的特點;最後,我們根據理想區塊鏈系統的特點,從自然界的擬態、群飛、群游現象中得到啟發,提出了擬態群體異構體系結構。
我的報告就到這裡,謝謝大家。
※距離下次比特幣挖礦難度調整還有21小時
※蘋果聯合創始人Steve Wozniak加入區塊鏈風投公司
TAG:巴比特資訊 |