以太坊-你不可不知道的Gas Fee
2025-06-20 19:34:04
这次就让我们从程序代码的角度来看看,交易费(Gas Fee)是怎么一回事。
因为我们以前有提过交易内容的程序分析,这次让我们先简单的复习一下流程:
Client 端使用JS 去发送交易
交易被验证后放入交易池内
miner 的程序从交易池根据你的手续费拿出交易
计算gas 跟使用evm 进行交易
进行ethash的计算挖矿
挖矿成功后进行整个链的广播
首先, Gas 就是你在以太坊进行交易的代价,他是为了让整个挖矿程序能够顺利运行而设计出来的机制。
他有几个目的:
1. 增加代价-让骇客部会无止尽的占用资源
2. 经济模型-可以让矿工因为逐利的关系去维持整个以太坊的运行
我们从miner 这只程序出发,来看看整个交易去计算GAS fee的流程到底是如何。
基本费
gas, err := IntrinsicGas(st.data, st.msg.AccessList(), contractCreation, homestead, istanbul)
在这只程序里面,他会先算你这笔交易的基本费,而你有没有呼叫合约的价格是不一样的,接下来,我们看到他会去计算你的data的量,这个data 其实指的就是你的contract 的内容,所以当你调用不同的contract的时候,你会有不一样的费用。
值得一提的是Optional access lists 的费用,他会将你在合约所要使用的storage 的地址先标注先算钱,然后等到再次使用的时候就变得便宜,这是因为有一些攻击的手法是大量的使用这些storage 造成你的大量的读写硬碟使得出块的速度变慢,所以运用这种方式去抵挡。有兴趣的朋友可以参考, EIP 2930。
执行费用
if contractCreation { ret, _, st.gas, vmerr = st.evm.Create(sender, st.data, st.gas, st.value) } else { // Increment the nonce for the next transaction st.state.SetNonce(msg.From(),st.state.GetNonce( sender.Address()) +1) ret, st.gas, vmerr = st.evm.Call(sender, st.to(), st.data, st.gas, st.value) }在执行evm 之前,他已经先把刚刚的gas 先扣掉了,也就是说,就算后来的evm 没有执行成功,这笔钱也扣掉了。接下来,你会有两个选择,你是要创建合约还是执行交易,这两者扣的费用也不一样,创建合约还需要多一个你合约创建的费用。
这是其中一个指令:
CALLDATACOPY: { execute: opCallDataCopy, constantGas: GasFastestStep, dynamicGas: gasCallDataCopy, minStack: minStack(3, 0), maxStack: maxStack(3, 0), memorySize: memoryCallDataCopy, },而当你在执行交易时,如果你是有执行合约的,每一个指令都会有constant fee 跟dynamic fee这个dynamic fee其实就是你的vm 在执行的时候,每一笔指令的费用,在我们的计算机理论里面,每一道指令他所要花费的时间跟代价是不一样的,所以当你使用了比较贵的指令的时候,理所当然,你就要付更多的费用。
结算:
在交易结束之后,他会将剩下的交易退还给你,然后把交易费转给矿工当作奖励,整个交易的计算就到这边为止。
st.refundGas() st.state.AddBalance(st.evm.Context.Coinbase, new(big.Int).Mul(new(big.Int).SetUint64(st.gasUsed()), st.gasPrice))
相关阅读
-
今晚国内油价迎年内第七涨:加满一箱多花 15 元金融科技前沿 2026-05-08 10:58:05
-
microsoft edge自动翻译怎么打开?microsoft edge自动翻译打开方法资讯百科 2026-05-08 10:52:25
-
Win11 优化教程:3 秒释放 CPU 性能,大幅提升应用响应速度告别卡顿金融科技前沿 2026-05-08 10:52:09
-
加密寒冬生存指南:2018 与 2022 熊市五大教训与投资智慧区块链快讯 2026-05-08 10:48:37
-
烂尾楼钢筋长出嫩芽?当事人回应:外部无种子,房屋尚余两层未建金融科技前沿 2026-05-08 10:46:59
-
男子高反晕厥导游掐人中急救反被扇耳光,当事人回应真相深度解读 2026-05-08 10:46:42
-
比特币怎么买?2024 新手入门 BTC 完整指南,手把手教你从 0 到 1 买入比特币区块链快讯 2026-05-08 10:41:32
-
网友玩疯!照片秒变 3 岁儿童画,只需一句 AI 提示词深度解读 2026-05-08 10:40:55
-
6G 技术加速攻关:工信部批复 6GHz 频段实验频率许可金融科技前沿 2026-05-08 10:40:11
-
最后冲刺!白宫力拼 7 月 4 日前通过《CLARITY 法案》:加密监管新里程碑区块链快讯 2026-05-08 10:38:45