ข้ามไปยังเนื้อหา

ค่าธรรมเนียมลำดับความสำคัญของ Ethereum

คู่มือเชิงปฏิบัติเรื่องค่าธรรมเนียมลำดับความสำคัญ EIP-1559 เพดานค่าธรรมเนียม ราคา gas ที่เกิดขึ้นจริง แรงจูงใจในการบรรจุ การประมาณ การแทนที่ และการตรวจสอบใบเสร็จ

อัปเดต

เนื้อหานี้มีไว้เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำด้านธุรกรรม ความปลอดภัย หรือการลงทุน ค่าธรรมเนียมและการบรรจุขึ้นอยู่กับเชน ประเภทธุรกรรม สภาวะบล็อก และพฤติกรรมของวอลเล็ต RPC รีเลย์ ผู้สร้างบล็อก และผู้ตรวจสอบ

คำตอบโดยตรง

บน Ethereum ค่าธรรมเนียมลำดับความสำคัญหรือทิปคือจำนวนต่อหน่วย gas สำหรับการดำเนินการที่เหลือให้ผู้รับค่าธรรมเนียมของบล็อก หลังจากโปรโตคอลเผาค่าธรรมเนียมพื้นฐานแล้ว ในธุรกรรม EIP-1559 แบบ type-2 ค่า maxPriorityFeePerGas เป็นเพียงเพดาน ค่าธรรมเนียมลำดับความสำคัญที่เกิดขึ้นจริงต่อ gas คือ min(maxPriorityFeePerGas, maxFeePerGas - baseFeePerGas) และราคา gas ที่เกิดขึ้นจริงคือค่าธรรมเนียมพื้นฐานบวกค่านั้น

ทิปที่สูงและแข่งขันได้อาจเพิ่มโอกาสในการถูกบรรจุอย่างทันท่วงที แต่ไม่รับประกันบล็อกถัดไป ลำดับเฉพาะ หรือความสำเร็จของการดำเนินการ ธุรกรรมยังต้องถูกต้อง เพดานรวมต้องครอบคลุมค่าธรรมเนียมพื้นฐานของบล็อก และผู้สร้างหรือผู้ตรวจสอบอาจพิจารณาโฟลว์ส่วนตัว บันเดิล MEV นโยบายเฉพาะ และข้อจำกัดอื่น คำศัพท์และกฎของเชนอื่นกับ L2 ต่างกัน จึงไม่ควรใช้สูตร Ethereum โดยไม่ตรวจสอบเครือข่ายนั้น

ค่าธรรมเนียมเครือข่าย
0.000462 native
เทียบเท่ากับเฟียต
$1.39
ค่าธรรมเนียมพื้นฐาน
22 gwei

ผลลัพธ์เป็นการประมาณทางการศึกษา โดยไม่รวมกฎของสถานที่ ภาษี เวลาแฝง พฤติกรรมของ Oracle และพารามิเตอร์เฉพาะโปรโตคอลอื่นๆ เว้นแต่จะแสดงไว้

กลไกการทำงาน

  1. ระบุเชน ประเภทธุรกรรม ผู้ส่ง nonce calldata ที่ต้องการ ขีดจำกัด gas หัวเชนปัจจุบัน และเส้นทางส่ง ธุรกรรม Type-2 มี maxPriorityFeePerGas และ maxFeePerGas ส่วนธุรกรรมเดิมมี gasPrice ค่าเดียว โดยส่วนที่สูงกว่าค่าธรรมเนียมพื้นฐานจะเป็นค่าลำดับความสำคัญที่เกิดขึ้นจริงเมื่อบรรจุหลัง EIP-1559
  2. ประมาณตามสภาวะแทนการคัดลอกทิปคงที่ วอลเล็ตหรือ RPC อาจใช้บล็อกล่าสุด อุปสงค์ที่รออยู่ และ eth_feeHistory เปอร์เซ็นไทล์ reward ของมันอธิบายค่าลำดับความสำคัญในอดีตที่ถ่วงน้ำหนักด้วย gas ที่ใช้ ไม่ใช่คำรับประกันสำหรับบล็อกถัดไป
  3. ตั้งเพดานสองค่าแยกกัน maxPriorityFeePerGas จำกัดทิปที่ขอ ส่วน maxFeePerGas จำกัดผลรวมค่าธรรมเนียมพื้นฐานกับทิป gas ที่ไม่ใช้และส่วนเพดานที่ไม่ใช้จะไม่ถูกเรียกเก็บเพียงเพราะได้อนุมัติไว้
  4. สำหรับบล็อกที่พิจารณาต้องมี maxFeePerGas >= baseFeePerGas จากนั้นคำนวณ effectivePriorityFeePerGas = min(maxPriorityFeePerGas, maxFeePerGas - baseFeePerGas) และ effectiveGasPrice = baseFeePerGas + effectivePriorityFeePerGas
  5. มองทิปเป็นแรงจูงใจในการบรรจุ ไม่ใช่สัญญาจัดลำดับ ผู้สร้างบล็อกอาจปรับมูลค่ารวม บันเดิล และข้อจำกัดความถูกต้องให้เหมาะสม แทนการเรียงธุรกรรมสาธารณะทั้งหมดตามทิป ทิปศูนย์หรือต่ำอาจถูกบรรจุ ส่วนทิปสูงอาจต้องรอหรือล้มเหลว
  6. หลังบรรจุ ให้ตรวจสอบใบเสร็จกับบล็อก บันทึก gasUsed, effectiveGasPrice ในใบเสร็จ, baseFeePerGas ของบล็อก, สถานะ, แฮชบล็อก และความลึกการยืนยัน ค่าดำเนินการคือ gasUsed * effectiveGasPrice และส่วนลำดับความสำคัญคือ gasUsed * (effectiveGasPrice - baseFeePerGas)
  7. หากธุรกรรมยังรอดำเนินการ ให้ประเมินเพดานค่าธรรมเนียมพื้นฐานและเส้นทางใหม่ก่อนแทนที่ การแทนที่จากผู้ส่งเดียวกันและ nonce เดียวกันเป็นนโยบายไคลเอนต์กับพูล มักต้องเพิ่มหลายช่องค่าธรรมเนียมและทำให้เกิดการแข่งขัน ปุ่มยกเลิกในวอลเล็ตย้อนธุรกรรมที่บรรจุแล้วไม่ได้

