MultiVAC釋出智慧合約紫皮書:從分散式賬本到可程式設計多核世界計算機

買賣虛擬貨幣
MultiVAC今天正式釋出了智慧合約紫皮書:《MultiVAC程式設計模式紫皮書:支援圖靈完備智慧合約的區塊鏈分片方案》。該論文是MultiVAC核心演算法團隊繼2018年釋出技術白皮書和技術黃皮書後的第三個技術力作:· 在彈性計算白皮書中,MultiVAC首創了彈性計算分片模型,將區塊鏈的不可能三角轉化成為彈性架構,開發者可以自由定義和取捨安全性、去中心化和擴充套件性,描述和論證了MultiVAC彈性公鏈的整體技術架構;· 在全維度分片黃皮書中,MultiVAC提出了世界上首個計算、儲存和傳輸三個維度都實現完全分片的區塊鏈架構,真正實現了無限拓展性,還有效降低了礦工門檻,使得個人電腦等普通計算裝置也能夠自由加入網路;· 在今天釋出的程式設計模式紫皮書中,MultiVAC在高效低門檻的全分片架構上,實現了對圖靈完備智慧合約的有效支援,提供了一個全新的支援並行化處理的區塊鏈程式設計模型,將區塊鏈這臺世界計算機從單核升級到可無限擴充套件的多核系統。MultiVAC CTO應翔博士在紫皮書中指出:
“很多分片專案基於區塊鏈2.0時代的淺薄認知,將區塊鏈分片的層次劃分為網路分片、交易分片、狀態分片,而忽視了下一代區塊鏈系統所面臨的真正挑戰來源於對傳統馮諾依曼計算機體系的革命性創新和重定義。若真正視區塊鏈為下一代去中心化的世界計算機,區塊鏈系統應重建新的體系結構以應對吞吐量限制,設計全新的儲存和傳輸策略來重定義世界計算機的資料流,提供全新的程式設計模式來適配全新的體系結構,堅守去中心化的初心以保障這一世界計算機不受任何單一個體的控制且永不被關停。MultiVAC設計了全維度平行分片的架構,真正將區塊鏈這個世界計算機從單核升級到可無限擴充套件的多核系統,解決了關鍵性的吞吐量瓶頸。開創性的儲存與資料控制權分離策略,顛覆了馮諾依曼結構依賴的儲存框架,使分散式資料流可互動、可驗證。全新的非同步分片開發模式和LLVM開發平臺,允許開發者在多核分散式體系下靈活開發,實現各種程式設計邏輯。而低礦工門檻保證了普通使用者可以自由加入MultiVAC系統,整個系統的控制權又完整掌控在普通礦工手中,保證了MultiVAC成為真正去中心化的區塊鏈架構。2008年中本聰在比特幣白皮書中高喊的“One-CPU-One-Vote”理念,被ASIC礦機和中心化礦池所無情摧毀,但終將在MultiVAC上再次重建,並更加強大!”

自去年10月份MultiVAC演算法團隊啟動智慧合約程式設計模式設計,到今年5月份完稿釋出,紫皮書共經歷了6個月接近30個版本的迭代。方案設計的同時,團隊同步推進了工程可行性驗證和架構開發工作。

紫皮書的釋出,也意味著MultiVAC底層架構已經全部設計完畢,接下來將進入經濟模型討論與開發者平臺構建階段。


以下內容是對紫皮書部分的摘要和解讀,歡迎廣大技術愛好者和社羣粉絲討論指正:

如果概括MultiVAC的整體設計,引用紫皮書中的一段話:“MultiVAC精巧地將各個功能模組做了合理劃分,使執行節點各司其職。在儲存上,將壓力轉移到儲存模組,減輕了普通參與者的負擔,而儲存模組本身不涉及執行和共識,不存在中心化風險。在執行上,MultiVAC 提供了完整的指令集,不給開發者設定侷限,且在設計過程中,時刻體現了對執行效能的重視。在共識方面,權力在各執行節點中均勻分佈,平權原則落到實處。”

MultiVAC 系統的特色如下:

· MultiVAC 是一個圖靈完備的分片區塊鏈方案。為開發者提供靈活的程式設計開發框架以搭建複雜的應用。

· MultiVAC 是首個實現效能完全線性擴充套件的分片。非同步分片架構為構建高 TPS 的區塊鏈網路提供了基礎。

· 降低了參與者的裝置門檻,維護了區塊鏈系統去中心化的核心價值主張。MultiVAC 網路的參與者不需要效能強勁的裝置,使得社羣更加平民化、去中心化。

· MultiVAC 的拓展性十分優異。目前的 MultiVAC 方案靈活、簡潔、優雅,在當前基礎上可以較簡單地加入新的擴充套件功能,如閃電網路或隱私計算等。

MultiVAC 突破性地解決了當今區塊鏈世界的多項關鍵性難題,為建立一個理想的區塊鏈社羣打下了堅實的基礎。

1、UTXO/賬戶雙模型彈性選擇+非同步分片程式設計——保證跨分片互動一致性

