從技術角度來分析 Solana 如何突破不可能三角

買賣虛擬貨幣

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 的創新之路走的很踏實,但它的腳步仍未停止。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读