另類的 Solana:不走分片之路

另類的 Solana:不走分片之路

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

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

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

Solana 現狀

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

另類的 Solana:不走分片之路( SOURCE:Solanabeach.io )

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

另類的 Solana:不走分片之路
另類的 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 的 s ealevel

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 一直處於藍狐筆記的關注範圍,但未來它們能否成功只有時間才能告訴我們,也歡迎大家留言,說說自己心目中的全新區塊鏈物種。

本文不構成投資建議,虛擬貨幣波動大請謹慎小心

掌握虛擬貨幣、區塊鏈大小事

另類的 Solana:不走分片之路 另類的 Solana:不走分片之路

發表迴響