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