首頁(yè) >快訊 >

另類的Solana:不走分片之路

(奧維的街道及階梯,梵高)


(資料圖)

藍(lán)狐筆記之前多次介紹過(guò)Solana,可以查閱《為什么Solana是區(qū)塊鏈開發(fā)者需要的“世界計(jì)算機(jī)”?》、《區(qū)塊鏈的“歷史證明機(jī)制”:時(shí)間與共識(shí)》等,如今它已經(jīng)發(fā)展了不少。

前不久FTX將要基于Solana發(fā)布其DEX交易所,該DEX名為Serum。FTX的CEO SBF還公開為Solana“帶鹽”:“Solana棒極了!”這是什么情況?為什么不是基于以太坊構(gòu)建其DEX?

這一切都源于Solana的特色:在保證一定程度安全的前提下,實(shí)現(xiàn)高性能和低費(fèi)用。

Solana現(xiàn)狀

截止到藍(lán)狐筆記寫稿時(shí),Solana的總交易數(shù)近20億次,當(dāng)前的tps大約200-300之間,大約是目前ETH的10-20倍,能處理當(dāng)前多數(shù)場(chǎng)景的交易,尤其是DeFi領(lǐng)域的交易。

(SOURCE:Solanabeach.io)

Solana的代幣為SOL,截止到藍(lán)狐筆記寫稿時(shí),其流通市值超過(guò)3800萬(wàn)美元,活躍的質(zhì)押超過(guò)1.7億,一共有135位質(zhì)押者。其中質(zhì)押超過(guò)100萬(wàn)美元(按當(dāng)前SOL價(jià)格計(jì)算)的質(zhì)押者達(dá)到128位,目前的驗(yàn)證者是相對(duì)分散的,且都質(zhì)押一定量的資金,Solana已經(jīng)有了一定的社區(qū)基礎(chǔ)。目前其質(zhì)押者主要來(lái)自于歐洲、美國(guó),亞洲質(zhì)押者參與度相對(duì)較低。

(SOURCE:Solanabeach.io)

不走分片之路的Solana

目前區(qū)塊鏈擴(kuò)展的主流方案是分片+layer2。而Solana是個(gè)另類。它并沒(méi)有選擇分片之路,這也是加密世界中兩個(gè)讓藍(lán)狐筆記印象較深的項(xiàng)目,一個(gè)是Solana,一個(gè)是Holochain。Solana試圖實(shí)現(xiàn)高性能、低費(fèi)用,且兼顧一定程度的去中心化和安全。它還有一個(gè)很重要的優(yōu)勢(shì)是,不用擔(dān)心可組合性的問(wèn)題。如果公鏈分片之后,可組合性是個(gè)必須面對(duì)的問(wèn)題。而沒(méi)有分片的Solana則不存在這種擔(dān)憂。

Solana創(chuàng)始人是Anatoly Yakovenko。從公開資料看,他之前一直在思考一個(gè)問(wèn)題:多節(jié)點(diǎn)組成的去中心化網(wǎng)絡(luò)如何才能達(dá)到單節(jié)點(diǎn)的性能?對(duì)這一問(wèn)題的底層思考,引出了Solana最重要的概念之一:PoH(Proof of History)。

Solana的時(shí)鐘

Solana的PoH并不是共識(shí)機(jī)制,也不是抵抗女巫攻擊的機(jī)制。它本質(zhì)上是針對(duì)區(qū)塊鏈時(shí)鐘問(wèn)題的解決方案。當(dāng)前區(qū)塊鏈的時(shí)鐘按照區(qū)塊滴答來(lái)行進(jìn),比如比特幣,其時(shí)間滴答大約每十分鐘一次,每次滴答更新一次區(qū)塊,區(qū)塊的更新代表全局狀態(tài)的更新。也就是說(shuō),在比特幣的PoW機(jī)制中,時(shí)間和狀態(tài)是耦合的,保持同步的行進(jìn)。中本聰通過(guò)將PoW、難度調(diào)整以及最長(zhǎng)鏈規(guī)則結(jié)合一起,實(shí)現(xiàn)了在無(wú)須許可環(huán)境下的全局共識(shí)。

