解決了並行問題,區塊鏈項目纔有新開始。加密貨幣網絡的使用目標,最重要的是可以開發 DApp,可以開發廣義的去中心化業務。

撰文: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,可以開發廣義的去中心化業務。

即使基礎設施性能很高,沒有開發者做出應用時間,基礎設施也會是徒勞,開發者決定了鏈的應用產生量,應用產生量決定了鏈創造的和包含的價值。

正如傳統互聯網開發者,從篳路藍縷的基礎開發進入雲化開發時代,雲計算平臺已經爲開發者提供了極爲優質的體驗,後來的創業者,已經不像當年,還要爲擴容擔憂。

敢問如今的加密貨幣網絡,是否可以以雲計算平臺「面向服務的架構」爲榜樣,形成開發浪潮。雲化並行之後,加密貨幣只是突破了井口,你是否能繼續升向天空呢?