ตัวอย่างการคำนวณ

  • ทิปต่ำกว่าเพดานทั้งสอง. ใช้ gas 70,000 ค่าธรรมเนียมพื้นฐาน 25 gwei ค่าลำดับความสำคัญสูงสุด 3 gwei และค่าธรรมเนียมสูงสุด 40 gwei ค่าลำดับความสำคัญที่เกิดขึ้นจริงคือ min(3, 40 - 25) = 3 gwei และราคา gas คือ 28 gwei ค่าดำเนินการ 70,000 * 28 gwei = 0.001960 ETH แบ่งเป็น 0.001750 ETH ที่ถูกเผาและ 0.000210 ETH ที่ให้แก่ผู้รับเป็นส่วนลำดับความสำคัญ
  • เพดานรวมเป็นข้อจำกัด. คงเพดานไว้ที่ 3/40 gwei แต่ให้ค่าธรรมเนียมพื้นฐานของบล็อกเพิ่มเป็น 38 gwei ค่าลำดับความสำคัญลดเป็น min(3, 40 - 38) = 2 gwei ราคา gas จึงเป็น 40 gwei หากค่าธรรมเนียมพื้นฐานเป็น 41 gwei ธุรกรรมจะบรรจุไม่ได้ภายใต้เพดาน 40 gwei แม้ทิปที่ขอจะสูง
  • ค่าประมาณไม่ใช่การรับประกัน. หากเปอร์เซ็นไทล์ eth_feeHistory ล่าสุดแนะนำ 2 gwei ค่านั้นเป็นเพียงจุดเริ่มต้น อุปสงค์ที่พุ่งขึ้น บันเดิลส่วนตัว มุมมองจำกัดของ RPC หรือนโยบายผู้สร้างอาจเปลี่ยนผลลัพธ์ ตรวจสอบใบเสร็จจริงแทนการถือว่าค่าประมาณเป็นคำรับประกันบริการ

ความเสี่ยง

  • ใช้เชน โทเค็นค่าธรรมเนียม ประเภทธุรกรรม หรือหน่วยอย่าง wei, gwei และ ETH ผิด
  • มอง maxPriorityFeePerGas เป็นจำนวนที่ต้องจ่ายแน่นอน
  • ลืมว่าค่าธรรมเนียมพื้นฐานที่เพิ่มขึ้นอาจบีบทิปจริงหรือทำให้ธุรกรรมไม่เข้าเกณฑ์ภายใต้ maxFeePerGas
  • สมมติว่าทิปที่มองเห็นสูงสุดรับประกันอันดับแรกหรือบล็อกถัดไป
  • พึ่งค่าประมาณเก่าจากวอลเล็ต RPC หรือประวัติค่าธรรมเนียมขณะอุปสงค์เปลี่ยนเร็ว
  • จ่ายเกินเพราะค่าเริ่มต้นเชิงรุกหรือสับสนเพดานกับต้นทุนจริง
  • เชื่อว่าทิปสูงแก้ calldata ที่ไม่ถูกต้อง gas ไม่พอ revert เส้นตายหมดอายุ หรือสัญญาอันตรายได้
  • มองข้ามรีเลย์ส่วนตัว บันเดิล MEV การเซ็นเซอร์ และนโยบายผู้สร้างหรือผู้ตรวจสอบ
  • แทนที่ nonce ผิด ไม่ผ่านกฎเพิ่มราคาของพูล หรือส่งธุรกรรมที่โอนมูลค่าและขัดแย้งกัน
  • อ่านสถานะรอดำเนินการเป็นความจริงทั่วโลก หรือถือการยืนยันครั้งเดียวเป็นความเป็นที่สุด
  • ใช้สูตรทิป Ethereum กับ L2 หรือเชนอื่นที่มีองค์ประกอบและผู้รับต่างกัน

ความเข้าใจผิดที่พบบ่อย

  • จ่ายค่าลำดับความสำคัญสูงสุดเสมอ. ค่านี้เป็นเพดาน และเพดานรวมอาจลดทิปที่เกิดขึ้นจริง
  • ทิปสูงกว่ารับประกันความสำเร็จ. อาจเพิ่มความสามารถในการแข่งขัน แต่ไม่รับประกันลำดับ การดำเนินการ หรือความเป็นที่สุด
  • ค่าธรรมเนียมสูงสุดบวกเพิ่มจากค่าพื้นฐานและทิป. สำหรับ gas แบบ type-2 มันคือเพดานที่ครอบคลุมทั้งสองส่วน
  • gas ที่ไม่ใช้หรือส่วนเพดานที่เหลือถูกใช้ไป. ค่าใช้จ่ายจริงใช้ gas ในใบเสร็จและราคาที่เกิดขึ้นจริง
  • ทุกเครือข่ายใช้กลไกของ Ethereum. L2 และเชนอื่นอาจมีตลาดค่าธรรมเนียม นโยบายซีเควนเซอร์ และผู้รับเพิ่มเติมหรือแตกต่างกัน

หัวข้อที่เกี่ยวข้อง

แหล่งข้อมูล

การนำทาง

ค้นหาในวิกิ...