不過(guò),這種全局共識(shí)也存在吞吐量的限制,因?yàn)橥掏铝咳Q于區(qū)塊大小和區(qū)塊時(shí)間。區(qū)塊越大,區(qū)塊時(shí)間越短,吞吐量越大。但區(qū)塊越大不利于節(jié)點(diǎn)的去中心化,減少區(qū)塊時(shí)間則會(huì)增加鏈分叉的概率。

為提高吞吐量,Solana提出了將時(shí)間和狀態(tài)解耦的方案,如何實(shí)現(xiàn)這一點(diǎn)?需要全局可用的時(shí)鐘。有了全局時(shí)鐘,狀態(tài)更新可按照異步方式進(jìn)行;有了全局一致的時(shí)鐘和交易時(shí)間戳,可以實(shí)現(xiàn)交易在網(wǎng)絡(luò)間的持續(xù)流動(dòng)。Solana的PoH機(jī)制就是為網(wǎng)絡(luò)中的所有節(jié)點(diǎn)產(chǎn)生全局可用的時(shí)間鏈。

有了獨(dú)立的時(shí)間鏈,驗(yàn)證的領(lǐng)導(dǎo)者在收到時(shí)間戳后會(huì)盡快廣播給委員會(huì)。時(shí)間戳有規(guī)范順序,不是區(qū)塊生產(chǎn)者任意確定的順序,這樣,Solana中的驗(yàn)證者可以實(shí)時(shí)向其他節(jié)點(diǎn)發(fā)送狀態(tài)更新。節(jié)點(diǎn)持續(xù)收到新的交易,交易有發(fā)送者簽名過(guò)的PoH哈希,并將其轉(zhuǎn)發(fā)給鄰居節(jié)點(diǎn)。

Solana的驗(yàn)證者通過(guò)SHA-256順序哈希的VDF(可驗(yàn)證延遲函數(shù))來(lái)解決時(shí)鐘問(wèn)題。每個(gè)Solana的驗(yàn)證者使用VDF來(lái)維持其自己的時(shí)鐘,可以為周期(epoch)提前安排領(lǐng)導(dǎo)者。

通過(guò)PoH,Solana的驗(yàn)證領(lǐng)導(dǎo)者可以實(shí)現(xiàn)持續(xù)輪換,且其輪換的決定是異步進(jìn)行的。Solana網(wǎng)絡(luò)也可以輪換驗(yàn)證者,且其輪換可在驗(yàn)證者之間無(wú)須相互交談就可實(shí)現(xiàn)。而通常的區(qū)塊鏈則需要驗(yàn)證者之間進(jìn)行交談才能作出輪換決定。這種設(shè)計(jì)給予Solana更大的可擴(kuò)展性空間。

除了PoH,Solana在共識(shí)機(jī)制、區(qū)塊廣播、賬本存儲(chǔ)等方面也進(jìn)行了優(yōu)化。

Solana的TBFT共識(shí)

Solana的共識(shí)機(jī)制是TBFT共識(shí)(Tower BFT),類似于PBFT共識(shí)。不過(guò),Solana的TBFT將其活性優(yōu)先于一致性。Solana的節(jié)點(diǎn)可以計(jì)算當(dāng)前的驗(yàn)證者數(shù)量、每個(gè)驗(yàn)證者狀態(tài)、每個(gè)驗(yàn)證者提交給網(wǎng)絡(luò)中任何區(qū)塊的超時(shí)。通過(guò)這些數(shù)據(jù)結(jié)構(gòu),節(jié)點(diǎn)可以進(jìn)行投票,從而達(dá)成共識(shí)。

Solana的Turbine區(qū)塊廣播

Turbine是Solana的區(qū)塊廣播技術(shù),借用了BitTorrent的思想。一個(gè)區(qū)塊傳輸時(shí),它會(huì)分成很多個(gè)小數(shù)據(jù)包,然后廣播到大量的隨機(jī)節(jié)點(diǎn)。按照Solana自身的說(shuō)法,使用其扇出機(jī)制,如果每個(gè)連接為100毫秒,對(duì)于40,000個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)而言,可以在400毫秒內(nèi)完成復(fù)制,500毫秒內(nèi)完成最終性。

