การอัปเดตโปรโตคอล Ethereum ครั้งต่อไปเรียกว่า Pectra และในช่วงนี้อยู่ในขั้นตอนของการทดสอบ.
ตามที่มักเกิดขึ้นบ่อยครั้งในระหว่างการทดสอบเหล่านี้ ผลลัพธ์ออกมาเป็นลบ
Summary
ความล้มเหลวของการอัปเดต Pectra บน testnet ของ Ethereum
เมื่อวานนี้, การอัปเดต Pectra ของ Ethereum ได้ถูกเปิดใช้งานบน testnet Holesky.
น่าเสียดายที่ ปัญหา การกำหนดค่าของ fork ได้ส่งผลกระทบต่อสาม client ส่วนใหญ่บนเครือข่าย ทำให้พวกเขาไม่สามารถติดตามที่อยู่ของสัญญาฝากเงินได้อย่างถูกต้อง
อย่างไรก็ตาม ลูกค้าส่วนน้อยยังคงผลิตบล็อกที่ถูกต้องต่อไป ซึ่งแสดงให้เห็นถึงความแตกต่างในกำหนดค่าของลูกค้า
ปัญหาได้รับการระบุแล้ว และพบว่าเกี่ยวข้องกับ client Execution Layer (EL) ของEthereum ความจริงก็คือการกำหนดค่าที่ถูกต้องของที่อยู่สัญญาฝากเงินมีความสำคัญต่อการคำนวณแฮชของคำขอPectra ในขณะที่ client ที่ได้รับผลกระทบจากปัญหานี้ลืมที่จะเพิ่มที่อยู่ที่ถูกต้อง ทำให้เกิดความไม่สอดคล้องในการติดตามการฝากเงิน
ดังนั้นการทดสอบจึงล้มเหลว
วิธีแก้ปัญหาที่เสนอ
Testnet มีไว้เพื่อสิ่งนี้โดยเฉพาะ นั่นคือการระบุปัญหาก่อนที่จะเกิดขึ้นบน mainnet
Mainnet คือบล็อกเชนจริงของ Ethereum ในขณะที่ testnet เป็นสำเนาทดลองที่ทุกอย่างอาจผิดพลาดได้มากที่สุดก็แค่ปิดโดยไม่ก่อให้เกิดผลกระทบใดๆ
ในกรณีเฉพาะนี้ การทดสอบ fork Pectra ล้มเหลวบน testnet Holesky แต่เนื่องจากได้พบ วิธีแก้ไข แล้ว จึงสามารถทดสอบใหม่บน testnet อื่นๆ ได้ การทดสอบจะถือว่าสำเร็จเมื่อทุกอย่างดำเนินไปอย่างราบรื่น
การแก้ไขเพื่อคืนค่าการทำงานของเครือข่ายได้ถูกนำมาใช้แล้ว ดังนั้นความล้มเหลวของการทดสอบนี้จึงได้บรรลุวัตถุประสงค์ที่ตั้งไว้: ค้นหาปัญหาและเสริมความแข็งแกร่งของ Ethereum ก่อนที่ปัญหาเหล่านี้จะไปถึง mainnet.
Ethereum: il fork Pectra
ยังไม่ได้ตัดสินใจวันที่ที่จะใช้ fork Pectra กับ mainnet ของ Ethereum.
ในความเป็นจริง ก่อนที่จะตัดสินใจนำไปใช้กับ mainnet จำเป็นต้องให้การทดสอบทั้งหมดผ่านไปด้วยความสำเร็จ
เฉพาะเมื่อ Pectra ทำงานบน testnet ทั้งหมดแล้ว นักพัฒนาจะกำหนดวันที่แน่นอนสำหรับการเปิดใช้งานการอัปเดตบน mainnet
ดังนั้นตอนนี้ หลังจากที่ได้ทำการแก้ไขปัญหาที่เกิดขึ้นบน testnet Holesky แล้ว จะต้องทำการทดสอบเพิ่มเติมด้วยเวอร์ชันที่แก้ไขแล้วบน testnet อื่น ๆ จนกว่าจะได้ผลลัพธ์ที่เป็นบวกอย่างสมบูรณ์
เครือข่ายทดสอบถัดไปที่จะทดสอบคือ Sepolia. การทดสอบควรจะเริ่มในวันที่ 5 มีนาคม แต่ผู้พัฒนาอาจตัดสินใจเลื่อนออกไปเนื่องจากปัญหาที่เพิ่งเกิดขึ้นบน Holesky.
ในอดีตเคยทำแบบนี้มาแล้วนับครั้งไม่ถ้วน และในที่สุดทุกอย่างก็ผ่านไปได้ด้วยดีเพราะปัญหาที่หลีกเลี่ยงไม่ได้ถูกค้นพบก่อนการใช้งานบน mainnet
Pectra อัปเดตเปลี่ยนแปลงอะไรบ้าง?
การแยก Pectra จะนำการกำหนดค่าของสัญญาระบบใหม่หลายอย่างมาใช้
หนึ่งในการเปลี่ยนแปลงที่สำคัญ, EIP-6110, จะย้ายความรับผิดชอบของการตรวจจับการฝาก จาก Consensus Layer (CL) ไปยัง Execution Layer (EL).
อย่างไรก็ตาม การอัปเดตโดยรวมรวมการอัปเดตหลัก 11 รายการไว้ในแพ็กเกจเดียว
ศูนย์กลางของแพ็คเกจนี้คือ EIP-7702 การเปลี่ยนแปลงที่มีวัตถุประสงค์เพื่อปรับปรุงประสบการณ์ผู้ใช้ของ wallet crypto
ข้อเสนอนี้ถูกนำเสนอโดยตรงจากผู้ร่วมก่อตั้ง Ethereum Vitalik Buterin และจะอนุญาตให้ wallet มีความสามารถบางอย่างของ smart contract เป็นส่วนหนึ่งของกลยุทธ์ที่กว้างขึ้นที่มุ่งเน้นไปที่ การทำ abstraction ของบัญชี Ethereum และดังนั้นจึงทำให้การใช้งานของ wallet ไม่ซับซ้อนเท่าเดิม
Pectra รวมถึง EIP-7251 ซึ่งเป็นการแก้ไขที่จะอนุญาตให้ผู้ตรวจสอบเพิ่มจำนวนสูงสุดของ ETH ที่สามารถวางใน staking ได้จาก 32 เป็น 2,048 ETH เลยทีเดียว
ตามทฤษฎีแล้ว Pectra ควรจะเป็นการอัปเดตที่ยิ่งใหญ่ที่สุดในประวัติศาสตร์ของ Ethereum แต่ต่อมาได้มีการตัดสินใจแบ่งแพ็คเกจดั้งเดิมออกเป็นสองส่วนเพราะถือว่ามีความทะเยอทะยานเกินไป
การอัปเดตของ Ethereum
การอัปเดตบน Ethereum ถูกนำมาใช้ด้วย fork.
นี่หมายความว่าหากลูกค้าบางรายไม่เห็นด้วยกับการใช้การอัปเดต พวกเขาอาจสร้างเชนใหม่ได้ เช่นเดียวกับที่เกิดขึ้นกับ Ethereum PoW ในเดือนกันยายน 2022 เมื่อบางโหนดปฏิเสธการเปลี่ยนไปใช้ PoS (Proof-of-Stake)
อย่างไรก็ตาม fork ที่มีชื่อเสียงที่สุดคือในปี 2016 ซึ่งจากนั้นได้เกิดเครือข่าย Ethereum ปัจจุบันขึ้นจากเครือข่ายที่ยังคงมีอยู่ในปัจจุบันในชื่อ Ethereum Classic (ETC)
เนื่องจากปัญหาทางเทคนิคบางประการ เกิดการโจรกรรมครั้งใหญ่ขึ้น ชุมชนจึงตัดสินใจลบข้อมูลจากบล็อกเชนในบล็อกที่ตามหลังบล็อกก่อนการโจรกรรม เพื่อที่จะนำทุกอย่างกลับสู่สถานการณ์ก่อนหน้า
อย่างไรก็ตาม โหนดบางตัวปฏิเสธการตัดสินใจนี้ ดังนั้นเชนดั้งเดิมจึงดำเนินต่อไปโดยคงบล็อกของการโจรกรรมและบล็อกถัดไปไว้ ในขณะที่เชนใหม่เกิดขึ้นจากการ fork ซึ่งยกเลิกธุรกรรมทั้งหมดที่มีอยู่ในบล็อกของการโจรกรรมและบล็อกถัดไป
อย่างไรก็ตาม chain ดั้งเดิมที่ไม่ได้รับการแก้ไขกลายเป็นส่วนน้อย และสุดท้ายก็เปลี่ยนชื่อเป็น Ethereum Classic ส่วนที่ถูก fork (และแก้ไข) กลายเป็นส่วนหลักและยังคงชื่อ Ethereum ไว้