如何為你的 dApp 選擇合適的區塊鏈
最基本來說,區塊鏈是一種絕佳的基礎設施工具,能讓開發者分散化管理自己的資料儲存需求。作為一套系統,區塊鏈讓開發者能夠在不需要可信任中央中介機構的情況下,安全地分散部署自己的應用程式。
區塊鏈可用於許多不同的應用場景,因此也發展出許多不同類型的鏈,各自針對不同應用進行優化。每種鏈都略有差異。因此,開發者必須理解這些差異,才能選出符合自身需求的區塊鏈。
本文將討論主要區塊鏈之間的核心差異,以及開發者選擇某一類型鏈而非另一類型的原因。
選擇要建構在哪個區塊鏈上時,該問的 7 個問題
在決定專案要使用哪個區塊鏈平台的過程中,作為開發者,至少有七個因素值得考量:
1. 你的 dapp 需要多少吞吐量?
依據你所開發的專案類型不同,所需的交易吞吐量範圍可能差異很大。
舉例來說,如果你正在開發一款需要用戶每天進行數千筆微交易的 DeFi 遊戲,你就需要一條吞吐量高、gas 費用低的區塊鏈。
但如果你經營的是一個只會偶爾發生交易的 DAO,協作的便利性可能會是更重要的考量因素。
需要考慮的重點是,區塊鏈協定會如何隨著你的 dapp 一起擴展。在剛起步時,低交易吞吐量或許已經足夠,但隨著規模擴大,這可能會侵蝕你的利潤,或讓你的用戶感到不滿。
因此在做決定之前,考量在特定鏈上建構的長期成本與速度非常重要。開發者應該同時考慮主網的可擴展性,以及第 2 層網路的可用性。
舉例來說,Ethereum 網路的交易吞吐量較低,但在其之上建構了多個第 2 層網路,吞吐量高得多。第 2 層的設計目的,是讓應用程式同時擁有穩健區塊鏈生態系的安全性,以及更快共識機制帶來的可擴展性。
2. 哪條區塊鏈能提供所需水準的開發者資源?
由於區塊鏈是相對新興的技術,開發者可取得的資源會造成很大的差異。許多區塊鏈協定會為開發者提供外部教學與指南,或建立群組聊天室與論壇,讓開發者能夠互相學習。
但這些資源的品質參差不齊。在開始使用某條鏈之前,花點時間熟悉該協定所提供的資源。
舉例來說,有些系統的設計便於組合性,有些則不然。組合性指的是給定應用程式的較小組成部分,能夠被複製並用於建構其他應用程式的程度。
舉例來說,與Ethereum 虛擬機(EVM)相容的應用程式,可以輕鬆將自己的 dapp 重新部署到其他 EVM 相容的區塊鏈上。
從零開始建構,與從既有工具及基礎設施生態系出發建構,兩者之間的差異可能非常巨大。
你永遠不知道在建構 dApp 的過程中會遇到什麼樣的問題。因此,事先了解當這些問題出現時,你能獲得足夠的支援,會很有幫助。
3. 哪些區塊鏈生態系具備適合你 dapp 上市策略的條件?
有些區塊鏈已經擁有非常活躍的生態系,有些則仍在逐步發展中。
舉例來說,如果開發者計劃建構一個依賴其他應用程式的 dApp,在擁有龐大生態系的區塊鏈上開發便是合理的選擇。
例如,若你正在打造一個跨去中心化交易所(DEX)聚合流動性的 dApp,那麼你所選擇的區塊鏈上必須擁有多個 DEX,才能讓你進行流動性聚合。
相反地,如果你想打造的產品在某些區塊鏈上尚不存在,選擇一條該應用程式沒有競爭對手的區塊鏈可能更有利。
當然,開發者並不需要只固守單一區塊鏈生態系,許多協定也已成功跨多個生態系發展。
4. 該區塊鏈使用哪種程式語言?
在特定平台上開發的複雜程度可能差異甚大。有些區塊鏈要求開發者從頭學習全新的程式語言,有些則將流程標準化。
舉例來說,經驗豐富的 Rust 開發者可能會覺得 Solana 區塊鏈相對容易上手,因為其主要語言是Rust。相對地,Ethereum 與 EVM 生態系則是以Solidity為核心。想在 EVM 上開發的開發者需要學習 Solidity,因為它與 JavaScript 的差異並不算太大。
當然,這並非總是可行的選項。由於任何開發團隊的技能水準都參差不齊,新手開發者能否輕鬆上手,可能會有很大的影響。
考量團隊的組成,以及你所擁有的資源,有助於決定該使用哪條區塊鏈。
5. 建構在該區塊鏈上有哪些誘因?
有些區塊鏈專案會透過獎勵忠誠度、以及為開發者對網路的貢獻付費的計畫來激勵開發者。舉例來說,有些區塊鏈會針對錯誤偵測與論壇回覆提供獎勵。
其他區塊鏈則透過質押機會來獎勵開發者,並允許專案透過為平台帶來用戶而賺取收益。
在某些情況下,選擇與一條成長潛力高、規模較小的鏈一同建構會是明智之舉,讓團隊能共享共同成長的成果。而對其他人來說,選擇一個穩定可靠的生態系則更為重要。
6. 該區塊鏈是否與你現有的開發者工具與整合相容?
歷經多年發展,有些區塊鏈工具已成為業界標準。舉例來說,像Hardhat和Foundry這類 web3 工具套件相當受歡迎,某些加密錢包,例如MetaMask也是如此。
但並非所有這些工具都能跨區塊鏈使用。舉例來說,Hardhat 與 Foundry 只能在與 EVM 相容的區塊鏈上運作。換句話說,開發者無法用它們來開發 Solana dapp,而必須改用像Anchor這類的工具。
同樣地,將既有工具整合到特定區塊鏈上的難易程度,也可能有很大差異。
雖然許多EVM相容的區塊鏈遵循相同的整合結構,但在非 EVM 相容的區塊鏈之間,情況可能就不一樣了。
對於較新的區塊鏈,或文件不完善的區塊鏈,整合可能需要花上一段時間才能建置完成。
話雖如此,如果開發者對某條區塊鏈的長期成功抱有信心,這樣較困難的整合過程或許還是值得的。
7. 該區塊鏈的安全性是否足以支撐你的 dapp?
在區塊鏈的脈絡下,安全性可以指涉幾種不同的意涵。它可以指網路節點的去中心化程度,也可以指交易的最終確定性。
去中心化很重要,因為它能反映出某個組織或政府想要關閉這個 dapp 有多困難。對某些開發者而言,這是最優先的考量。但對另一些開發者來說,最重要的安全考量是交易的最終確定性。你所選擇的區塊鏈發生分叉或重組、導致用戶的交易不再被納入該區塊鏈的可能性有多高?
產生區塊的流程可能差異很大,有些機制比其他機制更穩健。因此,確保你所選擇的區塊鏈擁有穩健的安全協定,可能攸關你的 dApp 的生死存亡。
此外還有其他值得考量的安全問題。例如:你的區塊鏈保持運作的能力、其對阻斷服務(DoS)攻擊的脆弱程度,或其共識機制潛在的問題。雖然這或許只能算是一個早期警訊,但考量一條區塊鏈過去是否曾遭關閉、分叉,或經歷過大規模重組,仍可作為未來走向的一項指標。
無論如何,花點時間研究該區塊鏈的歷史,並考量其他應用程式在其上過去的表現如何。
選擇合適的區塊鏈平台
在為特定 dApp 挑選合適的區塊鏈協定時,開發者應留意各大主要區塊鏈的優缺點:
1. Ethereum
Ethereum是一條第 1 層區塊鏈平台,以率先提出智能合約概念而聞名。
Ethereum 由 Vitalik Buterin 於 2015 年推出。Vitalik 將 Bitcoin 的去中心化原則應用到虛擬機當中。
這項洞見讓 Ethereum 區塊鏈成為創新的重鎮,孕育出數千個應用於金融服務、治理、財庫管理、支付、交易所、藝術等各領域的應用程式。
由於其去中心化的安全性,Ethereum 已吸引所有智能合約區塊鏈中最高的價值。
Ethereum 的區塊時間為 15 秒,也就是說結算會在這段時間內、或更短的時間內完成。Ethereum 的區塊大小受到限制,以達成最大程度的去中心化,這使得其交易成本相較某些其他區塊鏈來得高。
Ethereum 目前正持續支持提升可擴展性的相關努力。這個過程中很大一部分,便是支持第 2 層區塊鏈的發展。
2. Arbitrum
Arbitrum是 Ethereum 最受歡迎的第 2 層擴容解決方案之一。它由 Offchain Labs 建構並維護,採用一種名為「樂觀 rollup」的批次處理協定,在交易發布到 Ethereum 之前,預設以樂觀的態度將所有交易視為有效。
這項技術讓 Arbitrum 能夠善用 Ethereum 的安全性與去中心化,同時提供更快、更便宜的結算。
雖然完全去中心化是 Arbitrum 路線圖的一部分,但目前技術堆疊中仍有部分由 Arbitrum 團隊集中控制。隨著團隊持續迭代其技術,並對其可行性愈發有信心,整個技術堆疊將會轉由去中心化治理管理。
3. Optimism
Optimism是另一種將資料發布到 Ethereum 的樂觀 rollup。
Optimism 同樣受益於 Ethereum 的安全性與去中心化,同時提供更便宜、更快速的交易。
透過批次處理交易,Optimism 能將交易吞吐量提升至比 Ethereum 主網高一到兩個數量級。
Optimism 與 Arbitrum 一樣,將可擴展性與安全性置於去中心化之上的優先地位。它使用一套名為 Optimism 虛擬機(OVM)的系統,與 EVM 相容。
Optimism 的路線圖中,也包含了朝向比目前更去中心化方向發展的計畫。
4. Polygon
Polygon前身為 Matic Network,是一個於 2019 年推出的第 2 層擴容解決方案,能讓 Ethereum 區塊鏈上的交易更快、更簡單、也更便宜。
與其他第 2 層解決方案,例如zkSync和 StarkNet 不同的是,Polygon 的運作方式較像是「瑞士刀」型的解決方案,結合多種工具來解決可擴展性的問題。這代表它會同時運行多條鏈——一條優先考慮交易吞吐量,另一條優先考慮安全性。與 Optimism 一樣,Polygon 提供 100% 的 EVM 相容性。
在所有 Ethereum 第 2 層解決方案中,Polygon 擁有數一數二活躍的生態系,其總鎖倉價值(TVL)在 2021 年達到 90 億美元的高峰。
Polygon Labs 也推出了其開發者資源工具 Polygon University 的 Beta 版本,並經營一個提供完整文件、社群資源與開發者指南的 wiki。
5. Solana
Solana是最受歡迎的替代性第 1 層區塊鏈之一。它成立於 2017 年,是一個目前由總部位於日內瓦的 Solana Foundation 所營運的開源專案。
Solana 以率先提出歷史證明(PoH)概念而聞名,該概念由其創辦人 Anatoly Yakovenko 於 2017 年提出。PoH 是一種用來驗證事件之間順序與時間經過的證明機制,用於將無需信任的時間流逝編碼進帳本之中。
Solana 的智能合約以 Rust 撰寫,這對不想學習 Solidity 等 EVM 相容程式語言的開發者頗具吸引力,詳見Solidity。
目前 Solana 每秒可處理 3,886 筆交易,這對於 dApp需要頻繁更新狀態的開發者而言相當有吸引力。
作為全球規模數一數二的區塊鏈網路,Solana 為開發者提供了靈活的程式設計環境,開發者可使用 Rust、C 及 C++ 等熟悉的語言進行開發。這使其成為想要開發高效能去中心化應用程式者的理想平台。
6. StarkNet
StarkNet 是一個由 StarkWare Industries 建構於 Ethereum 主網之上、無需許可的零知識 Rollup(ZK-Rollup)第 2 層擴容解決方案。
StarkNet 由 Eli Ben-Sasson 與 Uri Kolodny 創立,目的是運用 STARK 技術提升可擴展性與隱私性。
StarkNet的 ZK rollup 透過將多筆交易「捲疊(roll up)」為單一區塊,提升 Ethereum 主網的可擴展性,藉此降低 gas 費用並加快交易速度。
Starknet 上的智能合約以一種名為Cairo的程式語言撰寫。這代表想使用Starknet 生態系的開發者需要學習不同的開發工具,但也能因此獲得 Ethereum 的安全性、去中心化以及可擴展性。
不過,在 StarkNet 上建構的一項優勢,是所有錢包預設都採用帳戶抽象化。
結語
在開發者選擇 dapp 所要使用的區塊鏈之前,理解各區塊鏈之間可能存在的差異非常重要。
請記得,應用程式可以部署在多條區塊鏈上,並不須侷限於單一區塊鏈。話雖如此,為你的專案找到合適的鏈,能為你節省大量的時間、精力與金錢,甚至可能是成功與失敗之間的關鍵差異。
相關總覽

打造區塊鏈魔法
Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。


