Gas 与交易手续费
为什么区块链交易要收手续费,以太坊上的 Gas 如何运作,什么是 gwei 和被销毁的基础费用,以及比特币的手续费如何计算。
在公有链上,几乎每一个操作都要支付一笔小额费用。转账、兑换代币、铸造 NFT,这些都是交易,总得有人为网络处理它们买单。在以太坊及类似网络上,这笔费用以 Gas 来衡量;在比特币上,它就叫交易手续费。本文介绍手续费为什么存在,以及它是如何计算的。
区块链为什么要收费
手续费同时解决了两个问题。
- 为安全付费:矿工或验证者为维持网络运转付出了实实在在的工作,手续费是他们报酬的一部分。
- 防止垃圾交易:每个区块的空间都是有限的。如果交易免费,任何人都可以用垃圾数据塞满网络。手续费让这种行为变得昂贵,也让网络能在需求旺盛时决定哪些交易优先处理。
由于区块空间有限,手续费的表现就像一个市场。很多人同时想要交易时,他们会竞争区块空间,手续费随之上涨;网络清闲时,手续费就会回落。
以太坊上的 Gas
在以太坊上,交易执行的每一步操作都有固定的成本,以 Gas 为单位计量。一笔简单的以太币转账只消耗少量且固定的 Gas。与智能合约交互(例如在去中心化交易所兑换代币)通常需要更多 Gas,因为网络要进行更多计算、存储更多数据。
这里有必要区分两个概念:
- Gas 用量:交易需要多少计算量,取决于这笔交易具体做了什么。
- Gas 价格:每单位 Gas 要付多少钱,取决于网络的繁忙程度。
总手续费大致等于 Gas 用量乘以 Gas 价格。
什么是 gwei
Gas 价格以 gwei 计价,gwei 是以太币的一个小单位。一个 gwei 等于十亿分之一个以太币,即 10^-9 ETH。使用 gwei 可以避免在报价时写一长串零。
Gas 上限
发送交易时,加密钱包会设置一个 Gas 上限(gas limit),即你允许这笔交易消耗的最大 Gas 量。如果交易所需超过这个上限,交易就会失败,但已经消耗的 Gas 仍需支付,因为网络确实完成了这部分工作。钱包通常会自动估算一个合适的上限。
EIP-1559:基础费用与优先费用
2021年8月,伦敦升级引入了 EIP-1559,改变了以太坊的手续费机制。从那以后,每单位 Gas 的费用由两部分组成:
- 基础费用:由协议为每个区块设定。区块比目标更满时上调,更空时下调。基础费用会被销毁,也就是永久移出流通,而不是付给任何人。
- 优先费用,常被称为小费:额外支付给验证者的金额,用来鼓励他们更快地把你的交易打包。
用户还会设置一个最高费用,即愿意为每单位 Gas 支付的最高价格。如果基础费用加小费低于这个数,差额不会被收取。这种设计让钱包更容易预估手续费,但在需求旺盛时,手续费照样不会便宜。
比特币的手续费
比特币不使用 Gas。一笔比特币交易的手续费主要取决于交易的数据大小,而不是转账金额。一笔花费了许多小额输入的交易占用的空间更大,手续费也比只有一个输入的交易更高,哪怕两者金额相同。手续费通常以“每虚拟字节多少聪”(sats/vB)来表示。
矿工自行选择打包哪些交易,一般会优先选择每字节出价更高的交易。等待确认的交易会进入一个叫作内存池(mempool)的队列。如果在网络繁忙时出价太低,你的交易可能要等很久。
比特币的手续费归打包这笔交易的比特币矿工所有。随着区块补贴在每次比特币减半后不断缩小,手续费预计会在矿工收入中占据越来越重要的位置。
手续费为何波动如此之大
- 需求:热门事件、市场波动性加剧或新代币发行,都可能迅速把区块塞满。
- 交易类型:在以太坊上,复杂的合约调用比简单转账消耗更多 Gas。
- 网络选择:不同区块链的容量和手续费规则各不相同。
降低手续费的常见做法
- 在网络较空闲时发送交易
- 使用 Layer 2 网络:它们把许多交易打包在一起,再统一提交到主链
- 在比特币上,趁手续费较低时合并零散的小额输入
交易所收取的费用则是另一回事。中心化交易所有自己的交易手续费和提现手续费,这些费用由公司设定,而不是由区块链决定。
要点回顾
- 手续费用于支付网络安全成本,并防范垃圾交易。
- 在以太坊上,手续费等于 Gas 用量乘以 Gas 价格,以 gwei 计价。
- 自 EIP-1559 起,基础费用被销毁,小费归验证者所有。
- 比特币的手续费取决于交易大小,而不是转账金额。