引言
加密货币和区块链的技术为传统金融带来了许多变革,通过自动运行的代码、透明的共识机制和去中心化的帐本,加密货币可以无需经由受信任的第三方来完成价值的转移与资源交换,这使得金融服务的成本大幅降低,也促使人类的经济活动变得更加高效率。
然而成本降低并非意味着完全没有费用,区块链网络协助用户获取所需时,仍然需要投入资源以完成这些工作。正所谓天下没有免费的午餐,为了利用区块链网络的服务,用户需要负担一些费用以维持其持续运作,这个费用一般称作 Gas Fee,本文将带您详细了解什么是 Gas Fee。
Gas Fee 是什么?
在区块链领域中,最早使用 Gas Fee 这个名词的是以太坊,Gas Fee 指的是在以太坊上进行交易所需的费用,概念上和比特币的矿工收取交易手续费是相同的。由于以太坊的每笔交易都需要耗费计算资源来执行,为了补偿协助验证的参与者,用户需要支付费用才能取得服务,这种运作方式后来被许多其他的区块链协议采用,因此区块链网络的服务使用费也被称作是 Gas Fee。
这就好比使用者想要乘车从 A 城市移动到 B 城市,如果没有提供燃料,这台车就无法移动。提供给以太坊 Gas ,区块链网络上的节点就能帮使用者进行转帐、交易或是执行智能合约代码等,因此 Gas 就是以太坊网络中的燃料,是推动区块链网络运作的能量来源。
正如燃料的数量决定了开车所能移动的距离一样,以太坊的 Gas 衡量的是执行特定操作所需的计算量单位,简单的服务需要支付的 Gas 数量较少,而复杂的智能合约运算通常需要较多的 Gas 才能完成。 Gas Fee 通常是以区块链网络的原生资产计价,在以太坊上以 gwei 表示,意思是 giga-wei (1,000,000,000 wei),wei 是 ETH 代币的最小单位,常见的 ETH 计算单位如下表所示:
为什么需要 Gas Fee?
没有人喜欢付钱,为什么使用以太坊要支付 Gas Fee 呢?像互联网一样可以免费浏览不是很好吗?如果您也曾有过类似的想法,可以想象一下以太坊的服务是免费的会发生什么结果。
- 以太坊会更容易遭受黑客的攻击。
无需付费意味着黑客发起攻击几乎是零成本,会使区块链网络变得不安全。
- 有限的网络频宽资源会被滥用。
机器人可以在区块链网路上发送大量的垃圾交易信息,影响真正有使用需求的用户,却不必为恶意行为付出任何代价。
- 节点从事无上限的运算导致死机。
比如一个节点上部署的智能合约代码,在自动执行时出现错误而产生无穷回圈时,该节点就会因大量的重复运算瘫痪,甚至会影响到整个区块链网络运作。增加 Gas Fee 的执行条件可以确保不会有这类问题出现。
- 应用程序的效率低下。
没有 Gas Fee 表示开发人员不必考虑运算量是否合理,用户会因为大量低效能的代码而有更差的服务体验。
- 区块链网络的参与者没有诱因继续运作。
执行交易和智能合约需要购买设备,开机运作需要电力开销,故障时需要维修或更换零件,可以说建构区块链网络的一切都要钱,如果经营者无法从中获取任何收益,有谁还会愿意做呢?
一言以蔽之,没有任何事物是真正免费的。即便是看似免费浏览的互联网,ISP 服务商一样要架设海底电缆,网站要伺服器,员工要薪水……这些都是实实在在的支出,所谓的免费,也仅只是通过广告或流量变现等其他方式来获取继续提供服务的资源。使用者必须回馈为他们产生价值的区块链网络,引入 Gas Fee 的概念可以维护这样一个独特的价值层。
以太坊的 Gas Fee 运作方式
既然区块链网络的服务需要支付 Gas Fee,那它是如何计算的呢?针对这个问题,不同的协议有不同的计算方法,但一般而言都遵循一个简单的公式:
Gas Fee = Gas Used (用量) * Gas Price (单价)
这种 Gas Fee 的计算可以说是相当直观,就好比今天您开车从 A 城市到 B 城市,如何得知这趟路程的燃料费支出是多少?答案是消耗掉的汽油公升数乘以目前的油价。同时,旅行路程越远(任务难度越高),消耗掉的汽油公升数也就越高(Gas Used 越高)。在 2021 年 8 月伦敦升级前的以太坊,Gas Fee 的计算方式也与上述公式相同:
Total Gas Fee = Gas units (limit) * Gas price per unit
举例来说,Alice 想要支付 Bob 一枚 ETH,在这样的简单交易中需要的 Gas Units 是 21000,而支付时的 Gas Price 是 200 gwei,则计算可知
Gas Fee = 21000 * 200 gwei = 4200000 gwei = 0.0042 ETH
当 Alice 利用以太坊网络付款时,她的帐户会被扣除 1.0042 枚 ETH,而 Bob 将会收到 1 枚 ETH,负责打包交易的矿工则会收到 0.0042 枚 ETH。
EIP 1559 手续费改进提案
2021 年 8 月伦敦升级后的以太坊,Gas Fee 的计算方法有了些微变化,但整体上仍然是用量乘以单价的逻辑:
Total Gas Fee = Gas units (limit) * (Base fee + Priority fee)
https://etherscan.io/gastracker
什么是 Base fee?
Base fee 是指提出的交易被矿工打包放入区块中的基本费率,也是使用以太坊网络的最低消费的费率。基本费率的价格与目前等待打包的区块无关,而是由前一个区块决定,对于用户来说这将使以太坊的 Gas Fee 更为透明且容易预测。
基本费率的高低可以通过公式计算,如果用于前一个区块中所有交易的 Gas 总量高于目标值,则下一个区块的基本费率最多将增加 12.5%,由于基本费率会随着连续区块的高 Gas 总量而呈指数级增长,长时间的区块链网络拥塞会让基本费率变得非常高,最终用户会因无法负担而减少使用量。
比如,伦敦升级后以太坊每个区块中的目标 Gas 总量为 1500 万个 Gas,而上限则为 3000 万个 Gas,若在 1500 万 Gas 总量的区块后出现一连串 3000 万 Gas 总量的区块,会使 Base fee 不断地增加:
尽管经过 8 个区块后 Base fee 只增加两倍,看起来不是很多,但假设连续出现 80 个达到 Gas 上限的区块,Base fee 将增加 1 万倍,从 100 gwei 变成 100 万 gwei。
在伦敦升级之前,以太坊区块链的矿工可以收取区块中全部交易所包含的 Gas fee。然而伦敦升级后,新的区块开采时用于支付 Base fee 的 ETH 将会被烧掉,使其从 ETH 的总流通供给量中移除,导致通缩和 ETH 价格提升。
什么是 Priority fee?
由于 Base fee 被烧掉造成矿工收入减少,伦敦升级引入了优先费用(又常被称作小费 Tips) 的概念,以激励矿工将交易纳入区块打包。
用户可能会想,不是都已经支付基本费率了吗?为什么还要再给矿工小费呢?这又回到了经济诱因的问题,打包待处理交易是需要耗用资源的,这些矿工维持以太坊继续运作的收入来源是新区块奖励和小费,如果没有小费的话,他们会发现打包没有任何交易的空区块和打包有待处理交易的区块收入是相同的。既然结果一样,那何必去耗用资源打包待处理交易呢?假设全部的参与者都跑去打包空区块,那么这个区块链网络也将无法使用。
因此,给予矿工小费可以让他们有最基本的动力去正确地执行工作,他们也乐于优先处理含有较高小费的交易。由于小费的高低会影响用户交易被处理的顺序,因此被称作优先费用 (Priority fee)。针对紧急的交易需求,用户可以提交更高的小费来争取优先权。
这并不表示用户一定得先被敲竹杠,缴了大把小费后才能完成交易。对于时效性不敏感的交易,只要支付的 Gas fee 略高于 Base fee 并给予矿工一点点小费,交易就会在接下来的几个区块中被打包处理。
什么是 Max fee 和 Gas limit?
在区块链网络上执行交易,用户可以指定愿意为此次交易支付的最大额外费用,这可以通过修改 Max fee 和 Gas limit 来达成。
Max fee 为公式 Gas Fee = Gas Used (用量) * Gas Price (单价)中的 Gas Price ,指的是用户愿意支付的 Gas 费率。只要用户设置的 Max fee 超过 Base fee 与 Priority fee 总和,交易就会成功,多出的差额则在交易完成后退回归还给用户。
比如, Alice 想要支付 Bob 一枚 ETH,她将 Max fee 设置为 300 gwei,此时以太坊的 Base fee 为 100 gwei,Alice 再额外提供 50 gwei 作为 Priority fee,则:
1) 21000 * 300 gwei = 6300000 gwei = 0.0063 ETH
Alice 帐户会被扣除 1.0063 枚 ETH
2) 21000 * 100 gwei = 2100000 gwei = 0.0021 ETH
以太坊会烧毁 0.0021 枚 ETH 的代币供给
3) 21000 * 50 gwei = 1050000 gwei = 0.00105 ETH
矿工会收到 0.00105 枚 ETH 的小费
4) Bob 会收到 1 枚 ETH
5) 1.0063 ETH - 0.0021 ETH - 0.00105 ETH - 1 ETH = 0.00315 ETH
Alice 帐户会收到 0.00315 枚 ETH 的退款
Gas limit 为公式Gas Fee = Gas Used (用量) * Gas Price (单价)中的 Gas Used ,指的是用户愿意消耗的 Gas 数量,标准的 ETH 转账需要 21000 单位的 Gas,智能合约的复杂运算则会使用掉更多的 Gas 。
Gas limit 运作方式和 Max fee 类似,只要提供超过该次交易所需的 Gas 数量即可,交易完成后多出的余额会退回归还给用户。若设定的 Gas limit 数量太少,交易仍然会执行但不会完成。比如,简单的 ETH 转帐需要 21000 单位的 Gas,用户却将 Gas limit 限制为 20000 单位,矿工仍然会消耗 Gas 去执行等同于 20000 单位 Gas 的工作量,但这并不足以完成该笔转帐,也不会退还用户任何费用。
在网站 Watch The Burn 上,可以查看当前以太坊上交易的 Base Fee、Priority Fee 和实际使用掉的 Gas 等信息
Gas Fee 为何如此昂贵?
如果曾经使用过以太坊的去中心化金融(DeFi)应用程序,或是在 OpenSea 这类平台上购买过 NFT,那您一定不会对以太坊高额的 Gas Fee 感到陌生。根据链上数据统计,从 2021 年5 月到2022 年4 月 ,以太坊平均每笔交易的 Gas Fee 超过 20 美元,最高甚至接近 200 美元。
为什么以太坊的 Gas Fee 会这么昂贵呢?有很多原因:
- 复杂的交易和智能合约需要消耗较多的 Gas
以太坊在执行不同运算时,需要不同的操作数以及存储数据量。加法和减法指令使用的 Gas 量较少,乘法则消耗比较多的 Gas,而除法需要更多的运算量,因此用掉的 Gas 会更多。
随着去中心化应用程序 Dapp 功能变得越来越复杂,智能合约执行的操作数量也在增加,所以用需要支付更多的 Gas。
- 有限的网络频宽和每秒事务数 (Transactions Per Second)
与所有计算机一样,以太坊每秒钟能够处理的交易数量是有限的。在升级至以太坊 2.0 前,1 秒钟大约可以处理 15 笔交易数量,相对于全球信用卡支付公司 VISA 能够轻松应对 1 秒钟超过 2000 笔交易量,以太坊的效能过于低下缓慢,当使用人数增加时就会造成拥塞,用户必须支付给矿工更多的小费才能确保自己的交易被优先处理。
- 以太坊的流行
除了技术层面的原因,高昂的 Gas Fee 也和以太坊的流行密切相关。根据基础的经济学理论,当供给不变的时候,需求增长就会带动价格上涨。在 2020 年上半年,去中心化金融领域诞生出许多新颖的项目,如借贷、闪电贷、衍生品、流动性挖矿、收益耕种、保险等。 2021 年 NFT 市场继承了 DeFi 热潮,出现了许多 Play to Earn 的区块链游戏,由于许多应用都建立在以太坊上,导致使用者人数激增,使得 Gas Fee 一直居高不下。
(以太坊 Gas Fee,图来自 Statista)
- ETH 价格的上涨
Gas Fee 很高的另一个原因在于它以 ETH 计价。比照 2021 年和 2019 年的平均数据,不仅链上的 Gas price 增加了 10 倍,ETH 的价格也涨了超过 10 倍,用美元价格来衡量,相当于 Gas Fee 增加了超过 100 倍。不难理解为何人们普遍认为以太坊的 Gas Fee 贵得离谱。
如何降低 Gas Fee ?
以太坊高额的 Gas Fee 已经成为加密货币领域中一项急需解决的问题,虽然在使用以太坊区块链时无法完全回避掉 Gas Fee 的支付,但至少有一些方法可以减轻人们的负担。
用户可以降低 Gas Fee 的做法:
- 选择 Gas Fee 较低的交易时段
尽管以太坊的 Gas Fee 普遍都较高,但也并非任何时刻的价格都一样昂贵,通常在周末的时候 Gas Fee 会比较低,而在工作日时较高,在冷门的时段使用以太坊可以降低用户的 Gas Fee 支出。
(图来自 ethereumprice.org)
- 为交易设置最高费率限制
在发起交易前,用户可以调整愿意支付的 Max fee 和 Priority fee,以告知以太坊区块链多少单位的 gwei 是愿意支付的最高费率。只要 Max fee 的设置高于 Base fee 再给予矿工一点点小费,交易就会在接下来的几个区块内被执行。对于时效性要求不高的交易可以通过降低 Max fee 的方式来减少支出,需要注意的是要在合理范围内调整 Max fee,否则可能会导致交易失败。
- 善用 Gas Fee 监控和模拟交易工具
一些在线工具如 Blocknative ETH Gas Estimator、ETH Gas Station、Cryptoneur Gas Fees Calculator、Tenderly、DeFI Saver等,能够提供给用户以太坊的即时 Gas Fee 信息,有些还有让用户进行模拟交易的功能。善用这类型的工具可以让用户更清楚交易的成本,以及快速找到费用较低廉的时段。
- 选择可以降低成本的应用程序
以太坊上已经有几个应用程序能够帮助使用者降低交易的 Gas Fee,例如 Rook 和 Balancer 會將多筆交易綑綁後提出,藉以分攤支出的 Gas 成本,一些協議也提供使用者 Gas Fee 的折扣和補貼來吸引用戶。
然而要从根本解决以太坊 Gas Fee 价格过高的问题,用户能够做到的范围毕竟还是相对有限,因此开发团队也在技术上进行了许多改进:
- Layer 2 扩容方案
目前以太坊 Layer 2 有几种扩容方案,来增加区块链网络的吞吐量并降低 Gas Fee,分别是 Rollups、状态通道、侧链、Plasma、Validium 和混合方案等。不同的 Layer 2 扩容方案各有其优缺点,从下图可以看出当前 Layer 2 方案在发送和交易手续费上与以太坊主网的差异。
(图来自 l2fees.info)
在不同的 Layer 2 扩容方案中,Rollups 技术似乎是前景最被看好的方案之一。通过将以太坊作为基础层并继承其安全性和去中心化的特点,Rollups 将来自用户的多笔交易汇总后再提交,以降低每笔交易支付的 Gas Fee。
Rollups 又分成了两个类别,分别是 Optimistic Rollups 和 Zero-Knowledge Rollups。关于 Rollups 技术的深度解析,可以参考Gate Learn 学院的文章《什么是 Rollups? 》。
- 分片技术的应用
以太坊 Gas Fee 高昂的根本原因在于缓慢的交易处理能力无法应付大量的用户需求,因此提升以太坊的交易速度将减轻拥塞情形并降低 Gas Fee。分片技术将单一区块链网络分割成多个并行处理的子区块链,以分散用户的流量、提升交易速度。
升级前的以太坊仅有 1 条链可以处理交易,使用分片技术后会被拆成 64 条分片链同步处理,因此区块链网络的吞吐量可以大幅提升。与 Rollups 的扩容方案结合,可以达到将近每秒钟 10 万的事务处理数(理论值)。关于分片技术的深度解析,可以参考Gate Learn 学院的文章《什么是分片? 》。
(图来自 Hsiao-wei Wang)
没有 Gas Fee 的去中心化帐本
以太坊的 Gas Fee 机制使其能有效且持续地运作,并得以协调区块链网络上的有限资源 (如存储空间和网络频宽)。从代币经济学的观点来看,以太坊采用 Gas Fee 的做法是有效率的,区块链网络服务的使用量交由自由市场的供给和需求决定,Gas 价格则随之动态调整。这确保了有限的资源不会被滥用,也不会发生产出不符成本的问题,许多加密货币也汲取了以太坊的经验,利用 Gas Fee 作为分配资源的一种方式。
然而并非所有的加密货币协议都使用 Gas Fee 的机制,其中一个著名的项目就是 IOTA。 Gas Fee 模式有一个根本性的缺陷,即区块链网络的短期资源供给缺乏弹性,因此当大量交易突然涌入时,Gas Fee 价格会如同火箭般一飞冲天。这对许多有交易需求但不愿负担高成本的用户而言是极差的体验,也是区块链技术大众化普及的一项阻碍。
IOTA 协议从生产者与消费者的角度切入,让网络的短期资源供给能随着用户的增加而同步增长,只要任何时刻资源生产者数量都超过消费者数量,就能保证不会出现供不应求而价格飙涨的问题,具体的做法是使用称为 Tangle 的异步共识网状结构。
Tangle 架构是有向无环图(Directed Acyclic Graph,简称 DAG)的一种,能够从任何方向新增交易节点,用户每提出 1 笔交易前,必须先帮 2 笔交易验证。若越多人使用 Tangle 网络,交易速度反而越快也更安全,这克服了传统区块链网络在用户人数增加时,有限资源生产者所形成的扩容瓶颈。 IOTA 的设计哲学是“没有帐本使用者和验证者的角色矛盾”,每个使用者同时也都是验证者,彻底改变传统分散式帐本的运作方式。
理论上使用 IOTA 交易的人越多,区块链网路的吞吐量反而会增加,然而现实世界中由于硬体设备、网络延迟、I/O 读写环境等因素,Tangle 架构在扩容性上仍有其局限。由于资源提供者数量恒大于消费者数量,IOTA 成为了极少数零手续费(Feeless) 的加密货币协议。然而零手续费并非意味着免费,为了使用 IOTA 网络的服务,使用者必须提供给其他人更多的服务,成本将体现在为社会做功上,因此是一种“人人为我,我为人人”的运作模式。
总结
Gas Fee 是区块链网络上执行交易或智能合约代码时使用者需支付的费用,是一种区块链服务的使用费,通常都是以该区块链网络的原生代币资产进行计价。 Gas Fee 的存在对维持区块链网络的正常运作相当重要,在经济上奖励提供价值的贡献者,并惩罚试图破坏网络的攻击者,付费服务的做法也能有效地避免资源遭到滥用。
Gas Fee 的定价机制可以保证用公平的方式收取费用,也提高了恶意交易的门槛,可以更好地维护区块链网络的安全。由于去中心化金融(DeFi)、NFT和区块链游戏等不同应用程序的爆红,用户的巨量增长却也凸显出区块链网络(如以太坊)扩容性的不足,以及难以忍受的天价 Gas Fee 问题,公平收费服务不表示是适当的收费服务。
有鉴于此,以太坊团队也宣布将以多个阶段完成以太坊 2.0 的升级,从工作量证明的共识机制转变为权益证明的共识机制。以太坊的升级可以显著降低网络节点的能量消耗,引进 Rullups 和分片技术,更能大幅度降低交易的成本并疏解网络拥塞的情形,从而将提升的效益回馈至使用者身上,让 Gas Fee 变得平易近人。
近来有其他协议(如 IOTA)从其他方面着手,以生产者和消费者的观点来对应扩容性的问题。在称为 Tangle 的有向无环图(DAG)网络架构下,用户不需要因为使用服务而支付 Gas Fee,取而代之的是以提供更多的服务来换取资源。只要生产者的数量恒大于消费者数量,就不会出现供不应求的困境,是一种有趣新颖的思路,然而是否能成功普及有待时间的验证。