另類的Solana:不走分片之路

買賣虛擬貨幣

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

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

前不久FTX將要基於Solana釋出其DEX交易所,該DEX名為Serum。FTX的CEO SBF還公開為Solana“帶鹽”:“Solana棒極了!”這是什麼情況?為什麼不是基於以太坊構建其DEX?

這一切都源於Solana的特色:在保證一定程度安全的前提下,實現高效能和低費用。

Solana現狀

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

(SOURCE:Solanabeach.io)

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

(SOURCE:Solanabeach.io)

不走分片之路的Solana

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

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

Solana的時鐘

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

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

為提高吞吐量,Solana提出了將時間和狀態解耦的方案,如何實現這一點?需要全域性可用的時鐘。有了全域性時鐘,狀態更新可按照非同步方式進行;有了全域性一致的時鐘和交易時間戳,可以實現交易在網路間的持續流動。Solana的PoH機制就是為網路中的所有節點產生全域性可用的時間鏈。

有了獨立的時間鏈,驗證的領導者在收到時間戳後會儘快廣播給委員會。時間戳有規範順序,不是區塊生產者任意確定的順序,這樣,Solana中的驗證者可以實時向其他節點傳送狀態更新。節點持續收到新的交易,交易有傳送者簽名過的PoH雜湊,並將其轉發給鄰居節點。

Solana的驗證者透過SHA-256順序雜湊的VDF(可驗證延遲函式)來解決時鐘問題。每個Solana的驗證者使用VDF來維持其自己的時鐘,可以為週期(epoch)提前安排領導者。

透過PoH,Solana的驗證領導者可以實現持續輪換,且其輪換的決定是非同步進行的。Solana網路也可以輪換驗證者,且其輪換可在驗證者之間無須相互交談就可實現。而通常的區塊鏈則需要驗證者之間進行交談才能作出輪換決定。這種設計給予Solana更大的可擴充套件性空間。

除了PoH,Solana在共識機制、區塊廣播、賬本儲存等方面也進行了最佳化。

Solana的TBFT共識

Solana的共識機制是TBFT共識(Tower BFT),類似於PBFT共識。不過,Solana的TBFT將其活性優先於一致性。Solana的節點可以計算當前的驗證者數量、每個驗證者狀態、每個驗證者提交給網路中任何區塊的超時。透過這些資料結構,節點可以進行投票,從而達成共識。

Solana的Turbine區塊廣播

Turbine是Solana的區塊廣播技術,借用了BitTorrent的思想。一個區塊傳輸時,它會分成很多個小資料包,然後廣播到大量的隨機節點。按照Solana自身的說法,使用其扇出機制,如果每個連線為100毫秒,對於40,000個節點的網路而言,可以在400毫秒內完成複製,500毫秒內完成最終性。

此外,由於Solana的共識層不依賴於點對點訊息,因此可以獨立於共識進行區塊網路傳輸的最佳化。

Solana的Gulf Stream

在Slolana的結構中,每個驗證者都知道未來領導者的順序,驗證者會提前將交易轉發給預期的領導者。這可以讓驗證者提前執行交易,減少確認時間,減少對驗證者的記憶體壓力。

而像錢包這樣的客戶端則簽署引用特定區塊雜湊的交易。客戶端選擇被網路完全確認的區塊雜湊,最差的情況下需要32個區塊,假設區塊時間大約800毫秒,最多隻需要25.6秒完全確認。

一旦交易轉發給任意驗證者,驗證者會轉發給未來的領導者。客戶端可以訂閱來自驗證者的交易確認。客戶端知道區塊雜湊在有限時間內過期或者交易被網路確認。它允許客戶端簽署交易,這些交易可以保證執行或失敗。

Solana的sealevel

sealevel是Solana用來構建橫向擴充套件的技術方案,是並行交易處理的引擎。多數區塊鏈都是單執行緒的計算機。Solana試圖在單個分片中支援並行交易執行。它借鑑了“scatter-gathter”的作業系統驅動程式技術。交易預先指定它們在執行時將讀取或寫入的狀態。執行時可以找到一個塊中所有非重疊狀態轉換函式,且並行處理。

sealevel本身是用於安排交易的虛擬機器,但它並不在虛擬機器中執行交易。它使用Berkeley Packet Filter(BFT,為高效能資料包過濾器設計)的位元組碼,將交易在硬體本地執行。

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

為保證安全,Solana的體系結構支援不同模組之間保持嚴格狀態分離,同時將資源和指令碼作為高階概念引入。

Solana的Pipelining

Solana網路上的交易驗證過程利用了Pipelining的機制(CPU設計中常見的最佳化)。Solana網路上Pipelining機制(交易處理單元)在核心級別進行資料獲取、在GPU級別進行簽名驗證,在CPU級別進行儲存,在核心空間進行寫入。據Solana的說法,透過這一機制,其交易處理單元可以同時處理50,000個交易。

Solana的Cloudbreak

Cloudbreak是Solana的水平擴充套件記憶體方案。除了擴充套件計算,也有必要擴充套件記憶體,因為用於跟蹤賬戶的記憶體很快會在大小和訪問速度方面成為瓶頸。一般的處理方法是在RAM中維持全域性狀態。不過,普通的計算機沒有足夠的RAM來儲存全域性狀態。Solana設計了Cloudbreak的狀態架構來進行最佳化。每個額外的磁碟增加了鏈上程式可用的儲存容量,並增加了在執行時可以執行的併發讀寫程式數量。

這個結構支援交易的提前執行。只要驗證者觀察到交易,sealevel可以開始從磁碟中預取所有賬戶,併為執行準備執行時。驗證者和區塊生產者可以在交易編碼進入區塊前開始執行交易,有利於進一步最佳化區塊時間。

Solana的Archiver

為減輕驗證者負擔,Solana將資料儲存從驗證者轉移到名為Archiver的節點網路。交易狀態的歷史記錄被拆分為很多碎片,並使用糾刪碼技術。Archiver用於儲存狀態的碎片,但不參與共識。Solana利用了PoRep(Proof of Replication)的技術,瞭解Filecoin的小夥伴們肯定很熟悉,這是源於Filecoin的概念。

Solana透過PoH(Proof of History)來最佳化RoRep的建立方式。Archiver節點使用PoH產生輕量級的證明,驗證者可以透過GPU進行大規模驗證。Archiver節點甚至可以是輕量級節點(例如膝上型電腦)。透過糾刪碼和冗餘,Archiver網路可以提供資料可用性保證。

透過PoH的創新和其他幾個方面的最佳化,Solana試圖走出一條不靠分片的擴充套件之路。

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

Solana之前有過Kin的支援,kin將其網路遷移至Solana。而如今FTX的Serum也計劃構建在Solana上。一旦它獲得一定的使用者規模和開發者支援,就會引起越來越多的社羣和開發者注意。

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

一是高吞吐量和低延遲。

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

二是低費用。

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

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

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

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

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

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

Solana網路採用了基於PoH時鐘機制,還最佳化了共識機制、資料廣播、並行交易處理、用單獨節點網路進行狀態資料儲存等,其目就是為了在保證一定程度去中心化和安全的情況下,實現高吞吐量、低延遲和低費用,從而可以滿足大部分場景的使用者需求。

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

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

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

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

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

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;