在 Ethereum 上部署 NFT 项目要花多少钱?
作者 Albert Hu
长话短说,这取决于具体情况。

以太币的价格在 2021 年飙升……gas 费用也随之飙升!
如果你第一次接触 Web3 development,正在了解 Solidity 编程语言、Ethereum 智能合约以及制作 NFT……
- 欢迎!你将经历一段不小的旅程……
- 一定要弄清楚 gas 费用和交易费用的运作方式!
以前……部署去中心化应用的成本相对较低。
- 2017 年,CryptoPunks NFT 项目的部署成本为 7.56 美元(来源)
- 2020 年,Shiba Inu Token($SHIB)的部署成本为 60 美元(来源)
而今天——2021 年 11 月 30 日——部署同样的合约要付出高昂的代价 :(
- CryptoPunks 将花费 964 美元
- $SHIB 将花费 2,026 美元
也就是说,按美元计算,如今在 Ethereum 上部署合约的成本,比几年前高出 30 到 120 倍。

那么问题来了……为什么会这样?
其实,有三个因素最终决定了你的部署成本:
- 部署合约交易所消耗的 gas 单位数(UNITS)
- 基于当前流量和网络拥堵情况的每单位 gas 价格(PRICE)
- 基于市场行情的 Ether(ETH)价值(VALUE)
这三个因素通过一个非常简单的公式组合在一起:
总成本 = 单位数 价格 价值
我们先来看 2017 年 CryptoPunks 合约的部署交易作为示例。根据 Etherscan 上的交易信息:
- gas 单位数 = 2,142,276 gas
- 每单位 gas 价格 = 0.000000011 ETH(即 11 gwei)
- ETH 价值 = 320.97 美元/ETH
总成本 = 2,142,276 0.000000011 320.97
总成本 = 7.56 美元
那么,如果我们今天,也就是 2021 年,尝试部署同样的 CryptoPunks 合约,会有什么变化?
- 单位数保持不变——gas 单位数取决于智能合约中包含的逻辑,而这份合约与四年前完全相同。
- 价格上升了——Ethereum 已经成为一个交易非常活跃的区块链,流量越大,由于 gas 竞价机制,单位 gas 以 ETH 计价的成本就越高。竞价机制指的是用户不断提高交易中附带的 gas 费用,以激励矿工优先打包自己的交易。
- ETH 的价值也上升了——随着时间推移,更多投资者和更多关注意味着对这种加密货币的需求增加。
如今每单位 gas 的平均价格大约在 0.0000001 ETH ~ 0.00000015 ETH(100~150 gwei)之间,而 ETH 的平均价值大约在 4,000 ~ 4,500 美元之间。
那么今天部署 CryptoPunks 合约的计算会是怎样的?
- gas 单位数 = 2,142,276 gas
- 每单位 gas 价格 = 0.0000001 ETH(即 100 gwei)
- ETH 价值 = 4,500 美元/ETH
总成本 = 2,142,276 0.0000001 4,500 = 964 美元
自己动手试一试!在 Etherscan 上查一个你喜欢的 NFT 合约,找出交易费用的三个组成部分,验证最终成本。你今天看到的是什么样的价格?把你的例子发到 Twitter @thatguyintech,我很乐意转发 :)
现在你可能会想,“既然这么贵,为什么大家还在 Ethereum 上构建?”
这是个好问题。原因主要有三个:
- 去中心化。Ethereum 是目前去中心化程度最高的智能合约平台。根据 ethernodes.org 的数据,运行该网络的节点超过 3000 个。其他智能合约平台的节点或验证者数量要少得多。网络越去中心化,就越难被审查、控制、操纵或关闭。对于严肃的金融应用而言,这些保障通常是必需的。
- 开发者生态。它拥有最大的开发者生态和最成熟的工具链。根据 Electric Capital 的数据,Ethereum 每月活跃开发者超过 2400 人,且仍在增长。Ethereum 是最古老的智能合约平台,在构建可用的应用和可组合的工具方面享有最强的网络效应。
- 市场。Ethereum 拥有最大的应用市场(最多的用户和资金)。目前最大、使用最广泛的 DeFi 协议和 NFT 交易市场都建立在 Ethereum 上。
不过,即便有这些优势,也不意味着 Ethereum 一定是你的项目的最佳选择。也许你只是在探索和学习,部署到 Ethereum mainnet 的成本完全没有意义。又或者你的用例非常特定,比起去中心化保障更看重速度和效率。无论原因是什么,你都有很多理由去探索其他选择。这里介绍几个可以入手的替代方案……
如果你想留在 Ethereum ecosystem 内,可以看看**侧链(sidechain)**和 layer 2(L2):

使用侧链或 Ethereum layer 2 方案的好处在于,你可以使用相似的工具链,而记录交易和保护 DApp 安全的底层机制保持不变。你还能享受到大幅降低的交易成本和更快的速度。代价是目前用户体验和开发者体验可能都还不够完善。
如果你想走得更远一些,探索采用不同编程语言和不同系统架构的区块链,可以考虑这些其他的 layer 1(L1):
最后,如果你担心部署成本,但仍然想部署到 Ethereum mainnet 上,可以尝试优化你的 solidity 代码,减少不必要的逻辑。gas 费用的目的是为了向矿工支付运行你程序逻辑的费用。逻辑越简单,部署和运行合约的成本就越低。
这里有一篇很棒的文章,讲的是如何优化 Ethereum NFT 智能合约以降低 gas 消耗。
如果这篇说明对你有帮助,欢迎发推给我们 @Alchemy!我们很想看看你在构建什么,并为你的项目助一把力 :)

相关概览

构建区块链应用
Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。


