Back to top
  • 공유 Share
  • 인쇄 Print
  • 글자크기 Font size
URL copied.

Geth เสนอแก้ประเมินแก๊ส ทดสอบซ้ำ 64 จาก 67 กรณีได้ผล แต่ยังเป็นแค่ร่าง

ภาพที่สร้างโดย AI แสดงหน้าจอสมาร์ตโฟนที่ตรวจสอบสถานะแต่ละขั้นของธุรกรรม / TokenPost.ai

มีผู้เสนอแนวทางแก้ปัญหาการประเมินค่าแก๊สของ Geth ซึ่งเป็นไคลเอนต์ฝั่งประมวลผลของอีเธอเรียม(ETH) หลังมีผู้ชี้ว่าระบบอาจมองไม่เห็นกรณีที่ธุรกรรมขึ้นสถานะ 'สำเร็จ' แต่งานภายในสมาร์ตคอนแทรกต์กลับล้มเหลว ลิมิตแก๊สที่กระเป๋าเงินเสนอมาอาจพอให้ธุรกรรมทั้งก้อนจบได้ แต่ไม่พอสำหรับงานภายในที่ผู้ใช้ต้องการจริง

เมื่อวันที่ 8 มีการเปิด PR #36084 เป็นฉบับร่างในคลังโค้ดของ Geth โดยอธิบายว่าปัจจุบันการประเมินแก๊สอาศัยผลสำเร็จของธุรกรรมทั้งก้อนเป็นเกณฑ์ในการหาลิมิต ขณะที่เอกสาร Execution APIของอีเธอเรียมก็นิยามเมธอด eth_estimateGas ว่าเป็นการประเมินปริมาณแก๊สที่ต้องใช้จนธุรกรรมเสร็จสมบูรณ์ ข้อเสนอนี้จึงเพิ่มผลการทำงานของการเรียกภายในเข้าไปในเกณฑ์ดังกล่าว

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

ข้อเสนอนี้เข้มงวดขึ้นกับเงื่อนไขความสำเร็จของการประเมินแก๊ส ลิมิตที่มีการเรียกภายในหรือการสร้างคอนแทรกต์ล้มเหลวมากกว่าการรันที่ใช้ลิมิตสูงเป็นฐานเปรียบเทียบ จะไม่ถูกรับเป็นค่าประเมิน ส่วนการเรียกที่ล้มเหลวเสมอแม้ให้แก๊สมากพอ ก็ถูกออกแบบไม่ให้ดันค่าประเมินสูงขึ้นไปเรื่อย ๆ เมื่อเทียบกับการรันฐาน นอกจากนี้ยังมี PR #971 ของสเปก Execution API ที่เสนอกฎในทิศทางเดียวกัน และเปิดเป็นฉบับร่างเช่นกัน

ผู้เสนอนำธุรกรรมบนเมนเน็ต 432 รายการมารันซ้ำใน EELS ด้วยกฎของ Amsterdam ในจำนวนนี้มี 67 รายการที่แก๊สสำหรับการเรียกภายในอาจไม่พอ และข้อเสนอแก้ได้ 64 รายการ โดยค่ากลางของลิมิตแก๊สในกลุ่มนี้เพิ่มขึ้น 4% ส่วนค่าประเมินที่ไม่มีปัญหา 254 รายการไม่เปลี่ยนแปลง และมี 3 รายการที่ข้อเสนอยังตรวจไม่พบ ทั้งหมดนี้เป็นผลการทดสอบซ้ำของผู้เสนอเอง ไม่ได้หมายความว่าธุรกรรมทั้งหมดหรือกระเป๋าเงินจริงจะดีขึ้นในสัดส่วนเดียวกัน

ประเด็นนี้เกี่ยวข้องกับ EIP-8037 ในอัปเกรด Glamsterdam ด้วย โดย EIP-8037 เสนอให้คิดต้นทุนของการสร้างสถานะใหม่เป็นมิติแก๊สแยกต่างหาก ผู้เขียนข้อเสนอแก้ไขอธิบายว่า เมื่อใช้กฎการคืนแก๊สสถานะ รูปแบบที่การเรียกภายในล้มเหลวแล้วคอนแทรกต์ชั้นบนไปทำทางเลือกสำรองต่ออาจพบบ่อยขึ้น ก่อนหน้านี้เมื่อวันที่ 6 มูลนิธิอีเธอเรียม(Ethereum Foundation) ได้ขอให้นักพัฒนาสมาร์ตคอนแทรกต์และผู้ตรวจสอบทบทวน 8 สมมติฐานด้านการคิดค่าแก๊สที่จะเปลี่ยนไปใน Glamsterdam

ลิมิตแก๊สที่สูงขึ้นไม่ได้ทำให้ค่าธรรมเนียมเพิ่มในอัตราเดียวกัน ลิมิตคือปริมาณแก๊สสูงสุดที่ธุรกรรมใช้ได้ ส่วนเอกสารแก๊สอย่างเป็นทางการของอีเธอเรียมอธิบายว่าค่าธรรมเนียมจริงคือปริมาณแก๊สที่ใช้จริงคูณกับราคาต่อหน่วย ดังนั้นค่ากลางลิมิตที่เพิ่ม 4% ในการทดสอบจึงตีความว่าค่าธรรมเนียมเพิ่ม 4% ไม่ได้

ณ วันที่ 9 ทั้งข้อเสนอแก้ไขของ Geth และสเปก Execution API ยังเป็นฉบับร่าง หน้า PR ของ Geth ไม่มีบันทึกการดีพลอยของบรานช์ดังกล่าว และยังไม่มีการเปิดเผยกำหนดการรวมโค้ดหรือเผยแพร่

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

<Copyright ⓒ TokenPost, unauthorized reproduction and redistribution prohibited>

Most Popular

Other related articles

Comment 0

Comment tips

Great article. Requesting a follow-up. Excellent analysis.

0/1000

Comment tips

Great article. Requesting a follow-up. Excellent analysis.
1