一文揭秘區(qū)塊鏈中的速度之王:Solana
一份性能報(bào)告
CoinGecko 于 5 月 17 日發(fā)布的 《Fastest Chains》報(bào)告中顯示,Solana 是大型區(qū)塊鏈中速度最快的,最高日均真實(shí) TPS 達(dá)到 1,504(已經(jīng)去除了投票交易),Sui 是第二快的區(qū)塊鏈,最高日均真實(shí) TPS 達(dá)到 854,BSC 排名第三,但達(dá)到的真實(shí) TPS 還不到 Sui 的一半。
從這份報(bào)告可以看出,性能最好的 Solana 和 Sui 都是非 EVM 兼容的區(qū)塊鏈,更進(jìn)一步,8 個(gè)非 EVM 兼容區(qū)塊鏈的平均真實(shí) TPS 為 284,17 個(gè) EVM 兼容區(qū)塊鏈和以太坊 Layer2 的平均 TPS 僅為 74,非 EVM 兼容區(qū)塊鏈的性能是 EVM 兼容區(qū)塊鏈的 4 倍左右。
本文將會(huì)探討 EVM 兼容區(qū)塊鏈的性能瓶頸,并揭開 Solana 的性能之道。
EVM 兼容區(qū)塊鏈的性能瓶頸
首先,我們泛化 EVM 區(qū)塊鏈到一般區(qū)塊鏈。一般區(qū)塊鏈想要提升 TPS,一般有如下幾種做法:
- 提升節(jié)點(diǎn)性能:通過堆硬件資源去提升節(jié)點(diǎn)性能,節(jié)點(diǎn)的硬件要求會(huì)影響去中心化程度,例如以太坊推薦配置,Cpu 4 核,內(nèi)存 16G,網(wǎng)絡(luò)帶寬 25Mbps,普通用戶級(jí)設(shè)備都能達(dá)到,中心化程度較高;Solana 推薦配置相對(duì)更高 Cpu 32 核,內(nèi)存 128G,網(wǎng)絡(luò)帶寬 1Gbps,專業(yè)級(jí)設(shè)備才能達(dá)到,中心化程度一般;
- 改進(jìn)底層協(xié)議:包括網(wǎng)絡(luò)協(xié)議、密碼學(xué)、存儲(chǔ)等,改進(jìn)區(qū)塊鏈底層協(xié)議不改變區(qū)塊鏈自身的屬性,也不影響區(qū)塊鏈的運(yùn)行規(guī)則,可以直接提升區(qū)塊鏈的性能,但底層技術(shù)關(guān)注度低,目前研究領(lǐng)域沒有重大突破;
- 擴(kuò)大區(qū)塊:增加區(qū)塊的大小可以包含更多的交易,進(jìn)而提高區(qū)塊鏈的交易吞吐量,例如比特幣現(xiàn)金(BCH)將區(qū)塊從 1 MB 擴(kuò)大到 8 MB,之后擴(kuò)展到 32 MB。但擴(kuò)大區(qū)塊的同時(shí)也會(huì)增大傳播延遲引發(fā)安全威脅, 比如導(dǎo)致分叉可能性增大和 DDoS 攻擊;
- 共識(shí)協(xié)議:共識(shí)協(xié)議保證了區(qū)塊鏈各個(gè)節(jié)點(diǎn)對(duì)于區(qū)塊鏈的狀態(tài)更新達(dá)成一致,是區(qū)塊鏈最重要的一重安全門,已經(jīng)用于區(qū)塊鏈的共識(shí)機(jī)制有 PoW、PoS、PBFT 等。為了滿足可擴(kuò)展性的需求,一般高性能公鏈都會(huì)改進(jìn)共識(shí)協(xié)議,并結(jié)合自身特殊機(jī)制,例如 Solana 基于 PoH 的共識(shí)機(jī)制,Avalanche 基于雪崩的共識(shí)機(jī)制;
- 交易執(zhí)行:交易執(zhí)行只關(guān)心單位時(shí)間內(nèi)處理的交易或計(jì)算任務(wù)數(shù)量,以太坊等區(qū)塊鏈采用串行方式執(zhí)行區(qū)塊中的智能合約交易,在串行執(zhí)行中,CPU 的性能瓶頸是非常明顯的,嚴(yán)重制約了區(qū)塊鏈的吞吐量。一般高性能公鏈都會(huì)采用并行執(zhí)行的方式,有的還會(huì)提出更利于并行的語言模型來構(gòu)建智能合約,例如 Sui Move。
對(duì)于 EVM 區(qū)塊鏈而言,由于限定了虛擬機(jī),即交易的執(zhí)行環(huán)境,因此最大的挑戰(zhàn)在于交易執(zhí)行。EVM 主要有兩個(gè)性能問題:
- 256 位:EVM 設(shè)計(jì)成一臺(tái) 256 位的虛擬機(jī),目的是為了更易于處理以太坊的哈希算法,它會(huì)明確產(chǎn)生 256 位的輸出。然而,實(shí)際運(yùn)行 EVM 的計(jì)算機(jī)則需要把 256 位的字節(jié)映射到本地架構(gòu)來執(zhí)行,一個(gè) EVM 操作碼會(huì)對(duì)應(yīng)多個(gè)本地操作碼,從而使得整個(gè)系統(tǒng)變得非常低效和不實(shí)用;
- 缺少標(biāo)準(zhǔn)庫:Solidity 中沒有標(biāo)準(zhǔn)庫,必須自己用 Solidity 代碼實(shí)現(xiàn),雖然 OpenZeppelin 使這一情況得到一定改善,他們提供了一個(gè) Solidity 實(shí)現(xiàn)的標(biāo)準(zhǔn)庫(通過將代碼包含在合約中或是以 delegatecall 的形式調(diào)用部署好的合約),但是 EVM 字節(jié)碼的執(zhí)行速度遠(yuǎn)不如預(yù)編譯好的標(biāo)準(zhǔn)庫。
如果站在執(zhí)行優(yōu)化的角度,EVM 還存在兩大不足:
- 難以做靜態(tài)分析:區(qū)塊鏈中的并行執(zhí)行意味著同時(shí)處理不相關(guān)的交易,把不相關(guān)的交易看作互不影響的事件。實(shí)現(xiàn)并行執(zhí)行主要挑戰(zhàn)是確定哪些交易是不相關(guān)的,哪些是獨(dú)立的,目前部分高性能公鏈會(huì)預(yù)先對(duì)交易做靜態(tài)分析,EVM 的動(dòng)態(tài)跳轉(zhuǎn)(dynamic jumps)機(jī)制導(dǎo)致代碼很難被靜態(tài)分析;
- JIT 編譯器不成熟:JIT 編譯器(Just In Time Compiler)是現(xiàn)代虛擬機(jī)常用的優(yōu)化手段,JIT 最主要的目標(biāo)是把解釋執(zhí)行變成編譯執(zhí)行。在運(yùn)行時(shí),虛擬機(jī)將熱點(diǎn)代碼編譯成與本地平臺(tái)相關(guān)的機(jī)器碼,并進(jìn)行各種層次的優(yōu)化。目前雖然有 EVM JIT 的項(xiàng)目,但還處于實(shí)驗(yàn)階段,不夠成熟。
因此從虛擬機(jī)的選擇上,高性能公鏈更多采用的是基于 WASM, eBPF 字節(jié)碼或 Move 字節(jié)碼的虛擬機(jī),而非 EVM。例如 Solana 使用自己獨(dú)特的虛擬機(jī) SVM 和基于 eBPF 的字節(jié)碼 SBF。
Fastest Chains:Solana
Solana 因其 PoH(Proof of History )機(jī)制以及低延遲高吞吐量而聞名,是最著名的「以太坊殺手」之一。
PoH 的核心是一個(gè)類似于可驗(yàn)證延遲函數(shù)(VDF)的簡(jiǎn)單哈希算法。Solana 使用一個(gè)序列預(yù)映像抵抗的哈希函數(shù)(SHA-256)實(shí)現(xiàn),該函數(shù)持續(xù)運(yùn)行,用一次迭代的輸出作為下一次的輸入。這個(gè)計(jì)算在每個(gè)驗(yàn)證者的單個(gè)核心上運(yùn)行。
雖然序列生成是順序和單線程的,但驗(yàn)證可以并行進(jìn)行,從而在多核系統(tǒng)上實(shí)現(xiàn)高效的驗(yàn)證。雖然哈希速度存在上界,但硬件改進(jìn)可能提供額外的性能提升。
Solana 共識(shí)流程
PoH 機(jī)制作為可靠且無需信任的時(shí)間源,在網(wǎng)絡(luò)內(nèi)創(chuàng)建可驗(yàn)證且有序的事件記錄。基于 PoH 的計(jì)時(shí)允許 Solana 網(wǎng)絡(luò)以預(yù)定且透明的方式輪換領(lǐng)導(dǎo)者。這種輪換以固定的時(shí)間間隔進(jìn)行,為 4 個(gè)槽(slot),每個(gè)槽目前設(shè)置為 400 毫秒。?這種領(lǐng)導(dǎo)者輪換機(jī)制確保每個(gè)參與的驗(yàn)證者都有公平的機(jī)會(huì)成為領(lǐng)導(dǎo)者,是 Solana 網(wǎng)絡(luò)維護(hù)去中心化和安全的重要機(jī)制,防止任何單個(gè)驗(yàn)證者在網(wǎng)絡(luò)上獲得過多的權(quán)力。
每個(gè)槽的時(shí)間段,領(lǐng)導(dǎo)者提出一個(gè)新塊,其中包含從用戶收到的交易。領(lǐng)導(dǎo)者驗(yàn)證這些交易,打包成一個(gè)區(qū)塊,然后將該塊廣播到網(wǎng)絡(luò)的其余驗(yàn)證者。這種提議和廣播區(qū)塊的過程稱為區(qū)塊生產(chǎn),網(wǎng)絡(luò)中的其他驗(yàn)證者必須對(duì)區(qū)塊的有效性進(jìn)行投票。驗(yàn)證者檢查區(qū)塊的內(nèi)容,確保交易有效并遵守網(wǎng)絡(luò)規(guī)則。如果一個(gè)區(qū)塊獲得了絕大多數(shù)權(quán)益權(quán)重的投票,則該區(qū)塊被視為已確認(rèn)。此確認(rèn)過程對(duì)于維護(hù) Solana 網(wǎng)絡(luò)安全和防止雙花至關(guān)重要。
當(dāng)前領(lǐng)導(dǎo)者的時(shí)間段結(jié)束,網(wǎng)絡(luò)不會(huì)停止或等待區(qū)塊確認(rèn),而是會(huì)移動(dòng)到下一個(gè)時(shí)間段,為后續(xù)領(lǐng)導(dǎo)者提供區(qū)塊生產(chǎn)的機(jī)會(huì),整個(gè)過程重新開始。這種方法可確保 Solana 網(wǎng)絡(luò)保持高吞吐量并保持彈性,即使某些驗(yàn)證者遇到技術(shù)問題或離線也是如此。
Solana 性能之道
由于 Solana 網(wǎng)絡(luò)可以提前確認(rèn)領(lǐng)導(dǎo)者,因此 Solana 不需要公共內(nèi)存池來保存用戶的交易。當(dāng)用戶提交交易時(shí),RPC 服務(wù)器將其轉(zhuǎn)換為 QUIC 數(shù)據(jù)包,并立即將其轉(zhuǎn)發(fā)領(lǐng)導(dǎo)者的驗(yàn)證者。這種方法被稱為Gulf Stream,它允許快速的領(lǐng)導(dǎo)者轉(zhuǎn)換和交易的預(yù)執(zhí)行,減少了其他驗(yàn)證者的內(nèi)存負(fù)載。
Solana 的區(qū)塊數(shù)據(jù)帶入到內(nèi)核空間,然后傳遞給 GPU 以進(jìn)行并行簽名驗(yàn)證,一旦 GPU 上驗(yàn)證了簽名,數(shù)據(jù)就會(huì)傳遞給 CPU 進(jìn)行交易執(zhí)行,最后返回到內(nèi)核空間做數(shù)據(jù)持久化。這種將數(shù)據(jù)劃分為不同硬件部件的多個(gè)處理過程,稱為流水線技術(shù),能最大化硬件利用率,加快區(qū)塊的驗(yàn)證和傳輸速度。
由于 Solana 的交易顯式指定訪問哪些賬戶,Solana 的交易調(diào)度器可以利用讀寫鎖機(jī)制并行執(zhí)行交易。Solana 交易調(diào)度器每個(gè)線程都有自己管理的隊(duì)列,順序且獨(dú)立地處理交易,嘗試鎖定(讀寫鎖)交易的賬戶并執(zhí)行交易,賬戶沖突的交易會(huì)稍后執(zhí)行。這種多線程并行執(zhí)行技術(shù)稱為 Sealevel。
領(lǐng)導(dǎo)者傳播區(qū)塊的過程,將 QUIC 數(shù)據(jù)包(可選地使用糾刪碼)劃分為較小的數(shù)據(jù)包,并將它們分發(fā)給具有分層結(jié)構(gòu)的驗(yàn)證者。這種技術(shù)稱為 Turbine,主要是減少領(lǐng)導(dǎo)者的帶寬使用。
驗(yàn)證者在投票過程中,使用一種針對(duì)分叉投票的共識(shí)機(jī)制。驗(yàn)證者無需等待投票即可繼續(xù)進(jìn)行區(qū)塊生產(chǎn);相反,區(qū)塊生產(chǎn)者會(huì)持續(xù)監(jiān)控有效的新投票,并實(shí)時(shí)將其納入當(dāng)前區(qū)塊中。這種共識(shí)機(jī)制稱為 TowerBFT,通過實(shí)時(shí)合并分叉投票,Solana 確保了更高效、更精簡(jiǎn)的共識(shí)流程,從而提高了整體性能。
針對(duì)區(qū)塊的持久化過程,Solana 開發(fā)了 Cloudbreak 數(shù)據(jù)庫,通過以特定方式對(duì)賬戶數(shù)據(jù)結(jié)構(gòu)進(jìn)行分區(qū),以受益于順序操作的速度并采用內(nèi)存映射文件,從而最大限度地提高 SSD 的效率。
為減輕驗(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í)。
總結(jié)
Solana 的愿景是成為一個(gè)其軟件按照硬件的速度擴(kuò)展的區(qū)塊鏈,因此 Solana 充分利用當(dāng)今計(jì)算機(jī)中可用的所有 CPU、GPU 和帶寬能力,以最大化性能,理論最大速度能達(dá)到 65,000 TPS。
正是因?yàn)?Solana 的高性能和拓展性,讓 Solana 成為處理高頻交易和復(fù)雜智能合約的首選區(qū)塊鏈平臺(tái),無論是年初的 DePIN/AI 賽道,還是近期火熱的 Meme 賽道,Solana 都展現(xiàn)出巨大的潛力。
以太坊 ETF 推出后,Solana 也成為下一個(gè) ETF 呼聲最大的加密貨幣,盡管 SEC 仍將 Solana 列為證券,短時(shí)間內(nèi)不會(huì)批準(zhǔn)其他加密貨幣 ETF。但在加密市場(chǎng),共識(shí)即價(jià)值,Solana 的共識(shí)或許正變得和比特幣與以太坊一樣堅(jiān)不可摧。
你可能感興趣的文章
-
Solana幣將會(huì)暴漲嗎?以性能看Solana幣未來價(jià)值
CoinGecko 于 5 月 17 日發(fā)布的 《Fastest Chains》報(bào)告中顯示,Solana 是大型區(qū)塊鏈中速度最快的,最高日均真實(shí) TPS 達(dá)到 1,504(已經(jīng)去除了投票交易),Sui 是第二快的區(qū)…
2024-06-05 -
Base未來怎么樣?能否挑戰(zhàn)Solana
Base是什么幣?能否挑戰(zhàn)Solana統(tǒng)治地位盡管Solana一直享受著其Memecoin成功帶來的榮耀,但一個(gè)新的挑戰(zhàn)者已經(jīng)嶄露頭角:Base,這個(gè)由Coinbase孵化的以太坊第二層解決方案正在…
2024-05-31 -
以太坊現(xiàn)貨ETF通過Solana會(huì)是最好的選擇嗎
以太坊現(xiàn)貨 ETF 通過 下一個(gè)是 Solana 嗎?加密投資公司Asymmetric Finance的首席執(zhí)行官、自稱Solana愛好者的喬·麥肯(Joe McCann)表示,考慮到SOL在市場(chǎng)上的地位,它必…
2024-05-25 -
Solana游戲龍頭:Nyan Heroes全面介紹
Nyan Heroes是一款第三人稱FPS射擊游戲,使用虛幻5引擎,由Mechanism Capital領(lǐng)投,游戲代幣$NYAN將用于獎(jiǎng)勵(lì)活躍玩家、交易稀有物品和皮膚,團(tuán)隊(duì)也可以從玩家身上賺錢,估值…
2024-05-19 -
Solana生態(tài)值得關(guān)注的4個(gè)AI項(xiàng)目盤點(diǎn)
Solana憑借其快速的交易處理速度與親民的費(fèi)用結(jié)構(gòu),已經(jīng)成為涵蓋金融到游戲等多樣化去中心化應(yīng)用的優(yōu)選平臺(tái),接下來,我們將聚焦Solana生態(tài)內(nèi)四個(gè)最具前瞻性和值得關(guān)注的AI…
2024-05-14 -
Solana開發(fā)學(xué)習(xí)筆記(一)——從Hello World出發(fā)
本章對(duì)Solana區(qū)塊鏈的基本概念進(jìn)行了簡(jiǎn)要介紹,并介紹了開發(fā)Solana鏈上程序必須安裝和配置的編程環(huán)境,通過對(duì)Hello World這個(gè)官方演示項(xiàng)目源碼的解讀,了解如何使用Rust開發(fā)…
2024-04-30 -
SOL價(jià)格上漲和網(wǎng)絡(luò)擁堵 Solana需要Layer2和Rollup么?
DRiP的創(chuàng)始人Vibhu在一則聲明中引發(fā)了一場(chǎng)迫切需要的辯論:Solana需要有L2和Rollup,本文將從Solana和擁堵、使Solana模塊化、Solana 應(yīng)用鏈、Solana 第二層、推動(dòng)Rollup和Ap…
2024-04-28 -
SOL是公鏈嗎?Solana(SOL)公鏈全面介紹
Solana是一個(gè)于2017年成立的可程式設(shè)計(jì)的區(qū)塊鏈,Solana 簡(jiǎn)稱SOL鏈,而SOL幣則是該公鏈的原生加密貨幣,在SOL鏈上的一切交互都需要使用SOL幣支付手續(xù)費(fèi),那么,SOL是公鏈嗎?…
2024-04-17 -
Jupiter是投資Solana的放大器嗎?
Jupiter 是 Solana 生態(tài)核心流動(dòng)性聚合器,提供最廣泛的代幣索引,以及任意交易對(duì)的最優(yōu)路徑,那么,Jupiter是投資Solana的放大器嗎?下文將為大家詳細(xì)分析…
2024-04-16 -
2024年Solana生態(tài)值得關(guān)注的10大DeFi主題
Solana 擁有最強(qiáng)大的聚合器之一,其中 Jupiter 處于領(lǐng)先地位,本文將為大家詳細(xì)介紹2024年Solana生態(tài)值得關(guān)注的10大DeFi主題…
2024-03-28