現有的其他合約分片方案,大多采用兩種方式保證跨分片資訊傳遞的一致性。一種要求傳送跨分片交易時等待回執,並對涉及資料加鎖,不僅大幅度降低系統效能,回執也可能丟失。這就像你透過微信給一人傳送訊息,如果對方沒有回覆,你需要一直等待,什麼也不做。可能對方很久之後才能回覆你,也有可能永遠不回覆(訊息丟失了),因此這種方式會對系統效能產生極大的限制。

另一種是將跨分片交易拆分為多個子操作。比如一筆交易從分片A傳送到分片B,在分片A中執行扣款後,轉賬指令的執行將完全由分片B決定,因此一但交易量上升,將導致執行順序喪失單調一致性。這就要求跨片操作滿足交換律(轉賬類操作),即改變執行順序也可以得到同樣結果。但很多其他邏輯的智慧合約是無法滿足交換律的,很多公鏈專案透過對系統的約束來保證此類指令的交換律,因此放棄了智慧合約的圖靈完備性,使得可開發的應用邏輯受到了極大的限制。

舉個例子,A村的兩個男村民皇埔鐵牛和司馬鐵蛋都愛上了隔壁B村的蘇翠花姑娘,他們都寫了一封情書給蘇翠花。而蘇翠花先收到誰的情書就會接受誰。皇埔鐵牛和司馬鐵蛋先後將情書放入郵筒,並由B村的郵遞員送到蘇翠花的手裡。在一個無法維持單調一致性的郵政系統中,蘇翠花先收到誰的信取決於郵遞員:郵遞員保證信最終會送到收信人手中,但是收信人收到信的順序不一定遵循基礎的順序。而在MultiVAC的系統中,郵遞員保證收信的順序和寄出信件的順序一致。

針對這一問題,MultiVAC將跨片操作分為兩類:

對於滿足交換律的操作,使用UTXO資料型別,礦工可以無視內容低成本快速執行操作;

對於必須滿足單調一致性的複雜智慧合約操作,則使用賬戶模型,並強制從協議層面要求礦工按照順序執行,但成本較高,適用於低頻操作。

透過首創的雙資料模型彈性選擇,允許開發者靈活選擇所需的資料型別,使系統在一致性、效能和成本方面達成了靈活與平衡。

此外,礦工傳送跨片間交易指令是非同步操作,傳送完畢後礦工可立即參與下一輪的出塊,無需等待其他分片回執,分片之間資料不共享和互動不堵塞,避免了資料加鎖帶來的效能瓶頸。

2、全域性資料分散設計+多賬戶模型——提高分片並行效能

我們知道,將區塊鏈網路進行分片的目的是要提高整體效能。因此為了達到並行處理的目的,分片之間不可能進行完全資料共享,那樣也違背了分片的初衷。但智慧合約又要求所有分片都對此全域性資料有感知。

比如,某個電商平臺的智慧合約中有10個商品,分片A的使用者買了5個,分片B的使用者最多隻能購買5個,商品數量就是全域性資料,每次合約呼叫各分片間都需要相互同步,否則就會造成超賣。因此,如何處理對全域性資料的依賴是所有區塊鏈系統都要面對的難題。

為了保證資料一致性,目前通常有兩種方案,一種是給資料加鎖,同一時間只能被單一分片讀寫;另一種是資料只允許被單一指定分片呼叫。但這兩種方案都會導致智慧合約的吞吐量嚴重製約於單個分片。

針對以上,我們首次提出將全域性資料拆分到各個分片上,即將總商品數量下放到分片,每個分片中都會有一定的商品額度,當交易發生時,智慧合約只讀寫對應分片的資料就可以。允許使用者在不同分片上進行操作,防止分片間購買力不同而造成的庫存不足,將全域性交易分散到各個分片上。同時,使用者在所有分片上都有賬戶,鼓勵使用者進行快速低成本的片內交易,充分釋放了分片的並行效能。

3、圖靈完備虛擬機器+高階語言C/C++/Rust——實現超高自由度開發

正如紫皮書中提到的,目前很多公鏈方案為了簡化設計,捨棄了圖靈完備性,導致開發者能夠實現的業務邏輯嚴重受限。也有部分公鏈提出了自己的開發語言,不僅學習成本高,而且無法支援高階開發框架,徒增開發者的程式設計負擔。

在這一點上,MultiVAC秉承了一貫的設計理念,不給開發者設限。我們提供了圖靈完備的虛擬機器,同時適配C/C++/Rust等多種高階成熟程式語言,為開發者提供靈活的程式設計開發框架以搭建各種複雜應用。

不僅如此,MultiVAC 團隊認為,沒有完美的區塊鏈系統,一套好的區塊鏈方案應該能夠隨著各領域的技術突破不斷進化。所以在設計過程中,MultiVAC遵循了鬆弛可擴充套件的原則,保證整套技術框架易迭代易拓展,各模組能夠靈活地整合新技術,與時俱進。目前的 MultiVAC 方案靈活、簡潔、優雅,在當前基礎上可以較簡單地加入新的擴充套件功能,如閃電網路或隱私計算等。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;