撰文:Li
來源:白計劃
原標題:《你真的知道基于區塊鏈的「云計算」是什么嗎?》
加密貨幣網路發展的這幾年,以擴容為特點的項目有很多,不過能作為「標志性解決方案」的并不多,例如以太坊 2.0 的同構分片,波卡構建的異構分片,Plasma 的側鏈,zkSync、Optimistic、StarkWare 等的 layer2,COSMOS 的跨鏈結構 (用跨鏈擴容),
這些項目都在不斷尋找基于以太坊、比特幣的區塊鏈結構最適合的擴容方法。以太坊 2.0 的關注度是最高的,主打 PoW 切換 PoS,然后壓縮交易數據(rollup),塑造分片結構(sharding,非數據分片),這種方式極為漫長,屬于是加密貨幣網路的終極思路,但不能否認這是極為必要的長久之路。
而從本質上來看,區塊鏈結構優勢明顯,天花板也極為明顯。如果想創新,如果不打破區塊鏈結構帶來的天花板,業內似乎很難走向下一步,筆者認為業內的創新需要從很多成熟產業和成熟技術體系里借鑒思路。
關于打破性能天花板,就可以借鑒云計算平臺的設計。
區塊鏈的瓶頸過于明顯
區塊鏈的瓶頸來源于其最優勢的地方:共識。
共識的運行過程是多方(節點設備)對同一數據(區塊)進行計算的過程,例如比特幣,是某一節點打包區塊后廣播給所有節點逐一保存,
即使以太坊 2.0 從 PoW 切換到 PoS 后,只是會加快整個共識過程,減少單次共識完成的時間,以增加單位時間內的處理數量,而在海量計算需求面前,PoS 依舊是天花板過于明顯,
區塊鏈單節點限制的示例圖
這樣,每一個區塊鏈結構里,就會出現上圖中的模型,所有的計算任務,是在搶占一個計算節點的計算資源,若干個任務都在搶占一個狹窄的通道,
如果在一些應用場景里要求并發量沒有那么高,可以通過提高單個節點的計算能力,更換更快的共識算法,以及對拼搶資源的任務做一下「通過」時間分配,可以順利疏通整個確認過程。
不過,可惜的是,對于很多高并發場景(區塊鏈不能止步于金融和單一場景),一定會堵塞、慢、甚至于完全不能進行,亦或者因為堵塞引發其他問題(例如安全)。
解決這個問題,需要在任務處理時實現足夠多的并行處理量,才能增加網路單位時間內任務處理的上限值。
如果借鑒云計算的擴容和并行思路,加密貨幣網路該如何實現呢?
云計算提供的思路,最基礎的要求,是接入系統的網路資源,不是多臺計算設備接入,對外輸出的資源上限只是一個計算設備的上限,而是 N 臺計算設備接入后,網路的處理能力,是 N 倍提升的。
這恰恰是加密貨幣網路需要的,每個加密貨幣網路都有若干個計算設備的接入,而最終的性能局限在了共識層的結構部分,
我們具體來看,傳統云計算平臺存在水平擴容和垂直擴容,水平擴容即并行,將任務分流分區處理。垂直擴容即增加單臺設備的處理能力,這就很像:解決擴容問題的一個思路是加大區塊。
云計算中并行的舉例,數據生成適合并行的結構,繼而利用 GPU 的性能快速處理
但加密貨幣網路中區塊鏈結構無法改變的時候,實現并行的思路已經演化為 2 種,
本文中,白計劃團隊將以 Oasis、Phala、PlatON、Dfinity、Filecoin、IOTA 6 個加密貨幣項目為例闡述兩種主要實現并行的思路,
(白計劃注:排列順序是根據依靠安全硬件并行和依靠改善算法并行區分的)
當這些加密貨幣網路在具備云化并行的能力后,將承擔未來很多互聯網遺留問題的解決預期,
主流的 2 種并行思路拆分
以上的項目可以分為兩種思路解決擴容和并行問題,
其一是以 Oasis、Phala、PlatON 為代表,通過將可信計算硬件作為計算設備接入網路,硬件設備具備很高的計算能力和安全能力,可以將計算過程、存儲過程賦予安全性。而這些單個設備(或集群)又可以獨立承擔獨立的處理工作,這樣在共識層外實現并行和安全計算,總結為獨立的可信計算。
其二是以 Dfinity、IOTA、Filecoin 為代表,通過研發新的算法在共識層,改變區塊交易確認的過程,實現并行驗證,以提高鏈上的任務處理能力,然后再通過可伸縮性的塑造,增加單個計算設備的算力和空間,也就是云計算的垂直擴容,
具體拆分如下:
以可信硬件硬件實現并行的網路設計
1.先搭建一個優質的共識層。
首先,加密貨幣需要一個總帳本,總帳本存在于共識層,Oasis、Phala、PlatON 都將共識層和計算層做了切割,在計算設備之上有獨立的共識層,即一條通過計算設備(或云)搭建的運行高速共識算法區塊鏈網路。
不過值得注意的是,其中 Oasis、PlatON 有較為明顯的分層概念,而 Phala 的分層概念不明顯,其設計細節在于對鏈下計算設備有獨立的規則。
為了保證共識層的穩定性,Oasis 的這一層選擇通過具備行業信任度較高的組織和企業搭建節點,節點間通過 Tendermint 算法通信,快速形成總帳本,
PlatON 的節點同樣是通過合作方搭建,并且其使用類 BFT 算法 CBFT 算法,優化了普通 BFT 算法的效率。
Phala 則是把具備 TEE 的計算節點(被稱為 Gatekeeper)接入網路,Gatekeeper 的 TEE 計算區可以維護總帳本,其共識為與波卡一致的 NPOS 共識,可以快速出塊,
Phala 的 Gatekeeper (中間部分)維護總帳本
共識層外,他們把計算和存儲引入鏈下或 layer2。并行計算就在這里實現。
2.讓計算層實現并行計算。
這里要先說 Oasis,其計算層稱為 Paratime,可以看作是一個個獨立的鏈,或者看作一個 runtime 集群,不過,在 Oasis 網路的建立初期,Paratime 大多還部署在云里,并沒有全面替換具備 TEE 的設備作為網路基礎設備,隨著進度推進,Paratime 的節點會全部具備 TEE 能力,保證其安全性,
Oasis 的計算層(右側)
Phala 的計算是在接入節點的 TEE 中完成的,每個 TEE 中會部署 Phala 的 pRuntime,pRuntime 與「共識層」(理論上)的通信是獨立的,所以 pRuntime 里相互處理的交易并不沖突,這便是可以實現的并行,因為每個 TEE 的 pRuntime 就像一個個「分片」,這樣的接入節點越多,網路性能越強。
PlatON 的計算,是在被標注為 layer2 的計算層完成的,PlatON 的 layer2 具備大量的計算設備,其中包含定制的可信計算設備,例如完成多方計算的可編程電路,此外,還會通過密碼學以及零知識證明等技術完成隱私計算等,PlatON 也是實現隱私計算的,不過其運用技術是多方計算或零知識證明、同態加密等。
PlatON 網路的模塊和分層
將計算層設計為可信計算硬件的網路,是利用計算層的并行去擴容以及實現可伸縮性,我們可能認為將計算遷移到共識層外,并不是真正意義實現了并行計算,
但具備可信計算的硬件與共識層因為具有安全緊密的聯系,所以與共識層是「一體的」,理論上如果為了鏈下計算的安全性,會需要鏈下有一個總帳本概念或其他控制安全性的方式。但有可信計算硬件的幫助,就不需要這個總帳本提供鏈下的安全性保護。
引以對比的可以是以太坊 2.0,信標鏈是總帳本,如果已經部署了分片,每個分片間可以獨立處理任務,只是在 Oasis、Phala、PlatON 里,是用可信硬件替代了分片的計算部分,
拆分完計算層的并行后,我們來看拆分利用算法實現并行的方式。
通過算法實現并行處理的設計
1.研發新算法。
以 Dfinity、IOTA、Filecoin 為代表,研發算法后,可以在不更改區塊確認過程的情況下讓任務開始并行處理,加快確認速度。
這里我們要先提及,如果在算法層面實現并行,主要實施會是改變算法計算的規則,也就改變了算法表現的功能邏輯,例如 PoW 算法如果改變,會改變 PoW 算法中計算隨機數、打包、廣播的邏輯,
Dfinity 對算法的更改部分是共識算法上,將傳統的共識節點全部參與共識計算修改為通過計算隨機數選取部分節點完成共識計算,這是加快共識驗證的一個步驟。而更核心的是選中的共識節點是通過非交互式的 BSL 算法(節點確認數據簽名反饋是獨立進行的,不是組合進行的)確認交易,意味著不會經歷 BFT 類共識的節點間反復交互的過程,而達到類似「并行」加速的效果。
Dfinity 的共識確認過程,有并行效果的是左側簽名部分
IOTA 對算法的修改比較徹底,對比區塊鏈,IOTA 使用 Tangle 數據結構形成總帳本 Tangle 特點是每個事務都附加到兩個先前的事務里,所以要完全消除了原有區塊鏈鏈式結構對確認時間的依賴。這就形成了交易的無限關聯確認結構,可以達到并行效果,
Tangle 算法的交易確認模型
Filecoin 在并行上的修訂,是在對存儲任務的并行處理,因為 Filecoin 的存儲部分,會對存儲數據完全進行計算,這個過程極為漫長(對比來說)。所以并行和提速非常之重要,目前,其采用的是更新后的 NSE 算法。
拆分 NSE 算法可以看到的是,當處理數據時,會對數據進行分 window (可以理解為一個單元)和分 layer 層的處理,處理完成后才會進行下一步數據存儲以及后續的 Post 證明打包。采用 NSE 后,在 layer 的處理部分,layer 間沒有過多依賴,所以可以形成并行處理效果,可以總結為并行提速的調整。
FilecoinNSE 算法的拆解,可以觀察左側的 layer 部分
2.配置其他部分
在算法上解決了并行問題,那接下來需要一些輔助功能,
IOTA 的 Tangle 沒有普通區塊結構里的時間限制,那為了達成共識,就需要交易驗證器的幫助,來確認哪些交易形成共識,
Dfinity 改善了算法,與之匹配的還有子網、數據中心和容器,子網是類似一個個「分片」,而數據中心是 Dfinity 網路的底層網路部署,其要求數據中心參與,意味著網路的基礎處理能力很強,在子網上,容器是建立的獨立操作單元,可以類比區塊鏈的智能合約,容器的組合交互可以實現復雜性,
Filecoin 在 NSE 算法對數據并行處理后,進行的是存儲復制和時空證明的打包保存。這些部分保證了 Filecoin 總賬本的一致性,而其他開發部分,是依賴官方團隊和生態中提供的工具。
云化并行之后怎么辦?
以上的 6 個加密貨幣項目,理論上以并行突破了區塊鏈的性能限制,那留給項目接下來的是什么?
筆者認為,是如何通過對網路工具的開發讓這些性能為開發者所用,加密貨幣網路的使用目標,最重要的是可以開發 DApp,可以開發廣義的去中心化業務,
即使基礎設施性能很高,沒有開發者做出應用時間,基礎設施也會是徒勞,開發者決定了鏈的應用產生量,應用產生量決定了鏈創造的和包含的價值,
正如傳統互聯網開發者,從篳路藍縷的基礎開發進入云化開發時代,云計算平臺已經為開發者提供了極為優質的體驗,后來的創業者,已經不像當年,還要為擴容擔憂,
敢問如今的加密貨幣網路,是否可以以云計算平臺「面向服務的架構」為榜樣,形成開發浪潮。云化并行之后,加密貨幣只是突破了井口,你是否能繼續升向天空呢?