首頁 >快訊 >

另類的Solana:不走分片之路

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


(資料圖)

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

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

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

Solana現(xiàn)狀

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

(SOURCE:Solanabeach.io)

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

(SOURCE:Solanabeach.io)

不走分片之路的Solana

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

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

Solana的時鐘

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

不過,這種全局共識也存在吞吐量的限制,因為吞吐量取決于區(qū)塊大小和區(qū)塊時間。區(qū)塊越大,區(qū)塊時間越短,吞吐量越大。但區(qū)塊越大不利于節(jié)點的去中心化,減少區(qū)塊時間則會增加鏈分叉的概率。

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

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

Solana的驗證者通過SHA-256順序哈希的VDF(可驗證延遲函數(shù))來解決時鐘問題。每個Solana的驗證者使用VDF來維持其自己的時鐘,可以為周期(epoch)提前安排領導者。

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

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

Solana的TBFT共識

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

Solana的Turbine區(qū)塊廣播

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

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

Solana的Gulf Stream

在Slolana的結構中,每個驗證者都知道未來領導者的順序,驗證者會提前將交易轉發(fā)給預期的領導者。這可以讓驗證者提前執(zhí)行交易,減少確認時間,減少對驗證者的內(nèi)存壓力。

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

一旦交易轉發(fā)給任意驗證者,驗證者會轉發(fā)給未來的領導者??蛻舳丝梢杂嗛唩碜则炞C者的交易確認。客戶端知道區(qū)塊哈希在有限時間內(nèi)過期或者交易被網(wǎng)絡確認。它允許客戶端簽署交易,這些交易可以保證執(zhí)行或失敗。

Solana的sealevel

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

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

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

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

Solana的Pipelining

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

Solana的Cloudbreak

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

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

Solana的Archiver

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

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

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

如Serum能成功,對Solana意味著什么?

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

FTX選擇Solana構建其DEX Serum。核心原因有幾個:

一是高吞吐量和低延遲。

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

二是低費用。

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

三是兼容性和無須擔心可組合性。

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

此外,由于Solana走的不是分片之路,也無須擔心智能合約的跨分片交易等問題。

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

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

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

Solana想要摘取加密領域的圣杯:可擴展性。所以,Solana要走的路不是小路,而是充滿夢想的大路。

但它又是另類的,它走的不是分片的可擴展之路,它是加密領域的新物種。

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

當然,新架構意味者高風險,因為它可能做不出來,也可能做出來了但沒有社區(qū)的支持;它也意味著高收益,如果它能做出來且得到開發(fā)者和社區(qū)的支持,它就有機會發(fā)展壯大。

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

關鍵詞:

責任編輯:Rex_07