---
title: "如何为你的 dApp 选择合适的区块链"
description: "了解开发者如何选择合适的区块链进行构建"
---

# 如何为你的 dApp 选择合适的区块链

从最基本的层面看，[区块链](https://www.alchemy.com/docs/what-is-a-blockchain)是开发者用来去中心化其数据存储需求的一种基础设施工具。作为一个系统，区块链使开发者能够在无需可信中心化中介的情况下，安全地分发自己的应用。

区块链可以用于许多不同的应用场景，因此也出现了许多针对不同应用做了优化的链。每种链都略有不同。因此，开发者理解这些差异很重要，这样才能选出适合自己需求的区块链。

本文将讨论主要区块链之间的关键差异，以及开发者选择某一类链而非另一类链的原因。

## **选择区块链构建应用时应该问的 7 个问题**

在决定为项目选用哪个区块链平台的过程中，作为开发者，至少有七个因素值得考虑：

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

根据所开发项目的类型不同，所需的交易吞吐量范围会有很大差异。

例如，如果你正在构建一款需要用户每天进行数千笔微交易的 DeFi 游戏，你就需要一条吞吐量高、gas 费用低的区块链。

但如果你运营的是一个只会偶尔发起交易的 DAO，协作的便利性可能是更重要的考量因素。

需要考虑的关键问题是，区块链协议将如何随着你的 dapp 一起扩展。刚起步时，较低的交易吞吐量或许就足够了，但随着规模扩大，它可能会侵蚀你的利润，或让你的用户感到不满。

因此，在做出决定之前，考虑在某条特定链上构建的长期成本和速度非常重要。开发者应同时考虑主网的可扩展性，以及 Layer 2 网络的可用性。

例如，以太坊网络的交易吞吐量较低，但在其之上正在构建[多个吞吐量高得多的 Layer 2 网络](https://www.alchemy.com/dapps?sub-category=Layer+2+Blockchains&category=Blockchains)。第二层的设计目的是让[应用](https://www.alchemy.com/dapps/top/defi-dapps)既能获得强健区块链生态系统的安全性，又能拥有更快共识机制带来的可扩展性。

### **2. 哪条区块链能提供所需水平的开发者资源？**

由于区块链是一项相对新兴的技术，可供开发者使用的资源会带来很大差异。许多区块链协议为开发者提供外部教程和指南，或建立群组和论坛，让开发者能够互相学习。

但这些资源的质量参差不齐。在开始使用某条链之前，花些时间了解该协议提供的资源。

例如，有些系统在设计上便于组合使用，而另一些则不然。可组合性指的是一个应用中的较小组成部分能在多大程度上被复用于构建其他应用。

例如，与[**以太坊虚拟机**](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)。相比之下，以太坊及其 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) 是一个 Layer-1 区块链平台，以率先提出智能合约概念而闻名。

Ethereum 由 Vitalik Buterin 于 2015 年推出。Vitalik 将比特币的去中心化原理应用到了一台虚拟机上。

这一洞见让 Ethereum 区块链成为创新的强大引擎，如今已有数千个应用被开发出来，涵盖金融服务、治理、资金库管理、支付、交易所、艺术等诸多领域。

由于其去中心化的安全性，Ethereum 已吸引了[所有智能合约区块链中最高的价值总量](https://www.alchemy.com/overviews/choose-ethereum)。

Ethereum 的出块时间为 15 秒，也就是说结算会在这段时间内或更短时间内完成。为了实现最大程度的去中心化，Ethereum 的区块大小受到限制，这使得其交易成本相较于其他一些区块链更高。

Ethereum 目前正在支持[提升其可扩展性](https://www.alchemy.com/overviews/ethereum-scaling-solutions)的各项努力。这一过程的很大一部分涉及支持 Layer-2 区块链的发展。

### **2. Arbitrum**

[Arbitrum](https://www.alchemy.com/arbitrum/?a=how-to-choose-a-blockchain) 是 Ethereum 最受欢迎的 Layer-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 主网高一到两个数量级。

与 Arbitrum 类似，Optimism 将可扩展性和安全性置于去中心化之前。它使用一套名为 Optimism 虚拟机（OVM）的系统，该系统兼容 EVM。

Optimism 的路线图中同样包含了进一步提高去中心化程度的计划。

### **4. Polygon**

[Polygon](https://www.alchemy.com/polygon)（此前称为 Matic Network）是一个于 2019 年推出的 Layer 2 扩容方案，有助于让 Ethereum 区块链上的交易更快、更简单、成本更低。

与 [zkSync](https://www.alchemy.com/overviews/what-is-zksync-era) 和 StarkNet 等其他 Layer 2 方案不同，[Polygon 的运作方式更像一套“瑞士军刀”式的解决方案](https://www.alchemy.com/overviews/choose-polygon)，它组合了多种工具来解决可扩展性问题。这意味着它运行着多条链——一条优先考虑交易吞吐量，另一条优先考虑安全性。与 Optimism 一样，Polygon 提供 100% 的 EVM 兼容性。

在所有 Ethereum Layer 2 方案中，Polygon 拥有最活跃的生态系统之一，其 TVL 在 2021 年一度达到 90 亿美元的峰值。

Polygon Labs 还推出了其开发者资源工具 Polygon University 的测试版，并维护着一个 wiki，为开发者提供全面的文档、社区资源和指南。

### **5. Solana**

[Solana](https://www.alchemy.com/solana) 是最受欢迎的替代性 Layer-1 区块链之一。它成立于 2017 年，是一个开源项目，目前由总部位于日内瓦的 Solana 基金会运营。

Solana 以率先提出历史证明（PoH）概念而闻名，该机制由其创始人 Anatoly Yakovenko 于 2017 年提出。PoH 是一种用于验证事件之间顺序和时间流逝的证明方法，用于将不可信任的时间流逝编码进账本之中。

Solana 的智能合约使用 Rust 编写，这对那些不想学习像 [Solidity](https://www.alchemy.com/overviews/solidity-smart-contract) 这样的 EVM 兼容编程语言的开发者很有吸引力。

目前，Solana 每秒处理 3,886 笔交易，这对那些[需要频繁进行状态更新](https://www.alchemy.com/overviews/choose-solana)的 dApp 开发者颇具吸引力。

作为全球最大的区块链网络之一，Solana 为开发者提供了灵活的编程环境，开发者可以使用 Rust、C、C++ 等熟悉的语言。这使其成为那些希望开发高性能去中心化应用的开发者的理想平台。

### **6. StarkNet**

StarkNet 是由 StarkWare Industries 在 Ethereum 主网之上构建的一个无需许可的零知识 rollup（ZK-Rollup）Layer-2 扩容方案。

StarkNet 由 Eli Ben-Sasson 和 Uri Kolodny 创立，旨在利用 STARK 技术提升可扩展性和隐私性。

[StarkNet](https://www.alchemy.com/dapps/starknet) 的 ZK rollup 通过将多笔交易“打包”进单个区块，来提升 Ethereum 主网的可扩展性，从而降低 gas 费用并加快交易速度。

Starknet 上的智能合约使用一种名为 [Cairo](https://www.alchemy.com/dapps/cairo) 的编程语言编写。这意味着希望使用 [Starknet 生态系统](https://www.alchemy.com/dapps/ecosystem/starknet)的开发者需要学习不同的开发者工具，但同时也将获得 Ethereum 的安全性、去中心化以及可扩展性。

不过，在 StarkNet 上构建的一个优势在于，所有钱包默认都使用账户抽象。

## **结论**

在为自己的 dapp 选择区块链之前，开发者理解各区块链之间可能存在的差异非常重要。

请记住，应用可以跨多条区块链部署，并不需要局限于单一一条区块链。话虽如此，为你的项目找到合适的链能为你节省大量的时间、精力和资金，甚至可能决定项目的成败。
