原作者:Rahul Maganti/Jump Crypto合夥人,Rahul Maganti/Jump Crypto副總裁
原標題:《Peeking Under the Hood: Key Pillars of Crypto Infrastructure》
編譯:澤禕,麟奇,鏈捕手
簡介
隨著跨鏈橋、新框架和其他核心加密協議的迅速出現,有效地規劃區塊鏈基礎設施仍然是用戶、開發人員和投資者的關鍵挑戰。 “區塊鏈基礎設施”一詞可以涵蓋各種不同的產品和服務,從底層網絡堆棧到共識模型或虛擬機。我們保留對構成L1/L2 鏈的各種“核心”組件進行更深入的分析,以供以後發布(敬請關注!)。在這篇文章中,我們的具體目標是:
- 提供區塊鏈基礎設施關鍵組件的廣泛概述。
- 將這些組件分解成清晰、易消化的子部分。
- 基礎設施地圖
我們將圍繞區塊鏈基礎設施的生態系統定義為旨在支持以下關鍵領域的L1 和L2 開發的協議:
- 0層基礎設施:(1) 去中心化雲服務(存儲、計算、索引);(2) 節點基礎設施(RPC、質押/ 驗證器)
- 中間件:(1) 數據可用性;(2) 通信/消息傳輸協議
- 區塊鏈開發:(1) 安全和測試;(2) 開發者工具(開箱即用工具、前端/後端庫、語言/IDE)。
第0層基礎設施
去中心化雲服務
雲服務對Web2的發展至關重要——隨著應用程序的計算和數據需求的增長,專門以經濟高效的方式快速提供這些數據和計算的服務提供商至關重要。 Web3應用程序對數據和計算有類似的需求,但希望忠於區塊鏈的精神。因此,旨在創建這些Web2服務的去中心化版本的協議已經出現了。去中心化的云有3個核心部分:
- 存儲- 數據/文件被存儲在由許多實體運行的服務器上。由於數據在多台機器上被複製或條帶化,這些網絡能夠實現高度的容錯。
- 計算–就像存儲一樣,計算在Web2範式中是集中的。去中心化計算關注的是將這種計算分佈在許多節點上,以實現更高的容錯性(如果一個或一組節點發生故障,網絡仍然可以為請求提供服務,對性能的干擾最小)。
- 索引–在Web2世界中,數據已經存儲在一個實體擁有和運營的一台或一組服務器上,查詢這些數據相對容易。由於區塊鏈節點是分佈式的,數據可能是孤立的,分散在不同的區域,而且往往在不兼容的標準下。索引協議聚集了這些數據,並提供了一個易於使用和標準化的API來訪問這些數據。
有幾個項目提供了存儲、計算和索引(Aleph和Akash網絡),而其他項目則更加專業(例如,The Graph用於索引,Arweave / Filecoin用於存儲)。
節點基礎設施
遠程過程調用(RPC)是許多類型軟件系統功能的核心。它們允許一個程序調用或訪問另一台計算機上的程序。這對於區塊鏈尤其有用,區塊鏈必須為來自不同區域和環境中運行的各種機器的大量傳入請求提供服務。 Alchemy、Syndica和Infura等協議將這種基礎設施作為服務提供,使建設者能夠專注於高級應用程序開發,而不是將呼叫傳輸和路由到節點所涉及的底層機制。
與許多RPC提供商一樣,Alchemy擁有並運營所有節點。對於加密社區的許多人來說,集中化RPC的危險是顯而易見的——它引入了單點故障,可能會危及區塊鏈的活躍性(即,如果Alchemy失敗,應用程序將無法檢索或訪問區塊鏈上的數據)。最近,像Pocket這樣的去中心化RPC協議出現了增長,以解決這些問題,但這種方法的有效性仍有待大規模測試。
質押/驗證器——區塊鏈的安全性依賴於一組分佈式節點來驗證鏈上的交易,但必須有人實際運行參與共識的節點。在許多情況下,運行節點所需的時間、成本和能源都令人望而卻步,導致許多節點選擇退出,轉而依賴其他節點來承擔確保鏈安全的責任。
然而,這種態度帶來了嚴重的問題——如果每個人都決定將安全性轉移給其他人,就不會有人驗證。 P2P和Blockdaemon等服務運行基礎設施,允許不太成熟或資本不充足的用戶參與共識,通常是通過集中資本。一些人認為,這些質押提供商引入了不必要的集中度,但替代方案可能更糟——在沒有此類提供商的情況下,對於普通網絡參與者來說,運行節點的進入壁壘太高,可能會導致更高的集中度。
中間件
數據可用性
應用程序大量消耗數據。在Web2範例中,這些數據通常以集中的方式直接來自用戶或第三方提供商(數據提供商因將數據聚合併銷售給特定的公司和應用程序而直接獲得報酬——比如亞馬遜、谷歌或其他機器學習數據提供商)。
DApp也是數據的大量消費者,但需要驗證器使這些數據可供鏈上運行的用戶或應用程序使用。為了盡量減少信任假設,以去中心化的方式提供這些數據非常重要。應用程序可以通過兩種主要方式快速高效地訪問高保真數據:
Pyth和Chainlink等數據預言器提供了對數據流的訪問,從而允許加密網絡以可靠和去中心化的方式與傳統系統以及其他外部信息進行接入。這包括高質量的財務數據(即資產價格)。這項服務對於將DeFi擴展到交易、借貸、體育博彩、保險和許多其他領域的廣泛用例至關重要。
數據可用性層是專門對事務進行排序並使數據可供其支持的鏈使用的鏈。通常,通過使用區塊的一小部分,他們會生成證據,為客戶提供所有區塊數據已在鏈上發布的高概率確認。數據可用性證明是保證Rollup序列器可靠性和降低Rollup事務處理成本的關鍵。 Celestia就是這一層的很好的例子。
通信和消息傳遞
隨著Layer1及其生態系統數量的增長,對跨鏈管理可組合性和互操作性的需求更加迫切。跨鏈橋使原本孤立的生態系統能夠以有意義的方式相互作用,這類似於新的貿易路線幫助連接原本不同的地區,開創了知識共享的新時代! Wormhole、Layer Zero與其他跨鏈橋解決方案支持通用消息傳遞,允許所有類型的數據和信息(包括逮捕)跨多個生態系統移動,應用程序甚至可以跨鏈進行任意函數調用,使它們能夠進入其他社區,而不必部署到其他地方。 Synpase、CELER等其它協議僅限於資產或代幣的跨鏈轉移。
鏈上消息傳遞仍然是區塊鏈基礎設施的關鍵組件。隨著DApp開發和零售需求的增長,協議以有意義但去中心化的方式與其用戶交互的能力將成為增長的關鍵驅動力。以下是鏈上消息傳遞可能有用的幾個潛在領域:
- 代幣領取通知。
- 允許在錢包中內置通信消息傳遞。
- 關於協議重要更新的通知。
- 跟踪關鍵問題的通知(例如,DeFi應用程序的風險指標、安全漏洞)。
一些值得注意的開發鏈上通信協議的項目包括Dialect、以太推送通知服務(EPNS)和XMTP。
區塊鏈開發
安全與測試
加密技術的安全性和測試相對來說還處於初級不發達階段,但不可否認的是,它對整個生態系統的成功至關重要。加密應用程序對安全風險尤其敏感,因為它們通常直接關係著用戶資產。其設計或實施中的小錯誤往往會造成嚴重的經濟後果。
有7種主要的安全和測試方法:
- 單元測試是大多數軟件系統測試套件的核心部分。開發人員編寫測試來檢查程序中小的原子部分的行為。有各種各樣實用的單元測試框架。例如以太坊上的Waffle和Truffle,Solana的標準是Anchor測試框架。
- 集成測試將各種軟件模塊作為一個組進行測試。因為庫和高級驅動通常會以各種方式相互交互,以及其他低級模塊之間的交互(例如,一個typescript庫與一組底層智能合約交互)。測試這些模塊之間的數據和信息流是至關重要的。
- 審計已成為區塊鏈安全流程開發的核心部分。在向公眾發布智能合約之前,協議通常會利用第三方代碼審計員來檢查和驗證每一行代碼。我們非常重視審核員來確保最高程度的安全。 Trail of Bits、Open Zeppelin和Quantstamp是區塊鏈審計領域中值得信賴的幾個機構。
- 形式化驗證涉及檢查程序或軟件組件是否滿足一組屬性。通常,有人會編寫一份正式的規範,詳細指出程序的行為方式。形式化驗證框架將把這個規範轉化為一組約束,然後對其進行解決和檢查。來增強智能合約安全性的領先項目之一。 Certora是一個領先的項目,它使用Runtime Verification來實施形式化驗證以支持智能合約的安全性。
- 模擬—長期以來,定量交易公司一直使用基於代理的模擬來對算法交易策略進行回測。鑑於在區塊鏈中進行實驗的高成本,模擬方法提供了一種參數化協議和測試各種假設的方式。其中,Chaos Labs和Guantlet是兩個利用基於場景的模擬,來保護區塊鍊和協議的優質平台。
- 漏洞賞金有助於利用加密領域的去中心化精神來解決大規模的安全挑戰。高額獎金激勵社區成員和黑客報告和解決關鍵漏洞問題。因此,賞金計劃在將“灰帽子”變成“白帽子”方面發揮了獨特的作用。例如Wormhole創建的賞金平台Immunefi提供了價值高達1000萬美元的漏洞賞金!我們鼓勵任何人參與其中!
- 測試網絡提供類似主網網絡的展現形式,支持開發人員在研發環境中對其測試和調試參數。許多測試網絡使用Proof-of-Authority/其他共識機制和少量驗證者進行速度優化,並且測試網絡上的代幣沒有實際價值。因此,除了通過水龍頭外,用戶沒有其他方式獲取代幣。有許多測試網是為了模仿主網L1上的一些項目而構建的(如以太坊的Rinkeby、Kovan、Ropsten)。
每種方法都有自己的優點和缺點,當然也不是相互排斥的,不同的測試風格通常用於項目開發的不同階段:
- 第1 階段:在構建合約時編寫單元測試。
- 第2 階段:一旦構建了更高級別的程序抽象,集成測試對於測試模塊之間的交互就會非常重要。
- 第3 階段:代碼審計在測試網/主網發布或大型功能發佈時進行。
- 第4 階段:形式化驗證通常與代碼審計相結合,並使用額外的安全保證。一旦程序被指定,其餘的過程就可以自動化,這使得它很容易與Continuous Integration或Continuous Deployment工具配對。
- 第5 階段:在測試網絡上啟動應用程序檢查吞吐量、流量和其他擴展參數。
- 第6 階段:部署到主網後啟動漏洞賞金計劃,利用社區資源來查找和修復問題。
開發人員工具
任何技術或生態系統的增長都有賴於其開發者的成功—在加密領域尤其如此。我們將開發人員工具分為四個主要類別:
- 開箱即用工具
- 用於開發新L1的SDK,有助於抽像出創建和部署共識模型的過程。預建模塊允許靈活性和定制化,但針對開發速度和標準化進行了優化。 Cosmos SDK就是一個很好的例子,它支持在Cosmos生態系統內快速開發新的經驗證的區塊鏈。 Binance Chain和Terra是以Cosmos為基礎的公鏈的著名例子。
- 智能合約開發—-有許多工具可以幫助開發人員快速開發智能合約。例如,Truffle boxes包含簡單而有用的Solidity合約(投票等)示例。社區還可以向此存儲庫推薦附錄。
- 前端/後端工具—有許多工具可以簡化應用程序的開發。將應用程序連接到鏈(即,ethers.js、web3.js等)。
- 升級和與合約互動(例如OpenZeppelin SDK)—有各種不同的工具特定於生態系統(例如Solana智能合約的Anchor IDL,Parity智能合約的Ink),它們處理編寫RPC請求處理程序、發出IDL、從ID生成客戶端。
- 語言和IDE—區塊鏈的編程模型通常與傳統軟件系統的編程模型有很大不同。用於區塊鏈開發的編程語言就是為這一模型提供便利的。對於EVM兼容鏈,Solidity和Vyper被大量使用。其他語言如Rust被大量用於Solana和Terra這樣的公鏈。
結論
區塊鏈基礎設施可能是一個過載和令人困惑的術語,它通常是一系列產品和服務的同義詞,涵蓋從智能合約審計到跨鏈橋的一切。因此,關於加密基礎設施的討論要么過於廣泛和雜亂無章,要么對於普通讀者來說過於具體和有針對性。我們希望這篇文章為那些剛剛進入加密行業的人和那些尋求更深入概述的人找到了合適的平衡。
當然,加密行業正在快速變化,本文中引用的協議很可能在2個月甚至3個月後不再構成生態系統的代表性樣本。即便如此,我們認為本文的主要目標(即將基礎設施分解為更容易理解和理解的部分)在未來將具有更大的相關性。但隨著區塊鏈基礎設施格局的演變,我們也將確保提供明確一致的更新我們的想法。
如有問題或評論,請聯繫(Rahul Maganti(@rahulmaganti_)和Saurabh Sharma(@zsparta)。讓我們知道我們哪裡錯了,或者你在哪裡不同意!)。特別感謝Nikhil Suri(@nsuri_)。以及盧卡斯·貝克(@sansgravitas),感謝他提供了寶貴的反饋。
聲明:本內容為作者獨立觀點,不代表0x财经 立場,且不構成投資建議,請謹慎對待,如需報導或加入交流群,請聯繫微信:VOICE-V。
來源:鏈捕手