簡介

隨著跨鏈橋、新一代測試框架和其他加密協議的迅速出現,如何有效地繪製區塊鏈基礎設施藍圖,仍然是用戶、開發人員和投資者的一個重磅問題。 "區塊鏈基礎設施"可以包括從底層網絡棧到共識模型/虛擬機中各種不同的產品和服務。在以後的文章中我們也將對構成L1/L2鏈的各種"核心"組件進行更深入的分析(敬請關注!)。在這篇文章中,我們探討的具體目標是:

  1. 提供區塊鏈基礎架構其他關鍵組件的廣泛概述。
  2. 將這些組件分解成更清晰、更容易理解的子部分。

基礎架構圖

我們將區塊鏈基礎設施的"生態系統"定義為旨在以下關鍵領域支持在L1和L2鏈發展的協議:

  • Layer-0基礎設施
    (1)去中心化雲服務(存儲、計算、索引)
    (2)節點基礎設施(RPC、質押/驗證人)
  • 中間層
    (1)數據可用性
    (2)通信/消息傳輸協議
  • 區塊鏈開發
    (1)安全和測試
    (2)開發者工具(開箱即用的工具、前/後端庫、語言/IDE)

一文搞懂「Web3基礎設施的關鍵部分」

Layer-0基礎設施

去中心化雲服務

雲服務對Web2的發展至關重要——隨著應用程序的計算量與數據存儲需求的增長,雲服務提供商以低經濟成本的方式快速提供數據和計算是至關重要的。而Web3應用程序在秉持區塊鏈的理念下對數據和計算也有著類似的需求,因此,雲計算服務的去中心化版本的協議應運而生。
去中心化雲服務有3個核心部分:
  • 存儲- 數據/文件被存儲在多實體運行的服務器上。由於數據是可複制的或跨多台服務器存在的,這些網絡也能夠實現高度的容錯。
  • 計算- 就像存儲一樣,計算也集中在Web2範式中。分佈式計算關注的是將計算分佈在多節點上,以實現更高的容錯性(如果一個或一組節點發生故障,網絡仍然可以在對性能干擾最小的情況下服務發起的請求)。
  • 索引- 在Web2世界中,數據已經存儲在由一個實體掌控並運營的一台或一組服務器上,查詢這些數據相對容易。由於區塊鏈節點是分佈式的,數據也可能是孤立地分散在不同的區域,並且經常處在不兼容的標準下。而索引協議聚集了這些數據,並提供了一個易於使用和標準化的API來訪問這些數據。

可提供存儲、計算和索引的兩個項目:Aleph和Akash網絡

在細分領域專業的項目:如專業索引的The Graph,專業存儲的Arweave/Filecoin。