此外,由于Solana的共識(shí)層不依賴于點(diǎn)對(duì)點(diǎn)消息,因此可以獨(dú)立于共識(shí)進(jìn)行區(qū)塊網(wǎng)絡(luò)傳輸?shù)膬?yōu)化。

Solana的Gulf Stream

在Slolana的結(jié)構(gòu)中,每個(gè)驗(yàn)證者都知道未來(lái)領(lǐng)導(dǎo)者的順序,驗(yàn)證者會(huì)提前將交易轉(zhuǎn)發(fā)給預(yù)期的領(lǐng)導(dǎo)者。這可以讓驗(yàn)證者提前執(zhí)行交易,減少確認(rèn)時(shí)間,減少對(duì)驗(yàn)證者的內(nèi)存壓力。

而像錢包這樣的客戶端則簽署引用特定區(qū)塊哈希的交易。客戶端選擇被網(wǎng)絡(luò)完全確認(rèn)的區(qū)塊哈希,最差的情況下需要32個(gè)區(qū)塊,假設(shè)區(qū)塊時(shí)間大約800毫秒,最多只需要25.6秒完全確認(rèn)。

一旦交易轉(zhuǎn)發(fā)給任意驗(yàn)證者,驗(yàn)證者會(huì)轉(zhuǎn)發(fā)給未來(lái)的領(lǐng)導(dǎo)者??蛻舳丝梢杂嗛唩?lái)自驗(yàn)證者的交易確認(rèn)??蛻舳酥绤^(qū)塊哈希在有限時(shí)間內(nèi)過(guò)期或者交易被網(wǎng)絡(luò)確認(rèn)。它允許客戶端簽署交易,這些交易可以保證執(zhí)行或失敗。

Solana的sealevel

sealevel是Solana用來(lái)構(gòu)建橫向擴(kuò)展的技術(shù)方案,是并行交易處理的引擎。多數(shù)區(qū)塊鏈都是單線程的計(jì)算機(jī)。Solana試圖在單個(gè)分片中支持并行交易執(zhí)行。它借鑒了“scatter-gathter”的操作系統(tǒng)驅(qū)動(dòng)程序技術(shù)。交易預(yù)先指定它們?cè)趫?zhí)行時(shí)將讀取或?qū)懭氲臓顟B(tài)。運(yùn)行時(shí)可以找到一個(gè)塊中所有非重疊狀態(tài)轉(zhuǎn)換函數(shù),且并行處理。

sealevel本身是用于安排交易的虛擬機(jī),但它并不在虛擬機(jī)中執(zhí)行交易。它使用Berkeley Packet Filter(BFT,為高性能數(shù)據(jù)包過(guò)濾器設(shè)計(jì))的字節(jié)碼,將交易在硬件本地執(zhí)行。

使用LLVM(針對(duì)WASM的相同編譯器),可為開發(fā)者提供一組工具,用c/c++和Rust編寫高性能的智能合約。Solana沒(méi)有使用WASM,不過(guò)開發(fā)者可以在Solana編譯器上通過(guò)少量更改重新編譯C和Rust代碼。開發(fā)者可以從其他WASM鏈(ETH2.0、Polkadot、EOS等)將應(yīng)用遷移過(guò)來(lái)。這一點(diǎn)對(duì)于開發(fā)者來(lái)說(shuō),會(huì)有一定的吸引力。

為保證安全,Solana的體系結(jié)構(gòu)支持不同模塊之間保持嚴(yán)格狀態(tài)分離,同時(shí)將資源和腳本作為高級(jí)概念引入。

Solana的Pipelining

