ทำไมค่าธรรมเนียมน้ำมันของ Ethereum ถึงลดลงอย่างรวดเร็ว?
คำนำ: เมื่อวันที่ 25 เมษายน ข้อมูลแสดงให้เห็นว่าค่าธรรมเนียมก๊าซของ Ethereum ลดลงประมาณ 50gwei ซึ่งต่ำที่สุดนับตั้งแต่ปี 2021 ก่อนหน้านี้ เนื่องจากค่าธรรมเนียมก๊าซที่เพิ่มขึ้นอย่างต่อเนื่อง ค่าธรรมเนียมการทำธุรกรรมบนเครือข่ายเมื่อเข้าใกล้ 1,500gwei เมื่อเร็ว ๆ นี้ ค่าธรรมเนียมก๊าซของ Ethereum ลดลงอย่างรวดเร็ว และสาเหตุอาจเกี่ยวข้องกับการเพิ่มขึ้นของ Block Gas Limit ใน Ethereum เมื่อวันที่ 22 เมษายน Ethereum ได้เพิ่ม Block Gas Limit จากประมาณ 12.5 ล้าน Gwei เป็น 15 ล้าน Gwei เพิ่มขึ้นประมาณ 20% แล้วปัจจัยใดบ้างที่จะส่งผลต่อค่าธรรมเนียมแก๊สของ Ethereum? บทความนี้อาจให้คำตอบแก่คุณได้
หมายเหตุ: บทความนี้เผยแพร่ครั้งแรกเมื่อวันที่ 23 กันยายน 2020 และข้อมูลบางส่วนเป็นข้อมูลปัจจุบัน เมื่ออ่าน โปรดทราบว่าข้อมูลอาจมีการเปลี่ยนแปลงอย่างมีนัยสำคัญ ณ วันที่เผยแพร่
เขียนโดย: 0x88, Rhythm BlockBeats
เมื่อ Uniswap แจกจ่ายเงินไปยังที่อยู่ของผู้ใช้มากกว่า 200,000 ที่อยู่ หลายคนอาจคิดว่า "ค่าน้ำมันนี้สูงเกินไป"
วันนั้นเป็นวันที่น่าจดจำในประวัติศาสตร์ของ Ethereum ข้อเสนอแก๊สสูงถึง 1,000 GWEI ซึ่งเป็นจุดสูงสุดในประวัติศาสตร์ในเวลานั้น
เช้าวันประวัติศาสตร์และวันสิ้นลมแห่งชาติ หลายคนเจอปัญหาค่าน้ำมัน ค่าน้ำมันแพงไม่ใช่ปัญหาอีกต่อไป ปัญหาคือค่าน้ำมันสูงสุดที่แนะนำเข้ากระเป๋าไม่สามารถขายได้ภายในเวลาที่กำหนด . Metamask ของทุกคนแสดงให้เห็นว่าพวกเขาทั้งหมดกำลังรอดำเนินการอยู่ และการวนเป็นวงกลมก็น่ารำคาญ
เหตุใดคุณจึงไม่สามารถใช้จำนวนค่าธรรมเนียมน้ำมันเริ่มต้น แต่ก็ยังไม่สามารถซื้อขายได้ทันที? บทความนี้จะอธิบายรายละเอียดเกี่ยวกับกลไกอัตราการทำธุรกรรมของ Ethereum และปัญหาที่พบในการเริ่มต้นการทำธุรกรรมบน Ethereum
ตรรกะของแก๊ส
เรื่องนี้ต้องเริ่มต้นด้วยบัญชี Ethereum ก่อน
มีบัญชีสองประเภทในเครือข่าย Ethereum บัญชีภายนอกและบัญชีสัญญา
บัญชีภายนอกคือบัญชีที่ใช้โดยผู้ใช้ ซึ่งควบคุมโดยเจ้าของคีย์ส่วนตัว บัญชีสัญญาหมายถึงสัญญาอัจฉริยะที่มีตรรกะของแอปพลิเคชันซึ่งควบคุมโดยรหัสสัญญา (มักเป็นเจ้าของโดยฝ่ายโครงการ) เมื่อผู้ใช้ใช้แอปพลิเคชัน DeFi พวกเขากำลังใช้บัญชีของตนเองเพื่อโต้ตอบกับสัญญาอัจฉริยะของโครงการ DeFi
บัญชีต่างๆ สามารถโต้ตอบได้ตามต้องการ สามารถโอนระหว่างกระเป๋าเงินได้ และสัญญายังสามารถโทรหากันได้ ทุกการโต้ตอบบนห่วงโซ่จำเป็นต้องใช้ปริมาณการคำนวณ ปริมาณของการคำนวณที่ใช้จะพิจารณาจากความยากในการคำนวณ และแก๊สเป็นหน่วยวัดของปริมาณการคำนวณ ตัวอย่างเช่น การเติมนั้นค่อนข้างง่ายและต้องใช้แก๊ส 3 แก๊ส ในขณะที่การดำเนินการแบ่งค่อนข้างซับซ้อนและต้องใช้แก๊ส 5 แก๊ส
ก๊าซแต่ละหน่วยมีราคาที่สอดคล้องกัน นั่นคือ ราคาก๊าซ (ราคาก๊าซ) และราคาก๊าซอยู่ในหน่วยเว่ย ผู้ใช้จำเป็นต้องซื้อ ETH เพื่อชำระค่าธรรมเนียมน้ำมัน 1 ETH=1e18 Wei และหน่วย GWei ที่เรามักจะเห็นคือ 1e9Wei โดยปกติแล้ว ซอฟต์แวร์กระเป๋าเงินจะประเมินค่าใช้จ่ายของการทำธุรกรรมที่ผู้ใช้จะเริ่มต้นผ่านราคาก๊าซในอดีต
เพื่อหลีกเลี่ยงการกระจุกตัวของโหนดทั้งหมด บล็อกเชนที่ใช้สถาปัตยกรรมแบบกระจายศูนย์จะจำกัดความจุของแต่ละบล็อกอย่างเข้มงวด ตัวอย่างเช่น Block Size Limit ของ Bitcoin และ Block Gas Limit ของ Ethereum ตอนที่ Rhythm BlockBeats เขียนบทความ ขีดจำกัดของ Block Gas ของแต่ละบล็อกใน Ethereum คือประมาณ 12,000,000 Gas ซึ่งเป็นขีดจำกัดบนของจำนวนการคำนวณทั้งหมดของแต่ละบล็อก โดยเฉลี่ยแล้ว บล็อกจะถูกสร้างขึ้นทุกๆ 15 วินาที เมื่อความต้องการในการทำธุรกรรมเกินความจุของบล็อก ผู้ใช้จำเป็นต้องแข่งขันกันเพื่อแย่งชิงทรัพยากรในแต่ละบล็อกเพื่อให้ธุรกรรมของพวกเขาได้รับการยืนยันในห่วงโซ่โดยเร็วที่สุด ในเวลานี้ ผู้ใช้จะเสนอราคาสำหรับ Gas และนักขุดจะจัดลำดับความสำคัญของธุรกรรมที่มีราคา Gas สูงเป็นบล็อกๆ
โดยปกติแล้วผู้ใช้จะเห็นว่ากระเป๋าเงินจะเพิ่มตัวเลือกในการปรับ Gas Limit เมื่อทำการโอน ต่างจาก Block Gas Limit ตรงที่ Gas Limit หมายถึงขีดจำกัดบนของการใช้ Gas ที่ผู้ใช้สามารถยอมรับได้สำหรับการทำธุรกรรม เนื่องจากบางครั้งอาจมีช่องโหว่ในสัญญา ธุรกรรมจะถูกคำนวณเป็นลูปไม่สิ้นสุด หากไม่มีการจำกัดแก๊ส ธุรกรรมนี้จะใช้ ETH ทั้งหมดในกระเป๋าเงินของผู้ใช้ ค่าธรรมเนียมที่นักขุดมักจะเรียกเก็บจะถูกชำระตามจำนวนการคำนวณที่ใช้เมื่อทำธุรกรรมจริง (Gas ที่ใช้โดยธุรกรรม) และ ETH ที่เหลืออยู่ใน Gas Limit จะถูกส่งคืนไปยังบัญชีของผู้ใช้
ดังนั้น เราสามารถสรุปได้ว่าปริมาณ ETH ที่ใช้ (ต้นทุน Ether) = ค่าธรรมเนียมการทำธุรกรรม (ค่าธรรมเนียมก๊าซ/ค่าธรรมเนียมการทำธุรกรรม) = ปริมาณก๊าซที่ใช้ในแต่ละธุรกรรม (ก๊าซที่ใช้โดยการทำธุรกรรม) * ราคาก๊าซ (ราคาก๊าซ)
หลังจากทำความเข้าใจกลไกค่าธรรมเนียมและประเภทบัญชีของ Ethereum แล้ว เรามาดูปัญหาที่ผู้ใช้มักพบเมื่อทำการซื้อขายกัน
ธุรกรรมที่รอดำเนินการ/เร่งรัด?
เมื่อใดก็ตามที่ผู้ใช้เริ่มทำธุรกรรม ธุรกรรมนั้นจะถูกใส่ลงในกลุ่มธุรกรรม (Mempool) ดังที่กล่าวไว้ข้างต้น นักขุดจะให้ความสำคัญกับการทำธุรกรรมบรรจุภัณฑ์ด้วยราคาก๊าซสูงสุดในกลุ่ม (ลักษณะการแสวงหาผลกำไรของนักขุด) ดังนั้นราคาก๊าซที่กำหนดโดยผู้ใช้จะกำหนดความเร็วที่ธุรกรรมถูกบรรจุและดำเนินการ เมื่อเครือข่ายแออัดเนื่องจากราคาน้ำมันที่พุ่งสูงขึ้น ธุรกรรมของผู้ใช้อาจรอการยืนยันเป็นเวลานาน เพื่อส่งธุรกรรมที่รอดำเนินการให้เร็วที่สุดเท่าที่จะเป็นไปได้ ผู้ใช้สามารถเลือกที่จะจ่าย Gas Price มากขึ้นเพื่อเร่งการทำธุรกรรม (บันทึกจังหวะ: เข้าใจว่าเป็นการให้รางวัลแก่นักขุดมากขึ้นเพื่อให้บรรลุวัตถุประสงค์ในการกระโดดเข้าคิว)
การซื้อขายแบบเร่งความเร็วทำงานอย่างไร? เพื่อให้เข้าใจตรรกะของการทำธุรกรรมแบบเร่งในรายละเอียดมากขึ้น เราจำเป็นต้องเข้าใจพารามิเตอร์อื่น: Nonce ธุรกรรมที่ส่งโดยแต่ละบัญชีจะมีหมายเลขธุรกรรมตามลำดับ -- Nonce เริ่มต้นจาก 0 และทุกครั้งที่เริ่มการโอน ค่า Nonce ของบัญชีจะเพิ่มขึ้น 1
เมื่อผู้ใช้ต้องการเร่งการทำธุรกรรม ในกระเป๋าเงิน Ethereum ผู้ใช้สามารถเลือกตัวเลือกการทำธุรกรรมแบบเร่งและจะต้องจ่ายค่าธรรมเนียม Gas ที่สูงขึ้น หลังจากที่ผู้ใช้ตกลงก็เท่ากับการเริ่มต้นการทำธุรกรรมใหม่ และ ธุรกรรมใหม่ เหมือนกับค่า Nonce ของธุรกรรมที่จะได้รับการยืนยัน
เนื่องจากกฎระเบียบของเครือข่าย Ethereum ค่า Nonce นั้นต่อเนื่องและไม่สามารถข้ามได้ และค่า Nonce ของแต่ละธุรกรรมในที่อยู่เดียวกันจะไม่สามารถทำซ้ำได้ ดังนั้น นักขุดจะทำการบรรจุธุรกรรมที่สร้างขึ้นใหม่หลังจากที่ธุรกรรมใหม่ถูกบรรจุ และยืนยันราคาก๊าซที่ต่ำกว่าก่อนหน้านี้ การทำธุรกรรมจะถูกยกเลิก
หากผู้ใช้ไม่ต้องการเร่งความเร็วของธุรกรรม ตราบใดที่ธุรกรรมยังไม่ถูกแยกออกจากกลุ่มธุรกรรม ผู้ใช้สามารถเลือกที่จะยกเลิกธุรกรรมเมื่อใดก็ได้ ตรรกะของการยกเลิกธุรกรรมจะเหมือนกับการเร่งธุรกรรม ผู้ใช้เริ่มต้นธุรกรรมด้วยราคาแก๊สที่สูงขึ้น แต่ Nonce เหมือนกับธุรกรรมที่จะได้รับการยืนยัน แต่จำนวนธุรกรรมกลายเป็น 0 ดังนั้นโดยพื้นฐานแล้ว ต้นทุน ของการยกเลิกธุรกรรมจะเหมือนกับต้นทุนในการเร่งธุรกรรม ต้นทุน
ควรสังเกตว่าก่อนที่การยืนยันธุรกรรมที่รอดำเนินการจะเสร็จสมบูรณ์ ธุรกรรมต่อไปนี้จำเป็นต้องรอในแถว ดังนั้นผู้ใช้จึงไม่ควรเริ่มธุรกรรมหลายรายการซ้ำๆ เนื่องจากเวลารอนาน
ธุรกรรมล้มเหลว (ล้มเหลว)
Rhythm BlockBeats พบว่าสาเหตุที่พบบ่อยที่สุดสำหรับการทำธุรกรรมล้มเหลวคือการทำธุรกรรมแก๊สหมด (Out of Gas) กล่าวคือ การคำนวณธุรกรรมนี้เกินค่า Gas Limit ที่ผู้ใช้กำหนด โดยทั่วไป ในกรณีนี้ สถานะการทำธุรกรรมจะแสดงเป็นล้มเหลว ซึ่งบ่งชี้ว่าแก๊สหมดแล้ว และแก๊สที่จ่ายไปจะไม่ได้รับเงินคืน
ผู้ใช้บางคนอาจคิดว่ามันไม่ยุติธรรม แต่โดยพื้นฐานแล้วคนงานเหมืองกำลังคำนวณงานอยู่แล้ว แต่ก๊าซไม่เพียงพอหลังจากการคำนวณครึ่งหนึ่ง ดังนั้นคนงานเหมืองทำได้เพียงยอมแพ้และทำงานต่อไป แต่งานก่อนหน้านี้จำเป็นต้อง จะได้รับค่าจ้าง "เงินเดือน" ดังนั้นการทำงานก่อนหน้านี้ น่าจะเป็นที่เข้าใจได้ว่าค่าน้ำมันไม่สามารถขอคืนได้ ในกรณีนี้ ผู้ใช้สามารถเริ่มต้นธุรกรรมใหม่และเพิ่มขีดจำกัดแก๊สของธุรกรรมนี้เท่านั้น
อีกกรณีของความล้มเหลวในการทำธุรกรรมคือเมื่อผู้ใช้เริ่มต้นการโอนธุรกรรมไปยังสัญญาอัจฉริยะ แต่ข้อผิดพลาดบางอย่างทำให้ไม่สามารถดำเนินการตามสัญญาได้ การทำธุรกรรมจะส่งกลับ Bad Instruction ตัวอย่างเช่น เมื่อผู้ใช้เข้าร่วมในแคมเปญคราวด์ฟันดิ้ง สถานการณ์ต่อไปนี้อาจเกิดขึ้น:
โควต้าเต็มแล้ว
หรือผู้ใช้ไม่ได้รับการอนุญาตพิเศษ;
หรือโทเค็นการสมัครสมาชิกมากเกินไปและอื่น ๆ
ในเวลานี้ ขีดจำกัดของแก๊สที่ผู้ใช้ตั้งไว้จะหมดลง ซึ่งจะนำไปสู่ความล้มเหลวในการทำธุรกรรมในที่สุด
อย่างไรก็ตาม หลังจากการ hard fork ของ Ethereum Byzantine ได้มีการเพิ่มผู้ให้บริการรายใหม่ Reverted (EIP-140) เมื่อเกิดข้อผิดพลาดในสัญญาและการทำธุรกรรมล้มเหลว การทำธุรกรรมจะไม่ใช้ก๊าซทั้งหมดที่กำหนดโดยขีดจำกัดก๊าซ สัญญาจะหยุดดำเนินการและคืนเงินค่าธรรมเนียมก๊าซที่เหลืออยู่ และแจ้งให้ผู้ใช้ทราบถึงเหตุผลของข้อผิดพลาด
แน่นอนว่าหากจำนวน ETH ในกระเป๋าเงินของผู้ใช้ไม่เพียงพอที่จะชำระค่าธรรมเนียมแก๊ส การทำธุรกรรมก็จะถือว่าล้มเหลวเช่นกัน
เมื่อไม่มีฮอตสปอต เครือข่าย Ethereum จะสงบสุขและค่าใช้จ่ายในการถ่ายโอนทั้งหมดรวมถึงเวลาและจำนวนเงินสามารถควบคุมได้ แต่เมื่อลมพัด ทุกคนจะพบปัญหาต่าง ๆ ในเครือข่าย ตรรกะของค่าธรรมเนียมแก๊สคือผู้มาใหม่ใช้ อุปสรรคที่ใหญ่ที่สุดคือกระเป๋าเงิน
โดยพื้นฐานแล้วบทความนี้ครอบคลุมปัญหาทั้งหมดที่พบในค่าน้ำมัน ธุรกรรม On-chain นั้นไม่ซับซ้อน พูดง่าย ๆ หากมีปัญหาใด ๆ กับการดำเนินการใด ๆ คุณสามารถแก้ไขได้โดยการเพิ่มเงิน
ในปัจจุบัน การเคลื่อนไหวนี้ดูเหมือนจะยุติลงชั่วคราวสำหรับการเพิ่มขึ้นของการขุดสภาพคล่องบน Ethereum นอกจากจะสร้างฟองสบู่แล้วการเคลื่อนไหวนี้ยังทำให้ผู้ใช้คุ้นเคยกับการใช้กระเป๋าเงินมากขึ้นในที่สุดกระเป๋าเงินก็กลายเป็นระดับสูง - กระเป๋าความถี่ เครื่องมือ
ปัญหาที่เกิดขึ้นในการทำธุรกรรมบนเครือข่ายจริง ๆ แล้วเป็นพื้นที่สำหรับการเพิ่มประสิทธิภาพของกระเป๋าเงิน บริการต่าง ๆ เช่น "การเร่งด้วยคลิกเดียว" และ "การยกเลิกด้วยคลิกเดียว" สำหรับผู้มาใหม่อาจพบเห็นได้ในกระเป๋าเงินมากขึ้นเรื่อยๆ