節點基礎設施

  • 遠程過程調用( RPC 是各種類型軟件系統的核心功能。

    它們允許一個程序調用或訪問另一台計算機上的程序,這特別適用於區塊鏈中,因為區塊鏈必須處理來自不同區域與環境中運行的機器的大量傳入請求。像Alchemy、Syndica和Infura這些網絡協議就提供這種基礎設施作為服務,讓開發者專注於高水平的應用開發,而不是專注於涉及中繼或路由節點調用的底層機制。 Alchemy像許多RPC供應商一樣掌握並運營所有的節點,但對於加密貨幣社區的很多人來說,集中式RPC的危險是顯而易見的——它只要引入一個單點故障就可能會危及整個區塊鏈的有效性(即如果Alchemy發生故障,應用程序將無法檢索或訪問鏈上數據)。最近也有像Pocket能解決這種問題的去中心化RPC協議興起,但這種方法的有效性還有待大規模測試來檢驗。

  • 質押/驗證人——區塊鏈的安全性依賴於一組分佈式節點驗證鏈上的交易,但必須有人實際運行來參與共識的節點。

    在多數情況下,運行節點所需的時間、經濟成本與能耗是非常多的,導致許多人選擇退出以依靠其他人來承擔確保鏈上安全的責任;然而,這種行為也帶來了嚴重的問題--如果每個人都決定將安全推卸給他人,將會無人來驗證。而像P2P和Blockdaemon這樣的服務運行基礎設施並讓經驗不足或資金不充足的用戶通過集資參與共識。有些人認為這些質押供應商引入了不必要的中心化程度,但另一種情況可能更糟——如果沒有這些供應商,運行節點的門檻將對普通網絡參與者來說極高,反而可能會導致更高的中心化程度。

一文搞懂「Web3基礎設施的關鍵部分」

中間層

數據可用性

應用程序是數據的重度消費者。在Web2範式中,這些數據通常以中心化的方式直接來自用戶或第三方供應商(數據供應商因收集並出售數據給特定的公司和應用程序而直接獲得利益——例如亞馬遜、谷歌或其他機器學習數據供應商)。
DApp也是數據的重度消費者,但需要節點將這些數據提供給用戶或鏈上運行的應用程序。為了最大地減少信任問題,以分佈式的方式提供這些數據也是極其重要的。應用程序快速並高效地訪問高保真數據主要有兩種方式:
  • 預言機(例如Pyth和Chainlink)提供了對鏈下數據數據流的訪問通道,從而使加密網絡能夠以高可靠與分佈式的方式和傳統/過時系統以及其他外部信息對接,這包括高質量的金融數據(即資產價格)。這項服務對於將DeFi擴展到交易、借貸、體育博彩、保險等廣泛領域中是至關重要的。
  • 數據可用性層是專門從事交易排序和向其支持的鏈提供數據的鏈。通常情況下,它們為用戶提供高概率的確認的數據可用性證明,即所有區塊數據已在鏈上發布。數據可用性證明是保證Rollup排序器的可靠性和降低Rollup交易處理成本的關鍵。 Celestia的數據可用性層就是一個很好的例子。

通信與消息傳輸協議

隨著Layer-1數量增長及其生態系統的發展,對於管理跨鏈的可組合性和互操作性的需求也日益增長。跨鏈橋讓原本孤立的生態系統以有意義的方式進行互動——這類似於貿易路線幫助連接不同的地區以迎來一個知識共享的新時代。 Wormhole、Layer Zero和其他跨鏈橋方案支持通用的消息傳遞,讓所有類型的數據、信息和代幣在多個生態系統之間流通——應用程序甚至可以跨鏈來進行任意功能調用,使它們能夠在無需部署在其他地方的情況下進入其他社區、其他的協議。其他協議如Synpase和Celer僅限於資產或代幣的跨鏈。
鏈上信息傳輸仍然是區塊鏈基礎設施的一個關鍵組成部分。隨著DApp開發和零售需求的增長,協議的分佈式與用戶互動的能力將成為增長的關鍵驅動因素。以下是幾個鏈上信息傳輸可能適用的潛在領域。
  • 申請代幣的通知
  • 允許在錢包內置消息通信
  • 關於重要協議更新的公告/通知
  • 跟踪關鍵問題的通知(如DeFi應用的風險指標,安全漏洞)

幾個著名的開發鏈上通信協議的項目:Dialect、Ethereum Push Notification Service(EPNS)、XMTP

區塊鏈開發

安全與測試

區塊鏈的安全與測試相對來說是一個發展不足的新生事物,但不可否認的是,它對整個生態系統的成功至關重要。區塊鏈應用程序對安全風險特別敏感,由於通常它們直接保障資產的安全,設計或實施中的一點微小失誤往往會導致巨大的經濟損失。

一文搞懂「Web3基礎設施的關鍵部分」

7種主要的安全和測試方法:

  • 單元測試是大多數軟件系統的測試套件的核心部分,開發者編寫各種有用的單元測試框架來對軟件中最小可測試單元進行檢查和驗證。以太坊上一些流行的包括Waffle和Truffle,Solana鏈有Anchor測試框架。

  • 集成測試關注的是將各種軟件模塊作為一個群體進行測試,這種測試範式雖在區塊鏈之外被廣泛利用,但在區塊鏈開發中也能發揮價值,因為庫和高層驅動經常以各種方式與其他低層模塊相互作用(例如,一個類型化的庫與一組底層智能合約相互作用),所以測試這些模塊之間的數據和信息流是至關重要的。

  • 審計已經成為區塊鏈開發安全流程的核心部分。在發布智能合約供用戶使用之前,協議很大程度上依靠第三方代碼審計來檢查和驗證每一行代碼來確保最高程度的安全。 Trail of Bits、Open Zeppelin和Quantstamp是合約代碼審計中幾個值得信賴的團隊(審計服務市場需求很大以至於等待時間往往長達幾個月)。

  • 形式化驗證是關於檢查一個程序或軟件組件是否滿足某組屬性。通常情況下,有人會寫一份產品規範來詳細闡述程序應該如何運行,形式化驗證框架會把該規範形成一組約束條件後進行處理和檢查。 Certora算是一個領軍項目,其利用形式化驗證以及運行時驗證來加強智能合約的安全性。

  • 模擬——長期以來,量化交易公司一直使用基於Agent的仿真係統來回測算法交易策略,鑑於區塊鏈測試的高成本,模擬則提供了一種測試各種假設和輸入的方法。 Chaos Labs和Guantlet就是利用基於場景的模擬來保障區塊鏈協議平台的典型範例。

  • 漏洞懸賞——漏洞懸賞有助於利用區塊鏈的去中心化理念來解決大規模的安全問題。 Token代幣獎勵激勵社區成員和黑客來報告和修復關鍵問題。因此,懸賞計劃在把"灰帽子"變成"白帽子"方面發揮了獨特的作用(即把參與黑客攻擊以獲取資金的人變成解決漏洞和保障協議安全的人)。事實上,Wormhole現在在Immunefi上有一個價值高達1000萬美元的bug賞金(有史以來最大的軟件漏洞賞金之一),我們也鼓勵所有人為網絡安全事業貢獻一份力!

  • 測試網(testnet) ——測試網提供了與主網具有相同的運行環境和相似的工作原理的demo,允許開發者在開發環境中測試和調試參數。很多測試網絡使用PoA共識機製或其他共識機制能以較少的驗證人來優化交易速度,因為測試網上的貨幣也沒有實際價值,所以測試網沒有任何程序能讓用戶通過挖礦獲得代幣,而是通過水龍頭獲得。同時也有許多測試網建立的目的是模擬主網L1的行為(例如以太坊的Rinkeby、Kovan、Ropsten測試網)。

以上每種方案都有自己的優點和缺點,當然它們之間並不是相互排斥的,而是通常針對項目開發的不同階段來使用相應的測試方案。

第一階段:單元測試是在構建智能合約時進行。

第二階段:當建立了更高層次的抽像功能時,集成測試對於測試不同模塊之間的相互作用就變得尤為重要。

第三階段:代碼審計一般是在臨近測試網/主網發布或大型功能發佈時進行。

第四階段:形式化驗證通常與代碼審計相匹配,並作為額外的安全保證。一旦程序上鍊運行,之後的流程就可以實現自動化,從而輕易讓持續集成或持續部署工具與之配對。

第五階段:應用程序在測試網上運行時,需檢查吞吐量、流量和其他擴展參數等。

第六階段:在主網部署後啟動漏洞懸賞策略,以利用社區資源來發現和修復問題。

測試方案匯總

一文搞懂「Web3基礎設施的關鍵部分」

開發者工具

任何技術或生態系統的發展都依賴於其開發者的成功,尤其在區塊鏈中。
我們將開發者工具分為3個主要類別:

開箱即用的工具

SDK (用於開發新L1層公鏈)有助於抽像出創建和部署底層共識核心的過程。預搭建模塊允許在保證靈活性和定制化的同時提升了開發速度和標準化。 Cosmos SDK讓Cosmos生態系統內的新PoS公鏈得以快速發展,Binance Chain和Terra就是基於Cosmos鏈的優秀範例,堪稱行業楷模。
智能合約開發——市面上有許多工具可以幫助開發者快速創建智能合約。例如,Truffle Boxes提供簡單易用的Solidity合約實例(投票、MetaCoin等),社區也可以為其資源庫進行拓展補充。

前端/後端工具

現在已經有很多工具讓應用程序開髮變得便捷容易,同時也能將應用程序部署到鏈上(ethers.js,web3.js等)。

升級和合約交互(例如OpenZeppelin SDK) ——針對不同的生態系統專門有各種不同的工具(例如Solana合約的Anchor IDL,Parity合約的Ink)來處理RPC請求、發布IDL和生成客戶端。

語言和IDE

區塊鏈的編程模型通常與傳統的軟件系統有很大的差異,用於區塊鏈開發的編程語言則是為了促進區塊鏈編程模式的發展。 Solidity和Vyper被廣泛使用在兼容EVM的鏈,而其他語言例如Rust則被廣泛用於Solana和Terra等鏈上。

總結

“區塊鏈基礎設施”可能是一個過度定義、難以理解的術語——它往往是涵蓋從智能合約審計到跨鏈橋的所有內容的一系列產品和服務

關於加密貨幣基礎設施的討論要么過於寬泛或容易混淆,要么對於普通讀者來說過於專業,所以我們希望這篇文章為那些剛剛進入加密領域的小白和那些尋求更專業解讀的人之間取得了適當的平衡。
當然,加密領域正在迅速發展,本文提到的協議甚至可能在未來兩三個月後不再構成適宜的解讀,但即便如此,我們也相信本文的主要目標(即把“基礎設施”此概念解釋得更容易理解和消化)在未來將具有更大的意義,我們也一定會隨著區塊鏈基礎設施格局的發展而不斷更新和補充清晰準確的看法。
原文https://jumpcrypto.com/peeking-under-the-hood/
by Rahul Maganti(Jump Crypto 副總裁)

內容翻譯:小橙子 校對:medici 排版:秋老師

一文搞懂「Web3基礎設施的關鍵部分」