Solana網(wǎng)絡(luò)上的交易驗(yàn)證過(guò)程利用了Pipelining的機(jī)制(CPU設(shè)計(jì)中常見的優(yōu)化)。Solana網(wǎng)絡(luò)上Pipelining機(jī)制(交易處理單元)在內(nèi)核級(jí)別進(jìn)行數(shù)據(jù)獲取、在GPU級(jí)別進(jìn)行簽名驗(yàn)證,在CPU級(jí)別進(jìn)行存儲(chǔ),在內(nèi)核空間進(jìn)行寫入。據(jù)Solana的說(shuō)法,通過(guò)這一機(jī)制,其交易處理單元可以同時(shí)處理50,000個(gè)交易。

Solana的Cloudbreak

Cloudbreak是Solana的水平擴(kuò)展內(nèi)存方案。除了擴(kuò)展計(jì)算,也有必要擴(kuò)展內(nèi)存,因?yàn)橛糜诟欃~戶的內(nèi)存很快會(huì)在大小和訪問(wèn)速度方面成為瓶頸。一般的處理方法是在RAM中維持全局狀態(tài)。不過(guò),普通的計(jì)算機(jī)沒(méi)有足夠的RAM來(lái)存儲(chǔ)全局狀態(tài)。Solana設(shè)計(jì)了Cloudbreak的狀態(tài)架構(gòu)來(lái)進(jìn)行優(yōu)化。每個(gè)額外的磁盤增加了鏈上程序可用的存儲(chǔ)容量,并增加了在執(zhí)行時(shí)可以執(zhí)行的并發(fā)讀寫程序數(shù)量。

這個(gè)結(jié)構(gòu)支持交易的提前執(zhí)行。只要驗(yàn)證者觀察到交易,sealevel可以開始從磁盤中預(yù)取所有賬戶,并為執(zhí)行準(zhǔn)備運(yùn)行時(shí)。驗(yàn)證者和區(qū)塊生產(chǎn)者可以在交易編碼進(jìn)入?yún)^(qū)塊前開始執(zhí)行交易,有利于進(jìn)一步優(yōu)化區(qū)塊時(shí)間。

Solana的Archiver

為減輕驗(yàn)證者負(fù)擔(dān),Solana將數(shù)據(jù)存儲(chǔ)從驗(yàn)證者轉(zhuǎn)移到名為Archiver的節(jié)點(diǎn)網(wǎng)絡(luò)。交易狀態(tài)的歷史記錄被拆分為很多碎片,并使用糾刪碼技術(shù)。Archiver用于存儲(chǔ)狀態(tài)的碎片,但不參與共識(shí)。Solana利用了PoRep(Proof of Replication)的技術(shù),了解Filecoin的肯定很熟悉,這是源于Filecoin的概念。

Solana通過(guò)PoH(Proof of History)來(lái)優(yōu)化RoRep的創(chuàng)建方式。Archiver節(jié)點(diǎn)使用PoH產(chǎn)生輕量級(jí)的證明,驗(yàn)證者可以通過(guò)GPU進(jìn)行大規(guī)模驗(yàn)證。Archiver節(jié)點(diǎn)甚至可以是輕量級(jí)節(jié)點(diǎn)(例如筆記本電腦)。通過(guò)糾刪碼和冗余,Archiver網(wǎng)絡(luò)可以提供數(shù)據(jù)可用性保證。

通過(guò)PoH的創(chuàng)新和其他幾個(gè)方面的優(yōu)化,Solana試圖走出一條不靠分片的擴(kuò)展之路。

如Serum能成功,對(duì)Solana意味著什么?

Solana之前有過(guò)Kin的支持,kin將其網(wǎng)絡(luò)遷移至Solana。而如今FTX的Serum也計(jì)劃構(gòu)建在Solana上。一旦它獲得一定的用戶規(guī)模和開發(fā)者支持,就會(huì)引起越來(lái)越多的社區(qū)和開發(fā)者注意。

FTX選擇Solana構(gòu)建其DEX Serum。核心原因有幾個(gè):

一是高吞吐量和低延遲。

