了解Solana:渦輪機、海灣流和海平面

2021-06-24 00:06:38

歷經兩輪牛市,Solana終於在2021年大放異彩。

Solana是一個高性能、高質量的公鏈,旨在不犧牲去中心化或安全性的情況下,提供快速、便宜、抗審查的區塊鏈網絡,以滿足快速增長的應用落地需求。

目前,分片、側鏈等仍是各大公鏈試圖提高自身性能的主流方案。

然而,Solana另闢蹊徑,利用自己獨創的新技術,帶來了更有效的可擴展性解決方案。

Solana利用工作歷史證明 PoH、基站拜佔庭容錯(Tower BFT)、渦輪機(區塊傳播協議)、海灣流(無內存交易轉發協議)、海平面(並行智能合約)、管道(驗證交易)、雲散(水平擴展账戶數據庫)以及檔案(分布式账本存儲)八大突破性技術構建出一個超高性能的區塊鏈。

本文將着重介紹三大技術:渦輪機(區塊傳播協議)、海灣流(無內存交易轉發協議)和海平面(並行智能合約)。

通過解析Solana的底層技術,大家可以從本質中更好的了解Solana如何解決區塊鏈的可擴展性三元悖論問題以及對區塊鏈網絡造成嚴重影響的內存池問題。

渦輪機(Turbine):區塊數據傳輸協議

區塊鏈技術中的可擴展性三元悖論問題與帶寬有關。如今,在大多數區塊鏈網絡中,鑑於每個節點有固定的帶寬,增加節點數量將增加把所有數據傳播到所有節點所需的時間。

這是一個擺在所有人面前的難題。

不過也出現了許多新穎的數據傳播技術,每一種都在根據特定的應用進行優化。例如,BitTorrent是為通過TCP向大群人提供大文件而優化的,而MediaFLO則是為物理層的數據傳播而優化的協議,目的是提高無线網絡上多點廣播的效率。

而Solana的區塊傳播協議渦輪機(Turbine),是如何解決區塊鏈的可擴展性三元悖論問題的呢?

高性能區塊鏈的挑战之一是網絡如何將大量的數據傳播給大量的對等體。例如,一個由2萬個驗證器組成的網絡。領導者(leader)需要將一個128MB的區塊(約50萬筆交易)傳輸給2萬個驗證器。要想實現傳播,需要領導者與每個驗證者產生一個獨特的連接,並將整個128MB的數據傳輸20000次。

顯而易見,一般沒有足夠的帶寬來容納這么多的連接。

針對這一問題的解決方案——Turbine,在很大程度上借鑑了BitTorrent,但是兩者之間在主要的技術細節上還是有一些區別。

通過將數據分成較小的數據封包,Turbine協議致力於幫助區塊鏈節點間的數據傳輸變得更加容易。得益於此,Solana可以解決帶寬限制的問題,並提高其整體容量,使得交易可以更快地完成。

Turbine針對流式傳輸進行了優化,使用UDP傳輸數據,並在領導者(區塊生產者)流式傳輸數據時,實現了每個數據包在網絡中的隨機路徑。領導者將一個128MB數據塊分成大小不超過64KB的數據包,並將每個數據包傳輸到不同的驗證器。

然後,每個驗證器將數據包重傳給一組稱為“鄰居”(neighborhood)的對等體。每個鄰居負責將部分數據傳輸到其下面的每個鄰居。

如果領導者以擦除碼的形式傳輸該區塊33%的數據包,那么網絡可以放棄任何33%的數據包並且不丟失該區塊。

領導者甚至可以根據網絡狀況動態地調整這個數字。這些都是由領導者從以前的區塊中觀察到的丟包率做出的決定。

並非所有的驗證器都是平等的,最重要的驗證器是那些擁有最多質押的驗證器。

因此,相應的傳播將會進行優先排序。權益加權選擇算法構建了一個樹,使質押較高的驗證器在鄰居中更接近領導者。每個驗證者都獨立計算相同的樹。

雖然擦除碼可以修復故障,但在樹中的敵對節點可能會導致故障,特別是當與DoS(拒絕服務攻擊)相結合時。

Solana如何處理這種日蝕攻擊(Eclipse Attack)?

扇出算法。

Solana的扇出算法使用基於數據包數字籤名的隨機源為每個數據包生成一棵權益加權樹。由於每個數據包採取不同的路徑,而且路徑是事先不知道的,鄰居級的日蝕攻擊需要幾乎完全控制網絡。

這種技術可以擴展到200到1000個節點之間。支持1 gbps的網卡每秒可以傳輸100萬個數據包。如果網絡連接允許,單個驗證器可以在一秒鐘內將最多64kb的數據包發送給1,000臺機器。

海灣流(Gulf Stream):無內存交易轉發協議

內存池(MemPool)是一組已經提交,但尚未被網絡處理的交易。

就比特幣和以太坊而言,內存池的大小通常以未確認交易的數量來衡量,取決於區塊空間的供應和需求。即使在區塊鏈時代早期,當內存池增加時,也會對整個網絡造成嚴重的瓶頸影響。

那么,Solana是如何精益求精的?

在不增加網絡吞吐量的情況下,Solana驗證器可以管理10萬筆交易的內存池大小。這意味着,在網絡吞吐量為5萬TPS的情況下,10萬筆交易的內存池在幾秒鐘內就能執行。這就是讓Solana成為世界上性能最強無許可區塊鏈的原因。

Solana網絡對這個問題的解決方案是將交易緩存和轉發(forwarding)推送到網絡邊緣,這被稱之為海灣流(Gulf Stream)。

