(奧維的街道及階梯,梵高)
(資料圖)
藍(lán)狐筆記之前多次介紹過Solana,可以查閱《為什么Solana是區(qū)塊鏈開發(fā)者需要的“世界計算機(jī)”?》、《區(qū)塊鏈的“歷史證明機(jī)制”:時間與共識》等,如今它已經(jīng)發(fā)展了不少。
前不久FTX將要基于Solana發(fā)布其DEX交易所,該DEX名為Serum。FTX的CEO SBF還公開為Solana“帶鹽”:“Solana棒極了!”這是什么情況?為什么不是基于以太坊構(gòu)建其DEX?
這一切都源于Solana的特色:在保證一定程度安全的前提下,實(shí)現(xiàn)高性能和低費(fèi)用。
Solana現(xiàn)狀
截止到藍(lán)狐筆記寫稿時,Solana的總交易數(shù)近20億次,當(dāng)前的tps大約200-300之間,大約是目前ETH的10-20倍,能處理當(dāng)前多數(shù)場景的交易,尤其是DeFi領(lǐng)域的交易。
(SOURCE:Solanabeach.io)
Solana的代幣為SOL,截止到藍(lán)狐筆記寫稿時,其流通市值超過3800萬美元,活躍的質(zhì)押超過1.7億,一共有135位質(zhì)押者。其中質(zhì)押超過100萬美元(按當(dāng)前SOL價格計算)的質(zhì)押者達(dá)到128位,目前的驗(yàn)證者是相對分散的,且都質(zhì)押一定量的資金,Solana已經(jīng)有了一定的社區(qū)基礎(chǔ)。目前其質(zhì)押者主要來自于歐洲、美國,亞洲質(zhì)押者參與度相對較低。
(SOURCE:Solanabeach.io)
不走分片之路的Solana
目前區(qū)塊鏈擴(kuò)展的主流方案是分片+layer2。而Solana是個另類。它并沒有選擇分片之路,這也是加密世界中兩個讓藍(lán)狐筆記印象較深的項目,一個是Solana,一個是Holochain。Solana試圖實(shí)現(xiàn)高性能、低費(fèi)用,且兼顧一定程度的去中心化和安全。它還有一個很重要的優(yōu)勢是,不用擔(dān)心可組合性的問題。如果公鏈分片之后,可組合性是個必須面對的問題。而沒有分片的Solana則不存在這種擔(dān)憂。
Solana創(chuàng)始人是Anatoly Yakovenko。從公開資料看,他之前一直在思考一個問題:多節(jié)點(diǎn)組成的去中心化網(wǎng)絡(luò)如何才能達(dá)到單節(jié)點(diǎn)的性能?對這一問題的底層思考,引出了Solana最重要的概念之一:PoH(Proof of History)。
Solana的時鐘
Solana的PoH并不是共識機(jī)制,也不是抵抗女巫攻擊的機(jī)制。它本質(zhì)上是針對區(qū)塊鏈時鐘問題的解決方案。當(dāng)前區(qū)塊鏈的時鐘按照區(qū)塊滴答來行進(jìn),比如比特幣,其時間滴答大約每十分鐘一次,每次滴答更新一次區(qū)塊,區(qū)塊的更新代表全局狀態(tài)的更新。也就是說,在比特幣的PoW機(jī)制中,時間和狀態(tài)是耦合的,保持同步的行進(jìn)。中本聰通過將PoW、難度調(diào)整以及最長鏈規(guī)則結(jié)合一起,實(shí)現(xiàn)了在無須許可環(huán)境下的全局共識。
不過,這種全局共識也存在吞吐量的限制,因?yàn)橥掏铝咳Q于區(qū)塊大小和區(qū)塊時間。區(qū)塊越大,區(qū)塊時間越短,吞吐量越大。但區(qū)塊越大不利于節(jié)點(diǎn)的去中心化,減少區(qū)塊時間則會增加鏈分叉的概率。
為提高吞吐量,Solana提出了將時間和狀態(tài)解耦的方案,如何實(shí)現(xiàn)這一點(diǎn)?需要全局可用的時鐘。有了全局時鐘,狀態(tài)更新可按照異步方式進(jìn)行;有了全局一致的時鐘和交易時間戳,可以實(shí)現(xiàn)交易在網(wǎng)絡(luò)間的持續(xù)流動。Solana的PoH機(jī)制就是為網(wǎng)絡(luò)中的所有節(jié)點(diǎn)產(chǎn)生全局可用的時間鏈。
有了獨(dú)立的時間鏈,驗(yàn)證的領(lǐng)導(dǎo)者在收到時間戳后會盡快廣播給委員會。時間戳有規(guī)范順序,不是區(qū)塊生產(chǎn)者任意確定的順序,這樣,Solana中的驗(yàn)證者可以實(shí)時向其他節(jié)點(diǎn)發(fā)送狀態(tài)更新。節(jié)點(diǎn)持續(xù)收到新的交易,交易有發(fā)送者簽名過的PoH哈希,并將其轉(zhuǎn)發(fā)給鄰居節(jié)點(diǎn)。
Solana的驗(yàn)證者通過SHA-256順序哈希的VDF(可驗(yàn)證延遲函數(shù))來解決時鐘問題。每個Solana的驗(yàn)證者使用VDF來維持其自己的時鐘,可以為周期(epoch)提前安排領(lǐng)導(dǎo)者。
通過PoH,Solana的驗(yàn)證領(lǐng)導(dǎo)者可以實(shí)現(xiàn)持續(xù)輪換,且其輪換的決定是異步進(jìn)行的。Solana網(wǎng)絡(luò)也可以輪換驗(yàn)證者,且其輪換可在驗(yàn)證者之間無須相互交談就可實(shí)現(xiàn)。而通常的區(qū)塊鏈則需要驗(yàn)證者之間進(jìn)行交談才能作出輪換決定。這種設(shè)計給予Solana更大的可擴(kuò)展性空間。
除了PoH,Solana在共識機(jī)制、區(qū)塊廣播、賬本存儲等方面也進(jìn)行了優(yōu)化。
Solana的TBFT共識
Solana的共識機(jī)制是TBFT共識(Tower BFT),類似于PBFT共識。不過,Solana的TBFT將其活性優(yōu)先于一致性。Solana的節(jié)點(diǎn)可以計算當(dāng)前的驗(yàn)證者數(shù)量、每個驗(yàn)證者狀態(tài)、每個驗(yàn)證者提交給網(wǎng)絡(luò)中任何區(qū)塊的超時。通過這些數(shù)據(jù)結(jié)構(gòu),節(jié)點(diǎn)可以進(jìn)行投票,從而達(dá)成共識。
Solana的Turbine區(qū)塊廣播
Turbine是Solana的區(qū)塊廣播技術(shù),借用了BitTorrent的思想。一個區(qū)塊傳輸時,它會分成很多個小數(shù)據(jù)包,然后廣播到大量的隨機(jī)節(jié)點(diǎn)。按照Solana自身的說法,使用其扇出機(jī)制,如果每個連接為100毫秒,對于40,000個節(jié)點(diǎn)的網(wǎng)絡(luò)而言,可以在400毫秒內(nèi)完成復(fù)制,500毫秒內(nèi)完成最終性。
此外,由于Solana的共識層不依賴于點(diǎn)對點(diǎn)消息,因此可以獨(dú)立于共識進(jìn)行區(qū)塊網(wǎng)絡(luò)傳輸?shù)膬?yōu)化。
Solana的Gulf Stream
在Slolana的結(jié)構(gòu)中,每個驗(yàn)證者都知道未來領(lǐng)導(dǎo)者的順序,驗(yàn)證者會提前將交易轉(zhuǎn)發(fā)給預(yù)期的領(lǐng)導(dǎo)者。這可以讓驗(yàn)證者提前執(zhí)行交易,減少確認(rèn)時間,減少對驗(yàn)證者的內(nèi)存壓力。
而像錢包這樣的客戶端則簽署引用特定區(qū)塊哈希的交易??蛻舳诉x擇被網(wǎng)絡(luò)完全確認(rèn)的區(qū)塊哈希,最差的情況下需要32個區(qū)塊,假設(shè)區(qū)塊時間大約800毫秒,最多只需要25.6秒完全確認(rèn)。
一旦交易轉(zhuǎn)發(fā)給任意驗(yàn)證者,驗(yàn)證者會轉(zhuǎn)發(fā)給未來的領(lǐng)導(dǎo)者??蛻舳丝梢杂嗛唩碜则?yàn)證者的交易確認(rèn)??蛻舳酥绤^(qū)塊哈希在有限時間內(nèi)過期或者交易被網(wǎng)絡(luò)確認(rèn)。它允許客戶端簽署交易,這些交易可以保證執(zhí)行或失敗。
Solana的sealevel
sealevel是Solana用來構(gòu)建橫向擴(kuò)展的技術(shù)方案,是并行交易處理的引擎。多數(shù)區(qū)塊鏈都是單線程的計算機(jī)。Solana試圖在單個分片中支持并行交易執(zhí)行。它借鑒了“scatter-gathter”的操作系統(tǒng)驅(qū)動程序技術(shù)。交易預(yù)先指定它們在執(zhí)行時將讀取或?qū)懭氲臓顟B(tài)。運(yùn)行時可以找到一個塊中所有非重疊狀態(tài)轉(zhuǎn)換函數(shù),且并行處理。
sealevel本身是用于安排交易的虛擬機(jī),但它并不在虛擬機(jī)中執(zhí)行交易。它使用Berkeley Packet Filter(BFT,為高性能數(shù)據(jù)包過濾器設(shè)計)的字節(jié)碼,將交易在硬件本地執(zhí)行。
使用LLVM(針對WASM的相同編譯器),可為開發(fā)者提供一組工具,用c/c++和Rust編寫高性能的智能合約。Solana沒有使用WASM,不過開發(fā)者可以在Solana編譯器上通過少量更改重新編譯C和Rust代碼。開發(fā)者可以從其他WASM鏈(ETH2.0、Polkadot、EOS等)將應(yīng)用遷移過來。這一點(diǎn)對于開發(fā)者來說,會有一定的吸引力。
為保證安全,Solana的體系結(jié)構(gòu)支持不同模塊之間保持嚴(yán)格狀態(tài)分離,同時將資源和腳本作為高級概念引入。
Solana的Pipelining
Solana網(wǎng)絡(luò)上的交易驗(yàn)證過程利用了Pipelining的機(jī)制(CPU設(shè)計中常見的優(yōu)化)。Solana網(wǎng)絡(luò)上Pipelining機(jī)制(交易處理單元)在內(nèi)核級別進(jìn)行數(shù)據(jù)獲取、在GPU級別進(jìn)行簽名驗(yàn)證,在CPU級別進(jìn)行存儲,在內(nèi)核空間進(jìn)行寫入。據(jù)Solana的說法,通過這一機(jī)制,其交易處理單元可以同時處理50,000個交易。
Solana的Cloudbreak
Cloudbreak是Solana的水平擴(kuò)展內(nèi)存方案。除了擴(kuò)展計算,也有必要擴(kuò)展內(nèi)存,因?yàn)橛糜诟欃~戶的內(nèi)存很快會在大小和訪問速度方面成為瓶頸。一般的處理方法是在RAM中維持全局狀態(tài)。不過,普通的計算機(jī)沒有足夠的RAM來存儲全局狀態(tài)。Solana設(shè)計了Cloudbreak的狀態(tài)架構(gòu)來進(jìn)行優(yōu)化。每個額外的磁盤增加了鏈上程序可用的存儲容量,并增加了在執(zhí)行時可以執(zhí)行的并發(fā)讀寫程序數(shù)量。
這個結(jié)構(gòu)支持交易的提前執(zhí)行。只要驗(yàn)證者觀察到交易,sealevel可以開始從磁盤中預(yù)取所有賬戶,并為執(zhí)行準(zhǔn)備運(yùn)行時。驗(yàn)證者和區(qū)塊生產(chǎn)者可以在交易編碼進(jìn)入?yún)^(qū)塊前開始執(zhí)行交易,有利于進(jìn)一步優(yōu)化區(qū)塊時間。
Solana的Archiver
為減輕驗(yàn)證者負(fù)擔(dān),Solana將數(shù)據(jù)存儲從驗(yàn)證者轉(zhuǎn)移到名為Archiver的節(jié)點(diǎn)網(wǎng)絡(luò)。交易狀態(tài)的歷史記錄被拆分為很多碎片,并使用糾刪碼技術(shù)。Archiver用于存儲狀態(tài)的碎片,但不參與共識。Solana利用了PoRep(Proof of Replication)的技術(shù),了解Filecoin的肯定很熟悉,這是源于Filecoin的概念。
Solana通過PoH(Proof of History)來優(yōu)化RoRep的創(chuàng)建方式。Archiver節(jié)點(diǎn)使用PoH產(chǎn)生輕量級的證明,驗(yàn)證者可以通過GPU進(jìn)行大規(guī)模驗(yàn)證。Archiver節(jié)點(diǎn)甚至可以是輕量級節(jié)點(diǎn)(例如筆記本電腦)。通過糾刪碼和冗余,Archiver網(wǎng)絡(luò)可以提供數(shù)據(jù)可用性保證。
通過PoH的創(chuàng)新和其他幾個方面的優(yōu)化,Solana試圖走出一條不靠分片的擴(kuò)展之路。
如Serum能成功,對Solana意味著什么?
Solana之前有過Kin的支持,kin將其網(wǎng)絡(luò)遷移至Solana。而如今FTX的Serum也計劃構(gòu)建在Solana上。一旦它獲得一定的用戶規(guī)模和開發(fā)者支持,就會引起越來越多的社區(qū)和開發(fā)者注意。
FTX選擇Solana構(gòu)建其DEX Serum。核心原因有幾個:
一是高吞吐量和低延遲。
當(dāng)前其理論tps最高可達(dá)50,000次(60個節(jié)點(diǎn))。如今Solana的tps也在200-300之間(超過150個節(jié)點(diǎn)),它可以在不到1秒時間內(nèi)完成交易。這對跟如今的區(qū)塊鏈的低吞吐量和高延遲形成鮮明對比。如果發(fā)生抵押資產(chǎn)價格暴跌情況,吞吐量過低,速度過慢都可能導(dǎo)致用戶大量損失。這些現(xiàn)實(shí)的情況不斷促使開發(fā)者和用戶在尋找新的選項。
二是低費(fèi)用。
據(jù)說百萬筆轉(zhuǎn)賬的交易費(fèi)用才10美元左右。這跟如今用戶參與DeFi挖礦的費(fèi)用形成巨大反差。如今用戶參與DeFi的流動性挖礦花費(fèi)幾十美元的gas費(fèi)用是很平常的事情。這么高的費(fèi)用除非有極高的收益支撐,否則很難持續(xù)。
三是兼容性和無須擔(dān)心可組合性。
Solana支持Rust、C、C++、Move(Libra)語言,也支持開發(fā)者從WASM鏈(ETH2.0、Polkadot、EOS等)將應(yīng)用遷移過來。這些兼容性可以降低開發(fā)者開發(fā)成本。
此外,由于Solana走的不是分片之路,也無須擔(dān)心智能合約的跨分片交易等問題。
Serum的能否成功,對Solana的意義不會低于對FTX的意義。如果Serum成功運(yùn)行,那么,其他飽受高費(fèi)用、低吞吐量、低速度的DeFi項目也會開始認(rèn)真考慮其更多的選項和可能性。當(dāng)然,由于以太坊生態(tài)的豐富性,這不意味著會離開以太坊,只是會考慮更多的選項。
不走分片之路的Solana要走的不是小路
Solana網(wǎng)絡(luò)采用了基于PoH時鐘機(jī)制,還優(yōu)化了共識機(jī)制、數(shù)據(jù)廣播、并行交易處理、用單獨(dú)節(jié)點(diǎn)網(wǎng)絡(luò)進(jìn)行狀態(tài)數(shù)據(jù)存儲等,其目就是為了在保證一定程度去中心化和安全的情況下,實(shí)現(xiàn)高吞吐量、低延遲和低費(fèi)用,從而可以滿足大部分場景的用戶需求。
Solana想要摘取加密領(lǐng)域的圣杯:可擴(kuò)展性。所以,Solana要走的路不是小路,而是充滿夢想的大路。
但它又是另類的,它走的不是分片的可擴(kuò)展之路,它是加密領(lǐng)域的新物種。
加密領(lǐng)域比特幣和以太坊占據(jù)絕對主導(dǎo)地位,想要在現(xiàn)有架構(gòu)下超越它們幾乎不可能。唯有全新架構(gòu)才有機(jī)會,唯有新物種才能發(fā)展壯大。
當(dāng)然,新架構(gòu)意味者高風(fēng)險,因?yàn)樗赡茏霾怀鰜?,也可能做出來了但沒有社區(qū)的支持;它也意味著高收益,如果它能做出來且得到開發(fā)者和社區(qū)的支持,它就有機(jī)會發(fā)展壯大。
這就是為什么藍(lán)狐筆記一直在關(guān)注不同的區(qū)塊鏈范式的原因。其中Solana和Holochain一直處于藍(lán)狐筆記的關(guān)注范圍,但未來它們能否成功只有時間才能告訴我們,也歡迎大家留言,說說自己心目中的全新區(qū)塊鏈物種。
關(guān)鍵詞:
責(zé)任編輯:Rex_07