---
title: "如何為你的 dApp 選擇合適的區塊鏈"
description: "了解開發者如何選擇合適的區塊鏈來開發"
---

# 如何為你的 dApp 選擇合適的區塊鏈

最基本來說，[區塊鏈](https://www.alchemy.com/docs/what-is-a-blockchain)是一種絕佳的基礎設施工具，能讓開發者分散化管理自己的資料儲存需求。作為一套系統，區塊鏈讓開發者能夠在不需要可信任中央中介機構的情況下，安全地分散部署自己的應用程式。

區塊鏈可用於許多不同的應用場景，因此也發展出許多不同類型的鏈，各自針對不同應用進行優化。每種鏈都略有差異。因此，開發者必須理解這些差異，才能選出符合自身需求的區塊鏈。

本文將討論主要區塊鏈之間的核心差異，以及開發者選擇某一類型鏈而非另一類型的原因。

## **選擇要建構在哪個區塊鏈上時，該問的 7 個問題**

在決定專案要使用哪個區塊鏈平台的過程中，作為開發者，至少有七個因素值得考量：

### **1. 你的 dapp 需要多少吞吐量？**

依據你所開發的專案類型不同，所需的交易吞吐量範圍可能差異很大。

舉例來說，如果你正在開發一款需要用戶每天進行數千筆微交易的 DeFi 遊戲，你就需要一條吞吐量高、gas 費用低的區塊鏈。

但如果你經營的是一個只會偶爾發生交易的 DAO，協作的便利性可能會是更重要的考量因素。

需要考慮的重點是，區塊鏈協定會如何隨著你的 dapp 一起擴展。在剛起步時，低交易吞吐量或許已經足夠，但隨著規模擴大，這可能會侵蝕你的利潤，或讓你的用戶感到不滿。

因此在做決定之前，考量在特定鏈上建構的長期成本與速度非常重要。開發者應該同時考慮主網的可擴展性，以及第 2 層網路的可用性。

舉例來說，Ethereum 網路的交易吞吐量較低，但[在其之上建構了多個第 2 層網路](https://www.alchemy.com/dapps?sub-category=Layer+2+Blockchains&category=Blockchains)，吞吐量高得多。第 2 層的設計目的，是讓[應用程式](https://www.alchemy.com/dapps/top/defi-dapps)同時擁有穩健區塊鏈生態系的安全性，以及更快共識機制帶來的可擴展性。

### **2. 哪條區塊鏈能提供所需水準的開發者資源？**

由於區塊鏈是相對新興的技術，開發者可取得的資源會造成很大的差異。許多區塊鏈協定會為開發者提供外部教學與指南，或建立群組聊天室與論壇，讓開發者能夠互相學習。

但這些資源的品質參差不齊。在開始使用某條鏈之前，花點時間熟悉該協定所提供的資源。

舉例來說，有些系統的設計便於組合性，有些則不然。組合性指的是給定應用程式的較小組成部分，能夠被複製並用於建構其他應用程式的程度。

舉例來說，與[**Ethereum 虛擬機**](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)（EVM）相容的應用程式，可以輕鬆將自己的 dapp 重新部署到其他 EVM 相容的區塊鏈上。

從零開始建構，與從既有工具及基礎設施生態系出發建構，兩者之間的差異可能非常巨大。

你永遠不知道在建構 dApp 的過程中會遇到什麼樣的問題。因此，事先了解當這些問題出現時，你能獲得足夠的支援，會很有幫助。**‍**

### **3. 哪些區塊鏈生態系具備適合你 dapp 上市策略的條件？**

有些區塊鏈已經擁有非常活躍的生態系，有些則仍在逐步發展中。

舉例來說，如果開發者計劃建構一個依賴其他應用程式的 dApp，在擁有龐大生態系的區塊鏈上開發便是合理的選擇。

例如，若你正在打造一個跨[去中心化交易所](https://www.alchemy.com/dapps/best/decentralized-exchanges-dexs)（DEX）聚合流動性的 dApp，那麼你所選擇的區塊鏈上必須擁有多個 DEX，才能讓你進行流動性聚合。

相反地，如果你想打造的產品在某些區塊鏈上尚不存在，選擇一條該應用程式沒有競爭對手的區塊鏈可能更有利。

當然，開發者並不需要只固守單一區塊鏈生態系，許多協定也已成功跨多個生態系發展。

### **4. 該區塊鏈使用哪種程式語言？**

在特定平台上開發的複雜程度可能差異甚大。有些區塊鏈要求開發者從頭學習全新的程式語言，有些則將流程標準化。

舉例來說，經驗豐富的 Rust 開發者可能會覺得 Solana 區塊鏈相對容易上手，因為其主要語言是[Rust](https://www.alchemy.com/dapps/rust)。相對地，Ethereum 與 EVM 生態系則是以[Solidity](https://www.alchemy.com/overviews/solidity)為核心。想在 EVM 上開發的開發者需要[學習 Solidity](https://www.alchemy.com/overviews/solidity-smart-contract)，因為它與 JavaScript 的差異並不算太大。

當然，這並非總是可行的選項。由於任何開發團隊的技能水準都參差不齊，新手開發者能否輕鬆上手，可能會有很大的影響。

考量團隊的組成，以及你所擁有的資源，有助於決定該使用哪條區塊鏈。

### **5. 建構在該區塊鏈上有哪些誘因？**

有些區塊鏈專案會透過獎勵忠誠度、以及為開發者對網路的貢獻付費的計畫來激勵開發者。舉例來說，有些區塊鏈會針對錯誤偵測與論壇回覆提供獎勵。

其他區塊鏈則透過質押機會來獎勵開發者，並允許專案透過為平台帶來用戶而賺取收益。

在某些情況下，選擇與一條成長潛力高、規模較小的鏈一同建構會是明智之舉，讓團隊能共享共同成長的成果。而對其他人來說，選擇一個穩定可靠的生態系則更為重要。

### **6. 該區塊鏈是否與你現有的開發者工具與整合相容？**

歷經多年發展，有些區塊鏈工具已成為業界標準。舉例來說，像[Hardhat](https://www.alchemy.com/dapps/hardhat)和[Foundry](https://www.alchemy.com/dapps/foundry)這類 web3 工具套件相當受歡迎，某些[加密錢包](https://www.alchemy.com/dapps/top/wallets)，例如[MetaMask](https://www.alchemy.com/dapps/metamask)也是如此。

但並非所有這些工具都能跨區塊鏈使用。舉例來說，Hardhat 與 Foundry 只能在與 EVM 相容的區塊鏈上運作。換句話說，開發者無法用它們來開發 Solana dapp，而必須改用像[Anchor](https://www.alchemy.com/overviews/solana-anchor)這類的工具。

同樣地，將既有工具整合到特定區塊鏈上的難易程度，也可能有很大差異。

雖然許多[EVM](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)相容的區塊鏈遵循相同的整合結構，但在非 EVM 相容的區塊鏈之間，情況可能就不一樣了。

對於較新的區塊鏈，或文件不完善的區塊鏈，整合可能需要花上一段時間才能建置完成。

話雖如此，如果開發者對某條區塊鏈的長期成功抱有信心，這樣較困難的整合過程或許還是值得的。

### **7. 該區塊鏈的安全性是否足以支撐你的 dapp？**

在區塊鏈的脈絡下，安全性可以指涉幾種不同的意涵。它可以指網路節點的去中心化程度，也可以指交易的最終確定性。

去中心化很重要，因為它能反映出某個組織或政府想要關閉這個 dapp 有多困難。對某些開發者而言，這是最優先的考量。但對另一些開發者來說，最重要的安全考量是交易的最終確定性。你所選擇的區塊鏈發生分叉或[重組](https://www.alchemy.com/overviews/what-is-a-reorg)、導致用戶的交易不再被納入該區塊鏈的可能性有多高？

產生區塊的流程可能差異很大，有些機制比其他機制更穩健。因此，確保你所選擇的區塊鏈擁有穩健的安全協定，可能攸關你的 dApp 的生死存亡。

此外還有其他值得考量的安全問題。例如：你的區塊鏈保持運作的能力、其對阻斷服務（DoS）攻擊的脆弱程度，或其共識機制潛在的問題。雖然這或許只能算是一個早期警訊，但**考量一條區塊鏈過去是否曾遭關閉**、分叉，或經歷過大規模重組，仍可作為未來走向的一項指標。

無論如何，花點時間研究該區塊鏈的歷史，並考量其他應用程式在其上過去的表現如何。

## **選擇合適的區塊鏈平台**

在為特定 dApp 挑選合適的區塊鏈協定時，開發者應留意各大主要區塊鏈的優缺點：

### **1. Ethereum**

[**Ethereum**](https://www.alchemy.com/ethereum/?a=choose-ethereum)是一條第 1 層區塊鏈平台，以率先提出智能合約概念而聞名。

Ethereum 由 Vitalik Buterin 於 2015 年推出。Vitalik 將 Bitcoin 的去中心化原則應用到虛擬機當中。

這項洞見讓 Ethereum 區塊鏈成為創新的重鎮，孕育出數千個應用於金融服務、治理、財庫管理、支付、交易所、藝術等各領域的應用程式。

由於其去中心化的安全性，Ethereum 已吸引[所有智能合約區塊鏈中最高的價值](https://www.alchemy.com/overviews/choose-ethereum)。

Ethereum 的區塊時間為 15 秒，也就是說結算會在這段時間內、或更短的時間內完成。Ethereum 的區塊大小受到限制，以達成最大程度的去中心化，這使得其交易成本相較某些其他區塊鏈來得高。

Ethereum 目前正持續支持[提升可擴展性](https://www.alchemy.com/overviews/ethereum-scaling-solutions)的相關努力。這個過程中很大一部分，便是支持第 2 層區塊鏈的發展。

### **2. Arbitrum**

[Arbitrum](https://www.alchemy.com/arbitrum/?a=how-to-choose-a-blockchain)是 Ethereum 最受歡迎的第 2 層擴容解決方案之一。它由 Offchain Labs 建構並維護，採用一種名為「樂觀 rollup」的批次處理協定，在交易發布到 Ethereum 之前，預設以樂觀的態度將所有交易視為有效。

這項技術讓 Arbitrum 能夠善用 Ethereum 的安全性與去中心化，同時提供[更快、更便宜的結算](https://www.alchemy.com/overviews/choose-arbitrum)。

雖然完全去中心化是 Arbitrum 路線圖的一部分，但目前技術堆疊中仍有部分由 Arbitrum 團隊集中控制。隨著團隊持續迭代其技術，並對其可行性愈發有信心，整個技術堆疊將會轉由去中心化治理管理。

### **3. Optimism**

[Optimism](https://www.alchemy.com/optimism)是另一種將資料發布到 Ethereum 的樂觀 rollup。

**‍**Optimism 同樣受益於 Ethereum 的安全性與去中心化，同時提供更便宜、更快速的交易。

透過批次處理交易，[Optimism 能將交易吞吐量提升](https://www.alchemy.com/overviews/choose-optimism)至比 Ethereum 主網高一到兩個數量級。

Optimism 與 Arbitrum 一樣，將可擴展性與安全性置於去中心化之上的優先地位。它使用一套名為 Optimism 虛擬機（OVM）的系統，與 EVM 相容。

Optimism 的路線圖中，也包含了朝向比目前更去中心化方向發展的計畫。

### **4. Polygon**

[Polygon](https://www.alchemy.com/polygon)前身為 Matic Network，是一個於 2019 年推出的第 2 層擴容解決方案，能讓 Ethereum 區塊鏈上的交易更快、更簡單、也更便宜。

與其他第 2 層解決方案，例如[zkSync](https://www.alchemy.com/overviews/what-is-zksync-era)和 StarkNet 不同的是，[Polygon 的運作方式較像是「瑞士刀」型的解決方案](https://www.alchemy.com/overviews/choose-polygon)，結合多種工具來解決可擴展性的問題。這代表它會同時運行多條鏈——一條優先考慮交易吞吐量，另一條優先考慮安全性。與 Optimism 一樣，Polygon 提供 100% 的 EVM 相容性。

在所有 Ethereum 第 2 層解決方案中，Polygon 擁有數一數二活躍的生態系，其總鎖倉價值（TVL）在 2021 年達到 90 億美元的高峰。

Polygon Labs 也推出了其開發者資源工具 Polygon University 的 Beta 版本，並經營一個提供完整文件、社群資源與開發者指南的 wiki。

### **5. Solana**

[Solana](https://www.alchemy.com/solana)是最受歡迎的替代性第 1 層區塊鏈之一。它成立於 2017 年，是一個目前由總部位於日內瓦的 Solana Foundation 所營運的開源專案。

Solana 以率先提出歷史證明（PoH）概念而聞名，該概念由其創辦人 Anatoly Yakovenko 於 2017 年提出。PoH 是一種用來驗證事件之間順序與時間經過的證明機制，用於將無需信任的時間流逝編碼進帳本之中。

Solana 的智能合約以 Rust 撰寫，這對不想學習 Solidity 等 EVM 相容程式語言的開發者頗具吸引力，詳見[Solidity](https://www.alchemy.com/overviews/solidity-smart-contract)。

目前 Solana 每秒可處理 3,886 筆交易，這對於 dApp[需要頻繁更新狀態](https://www.alchemy.com/overviews/choose-solana)的開發者而言相當有吸引力。

作為全球規模數一數二的區塊鏈網路，Solana 為開發者提供了靈活的程式設計環境，開發者可使用 Rust、C 及 C\+\+ 等熟悉的語言進行開發。這使其成為想要開發高效能去中心化應用程式者的理想平台。

### **6. StarkNet**

StarkNet 是一個由 StarkWare Industries 建構於 Ethereum 主網之上、無需許可的零知識 Rollup（ZK-Rollup）第 2 層擴容解決方案。

StarkNet 由 Eli Ben-Sasson 與 Uri Kolodny 創立，目的是運用 STARK 技術提升可擴展性與隱私性。

[StarkNet](https://www.alchemy.com/dapps/starknet)的 ZK rollup 透過將多筆交易「捲疊（roll up）」為單一區塊，提升 Ethereum 主網的可擴展性，藉此降低 gas 費用並加快交易速度。

Starknet 上的智能合約以一種名為[Cairo](https://www.alchemy.com/dapps/cairo)的程式語言撰寫。這代表想使用[Starknet 生態系](https://www.alchemy.com/dapps/ecosystem/starknet)的開發者需要學習不同的開發工具，但也能因此獲得 Ethereum 的安全性、去中心化以及可擴展性。

不過，在 StarkNet 上建構的一項優勢，是所有錢包預設都採用帳戶抽象化。

## **結語**

在開發者選擇 dapp 所要使用的區塊鏈之前，理解各區塊鏈之間可能存在的差異非常重要。

請記得，應用程式可以部署在多條區塊鏈上，並不須侷限於單一區塊鏈。話雖如此，為你的專案找到合適的鏈，能為你節省大量的時間、精力與金錢，甚至可能是成功與失敗之間的關鍵差異。