由於每個驗證器都知道未來領導者的順序,客戶和驗證器提前將交易轉發給預期的領導者。這使得驗證器可以提前執行交易,減少確認時間,更快地切換領導者,並減少未確認交易池對驗證器的內存壓力,讓Solana每秒可處理5萬筆交易。這種解決方案在領導者不確定的區塊鏈網絡中是不可能的。

它又是如何工作的呢?

客戶端(比如錢包)籤署引用特定區塊哈希的交易。客戶端選擇一個已經被網絡完全確認的、最近的區塊哈希。區塊大約每800毫秒被提出一次,每增加一個區塊都需要成倍的增加時間來展开。使用默認的超時曲线,在最壞的情況下,完全確認的區塊哈希是32個區塊。

一旦一筆交易被轉發到任何驗證器,驗證器就會將其轉發到未來的領導者之一。客戶端可以訂閱驗證器的交易確認信息。客戶端知道區塊哈希在有限的時間內過期,或者交易被網絡確認。這允許客戶端籤署對保證執行或失敗的交易進行籤名。

一旦網絡過了回滾點,交易引用的區塊哈希就會過期,客戶就可以保證交易現在是無效的,且永遠不會在鏈上執行。

到目前為止,很明顯,區塊鏈網絡的功能只有在其內存池最小的情況下才會發揮作用。

當交易吞吐量有限的網絡承擔着嘗試改造全新的擴展技術來解決不斷增加的內存池的努力時,Solana從一开始就通過海灣流等優化設計來解決第一代區塊鏈網絡的問題,並實現巨大的交易吞吐量。

海平面(Sealevel):智能合約運作並行引擎

以太坊的EVM和EOS的基於WASM的runtime都是單线程的。這意味着每次都會有一個智能合約修改區塊鏈的狀態。

而Solana建立的智能合約運作並行引擎——海平面(Sealevel),可以並行處理數以萬計的合約,並使用驗證器作為核心。它可以使Solana的執行時間更有效率,還可讓交易在相同狀態的區塊鏈上同時執行。

Solana之所以能夠並行處理交易,是因為Solana的一筆交易在執行時,將讀取或寫入所有狀態。這不僅允許非重疊的交易並發執行,而且允許只讀取相同狀態的交易也並發執行。

Solana的帳戶數據庫Cloudbreak是一個公鑰到帳戶的映射。所有者是管理账戶狀態轉換的程序的公鑰。程序是代碼,無狀態。它們依靠分配給它們的账戶中的數據向量進行狀態轉換。

默認情況下,所有账戶开始時都是由系統程序擁有的。用戶定義的程序由加載器程序加載。加載器程序能夠將账戶中的數據標記為可執行。

此時,加載器驗證了字節碼,字節碼被加載到的账戶可以作為一個可執行程序使用。新账戶可以被標記為由用戶定義的程序所擁有。

這裏的關鍵是,程序是代碼,在鍵值存儲中,存在一些鍵的子集,這個程序並且只有這個程序有寫訪問權限。

交易指定一個指令向量。每條指令都包含程序、程序指令和交易要讀寫的账戶列表。

像readv或writeev這樣的接口會提前告訴內核用戶想要讀取或寫入的內存。這允許操作系統預取、准備設備並在設備允許的情況下同時執行操作。

在Solana上,每條指令都會提前告訴虛擬機它要讀和寫哪些账戶。

SIMD指令允許單段代碼在多個數據流上執行。這意味着Sealevel可以執行一個額外的優化,這是Solana設計所特有的。

在性能方面沒有免費的午餐。為了使SIMD優化可行,所執行的指令應該包含少量的分支,而且應該都採取相同的分支。

通過海平面的並行處理,與單线程運行時相比,Solana能夠實現極高的吞吐量和可用性。

結語

可以看到,在技術創新等方面,Solana獨樹一幟开拓出一條獨屬於Layer1的道路。在未來,Solana將會繼續發展,為應用層的大規模應用提供一個高性能和低廉費用的去中心化解決方案。

在Solana大規模發展的DeFi生態,令人期待。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

USDT大到倒不了?華爾街債券交易巨頭Cantor取得Tether5%股權

據 華爾街日報今日 披露 ,華爾街債券交易巨頭 Cantor Fitzgerald 在 2023...

James
8 13小時前

空投周報 | Magic Eden代幣將於12月10日TEG;Side Protocol空投將於11月26日开放申領(11.18-11.24)

@OdailyChina @web3_golem Odaily星球日報盤點了 11 月 18 日至...

星球日報
8 13小時前

富爸爸喊比特幣1300萬美元!力挺Michael Saylor預測:微策略是對的

受 惠於比特幣不斷屢創新高,上市公司比特幣持倉量霸主微策略(MicroStrategy)股價今年大...

James
10 21小時前

Arthur Hayes:比特幣2025年底將25萬鎂!狗狗幣上看1美元

B itMEX 創辦人 Arthur Hayes 在近日 參與 Alpha First Podca...

James
10 21小時前

避險需求暴增!黃金單周漲6%重返2712美元,會如何影響比特幣行情?

自 川普勝選以來,美元強勁升值,在選前不斷走高的金價反而開始疲軟,在 11 月中更跌至 2 個月新...

James
10 21小時前

讀懂以太坊基金會2024報告,迎接特朗普時代合規挑战

2024 年美國大選終於塵埃落地,備受加密行業關注與支持的特朗普也算是“熹妃回宮”,不知道當時各位...

星球日報
9 21小時前