眾所周知,以太坊的發展面臨著新困境。以太坊每天支持大量的經濟活動、結算數十億美元的交易,在蓬勃發展的DeFi 和NFT 領域中運行成千上萬的DApp。但是,以太坊有限的空間資源已然無法承受過多的應用,也無法接受大體量用戶的蜂擁而至。當網絡擁塞時,交易變得更加昂貴且延遲更多,給用戶帶來更大的經濟負擔。
鑑於此,相關團隊為了解決以太坊擴容難題,提出了諸多技術解決方案,其中包括分片(Sharding)。分片為網絡劃分多個軌道,以水平擴展的方式並行處理交易,在多個服務器之間分佈計算和存儲容量,從而使總體吞吐量更高。分片主打的“並非每個人都必須運行每個碎片”的技術理念,成為輕客戶端誕生的關鍵。
輕客戶端在以太坊分片中扮演重要角色,使驗證者能夠快速驗證和同步不同的分片,成功化解了不少DApp 運行過程中出現的阻滯難題。同樣面臨高速發展帶來擴容有限、用戶載量大等困境的波卡、NEO 等公鏈,也紛紛開啟了輕客戶端的實踐,為更好地佈局應用生態版圖提供更為暢達自如的環境。
Marty McFly 曾言:“未來,輕客戶端會遍布各地。”這種輕量化、用戶友好的應用程序目前已有諸多成功範例湧現。那麼究竟什麼是輕客戶端?相較傳統的應用端口有何技術上的優化與精進?面向未來,輕客戶端的大規模鋪開又需要克服怎樣的挑戰?本篇文章將聚焦上述問題,帶你洞悉輕客戶端的發展與未來。
什麼是輕客戶端?輕鬆驗證,快速響應
在我們了解輕客戶端之前,首先需要從客戶端的概念開始說起。計算機科學中的客戶端是連接到服務器的硬件或軟件的一部分,如Internet 瀏覽器是一個連接到網站以請求其內容的客戶端。在區塊鏈世界中,客戶端是以點對點的方式連接到其他客戶端的軟件,所有客戶端相互通信且形成了一個網絡,每個客戶端都是一個節點。
以以太坊為例,過去只有一種類型的節點(又稱:全節點)負責驗證和轉播網絡上的交易和區塊。囿於互聯網和區塊鏈的運行特點,每個全節點需要下載並驗證每個區塊,對於每一筆交易也需要經過全流程的核驗和把關。那麼隨著用戶體量增大、服務型應用增多,這種全節點把控會帶來上文提及的費用高昂、查驗緩慢等難題,阻礙了以太坊的長遠發展。
在此情景之下,輕客戶端的理念逐漸興起。輕客戶端是區塊鏈生態系統中的關鍵要素,幫助用戶以安全和去中心化的方式訪問區塊鏈並與之交互,而無需讀寫區塊鏈上的大量信息。輕客戶端被允許以最小信任的方式與全節點實現交互,可以在事先不知情的情況下證明信息的真實性。輕客戶端的基本功能是:每當有區塊出現在網絡便進行下載,向客戶端發送特定狀態的默克爾證明(Merkle proofs)請求。其使用分佈式哈希表來追踪前綴節點,而不是使用本地存儲,以一種“雲存儲、雲驗證”的方式直接獲取用戶個體的信息驗證材料,促使交易、娛樂等各項活動更快開展。
整體而言,輕客戶端解決了可用性和採用技術時的主要障礙。作為Web3 基礎設施組件,輕客戶端允許以比運行完整節點更少的資源方式與區塊鏈進行交互,並且可嵌入桌面、Web 和移動應用程序。最重要的是,它們保持不信任,直接從對等節點同步區塊頭。輕客戶端通過向單個全節點發出請求、同步區塊鏈的區塊頭來驗證全節點提供的特定響應來工作,真正做到了“最多跑一次”。
使用輕客戶端的成功案例
目前,無論是以太坊還是波卡,各大公鏈都開始積極引入輕客戶端的技術理念,並不斷在鏈上做出輕客戶端的應用設計嘗試,竭力覆蓋各類DApp 和基礎設施,為開發者和用戶提供全新的操作體驗。
Fluffy
Fluffy 是一種以太坊輕客戶端,是為以太坊2.0 客戶端Nimbus 開發的一種操作模式。一個輕客戶端友好的網絡,必須設計只需付出少量存儲空間、少許工作量的節點來參與網絡並作出貢獻,而不是要求每個節點都必須承擔很高額的負載。 Fluffy 就是秉持這樣運行理念的技術客戶端,它將使nimbus-eth1 客戶端可以作為網絡中的一個輕客戶端節點來運行,通過開發Portal Wire 協議成功實現了與其它客戶端的握手,以“橋節點”為門戶網絡輸入狀態數據,輕鬆實現雲端數據的快捷傳輸。此外,Fluffy 將支持以太坊JSON-PRC API 的一個子集,所以像錢包這類設施可以直接集成該類客戶端。
NEO
NEO 技術社區生態中,有一個可實現與NEO 區塊鏈交互的輕客戶端名為Neo-Swift,主要用Swift-4 語言編寫運作。 Neo-Swift 項目的創建主要基於以下幾個原因: 1、開發者想要開發分佈式iOS 應用,覆蓋範圍廣;2、建立開發者友好社區的重要方法就是創建便於非區塊鏈開發者使用的SDK;3、不少開發者喜歡Swift 且移動設備的開發與部署日益重要。據悉,Neo-Swift 能夠高效驗證用戶在鏈上的交易歷史和賬戶狀態,並為應用交互提供模擬動態框架,為NEO 生態技術社區的升級鍛造提供了全新思路。
Substrate Connect
Substrate Connect 是基於瀏覽器的Substrate 鏈上輕客戶端,已成為Substrate 技術堆棧的最新成員。這個備受期待的基礎設施組件為開發人員和最終用戶提供了一種更為簡單、快速的應用方式,以完全去中心化、無需信任的方式連接到Substrate 鏈,賦予更多DApp 服務以及DApp 開發人員以良好的應用體驗感。 Substrate Connect 是一個Javascript 庫,它提供了一個功能齊全且附帶擴展途經的輕客戶端,取代了通過RPC 節點連接到Substrate 鏈的傳統流程,DApp 開發人員不再需要經歷運行本地完整節點的繁瑣步驟,直接可以在他們的DApp 中輕鬆訪問輕客戶端集成。
Helios
Helios 是由知名風投機構a16z Crypto 推出的以太坊輕客戶端。 Helios 由一個執行層和一個共識層組成,與大多數客戶端不同,其將兩個層緊密耦合,因此用戶只需安裝和運行一個軟件即可使用Helios;此外,Helios 基於Rust 語言進行編寫,在兩秒鐘內同步、不使用存儲,並提供對以太坊無需信任的訪問功能,其使用途徑與全節點基本相同。值得一提的是,Helios 將數據從不受信任的集中式RPC 提供程序轉換為可驗證安全的本地RPC ,通過使用先前已知信標鏈區塊哈希和不受信任的RPC 進行連接和工作,在不運行完整節點的情況下驗證其真實性。由於Helios 非常輕巧,用戶可以從任何設備(包括手機和瀏覽器擴展)訪問安全鏈數據,真正滿足了輕客戶端的便捷使用需求。
面向未來:輕客戶端的破困之道
輕客戶端的應用已日漸鋪開,但其中夾雜的運行弊端也不容忽視。例如輕客戶端不直接鏈入網絡服務,無法驗證除卻客戶端以外的其他所需信息,也不能直接向其他對等節點傳輸數據。而當下公鏈生態中不斷強調“跨鏈”技術進行數據傳遞和高效處理,開發者可以藉鑑跨鏈技術的經驗嘗試進行輕客戶端的數據搭橋,這對輕客戶端的技術升級和功能優化來說是至關重要的方向。
另外,輕客戶端還缺乏一種更好的用戶激勵方式,眾所周知激勵是生態系統穩定的關鍵。如何允許用戶以去中心化的和安全的方式訪問區塊鏈,鼓勵用戶和機構運行全節點、服務輕節點、懲罰服務壞數據的惡意全節點?或許可以採取類似“DAO”治理的理念體系進行輕客戶端生態的運營管理,形成“開發者——輕客戶端——用戶”之間的良性循環體系。
事實上,諸如優化輕客戶端運作環境、革新輕客戶端使用功能的技術方案或許還有很多。未來還需各位開發者不斷開拓創新,打造面向Web3 的卓越輕客戶端。
參考資料: