BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

อ่านข้อเสนอ EIP-7702 ใหม่ของ Vitalik ได้ในบทความเดียว: แนวทางขั้นสูงสุดสำหรับการลบบัญชีหรือไม่

Foresight News
特邀专栏作者
2024-05-09 02:48
บทความนี้มีประมาณ 1840 คำ การอ่านทั้งหมดใช้เวลาประมาณ 3 นาที
บัญชีทั้งสามที่เกี่ยวข้อง ได้แก่ 3074, 4337 และ 5003 เป็นนามธรรมข้อเสนอในอดีตหรือเปลี่ยนวิธีที่ทุกคนโต้ตอบกับ Web3 โดยสิ้นเชิง
สรุปโดย AI
ขยาย
บัญชีทั้งสามที่เกี่ยวข้อง ได้แก่ 3074, 4337 และ 5003 เป็นนามธรรมข้อเสนอในอดีตหรือเปลี่ยนวิธีที่ทุกคนโต้ตอบกับ Web3 โดยสิ้นเชิง

ผู้เขียนต้นฉบับ: จาร์รอด วัตต์ส

การรวบรวมต้นฉบับ: Frank, Foresight News

เมื่อเร็วๆ นี้ Vitalik Buterin ได้เสนอข้อเสนอ EIP-7702 ซึ่งอาจเป็นหนึ่งในการเปลี่ยนแปลงที่มีอิทธิพลมากที่สุดในประวัติศาสตร์ของ Ethereum บทความนี้จะแนะนำวิธีการทำงานของข้อเสนอใหม่และทุกสิ่งที่คุณจำเป็นต้องรู้เพื่อนำไปใช้

ก่อนอื่น ข้อเสนอ EIP-7702 ใหม่นั้นสั้นจนน่าประหลาดใจ ซึ่งทำให้บางคนสับสนและไม่รู้ว่ามันทำงานอย่างไรจริงๆ เพื่อที่จะเข้าใจ 7702 เราต้องเข้าใจข้อเสนออีกสามข้อที่กล่าวถึงในนั้นก่อน:

  • EIP-4337

  • EIP-3074

  • EIP-5003

เริ่มจากเป้าหมายทั่วไปของข้อเสนอทั้งหมดเหล่านี้ "นามธรรมบัญชี" - EOA (บัญชี "ธรรมดา") บน Ethereum นั้นแย่มาก มีความเสี่ยงและมีฟังก์ชันการทำงานที่จำกัดมาก ในขณะที่นามธรรมบัญชีทำให้ผู้ใช้สามารถใช้สัญญาอัจฉริยะเป็นบัญชีเพื่อเพิ่มได้ คุณสมบัติและความปลอดภัยเพิ่มเติมเพื่อแก้ไขปัญหานี้

EIP-4337

EIP-4337 ซึ่งเปิดใช้งานบน mainnet ในเดือนมีนาคม 2023 อนุญาตให้เขียนสัญญาอัจฉริยะได้เหมือนกับบัญชี เพื่อให้สามารถตรวจสอบและดำเนินการธุรกรรม ซึ่งปรับปรุงประสบการณ์ผู้ใช้ (UX) มากมาย

นับตั้งแต่เปิดตัว EIP-4337 ก็มีการใช้งานอย่างกว้างขวาง ซึ่งนำโดย Polygon เป็นหลัก ในขณะที่ Base มีกิจกรรมเพิ่มขึ้นในช่วงไม่กี่เดือนที่ผ่านมา

นวัตกรรมล่าสุดที่เกี่ยวข้องกับ EIP-4337 มาจากระบบนิเวศของ Coinbase และ Coinbase Smart Wallet ซึ่งใช้เทคโนโลยีไบโอเมตริกซ์และมีประสบการณ์การใช้งานที่ยอดเยี่ยม ฉันได้ทำการ สาธิตขนาดเล็ก อีกครั้งเพื่อสาธิตสิ่งนี้ที่ ETH Global Sydney เมื่อสุดสัปดาห์ที่ผ่านมา

แล้วมีอะไรผิดปกติกับ EIP-4337? เหตุใดจึงมีข้อเสนอนามธรรมบัญชีอีกในวันนี้? เนื่องจาก EOA ยังคงเป็นประเภทบัญชีที่ใช้กันอย่างแพร่หลายที่สุด

นอกจากนี้ บัญชีสัญญาอัจฉริยะของ EIP-4337 ส่วนใหญ่ได้รับการควบคุมโดยผู้ลงนาม EOA คนเดียว นี่คือโค้ดตัวอย่าง:

เนื่องจากไม่มีวิธี "แปลง" EOA ของผู้ใช้ให้เป็นบัญชีสัญญาอัจฉริยะ จึงมีวิธีแก้ปัญหาขั้นตอนกลางที่แปลกประหลาดนี้ - สาเหตุหลักมาจากการขาดการสนับสนุนดั้งเดิมสำหรับการเชื่อมต่อบัญชีสัญญาอัจฉริยะในแอปพลิเคชัน Web3 คนส่วนใหญ่ในปัจจุบันยังคงใช้ปลั๊ก -ในกระเป๋าเงินเช่น MetaMask ใช้ EOA

EIP-3074

สิ่งนี้นำเราไปสู่ข้อเสนอถัดไปของเรา: EIP-3074

ในความเป็นจริง ข้อเสนอนี้ถูกเสนอก่อน EIP-4337 แต่ยังไม่ได้รวมเข้ากับเครือข่ายหลัก EIP-3074 พยายามให้อำนาจแก่ EOA มากขึ้น ทำให้พวกเขามอบหมายการควบคุม EOA ให้กับสัญญาอัจฉริยะได้

ข้อเสนอสรุปสิ่งต่อไปนี้ โดยเพิ่ม opcode ใหม่สองตัว:

  • AUTH: EOA สามารถเรียก AUTH เพื่ออนุญาตสัญญาอัจฉริยะที่กำหนดเพื่อดำเนินการในนามของ EOA ได้

  • AUTHCALL: สัญญาอัจฉริยะที่ได้รับอนุญาตสามารถใช้ AUTHCALL เพื่อดำเนินธุรกรรมสำหรับ EOA;

ซึ่งเปิดใช้งานกรณีการใช้งานหลายกรณีเช่นเดียวกับ EIP-4337 โดยไม่ต้องให้ผู้ใช้แต่ละรายปรับใช้สัญญาอัจฉริยะใหม่ ข้อแตกต่างที่สำคัญคือธุรกรรมมาจาก EOA ของผู้ใช้ แทนที่จะเป็นสัญญาใหม่โดยไม่มีประวัติบัญชีของผู้ใช้, ETH, NFT, โทเค็น ฯลฯ

คำตอบทั่วไปสำหรับ EIP-3074 คือ "จะเกิดอะไรขึ้นถ้ามีคนทำสัญญาที่เป็นอันตรายและผู้ใช้มอบหมายให้พวกเขา" ท้ายที่สุดแล้ว การมอบหมายให้กับสัญญาที่เป็นอันตรายอาจทำให้สินทรัพย์ crypto ทั้งหมดในกระเป๋าเงินของผู้ใช้หมดลง

วิธีแก้ปัญหานี้คือผู้ให้บริการกระเป๋าเงินไม่อนุญาตให้ผู้ใช้อนุญาตสัญญาใด ๆ พวกเขาอาจเก็บรายการสัญญาอัจฉริยะที่ผู้ใช้สามารถมอบหมายการอนุญาตได้ และสัญญาใด ๆ ที่อยู่นอกรายการนี้จะไม่ปรากฏให้ผู้ใช้เห็น

ประเด็นสำคัญของการมอบหมาย EIP-3074 คือการมอบสิทธิ์ไม่ถาวร "การทำธุรกรรมครั้งเดียวของ EOA จะทำให้ nonce เพิ่มขึ้น ซึ่งจะทำให้การอนุญาตที่ยังไม่เสร็จสมบูรณ์เป็นโมฆะ"

โดยพื้นฐานแล้ว หลังจากที่ผู้ใช้ทำการซื้อขายใหม่ คำสั่งซื้อขายจะไม่ถูกต้องอีกต่อไป

EIP-5003

เราไม่ต้องการให้อำนาจแก่ EOA มากขึ้นจริงๆ ท้ายที่สุดแล้ว เป้าหมายของข้อเสนอเหล่านี้คือการย้ายผู้ใช้จาก EOA ไปยังบัญชีสัญญาอัจฉริยะ แล้วเหตุใดเราจึงเพิ่มฟังก์ชันการทำงานให้กับ EOA

สิ่งนี้นำไปสู่ข้อเสนอถัดไปของเรา: EIP-5003 EIP-5003 เพิ่ม opcode อื่น "AUTHUSURP" ซึ่งปรับใช้โค้ดในที่อยู่ที่ได้รับอนุญาต EIP-3074

ความแตกต่างระหว่าง EIP-3074 และ EIP-5003 คือ:

  • EIP-3074 เป็นการมอบหมายชั่วคราวให้กับสัญญาอัจฉริยะและสามารถเพิกถอนได้

  • EIP-5003 เป็นการโยกย้ายถาวรจาก EOA และ "การแปลง" จาก EOA ไปเป็นบัญชีสัญญาอัจฉริยะ

ปัญหาใหญ่ของ EIP-3074 + EIP-5003 คือมันเข้ากันไม่ได้กับรูปแบบนามธรรมของบัญชีปัจจุบันผ่านทาง EIP-4337 ดังนั้นบางคนในชุมชน Ethereum จึงกังวลว่าเราจะ "สร้างระบบนิเวศของโค้ดที่แยกจากกันสองแห่ง"

EIP-7702

นั่นนำเราไปสู่ข้อเสนอของ Vitalik Buterin ในวันนี้: EIP-7702 - เขาเสนอให้แก้ไข EIP-3074 เพื่อให้มีความคล่องตัวมากขึ้นและเข้ากันได้กับ EIP-4337 มากขึ้น เพื่อที่เราจะได้ไม่จบลงด้วยระบบนิเวศที่เป็นนามธรรมของบัญชีสองระบบที่แยกจากกัน แต่ยังพิจารณาด้วย EIP-5003 ก้าวต่อไปของการโยกย้ายถาวร

EIP-7702 เสนอประเภทธุรกรรมใหม่ที่ยอมรับทั้งช่อง Contract_code และลายเซ็น และเมื่อเริ่มดำเนินการธุรกรรม จะตั้งค่ารหัสสัญญาของบัญชีของผู้ลงนามเป็น Contract_code เมื่อสิ้นสุดการซื้อขาย ระบบจะรีเซ็ตทิกเกอร์ให้ว่างเปล่า

ซึ่งเหมือนกับ EIP-3074 ซึ่งใช้ฟังก์ชันการมอบหมายชั่วคราวของ EOA สำหรับสัญญาอัจฉริยะ อย่างไรก็ตาม EIP-7702 ไม่ได้แนะนำ opcode ใหม่ (ซึ่งต้องใช้ฮาร์ดฟอร์ก) แต่กำหนดฟังก์ชันที่จะเรียกใช้แทน:

  • AUTH -> เรียก "ยืนยัน" (การยืนยัน)

  • AUTHCALL -> เรียก "ดำเนินการ"

โดยเฉพาะ:

  • ตรวจสอบว่ารหัสสัญญาบัญชีของคุณว่างเปล่าหรือไม่

  • หากว่างเปล่า ระบบจะตั้งค่าเป็นรหัสสัญญาที่ให้ไว้

  • ดำเนินธุรกรรมตามวิธีที่สัญญาอัจฉริยะที่ให้มาจัดการธุรกรรม

  • คืนค่าการตั้งค่ารหัสสัญญาบัญชีให้ว่างเปล่า

"รหัสสัญญา" หมายความว่ารหัสของสัญญาอัจฉริยะถูกจัดเก็บไว้ใน "รหัสสัญญา" เนื่องจาก EOA ไม่ใช่สัญญา ช่องนี้จึงมักจะว่างเปล่า อย่างไรก็ตาม สิ่งที่ชาญฉลาดเกี่ยวกับ EIP-7702 ก็คือมันจะเติมรหัสสัญญาอัจฉริยะลงในฟิลด์นี้ชั่วคราวระหว่างการทำธุรกรรม

นี่เป็นวิธีที่จะทำให้พฤติกรรมใหม่ EOA ของคุณ (ในรูปแบบของทิกเกอร์) สำหรับการดำเนินการธุรกรรมเฉพาะนี้ ขั้นตอนต่อไปคือการเปลี่ยนแปลงพฤติกรรมนี้อย่างถาวร เพียงเลือก "อย่าตั้งค่าทิกเกอร์เป็นหลังจากปิดการซื้อขาย" null ".

หนึ่งในสิ่งที่ดีที่สุดเกี่ยวกับข้อเสนอนี้คือ เข้ากันได้สูงกับงานนามธรรมบัญชีทั้งหมดที่สร้างขึ้นสำหรับ EIP-4337 จนถึงปัจจุบัน "รหัสสัญญาที่ผู้ใช้ต้องลงนามสามารถเป็นรหัสกระเป๋าเงิน EIP-4337 ที่มีอยู่จริงได้"

เมื่อการเปลี่ยนแปลงนี้มีผล EOA ที่มีอยู่ของผู้ใช้จะสามารถรันโค้ดสัญญาอัจฉริยะใดๆ ได้ ด้วย EIP เพิ่มเติม EOA ยังสามารถอัปเกรดอย่างถาวรเพื่อเรียกใช้โค้ดเฉพาะได้อีกด้วย

เมื่อเวลาผ่านไป สิ่งนี้อาจปฏิวัติวิธีที่เราทุกคนโต้ตอบกับแอปพลิเคชัน Web3


นามธรรมบัญชี
Vitalik
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android