จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้
คำตอบโดยตรง
Gas คือหน่วยบัญชีของโปรโตคอลสำหรับงานดำเนินการและการเข้าถึง state ส่วนค่าธรรมเนียม Gas คือจำนวนเงินที่คำนวณจากหน่วย Gas ที่ถูกคิดค่าบริการคูณด้วยราคาต่อหน่วย บน Ethereum ที่ใช้ EIP-1559 มี effectiveGasPrice = min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas) ค่าธรรมเนียมดำเนินการเท่ากับ gasUsed * effectiveGasPrice ส่วน base fee จะถูกเผา และส่วน priority fee จะจ่ายผ่านเส้นทางผู้รับค่าธรรมเนียมของบล็อก gas limit และเพดานค่าธรรมเนียมเป็นการอนุมัติค่าสูงสุด ไม่ใช่จำนวนที่ต้องจ่ายโดยอัตโนมัติ
ปริมาณ Gas ที่ใช้จริงขึ้นอยู่กับ calldata, เส้นทาง opcode, การขยายหน่วยความจำ, การเข้าถึง state แบบ cold และ warm, การเปลี่ยน storage, การเรียกซ้อน, precompile, ผลสำเร็จหรือความล้มเหลว, refund และ fork ที่ใช้งานอยู่ ราคาที่สูงขึ้นอาจเพิ่มความสามารถในการแข่งขันเพื่อบรรจุธุรกรรม แต่แก้ REVERT, gas limit ไม่พอ, สัญญาที่เป็นอันตราย, ราคาเสนอที่ล้าสมัย หรือ calldata ผิดไม่ได้ ธุรกรรม blob และ L2 หลายระบบยังมีค่าธรรมเนียมข้อมูลหรือโปรโตคอลแยกต่างหากซึ่งไม่ควรถือรวมเป็น Gas ของ EVM โดยอัตโนมัติ
- เทียบเท่ากับเฟียต
- $1.39
- ค่าธรรมเนียมพื้นฐาน
- 22 gwei
ผลลัพธ์เป็นการประมาณทางการศึกษา โดยไม่รวมกฎของสถานที่ ภาษี เวลาแฝง พฤติกรรมของ Oracle และพารามิเตอร์เฉพาะโปรโตคอลอื่นๆ เว้นแต่จะแสดงไว้
กลไกการทำงาน
- ระบุเชน, fork, บล็อกหรือ state tag, ประเภทธุรกรรม, ผู้ส่ง, nonce, ปลายทาง, value, calldata, access list, ช่อง blob, สินทรัพย์ที่ใช้จ่าย Gas และสกุลค่าธรรมเนียมให้ชัดเจน บันทึกว่าราคาเสนอหมายถึงธุรกรรม L1, การดำเนินการ L2, การเผยแพร่ข้อมูล, การถอน หรือเส้นทางแบบประกอบ
- สร้าง intrinsic gas ก่อนดำเนินการใหม่จาก transaction envelope, ต้นทุนไบต์ calldata, ค่าการสร้างสัญญาและ access list และ overhead เฉพาะประเภท หาก gas limit ต่ำกว่า intrinsic gas หรือผู้ส่งไม่ผ่านการตรวจสอบต้นทุนสูงสุดของโปรโตคอล ธุรกรรมจะถูกปฏิเสธก่อนการดำเนินการที่บรรจุในบล็อก ไม่ใช่ถูกบรรจุแล้วจึงย้อนกลับ
- ติดตามการดำเนินการตาม fork เป้าหมาย วัดต้นทุนแบบเปลี่ยนแปลงของ opcode, การขยายหน่วยความจำ, บัญชีหรือช่อง storage แบบ cold และ warm,
SSTORE, การส่งต่อ Gas ให้การเรียก, การโอน value, ค่า precompile, log และ refund ฟังก์ชัน ABI เดียวกันอาจวิ่งคนละแขนงและใช้ Gas ต่างกันเมื่อ state ต่างกัน - แยกผลลัพธ์ออกจากกัน การดำเนินการสำเร็จจะยืนยันผลของมัน
REVERTจะย้อนผลในขอบเขตที่ล้มเหลวและอาจคืน Gas ที่เหลือใน call frame ส่วนการหยุดแบบผิดปกติเพราะ Gas หมดมักใช้ Gas ที่ให้แก่ frame นั้นทั้งหมด ความล้มเหลวระดับบนสุดที่ถูกบรรจุยังใช้ nonce ของธุรกรรมและเสียค่าธรรมเนียม Gas แม้ state ของสัญญา การโอน value และ log จะถูกย้อนกลับ - คำนวณราคาของ Gas สำหรับดำเนินการ สำหรับธุรกรรม type 2 ให้คำนวณ effective gas price จาก base fee, เพดาน priority fee และเพดานรวม แล้วแยก Gas ที่คิดค่าบริการเป็น base fee ที่ถูกเผากับ priority fee แยก Gas ที่ไม่ได้ใช้และส่วนเพดานค่าธรรมเนียมที่ไม่ได้จ่ายออกจาก gas refund ของโปรโตคอลซึ่งเกิดจากการล้าง state ที่เข้าเกณฑ์และถูกจำกัดด้วย refund cap ที่ใช้งานอยู่
- คำนวณตลาดค่าธรรมเนียมอื่นแยกต่างหาก ธุรกรรม blob จ่ายค่า Gas สำหรับดำเนินการบวก
blobGasUsed * blobGasPriceภายใต้maxFeePerBlobGasโดย blob base fee มีเส้นทางปรับราคาแยกต่างหาก ค่าธรรมเนียมผู้ใช้ L2 อาจรวมการดำเนินการ L2, ค่าข้อมูล L1 ที่บีบอัดหรือค่า blob, ค่าผู้ดำเนินการหรือโปรโตคอล และส่วนเพิ่ม โดยสูตรและตัวคูณขึ้นอยู่กับระบบและการอัปเกรดนั้น - กระทบยอดค่าประมาณ การบรรจุ และ receipt ก่อนลงนาม ให้ตรวจยอดคงเหลือเทียบกับ value บวกค่าธรรมเนียมสูงสุดที่อนุมัติ จำลองบน state ที่ระบุ และกำหนดเพดานค่าธรรมเนียมอย่างมีขอบเขต หลังบรรจุ ให้บันทึก gas limit, gas used ใน receipt, effective price, base fee, priority fee, ผลของ refund, blob gas, ช่องค่าธรรมเนียม L2, status และการเปลี่ยนยอดคงเหลือ พร้อมแยกความคลาดเคลื่อนของประมาณการ การแทนที่ และ finality ออกจากกัน
ตัวอย่างคำนวณ
- ความสำเร็จของ type 2 และเพดานค่าธรรมเนียม gas limit คือ
120,000, gas used คือ70,000, base fee คือ25 gwei, max priority fee คือ3 gweiและ max fee คือ40 gweiดังนั้น effective price คือmin(40, 25 + 3) = 28 gweiค่าธรรมเนียมจริงคือ70,000 * 28 gwei = 0.001960 ETHแบ่งเป็น0.001750 ETHที่ถูกเผาและ0.000210 ETHเป็น priority fee การอนุมัติค่าดำเนินการสูงสุดคือ120,000 * 40 gwei = 0.004800 ETHส่วน50,000 gasที่ไม่ได้ใช้และส่วนเพดานที่ไม่ได้จ่ายไม่ใช่ refund จากการล้าง state ของโปรโตคอล - REVERT เทียบกับ Gas หมด การเรียกสองรายการที่ถูกบรรจุต่างมี gas limit
100,000และ effective price30 gweiการเรียก A ทำREVERTหลัง gas used ใน receipt ถึง60,000จึงเสีย60,000 * 30 gwei = 0.001800 ETHการเรียก B ใช้ gas limit ของธุรกรรมหมด จึงเสีย100,000 * 30 gwei = 0.003000 ETHความล้มเหลวระดับบนสุดทั้งสองย้อนผลของสัญญาและใช้ nonce ของผู้ส่ง แต่ REVERT อาจเก็บ Gas ที่เหลือไว้ได้ ในขณะที่ Gas หมดทำไม่ได้ - เพดาน refund ในตัวอย่างสอนที่จำกัดตาม fork ของ EIP-3529 การดำเนินการใช้
100,000 gasก่อน refund และสร้าง refund counter30,000 gasจำนวน refund สูงสุดที่ใช้ได้คือ100,000 / 5 = 20,000 gasจึงคิดค่าบริการจาก100,000 - 20,000 = 80,000 gasที่20 gweiค่าธรรมเนียมคือ0.001600 ETHแทน0.002000 ETHประหยัด0.000400 ETHโดยกฎ refund และการดำเนินการที่เข้าเกณฑ์อาจเปลี่ยนตาม fork - ตลาดค่าธรรมเนียม blob แยกต่างหาก ธุรกรรม blob สมมติใช้ Gas สำหรับดำเนินการ
100,000ที่20 gweiและมี 2 blob เมื่อใช้131,072 blob gas/blobจะมี blob gas used262,144และที่ blob gas price5 gweiค่า blob เท่ากับ262,144 * 5 gwei = 0.00131072 ETHค่าดำเนินการคือ0.002000 ETHรวมค่าธรรมเนียมโปรโตคอล0.00331072 ETHค่า5 gweiเป็นเพียงสมมติฐานของตัวอย่าง และค่า blob ไม่ใช่ priority tip ของ validator หรือค่าธรรมเนียมตลอดเส้นทางทั้งหมดของผู้ใช้ L2
ความเสี่ยง
- ใช้เชน, fork, สินทรัพย์ Gas, ประเภทธุรกรรม หรือสกุลค่าธรรมเนียมผิด
- สับสนระหว่างหน่วย Gas, wei, gwei, ETH และการแปลงเป็นเงินทั่วไป
- ถือว่า gas limit คือค่าธรรมเนียมที่คาดหรือค่าจริง
- ไม่ผ่านการตรวจ intrinsic gas หรือต้นทุนสูงสุดก่อนดำเนินการ
- พึ่งค่าประมาณเก่าหลัง state, base fee หรือ calldata เปลี่ยน
- ตั้ง gas limit ต่ำกว่าที่แขนงดำเนินการจริงต้องใช้
- คิดว่าราคา Gas สูงขึ้นสามารถป้องกัน REVERT ของสัญญาได้
- สับสนระหว่าง REVERT, Gas หมด, opcode ไม่ถูกต้อง และการปฏิเสธก่อนดำเนินการ
- ไม่พบความล้มเหลวของ child call ที่ถูกจัดการ แม้ status ระดับบนสุดเป็น
1 - คิดราคาการเข้าถึง state แบบ cold และ warm ผิด หรือใช้ access list ไม่ครบ
- ละเลยการขยายหน่วยความจำ การส่งต่อ Gas, precompile หรือค่า log
- ใช้กฎ refund ของ storage ที่ล้าสมัยหรือเกิน refund cap
- ถือว่า Gas ที่ไม่ได้ใช้หรือส่วนที่เหลือของเพดานค่าธรรมเนียมเป็น gas refund ของโปรโตคอล
- ตั้ง max fee ต่ำกว่า base fee ของบล็อกที่บรรจุ
- จ่าย priority fee มากเกินไปโดยไม่เข้าใจนโยบาย builder หรือ sequencer
- ไม่มีสินทรัพย์ Gas ประจำเชนแม้จะถือสินทรัพย์อื่น
- ละเลย blob gas, blob fee cap หรือค่าธรรมเนียม data availability
- ถือว่าสูตรการดำเนินการ ข้อมูล ตัวคูณ และค่าผู้ดำเนินการของ L2 หนึ่งใช้ได้กับทุก L2
- ละเลยการแข่งขันของ replacement, nonce, ธุรกรรมที่ถูกทิ้ง และการกันยอดคงเหลือ
- ถือว่าธุรกรรมที่จ่ายเงินหรือสำเร็จเป็นหลักฐานว่าสัญญาปลอดภัยหรือมี finality
ความเข้าใจผิดที่พบบ่อย
- Gas คิดเป็นร้อยละของ value ที่โอน
- การเพิ่ม gas limit ทำให้จำนวนที่ถูกเรียกเก็บเพิ่มขึ้นเสมอ
- max fee หรือ priority fee ที่สูงรับประกันว่าการดำเนินการจะสำเร็จ
- การอนุมัติที่ไม่ได้ใช้ทั้งหมดกับ refund จากการล้าง state เป็นกลไกเดียวกัน
- ค่าธรรมเนียม L2 เท่ากับ Gas ของ EVM ในระบบเท่านั้น และ blob gas คือ Gas สำหรับดำเนินการทั่วไป
หัวข้อที่เกี่ยวข้อง
แหล่งข้อมูล
- Ethereum gas and fees: technical overview - Ethereum.org (เข้าถึง: 2026-08-12)
- Transactions - Ethereum.org (เข้าถึง: 2026-08-12)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals (เข้าถึง: 2026-08-12)
- EIP-2929: Gas cost increases for state access opcodes - Ethereum Improvement Proposals (เข้าถึง: 2026-08-12)
- EIP-3529: Reduction in refunds - Ethereum Improvement Proposals (เข้าถึง: 2026-08-12)
- EIP-4844: Shard Blob Transactions - Ethereum Improvement Proposals (เข้าถึง: 2026-08-12)
- Execution Engine - OP Stack Specification (เข้าถึง: 2026-08-12)
- Transaction fees on OP Mainnet - Optimism Documentation (เข้าถึง: 2026-08-12)