Solana是一個比較創新的公有鏈,具有一些之前從未有過的功能。它的高吞吐量和低費用的性能正在催生更多的鏈上應用程序。直到今天,區塊鏈性能的顯著提高往往是以減弱去中心化為代價的。然而沒有去中心化的區塊鏈只是一個低效的資料庫。這並不是Solana所走的道路。
在本文中,白澤將帶大家了解 Solana如何實現可擴展性以及其區塊鏈架構和生態系統的特性。
可擴展性三難困境(不可能三角)
區塊鏈的可擴展性三難(常稱為" 不可能三角 ")是由維塔利克·巴特林提出來的,它展示出了可擴展性、安全性和去中心化程度這三者之間的關係。
舉個例子來理解,假設有三個人,拿著三杯酒和一瓶酒。每一滴酒只能進入一個玻璃杯。如果一個人得到更多,另一個人必須得到更少。換句話說,這是一種零和的情況。用數學可以表示為 x+y+z=1。任何一個變數的增加必然意味著另外兩個變數的減少。
如果只是更改區塊鏈的參數(例如區塊大小),那麼" 不可能三角 "是成立的。例如,幣安智能鏈的開發所做的,由於驗證器較少,增加了吞吐量但同時降低了去中心化。
但這並沒有考慮到技術創新。回到上文的例子中,當你創新時,你會得到一瓶更大的酒,所以至少有一個杯子會更滿,而不會減少其他杯子里的酒量。共識演算法、區塊傳播、智能合約運行時間等方面都可以得到改進,使區塊鏈可以更高效。權衡可能仍然存在,即增加一個變數仍然可以減少其他變數,但速度較慢。" 創新 " 為數學方程添加了一個變數:x+y+z=1+i。
這意味著區塊鏈有可能實現更安全、高效和擴展:通過增加創新,而不是犧牲安全性或去中心化。
創建區塊鏈的目標不應該是最大化去中心化,而是要實現足夠的去中心化。具有最大限度去中心化的區塊鏈將毫無用處;每個性能指標都將最大限度地降級,以換取權力下放的任何增量改進。如果去中心化達到了足夠的程度——即區塊鏈能夠承受任何可行的攻擊——沒有理由在這一點之後進一步去中心化,性能應該被優先考慮。
比特幣社區認為通過工作量證明(PoW)來消耗物理資源是必要的。以太坊社區認為權益證明(PoS)是最佳的,用戶必須能夠在普通電腦上驗證區塊鏈。不同的是,Solana 社區關注效率,他們認為每個用戶並不一定都需要自己驗證區塊鏈。多少個驗證節點才足夠?網路內的財富分配如何?有很多分歧點。然而,Solana 非常年輕,與比特幣和以太坊等其他主要區塊鏈一樣,去中心化會隨著時間的推移而改進。
現在讓我們來看看 Solana 帶來的創新,這些創新可以在不影響安全性或去中心化的情況下實現高性能。
歷史證明:達成共識之前的時鐘
歷史證明(PoH) 是一種創新的機制,它使驗證者能夠通過使用可驗證的延遲功能來使通用時鐘達成一致。雖然其他區塊鏈需要驗證者之間的通信以同意時間已經過去,但 Solana 能夠繞過這一點,因此可以提前安排眼睜睜選擇並優化區塊時間、區塊傳播、吞吐量和存儲。
Tower BFT:PBFT 的 PoH 優化版本
Tower BFT是一種類似 PBFT 的共識演算法,專門設計用於利用 PoH 提供的同步時鐘。與 PBFT 不同,Tower BFT 更喜歡活躍而不是一致性。
Turbine(渦輪)區塊廣播
Turbine 是 Solana 的區塊廣播技術。當一個區塊被流式傳輸時,它被分解成很多個小數據包散布到大量隨機節點。為了確保扇出機制能夠抵抗故障,驗證器使用 Reed-Solomon 對數據進行編碼,提供一定程度的容錯能力。
Gulf Stream
Gulf Stream 將事務緩存和轉發推到網路邊緣。由於每個驗證器都知道即將到來的領導者的順序,因此客戶端和驗證器會提前將事務轉發給預期領導者。這允許驗證器可以提前執行事務,減少確認時間,更快地切換領導者,並減少來自未確認交易池池的驗證器的內存壓力。
Sealevel (海平面)
與大多數其他單線程計算的區塊鏈不同,Solana 通過支持單個分片中的並行事務執行來利用其高性能網路。這是通過Sealevel 實現的,這是一種超並行化事務處理引擎,旨在跨 GPU 和 SSD 進行水平擴展。事務預先指定它們在執行時將讀取和寫入的狀態,以便運行時能夠找到發生在塊中的所有非重疊狀態轉換函數並並行執行它們。
Pipeline(流水線)
Solana 上的交易驗證使用一種被稱為Pipeline(流水線)的優化技術來快速驗證大量區塊,同時在網路上複製它們。
Cloudbreak
Cloudbreak是一種狀態架構,針對分布在 RAID 0 SSD 配置中的讀取和寫入進行了優化。每個額外的磁碟都會增加鏈上程序可用的存儲容量,並增加程序可以執行的並發讀取和寫入的數量。一旦驗證者觀察到交易,他們就可以開始從磁碟預先讀取所有帳戶並準備在運行時執行。
Archivers(存檔管理員)
在 Solana 上,數據存儲從驗證器改變到稱為Archivers(存檔管理員)的節點網路。驗證器的歷史狀態被分成許多部分,經過擦除編碼,並由存檔管理員進行存儲。每隔一段時間,系統會要求存檔管理員證明證明他們正在存儲相應的的數據。
使用流行的編程語言Rust
Solana 上的智能合約是用 Rust 編寫的,Rust 是一種較為流行的編程語言,這使得 Solana 的開發者社區迅速擴展。這種編程語言融合了 C++ 等語言的性能和效率,添加了更簡便的語法,並簡化了開發過程。
與以太坊的智能合約編程語言 Solidity 進行比較,雖然以太坊在區塊鏈行業中擁有最多的開發者,但作為一種歷史並不久的語言,Solidity 落後於其他的開發環境,例如 Web 。其次是 Solidity 的代碼調試具有挑戰性,支持它的工具很少,即便是經驗豐富的 Solidity 開發人員也很難找到。
反觀 Rust ,雖然也是一種相對年輕的編程語言,但支持它的工具要大大多於 Solidity,更不用說該語言本身具有許多功能,使其編寫起來更簡單且更易於正確的使用。此外,Rust 在區塊鏈行業之外也被廣泛使用,並且擁有一個龐大的生態系統,日益劇增的開發用戶不斷地完善 Rust 的新功能。
最重要的是,從長遠來看,使用更強大的語言可以提高開發人員的生產效率。雖然目前 Rust 在區塊鏈行業內獲得廣泛運用可能需要一些時間,但是通過 Solana 的開發者激勵計劃,待 Rust 語言在區塊鏈行業佔有一席之地後,在 Solana 上構建 dApp 就會更明顯的優勢。
可組合性
可組合性——不同協議之間無縫銜接的能力,使各種創新之間能夠組合。因為協議可以與其他人已經構建好的協議相集成,而不必自己從頭開始構建原語。
L2 和分片是目前以太坊尋求解決可擴展性問題的兩種方式。在提高吞吐量和交易速度的同時,但是這些好處是以可組合性為代價的。
通過構建獨特的全局狀態和固有的可擴展性,Solana 維持了可組合性並避免了依賴 L2 或分片的需要。這使開發人員可以避免決定與哪個 L2 集成、在該 L2 上部署合約的工作問題,而是專註於構建新功能和與其他協議集成之類的重要事情。
清晰的擴展途徑
以太坊擴容的最終形式尚未確定。無論哪種擴展解決方案被採用,都會面臨一系列不確定因素和問題:向 L2 的過渡將如何進行?資金將如何在各個 L2 之間流動?這對開發者、錢包、流動性提供者、穩定幣入口和用戶有什麼影響?
以太坊開發人員必須重新考慮他們的擴展方法,每次以太坊上的擁堵使得使用他們的協議變得望而卻步。例如,重寫代碼以使協議的交易費用更便宜,這種情況並不少見,即使以降低安全性為代價也是如此。此外,隨著 L2 的採用和分片的實施,開發者的工具必須更新,以處理新的數據結構,這使得開發變得越來越具有挑戰性。當然,這是問題都是可以克服的,但它們會減慢開發速度,並且由於開發難度的增加,對開發者不太友好。
而 Solana 有一個相對明確的無限擴展方案。與以太坊對比,最關鍵的區別是 Solana 網路的計算能力直接受益於硬體和帶寬的改進,因為它生來就支持分片並行,容量預計每兩年翻一番。這些可擴展性改進在基礎層生效,無需調整 L2 或分片的複雜性,不需要開發人員更改任何代碼。隨著時間的推移,在 Solana 上執行代碼的成本會越來越低。
交換協議
交換協議是區塊鏈的基礎設施。區塊鏈支持發送和接收代幣,但是一旦有多種代幣時(ERC20 代幣、SPL 代幣等),用戶將需要在特定的交易所內交易代幣。
目前,大多數區塊鏈都有許多 DEX (去中心化的交易所),它們有獨立的流動性資金池。而各個聚合器試圖通過將交易訂單匹配到提供最優惠價格的 DEX 來便利用戶。雖然這對用戶來說絕對是有利的,但這樣的方式不如將所有流動性集中在一個地方,這將顯著減少滑點。
Solana 上的去中心化交易所 Serum 便是這樣做的。Serum 是一個中央限價訂單簿 (CLOB),可以在未經許可的情況下對任何代幣進行出價和詢價。任何項目都可以自由使用他們的交換,可以把它看成是樓房的地基,開發人員不必創建自己的自定義交換基礎設施。
擁有訂單簿意味著 Serum 可以啟用中心化交易所常用的一些訂單類型,除市價訂單以外,例如限價訂單、IOC(立刻成交否則取消訂單)和僅限提交限價單等。
CLOB 沒有建立在任何其他區塊鏈上是有原因的,如果沒有 Solana 的高吞吐量和低交易成本,這是不能實現的。為了獲得大量流動性,做市商通常需要能夠根據不斷變化的市場快速、頻繁地調整利差。做市商轉移訂單的頻率越低,每次調整的成本越高,他們的利差就必須越大,以彌補他們承擔的風險。因此,Solana 的高性能直接帶來了更多的流動性。
使用 Serum,流動性集中在一個地方,而不是分散在各個 DEX 中。即使 DEX 擁有自己的 AMM 流動性池,這種流動性也可用於在 Serum 下訂單。Solana 上大部分的 DEX 都使他們自己的激勵礦池與 Serum 整合,通過激勵礦池進行交易的用戶也可以訪問 DEX 自己的流動性池,以提供更好的價格為準。
延遲和吞吐量
延遲和吞吐量是齊頭並進的。例如,你每分鐘可能有 100 個區塊,但如果每個區塊只能容納 1 個事務,那麼你的吞吐量並不是很高。相反,假設你每秒可以處理一百萬個事務,但你每小時只能生成一次塊。每個區塊中都會有大量交易,但每小時更新一次區塊鏈狀態的能力將限制可以構建的應用程序的範圍。
Solana 目前支持每秒 65,000 筆交易的峰值容量和 400 毫秒的區塊時間。二者都是在區塊鏈行業內領先的數值,它們只會隨著時間的推移而更加完善。
Solana 的高速率對 DeFi 的一個主要影響是清算。
Solana 的較低延遲和由此產生的更快清算意味著可以安全地使用較低的抵押比率,從而提高資本效率。如果與較慢的區塊鏈上的 DeFi 項目使用相同的抵押比率,那麼相比之下, Solana 上的項目不太容易發生級聯清算。
Solana 的高速度對於遊戲等應用也是有很大的影響,在這些應用中,看到其他人的反應需要以秒為單位,這是保持玩家參與所需的最低速度。一旦鏈上人工只能成為可能,我們一定會看到大量新的、曾經不能想像的應用。
低費用
Solana 的交易費用大約比以太坊的交易費用便宜 15,000 到 400,000 倍。
雖然巨鯨可能不在乎高額的交易費用,但更低費用使巨鯨和散戶都受益的一個例子是 DeFi 協議。最大化利潤的最佳複利頻率與交易費用成反比;交易費用越低,最佳複利頻率越高。這種關係如下圖所示。
同樣,較低的費用使用戶能夠更有效地利用借貸協議。用戶可以通過存入他們想要獲得槓桿的資產(例如 SOL)作為抵押,借入另一種資產(例如 USDC)並使用 USDC 購買更多 SOL 來建立資產的槓桿頭寸。可以重複此過程以增加槓桿作用。這個過程需要許多單獨的交易才能完成,因此較低的費用可以實現更大的槓桿作用,或者相同數量的槓桿作用但更便宜。
當然,如果費用足夠低,那麼肯定會有很多新的用途應運而生。例如,流動支付,它代表一種資金多次釋放。它將為每月支付一次工資的傳統工資系統提供替代方案,或創建具有自定義釋放率的合約。
總結
Solana 網路採用了PoH時鐘機制,還優化了共識機制、數據廣播、並行交易處理、用單獨節點網路進行狀態數據存儲等,其目就是為了在保證一定程度去中心化和安全的情況下,實現高吞吐量、低延遲和低費用,從而可以滿足大部分場景的用戶需求。
作於一個基於創新的公有鏈,Solana 的創新之路走的很踏實,但它的腳步仍未停止。
冷萃財經原創,作者:awing,轉載請註明出處:https://www.lccjd.top/2021/07/12/%e4%bb%8e%e6%8a%80%e6%9c%af%e8%a7%92%e5%ba%a6%e6%9d%a5%e5%88%86%e6%9e%90-solana-%e6%98%af%e5%a6%82%e4%bd%95%e7%aa%81%e7%a0%b4%e4%b8%8d%e5%8f%af%e8%83%bd%e4%b8%89%e8%a7%92%ef%bc%9f/?variant=zh-tw
文章評論