Solidity
EVM 是否實時計算交易使用的氣體?
EVM 是否在執行操作碼時即時計算用於執行交易的氣體?因此,如果程式碼中存在滿足條件的分支,則使用額外的氣體來執行從該分支跟隨的操作碼塊。
我認為這裡有兩個相關的概念:gasLimit 和 gasUsed。
當您發送交易時,您指定一個 gasLimit。預設為 21,000,但可以手動修改,也可以通過錢包修改。GasLimit 是您(發件人)願意在交易上花費的總金額。
GasUsed 是處理交易所花費的實際氣體量。這是由礦工在執行時計算的。只要 gasUsed 小於 gasLimit,交易就會成功,發送方會得到剩餘的 gas 返回。如果 gasUsed 超過 gasLimit,則交易失敗。
所以是的,如果一個事務邏輯分支並跳過一堆操作碼,那麼與邏輯通過更長的路徑相比,您將使用更少的氣體。