當(dāng)前其理論tps最高可達(dá)50,000次(60個(gè)節(jié)點(diǎn))。如今Solana的tps也在200-300之間(超過(guò)150個(gè)節(jié)點(diǎn)),它可以在不到1秒時(shí)間內(nèi)完成交易。這對(duì)跟如今的區(qū)塊鏈的低吞吐量和高延遲形成鮮明對(duì)比。如果發(fā)生抵押資產(chǎn)價(jià)格暴跌情況,吞吐量過(guò)低,速度過(guò)慢都可能導(dǎo)致用戶大量損失。這些現(xiàn)實(shí)的情況不斷促使開發(fā)者和用戶在尋找新的選項(xiàng)。

二是低費(fèi)用。

據(jù)說(shuō)百萬(wàn)筆轉(zhuǎn)賬的交易費(fèi)用才10美元左右。這跟如今用戶參與DeFi挖礦的費(fèi)用形成巨大反差。如今用戶參與DeFi的流動(dòng)性挖礦花費(fèi)幾十美元的gas費(fèi)用是很平常的事情。這么高的費(fèi)用除非有極高的收益支撐,否則很難持續(xù)。

三是兼容性和無(wú)須擔(dān)心可組合性。

Solana支持Rust、C、C++、Move(Libra)語(yǔ)言,也支持開發(fā)者從WASM鏈(ETH2.0、Polkadot、EOS等)將應(yīng)用遷移過(guò)來(lái)。這些兼容性可以降低開發(fā)者開發(fā)成本。

此外,由于Solana走的不是分片之路,也無(wú)須擔(dān)心智能合約的跨分片交易等問(wèn)題。

Serum的能否成功,對(duì)Solana的意義不會(huì)低于對(duì)FTX的意義。如果Serum成功運(yùn)行,那么,其他飽受高費(fèi)用、低吞吐量、低速度的DeFi項(xiàng)目也會(huì)開始認(rèn)真考慮其更多的選項(xiàng)和可能性。當(dāng)然,由于以太坊生態(tài)的豐富性,這不意味著會(huì)離開以太坊,只是會(huì)考慮更多的選項(xiàng)。

不走分片之路的Solana要走的不是小路

Solana網(wǎng)絡(luò)采用了基于PoH時(shí)鐘機(jī)制,還優(yōu)化了共識(shí)機(jī)制、數(shù)據(jù)廣播、并行交易處理、用單獨(dú)節(jié)點(diǎn)網(wǎng)絡(luò)進(jìn)行狀態(tài)數(shù)據(jù)存儲(chǔ)等,其目就是為了在保證一定程度去中心化和安全的情況下,實(shí)現(xiàn)高吞吐量、低延遲和低費(fèi)用,從而可以滿足大部分場(chǎng)景的用戶需求。

Solana想要摘取加密領(lǐng)域的圣杯:可擴(kuò)展性。所以,Solana要走的路不是小路,而是充滿夢(mèng)想的大路。

但它又是另類的,它走的不是分片的可擴(kuò)展之路,它是加密領(lǐng)域的新物種。

加密領(lǐng)域比特幣和以太坊占據(jù)絕對(duì)主導(dǎo)地位,想要在現(xiàn)有架構(gòu)下超越它們幾乎不可能。唯有全新架構(gòu)才有機(jī)會(huì),唯有新物種才能發(fā)展壯大。

當(dāng)然,新架構(gòu)意味者高風(fēng)險(xiǎn),因?yàn)樗赡茏霾怀鰜?lái),也可能做出來(lái)了但沒(méi)有社區(qū)的支持;它也意味著高收益,如果它能做出來(lái)且得到開發(fā)者和社區(qū)的支持,它就有機(jī)會(huì)發(fā)展壯大。

這就是為什么藍(lán)狐筆記一直在關(guān)注不同的區(qū)塊鏈范式的原因。其中Solana和Holochain一直處于藍(lán)狐筆記的關(guān)注范圍,但未來(lái)它們能否成功只有時(shí)間才能告訴我們,也歡迎大家留言,說(shuō)說(shuō)自己心目中的全新區(qū)塊鏈物種。

關(guān)鍵詞:

責(zé)任編輯:Rex_07

推薦閱讀