คำนำ
บทความนี้แบ่งออกเป็นสองโมดูลหลัก:
ในช่วงครึ่งปีแรก เริ่มตั้งแต่ข้อเสนอ AA ฉบับแรกในปี 2558 เราจะจัดเรียงเนื้อหาหลักของข้อเสนอ EIP อย่างเป็นระบบ เราหวังว่าจะขุดค้นประวัติของข้อเสนอในอดีตของ AA และประเมินข้อดีและข้อเสียของแต่ละแผนอย่างครอบคลุม
ในช่วงครึ่งหลัง เรามุ่งเน้นไปที่การเปรียบเทียบผลตอบรับการตกต่ำของตลาดที่ต้องเผชิญหลังจากการเสนอ EIP 4337 จากนั้นทำการวิเคราะห์เชิงลึก ของ EIP 7702 ซึ่งกำลังจะรวมอยู่ในการอัพเกรด Ethereum เวอร์ชัน ถัดไป เมื่อข้อเสนอนี้เสร็จสิ้น เมื่อรวมกันแล้ว จะเปลี่ยนแบบฟอร์มการสมัครบนเชนโดยสมบูรณ์
EIP-7702 มีการเปลี่ยนแปลงยุคใหม่ โปรดฟังคำอธิบายโดยละเอียดของ Mr. Shishi
1. พื้นหลังนามธรรมของบัญชี
1.1 ความหมายเชิงนามธรรมของบัญชี
Vitalik ผู้ก่อตั้ง Ethereum ได้อัปเดตแผนงานการพัฒนา ETH อีกครั้งในช่วงปลายปี 2023 แต่การตั้งค่านามธรรมของบัญชีไม่มีการเปลี่ยนแปลง โมเดลกระแสหลักในปัจจุบันได้เข้าสู่ขั้นตอนต่อไปจาก EIP-4337, การแปลง EOA โดยสมัครใจ (การแปลงบัญชี EOA โดยสมัครใจ)
https://x.com/VitalikButerin/status/1741190491578810445
กว่าหนึ่งปีนับตั้งแต่เปิดตัว EIP 4337 (ที่ WalletCon ในเดนเวอร์เมื่อวันที่ 1 มีนาคม 2023 มีการประกาศอย่างเป็นทางการว่าสัญญาหลักของ ERC-4337 ที่ออกแบบและดำเนินการโดยนักพัฒนา Ethereum Foundation ได้ผ่านการตรวจสอบของ OpenZeppelin และถือว่า เปิดตัวโหนดประวัติศาสตร์อย่างเป็นทางการ)
EIP-7702 ได้รับการยอมรับอย่างกว้างขวางจากผู้ใช้มาโดยตลอด แต่ภายใต้สภาพแวดล้อมของตลาดที่ขัดแย้งกันเช่นนี้ ความก้าวหน้าของ EIP-7702 ก้าวหน้าไปมาก และยังได้รับการยืนยันด้วยว่าจะถูกรวมไว้ในการอัพเกรดครั้งถัดไป
1.2 สถานะตลาดปัจจุบันของการลบบัญชี
เพื่อเป็นการไม่ให้เสียเวลา เรามาดูข้อมูลกันดีกว่า
หลังจากหนึ่งปีครึ่งของการพัฒนา EIP 4337 มีที่อยู่เพียง 1,200 W ในการรวบรวมบัญชีลูกโซ่หลัก สิ่งที่น่าประหลาดใจที่สุดคือบนเครือข่ายหลักของ Ethereum มีที่อยู่ที่ใช้งานอยู่เพียง 6,764 แห่ง บางทีมิติทางสถิติอาจแตกต่างกัน ปัญหา แต่อย่างน้อยก็แตกต่างจากจำนวนที่อยู่ของ EOA และ CA มาก คุณต้องทราบว่าจำนวนที่อยู่อิสระบน Ethereum mainnet สูงถึง 270 ล้าน (แหล่งข้อมูล: https://etherscan.io/chart/ ที่อยู่).
อาจกล่าวได้ว่าไม่มีการพัฒนาที่สำคัญใน EIP 4337 บนเครือข่ายหลัก
แหล่งข้อมูล: https://dune.com/niftytable/account-abstraction)
อย่างไรก็ตาม สิ่งนี้ไม่ได้ลบล้างค่าที่สำคัญของ AA เนื่องจากถูกกำหนดไว้ตั้งแต่เริ่มต้นของการออกแบบ EIP 4337 ว่าไม่สามารถทำได้ดีเมื่อเผชิญกับปัญหาความเข้ากันได้แบบส่งต่อที่ร้ายแรงบนเครือข่ายหลัก เช่นเดียวกับ L2 ต่างๆ โดยทั่วไปแล้ว Layer Chains ที่ฝังอยู่ใน Native AA นั้นมีจำนวนที่อยู่ของ EIP 4337 ระเบิดบน L2
ดังนั้นจึงไม่ใช่ว่าการออกแบบ EIP 4337 จะผิด แต่ก็มีข้อดีหลายประการ เราจะสรุปอย่างเป็นระบบ สถานการณ์ปัจจุบันเกิดจากความแตกต่างระหว่างเครือข่ายหลักและ L2 เอง โซลูชั่น
2. สิ่งที่เป็นนามธรรมของบัญชีคืออะไร?
การแยกบัญชีฟังดูน่าสับสน แต่ในความเป็นจริงแล้ว จะช่วยแก้ปัญหาการแยกสิทธิ์ในทรัพย์สินได้เป็นหลัก
บัญชีมีสองประเภทในสถาปัตยกรรม EVM (เช่น Ethereum Virtual Machine) บัญชีภายนอก (EOA) และบัญชีสัญญา (บัญชีสัญญา) ความเป็นเจ้าของและสิทธิ์ลายเซ็นของบัญชีภายนอกนั้นแท้จริงแล้วถือเป็นของบุคคลคนเดียวกัน หน่วย. บุคคลที่ถือคีย์ส่วนตัวไม่เพียงแต่มี ความเป็นเจ้าของ ของบัญชีเท่านั้น แต่ยังมีสิทธิ์ ลงนามและโอนทรัพย์สินทั้งหมด
สิ่งนี้ถูกกำหนดโดยโครงสร้างธุรกรรมของบัญชี Ethereum
ดังที่เห็นได้จากโครงสร้างในรูปด้านล่าง จริงๆ แล้วไม่มี From party ในธุรกรรมมาตรฐานของ Ethereum ดังนั้นหากฉันทำการโอนเงิน ฉันจะใช้เงินทุนจากที่อยู่ใดโดยเฉพาะ อันที่จริง ที่อยู่ จาก จะถูกถอดรหัสผ่านพารามิเตอร์ VRS (เช่น ลายเซ็นของผู้ใช้)
สิ่งนี้เกี่ยวข้องกับแนวคิดต่างๆ เช่น การเข้ารหัสแบบอสมมาตร เช่น ECDSA และฟังก์ชันขีดจำกัดแบบทางเดียว เราจะไม่ขยายแนวคิดเหล่านี้ออกไป กล่าวโดยย่อคือ การเข้ารหัสถูกนำมาใช้เพื่อให้มั่นใจในความปลอดภัย .
ผลกระทบหลักของ EIP 4337 คือการเพิ่มฟิลด์ที่อยู่ผู้ส่งลงในฟิลด์ธุรกรรม ดังนั้นจึงแยกคีย์ส่วนตัวออกจากที่อยู่ที่ดำเนินการ
เหตุใดการแยกสิทธิในทรัพย์สินจึงมีความสำคัญมาก?
เนื่องจากการออกแบบบัญชีภายนอก (EOA) จะทำให้เกิดปัญหามากขึ้น:
กุญแจส่วนตัวนั้นป้องกันได้ยาก: ผู้ใช้ที่สูญเสียกุญแจส่วนตัว (การสูญหาย, การโจมตีของแฮกเกอร์, การแคร็กด้วยการเข้ารหัส) หมายถึงการสูญเสียทรัพย์สินทั้งหมด
อัลกอริธึมลายเซ็นไม่กี่: โปรโตคอลดั้งเดิมสามารถใช้เฉพาะลายเซ็น ECDSA และอัลกอริธึมการตรวจสอบลายเซ็นเพื่อตรวจสอบธุรกรรม
อำนาจลายเซ็นสูง: ไม่มีลายเซ็นหลายลายเซ็นดั้งเดิม (ลายเซ็นหลายลายเซ็นสามารถบรรลุความร่วมมือผ่านสัญญาอัจฉริยะเท่านั้น) และการดำเนินการใดๆ สามารถทำได้ด้วยลายเซ็นเดียว
ค่าธรรมเนียมการทำธุรกรรมสามารถชำระผ่าน ETH เท่านั้น และไม่รองรับธุรกรรมแบบแบตช์
การรั่วไหลของความเป็นส่วนตัวของธุรกรรม: การทำธุรกรรมแบบตัวต่อตัวทำให้ง่ายต่อการวิเคราะห์ข้อมูลส่วนตัวของเจ้าของบัญชี
ข้อจำกัดในการอุทธรณ์ทำให้ผู้ใช้ทั่วไปใช้งาน Ethereum ได้ยาก:
ขั้นแรก ในการใช้แอปพลิเคชันใดๆ บน Ethereum ผู้ใช้จะต้องถือ ether (และยอมรับความเสี่ยงจากความผันผวนของราคา ether)
ประการที่สอง ผู้ใช้จำเป็นต้องจัดการกับตรรกะต้นทุนที่ซับซ้อน แนวคิดเรื่องราคาแก๊ส ขีดจำกัดของแก๊ส และการบล็อกธุรกรรม (ไม่มีคำสั่งซื้อ) นั้นซับซ้อนเกินไปสำหรับผู้ใช้
สุดท้ายนี้ แม้ว่ากระเป๋าเงินหรือแอปพลิเคชันบล็อคเชนจำนวนมากจะพยายามปรับปรุงประสบการณ์ผู้ใช้ผ่านการเพิ่มประสิทธิภาพผลิตภัณฑ์ แต่ผลกระทบที่แท้จริงนั้นมีน้อยมาก
ดังนั้นวิธีที่จะทำลายสถานการณ์คือการใช้นามธรรมบัญชีและการแยกความเป็นเจ้าของ (เจ้าของ) และสิทธิ์ในการลงนาม (ผู้ลงนาม) เพื่อให้ปัญหาข้างต้นสามารถแก้ไขได้ทีละข้อ จริงๆ แล้วมีแผนทางประวัติศาสตร์มากมาย และในที่สุดแผนเหล่านั้นก็จะมาบรรจบกันเป็นสองเส้นทาง
3. ทบทวนประวัติข้อเสนอ AA
ดูเหมือนจะมีข้อเสนอ EIP มากมายในการแก้ปัญหา แต่ในการวิเคราะห์ขั้นสุดท้าย มีแนวคิดหลักอยู่ 2 ประการ ดังนั้น ปัญหาที่พิจารณาในทุก EIP ที่ไม่ได้ผ่านในอดีตจึงมาบรรจบกันเป็นแนวทางแก้ไขในปัจจุบัน
3.1 เส้นทางแรกคือการเปลี่ยนที่อยู่ EOA เป็นที่อยู่ CA
ตั้งแต่วันที่ 15 พฤศจิกายน 2558 โดยรอบ EIP-101 Vitalik ได้เสนอโครงสร้างใหม่โดยใช้สัญญาเป็นบัญชี เปลี่ยนที่อยู่ให้มีเฉพาะรหัสและพื้นที่จัดเก็บ เปลี่ยนค่าธรรมเนียมการจัดการเพื่อรองรับการชำระเงินด้วย ERC 20 เปลี่ยนโทเค็นดั้งเดิมเป็น ERC 20 เหมือนผ่านสัญญาที่รวบรวมไว้ล่วงหน้าเพื่อจัดเก็บยอดคงเหลือ (สามารถมีฟังก์ชันเช่นการอนุมัติการหัก ณ ที่จ่าย) และ ปรับปรุงฟิลด์ธุรกรรมให้เหลือเพียง startgas ข้อมูล และรหัสเท่านั้น ตอนนี้ดูเหมือนว่าเป็นเพียงการเปลี่ยนแปลงรูปแบบ Great Leap Forward ซึ่งจะเปลี่ยนการออกแบบที่สำคัญไปอย่างมาก เพื่อให้ที่อยู่บัญชีแต่ละบัญชีมีตรรกะ รหัส ของตัวเอง (อันที่จริงนี่คือสิ่งที่ EIP-7702 พยายามทำให้สำเร็จในตอนนี้ ). นอกจากนี้ยังสามารถรับฟังก์ชันอื่นๆ ได้อีกด้วย เช่น
อนุญาตให้ธุรกรรมใช้อัลกอริธึมการเข้ารหัสมากขึ้น และวิธีการตรวจสอบลายเซ็นสามารถระบุได้ด้วยรหัสภายในของแต่ละที่อยู่
ทนทานต่อการโจมตีควอนตัมเนื่องจากโค้ดมีคุณสมบัติในการอัพเกรด
ปล่อยให้ Ethereum มีลักษณะการทำงานเหมือนกับสัญญา ERC 20 และผลกระทบหลักมีการอนุมัติการหัก ณ ที่จ่าย ดังนั้นจึงไม่จำเป็นต้องสูญเสียสกุลเงินท้องถิ่น
ปรับปรุงพื้นที่ปรับแต่งบัญชี เข้ากันได้กับการกู้คืนทางสังคม การสนับสนุน sbt การดึงคีย์ ฯลฯ
เหตุผลที่ไม่ก้าวหน้าต่อไปนั้นง่ายมาก เห็นได้ชัดว่าก้าวดังกล่าวใหญ่เกินไปเกี่ยวกับปัญหาข้อขัดแย้งของธุรกรรมในปัจจุบันและความเสี่ยงด้านความปลอดภัยนั้นถูกระงับเนื่องจากการพิจารณาที่ไม่เพียงพอ ได้กลายเป็นฟังก์ชันหลักของ EIP 4337 และ EIP 7702 ตามมาหนึ่งตัว
ต่อมา มีชุด EIP ที่พยายามปรับปรุงตรรกะนี้:
EIP-859: Main chain account abstraction--2018-01-30
ความพยายามในการแก้ปัญหาการปรับใช้โค้ด ฟังก์ชันหลักคือหากไม่ได้ปรับใช้สัญญาของฝ่ายธุรกรรม พารามิเตอร์โค้ดที่แนบมากับธุรกรรมจะถูกใช้เพื่อดำเนินการปรับใช้กระเป๋าสตางค์สัญญา ประการที่สอง มีการเสนอโค้ดการดำเนินการ PAYGAS ใหม่ด้วย นอกเหนือจากการจ่ายก๊าซแล้ว ยังกลายเป็นธุรกรรม ตัวคั่นระหว่างส่วนการตรวจสอบและส่วนการดำเนินการของพารามิเตอร์ธุรกรรม แม้ว่าจะจบลงอย่างเปล่าประโยชน์ในเวลานั้น แต่ตอนนี้ได้กลายเป็นหนึ่งในตรรกะหลักของ EIP 7702 แล้ว ธุรกรรมแต่ละรายการของ EIP 7702 จะถูกรวมเข้ากับโครงสร้างธุรกรรมพิเศษและสามารถใช้ร่วมกับรหัสบางอย่างได้ เพื่อให้ที่อยู่ EOA มีความสามารถในการทำสัญญา ในการทำธุรกรรมครั้งนี้
EIP-7702: ตั้งรหัสบัญชี EOA 2024-05-07
นี่เป็น EIP หลักของกลไกที่จะกล่าวถึงในบทความนี้ต่อไป ดังนั้น EIP-3074 จึงถูกยกเลิก และ EIP-7702 ถูกกำหนดให้รวมอยู่ในฮาร์ดฟอร์ค ETH Prague/Electra (Pectra) ที่กำลังจะมาถึง เราจะขยายรายละเอียดด้านล่าง
3.2 เส้นทางที่สองคือให้ที่อยู่ EOA ขับเคลื่อนที่อยู่ CA
EIP-3074: เพิ่มรหัส AUTH และ AUTHCALL--2020-10-15
มีการเพิ่ม OpCodes AUTH และ AUTHCALL ใหม่สองรายการใน EVM ทำให้ EOA สามารถเรียกสัญญาอื่น ๆ ผ่านสัญญาการอนุญาต opcode ทั้งสองนี้แทนการระบุตัวตนของ EOA เมื่อรวมกับรูปด้านล่าง โดยสรุป EOA สามารถส่งข้อความที่ลงนาม (ธุรกรรม) ไปยังสัญญาที่เชื่อถือ (เรียกว่า Inviver) สัญญา Inviver นี้สามารถใช้รหัสการดำเนินการ AUTH และ AUTHCALL เพื่อแทนที่ EOA นี้และส่งธุรกรรมนี้ได้ ซื้อขาย.
EIP-4337: การใช้พูลหน่วยความจำธุรกรรมเพื่อนำนามธรรมของบัญชีไปใช้--2021-09-29
ฉันได้เขียนบทความมากมายเกี่ยวกับเรื่องนี้ซึ่งวิเคราะห์กลไกของมันอย่างลึกซึ้ง คุณสามารถอ่านเพิ่มเติม:
https://research.web3caff.com/zh/archives/3212,
การตีความแผนการทบทวนบทคัดย่อบัญชี Ethereum ERC 4337 (ตอนที่ 1)
กล่าวโดยสรุป การออกแบบของเขาได้รับแรงบันดาลใจจาก MEV ซึ่งคุณค่าหลักคือสามารถหลีกเลี่ยงการเปลี่ยนแปลงโปรโตคอลเลเยอร์ที่เป็นเอกฉันท์ได้อย่างสมบูรณ์
eip 4337 เสนออ็อบเจ็กต์ธุรกรรมใหม่ UserOperation ผู้ใช้ส่งอ็อบเจ็กต์นี้ไปยังพูลหน่วยความจำ และรวมกลุ่มและส่งมอบสัญญาเป็นชุดจากมิตินักขุดเพื่อดำเนินธุรกรรม โดยพื้นฐานแล้ว ธุรกรรมพื้นฐานและการดำเนินการบัญชีจะถูกดึงไปที่ ระดับสัญญาสำหรับการดำเนินการ
EIP-5189: การดำเนินงานบัญชีนามธรรมผ่านผู้รับรอง — 29-06-2022
ซึ่งถือได้ว่าเป็นการปรับตรรกะของ EIP 4337 ให้เหมาะสม เมื่อเผชิญกับ Bundler ที่เป็นอันตราย ระบบจะสร้างกลไกการอนุมัติการลงโทษกองทุนเพื่อป้องกันการโจมตีที่บล็อก DoS
3.3 ข้อเสนออื่นๆ เพื่อสนับสนุน AA
EIP-2718: การห่อซองสำหรับธุรกรรมประเภทใหม่--2020-06-13
นี่เป็นข้อเสนอขั้นสุดท้าย โดยจะกำหนดประเภทธุรกรรมใหม่เป็นซองสำหรับประเภทธุรกรรมใหม่ในอนาคต ผลกระทบสุทธิคือเมื่อมีการแนะนำประเภทธุรกรรมใหม่ การเข้ารหัสเฉพาะจะถูกนำมาใช้เพื่อแยกแยะประเภทของธุรกรรมนั้น เพื่อให้เข้ากันได้แบบย้อนหลังเท่านั้น แต่ไม่สามารถใช้งานร่วมกับการส่งต่อได้ ตัวอย่างที่พบบ่อยที่สุดคือ EIP 1559 ซึ่งแยกความแตกต่างค่าธรรมเนียมการทำธุรกรรม และใช้การเข้ารหัสประเภทธุรกรรมใหม่ โดยไม่ส่งผลกระทบต่อประเภทธุรกรรมดั้งเดิมดั้งเดิม
EIP-3607: ทำให้ EOA จัดการกับสัญญาที่ไม่สามารถปรับใช้ได้--2021-06-10
นี่เป็นโซลูชันเสริมบนเส้นทาง AA เพื่อป้องกันความขัดแย้งระหว่างที่อยู่การปรับใช้สัญญาและที่อยู่ EOA เขาจะควบคุมวิธีการสร้างสัญญาเพื่อให้ระบบไม่อนุญาตให้ใช้โค้ดกับที่อยู่ที่เป็นที่อยู่ EOA อยู่แล้ว ความเสี่ยงนี้จริงๆ แล้วมีน้อยมาก อย่างไรก็ตาม ที่อยู่ Ethereum มีความยาว 160 บิต แม้ว่าจะมีวิธีใช้คีย์ส่วนตัวเพื่อขัดแย้งกับคีย์ส่วนตัวของที่อยู่สัญญาที่ระบุ แต่ก็ยังต้องใช้เวลาหนึ่งปีโดยอิงจากจำนวนเต็ม พลังการคำนวณของ Bitcoin
3.4 จะเข้าใจกระบวนการพัฒนานามธรรมบัญชีได้อย่างไร?
ก่อนอื่น คุณต้องเข้าใจคุณค่าของการแปลงเป็น CA ก่อน
โดยพื้นฐานแล้ว มันเป็นเอฟเฟกต์ที่แท้จริงของ EIP-4337 ที่เขาสามารถทำได้
อย่างไรก็ตาม ข้อบกพร่องหลักของ EIP-4337 ก็คือมันละเมิดหลักการของแรงจูงใจของมนุษย์
ดูเหมือนว่าจะดีขึ้น แต่ก็เข้าสู่วงจรการพัฒนาตลาดที่ไม่มีวันจบสิ้น DApps จำนวนมากเข้ากันไม่ได้ ดังนั้นผู้ใช้จึงไม่เต็มใจที่จะใช้ที่อยู่ CA และแม้แต่การใช้ CA ก็มีค่าใช้จ่ายในการทำธุรกรรมสูงกว่า (สถานการณ์การโอนทั่วไปก็จะมีค่าธรรมเนียมการทำธุรกรรมด้วย สองเท่า) และมันยังอาศัยความเข้ากันได้ของ Dapp มากเกินไปอีกด้วย
ดังนั้นจึงยังไม่ได้รับความนิยมบน Ethereum mainnet จนถึงปัจจุบัน
ต้นทุนเป็นเกณฑ์ที่สำคัญที่สุดสำหรับผู้ใช้ และต้องลดต้นทุนลง
แต่เพื่อลด GAS อย่างแท้จริง Ethereum จะต้องอัปเกรด soft fork แก้ไขการคำนวณ GAS หรือแก้ไขการใช้ GAS ของ opcode และโมดูลอื่นๆ อย่างไรก็ตาม เนื่องจากจำเป็นต้องใช้ soft fork ทำไมไม่พิจารณา EIP-7702 โดยตรง
4. การวิเคราะห์ที่ครอบคลุมของ EIP-7702
4.1 EIP-7702 คืออะไร
มีความโดดเด่นด้วยประเภทธุรกรรมใหม่ ซึ่งช่วยให้ EOA มีฟังก์ชันของสัญญาอัจฉริยะชั่วคราวในธุรกรรมเดียว จึงรองรับธุรกรรมแบบกลุ่ม ธุรกรรมปลอดก๊าซ การจัดการสิทธิ์แบบกำหนดเอง ฯลฯ ในธุรกิจ โดยไม่จำเป็นต้องแนะนำ EVM opCode ใหม่ (ส่งผลต่อความเข้ากันได้ของการส่งต่อ)
ช่วยให้ผู้ใช้สามารถรับความสามารถส่วนใหญ่ของ AA โดยไม่ต้องปรับใช้สัญญาอัจฉริยะ และยังสามารถให้บุคคลที่สามสามารถเริ่มต้นธุรกรรมในนามของผู้ใช้ได้ โดยไม่จำเป็นต้องให้ผู้ใช้ระบุคีย์ส่วนตัว มีเพียงข้อมูลการอนุญาตลายเซ็นเท่านั้น
4.2 โครงสร้างข้อมูล
เขากำหนดประเภทธุรกรรมใหม่ 0x 04 ซึ่ง TransactionPayload เป็นผลลัพธ์การทำให้เป็นอนุกรมที่เข้ารหัส RLP ของเนื้อหาต่อไปนี้
สิ่งสำคัญคือมีการเพิ่มอ็อบเจ็กต์ authorization_list เพื่อจัดเก็บโค้ดที่ผู้ลงนามต้องการดำเนินการใน EOA ของเขา เมื่อผู้ใช้ลงนามในธุรกรรม เขายังลงนามในโค้ดสัญญาที่จะดำเนินการ โดยมีอยู่เป็นรายการสองมิติ ระบุว่าสามารถจัดเก็บข้อมูลการดำเนินการหลายรายการเป็นชุดได้ ดำเนินการชุดงาน
4.3 วงจรชีวิตของธุรกรรม
4.3.1 ขั้นตอนการตรวจสอบ
ที่จุดเริ่มต้นของการดำเนินการธุรกรรม สำหรับแต่ละ [chain_id, address, nonce, y_parity, r, s] tuple ของ authorization_list:
ใช้ ecrecover เพื่อกู้คืนที่อยู่ของผู้ลงนามจากลายเซ็น r และ s (โปรดทราบว่านี่คือกลไกของ Ethereum เอง ดังนั้น EIP นี้ไม่เปลี่ยนอัลกอริทึมลายเซ็น) Authority = ecrecover(keccak(MAGIC || rlp([chain_id, address, nonce])), y_parity, r, s] (คล้ายกับการถอดรหัสลายเซ็นก่อนหน้าเพื่อรับที่อยู่จาก สิ่งที่ได้รับที่นี่คือลายเซ็นท้องถิ่น ที่อยู่สำหรับรายการนี้)
ตรวจสอบรหัสลูกโซ่ (เล่นซ้ำลูกโซ่ป้องกันการแยก)
ตรวจสอบว่ารหัสของผู้ลงนามหน่วยงานนั้นว่างเปล่าหรือได้รับการมอบหมาย (ตรวจสอบว่าธุรกรรมนั้นเป็นธุรกรรม 7702 ที่ถูกต้องหรือไม่ และกลไกการมอบหมายจะถูกใช้เพื่อดำเนินธุรกรรมในภายหลัง)
ตรวจสอบ nonce ของผู้ลงนามผู้มีอำนาจ (เพื่อป้องกันการเล่นซ้ำลายเซ็นผู้มีอำนาจ)
ตั้งรหัสของผู้ลงนามอำนาจเป็น 0x ef 0100 || ที่อยู่ (ใช้เพื่อข้ามนโยบายป้องกันการชนกันของ EIP 3607)
เพิ่ม nonce ของผู้ลงนามผู้มีอำนาจ (เพื่อป้องกันการเล่นซ้ำลายเซ็นบางส่วน)
เพิ่มบัญชีผู้ลงนามผู้มีอำนาจไปยังรายการที่อยู่เยี่ยมชม (โอนที่อยู่ร้อนเพื่อลดค่าธรรมเนียมก๊าซสำหรับการจัดเก็บแบบสอบถาม)
4.3.2 ระยะการดำเนินการดำเนินการ
รหัสสัญญาและคำแนะนำการใช้งานที่จะดำเนินการอยู่ที่ไหน?
เวอร์ชัน ใหม่ จะเปลี่ยนพฤติกรรมที่เกี่ยวข้องกับการใช้งานโค้ดเท่านั้น
แทนที่จะตั้งค่ารหัสบัญชีเป็น Contract_code ระบบจะดึงที่อยู่รหัสจาก authorization_list และตั้งค่ารหัสนั้นเป็นรหัสบัญชี
ดังนั้น เมื่อจำเป็นต้องดำเนินการรหัสการอนุญาต รหัสจะถูกโหลดจากที่อยู่ที่ระบุในช่องที่อยู่ของ authorization_list และดำเนินการในบริบทของบัญชีของผู้ลงนาม
ซึ่งหมายความว่า รหัสสัญญาของผู้ใช้จะถูกจัดเก็บตามที่อยู่เฉพาะบนเครือข่าย แทนที่จะรวมไว้ในธุรกรรมโดยตรง
คำแนะนำการใช้งานและพารามิเตอร์ที่เกี่ยวข้องจะถูกจัดเก็บไว้ในช่องข้อมูลของเพย์โหลดธุรกรรม
4.4 EIP-7702 มีมูลค่าเท่าไร?
จะเปลี่ยนลิงก์ทั้งหมดของกระเป๋าเงิน Web3 และประสบการณ์ผู้ใช้ก็จะเปลี่ยนไปอย่างมากเช่นกัน เนื่องจากธุรกรรมปกติที่ริเริ่มโดย EOA ยังสามารถดำเนินการตรรกะที่หลากหลายที่คล้ายกับสัญญา เช่น การโอนเป็นชุด สถานการณ์ CeFi จะส่งผลกระทบต่อการระบุธุรกรรมและค่าธรรมเนียมการถอนเงิน เนื่องจากเกิดขึ้น จึงได้ทำลายทัศนคติเดิมๆ หลายประการ เช่น:
แบ่งค่าคงที่ที่สามารถลดยอดคงเหลือในบัญชีได้โดยธุรกรรมที่มาจากบัญชีนั้นเท่านั้น
แบ่งค่าคงที่ที่ EOA nonce เพิ่มขึ้น 1 หลังจากเริ่มดำเนินธุรกรรม (อาจเพิ่มหลายรายการพร้อมกัน)
ตรรกะการป้องกันของการเปรียบเทียบระหว่าง tx.origin และ msg.sender ใช้งานไม่ได้ และสัญญาที่ผ่านมาหลายสัญญาตกอยู่ในความเสี่ยง
มันทำลายสถานะเดิมที่ EOA ไม่สามารถออกเหตุการณ์ได้ อาจจำเป็นต้องใส่ใจกับการระบุและการติดตามเหตุการณ์ออนไลน์บางอย่าง
มันทำลายสถานะเดิมที่ที่อยู่ EOA จะต้องประสบความสำเร็จในการยอมรับ ERC 20, 721, 1155 และสินทรัพย์อื่น ๆ (อาจล้มเหลวเนื่องจากกลไกการโทรกลับ)
4.5 การเปรียบเทียบระหว่าง EIP-7702 และ EIP-4337
1. ข้อดีของ EIP-7702
ก๊าซมีค่าต่ำกว่าเนื่องจากไม่จำเป็นต้องผ่านโมดูลจุดเข้าใช้งาน ช่วยลดการทำงานแบบออนไลน์
ค่าใช้จ่ายในการย้ายผู้ใช้ต่ำกว่า และไม่จำเป็นต้องปรับใช้สัญญาออนไลน์เป็นหัวข้อล่วงหน้า
เมื่อเปรียบเทียบกับ Eip 4337 จะมีการดำเนินการมอบหมายโค้ดด้วย และจะมีสองวิธีด้วย:
คณะผู้แทนเต็มรูปแบบ
การมอบหมายแบบเต็มหมายถึงการมอบหมายสิทธิ์ทั้งหมดสำหรับการดำเนินการไปยังที่อยู่เฉพาะ ตัวอย่างเช่น ผู้ใช้สามารถมอบหมายสิทธิ์การจัดการของโทเค็น ERC-20 ทั้งหมดไปยังที่อยู่สัญญาอัจฉริยะ เพื่อให้สัญญาอัจฉริยะนี้สามารถดำเนินการที่เกี่ยวข้องทั้งหมดในนามของผู้ใช้ได้
คณะผู้แทนที่ได้รับการคุ้มครอง
การมอบหมายที่ได้รับการคุ้มครองหมายถึงการเพิ่มข้อจำกัดและมาตรการป้องกันในระหว่างกระบวนการมอบหมาย เพื่อให้มั่นใจในความปลอดภัยและการควบคุมของการดำเนินการมอบหมาย
ตัวอย่างเช่น ผู้ใช้สามารถมอบหมายการจัดการโทเค็น ERC-20 เพียงบางส่วนให้กับสัญญาอัจฉริยะ หรือกำหนดข้อจำกัดบางอย่าง (เช่น การใช้จ่ายรายวันสูงสุด 1% ของยอดคงเหลือทั้งหมด)
2. ข้อเสียของ EIP-7702
ข้อบกพร่องหลักของมันคือการอัพเกรด soft fork ซึ่งต้องใช้ความเห็นพ้องต้องกันของทุกคนในการส่งเสริม และการเปลี่ยนแปลงมีขนาดใหญ่มาก ซึ่งจะมีผลกระทบอย่างกว้างขวางต่อระบบนิเวศของห่วงโซ่ จากการประเมินเบื้องต้นของ King Fourth King ที่นั่น เป็นความท้าทายต่อไปนี้ แต่ความท้าทายก็เป็นโอกาสทางการตลาดเช่นกัน:
ระดับความเป็นอิสระนั้นสูงมากและเป็นการยากที่จะตรวจสอบ ผู้ใช้จะต้องมีกระเป๋าเงินที่เชื่อถือได้มากขึ้นเพื่อให้การป้องกันด้านความปลอดภัย
โครงสร้างเดิมมีการเปลี่ยนแปลงมากเกินไป แม้ว่าจะจำแนกตามประเภทธุรกรรมที่แตกต่างกัน แต่โครงสร้างพื้นฐานจำนวนมาก โดยเฉพาะอย่างยิ่งสัญญาที่ไม่เปลี่ยนรูปในห่วงโซ่ไม่สามารถปรับเปลี่ยนได้โดยตรง
ความสามารถของสัญญามีให้สำหรับที่อยู่ EOA แต่ไม่สามารถรักษาพื้นที่เก็บข้อมูลที่เกี่ยวข้องได้
ต้นทุนของธุรกรรมแยกต่างหากจะสูงขึ้นเล็กน้อยเนื่องจากส่วน Calldata จะเพิ่มขึ้นอย่างมาก ต้นทุนรวมของการโทรโดยประมาณคือ 16 (แบบแก๊ส) * 15 (ไบต์) = 240 (แบบแก๊ส) ต้นทุนข้อมูลการโทร บวกกับต้นทุนของ EIP- 3860 2 * 15 = 30 บวกกับต้นทุนรันไทม์โดยประมาณที่ 150 ดังนั้นเพียงเตรียมบัญชีแม้ว่าคุณจะไม่ทำอะไรเลยก็ตาม ก็จะทำให้แก๊สเพิ่มขึ้น 500
หากผู้รับลงนามรหัสโดยไม่ได้รับฟังก์ชัน ผู้ส่งอาจเผชิญกับ DoS เมื่อพยายามส่งเนื้อหา ดูกรณีนี้ ปัญหาคือจริงๆ แล้ว EOA A ลงนามในบางสิ่งที่ไม่ควรลงนาม - ไฟล์ที่เล่นซ้ำได้โดยมีการตั้งค่าการใช้งานที่ไม่ถูกต้อง (ไม่มีการรับ ())
ตรรกะการถอนแบบออนไลน์อาจไม่สอดคล้องกัน ตัวอย่างเช่น เมื่อโอนโทเค็น ERC-20 หากบัญชีผู้รับมีรหัส สัญญาโทเค็นจะเรียก onERC 20 ได้รับสำหรับบัญชีผู้รับ หาก onERC 20 ที่ได้รับแปลงกลับหรือส่งคืนค่าที่ไม่ถูกต้อง การโอนโทเค็นจะแปลงกลับ
นอกจากนี้หาก EOA ปล่อยอีเว้นท์ได้จะมีปัญหาอะไรหรือไม่? โครงสร้างพื้นฐานบางอย่างอาจต้องได้รับการดูแล
นี่เป็นเพียงข้อบกพร่องบางส่วนที่ Shishijun สรุปโดยอิงตามเนื้อหาข้อเสนอ EIP 7702 ในปัจจุบันและการอภิปรายในฟอรัมอย่างเป็นทางการที่เกี่ยวข้อง ในท้ายที่สุด จะต้องมีการวิเคราะห์อย่างสมบูรณ์ตามโค้ดการใช้งานขั้นสุดท้าย การอ้างอิงมีดังนี้:
https://eips.ethereum.org/EIPS/eip-7702
https://ethereum-magicians.org/t/eip-set-eoa-account-code-for-one-transaction/19923
5. สรุปข้อความฉบับเต็ม
บทความนี้ดูเหมือนจะมีความยาวมาก แต่จริงๆ แล้วเนื้อหาข้อความมีความยาวมากกว่า 6,000 คำเท่านั้น การตีความ EIP ก่อนหน้านี้หลายรายการที่เกี่ยวข้องสามารถขยายความผ่านลิงก์ในบทความได้ ดังนั้นฉันจะไม่กลับไปอ่านอีก
ในปัจจุบัน การลบบัญชีสามารถวางไว้ในโมดูลที่หกเท่านั้น ซึ่งก็คือการแก้ไขทุกอย่าง ซึ่งก็คือ ในที่สุดก็ถูกนำไปใช้แล้ว ขณะนี้ความก้าวหน้าของ EIP 7702 ได้รับการเร่งอย่างมาก จะนำความท้าทายมาสู่ความปลอดภัยของระบบมากขึ้น ตามที่คาดไว้ ในที่สุดเขาก็จะตระหนักได้ หลังจากนั้น เหตุการณ์ก่อกวน เช่น การควบรวมกิจการของ Ethereum และการปรับเปลี่ยนอัลกอริธึมที่เป็นเอกฉันท์ก็สามารถเกิดขึ้นได้ แล้วประเภทธุรกรรมใหม่ ๆ ล่ะ?
แต่คราวนี้มีการโค่นล้มมากเกินไป ฝ่าฝืนกฎที่เป็นไปไม่ได้ในหลาย ๆ เชน และทำลายตรรกะการใช้งานของ DApps ส่วนใหญ่ อย่างไรก็ตาม มันได้ยึดครองประเด็นหลักอย่างมั่นคง ซึ่งก็คือต้นทุนสำหรับผู้ใช้ที่ต่ำกว่า เข้าใจแล้ว! เปรียบเทียบสิ่งนี้กับต้นทุนการทำธุรกรรมเกือบสองเท่าของ EIP 4337
ตัวผู้ใช้เองยังคงมีที่อยู่ EOA และขับเคลื่อนและใช้ตรรกะ CA เมื่อจำเป็นเท่านั้น ต้นทุนการถือครองจึงต่ำ ไม่จำเป็นต้องแปลงข้อมูลระบุตัวตนของ CA บนเชนก่อนดำเนินการ ซึ่งหมายความว่าผู้ใช้ไม่จำเป็นต้องลงทะเบียน
ผู้ใช้สามารถใช้ EOA เพื่อทำธุรกรรมหลายรายการพร้อมกันได้อย่างง่ายดาย เช่น การอนุญาตการหัก ณ ที่จ่ายและการดำเนินการการหัก ณ ที่จ่ายในที่เดียว ซึ่งจะช่วยลดต้นทุนการทำธุรกรรมสำหรับผู้ใช้ สำหรับ Dapps โดยเฉพาะอย่างยิ่งผู้ที่ต้องมีฝ่ายโครงการการจัดการระดับองค์กรแบบออนไลน์ เช่น การแลกเปลี่ยน ได้ทำการเพิ่มประสิทธิภาพแบบพลิกโฉม เมื่อการรวมกลุ่มเป็นกลุ่มในระบบนิเวศดั้งเดิม ต้นทุนการแลกเปลี่ยนพื้นฐานจะลดลงมากกว่าครึ่งหนึ่งในทันที ซึ่งจะเป็นประโยชน์ต่อผู้ใช้ในท้ายที่สุด
ดังนั้นถึงแม้จะมีการเปลี่ยนแปลงไปมากในเรื่องของต้นทุน แต่ก็คุ้มค่าที่จะศึกษาและปรับใช้กับ DApps ทั้งหมด เพราะคราวนี้ผู้ใช้จะต้องอยู่ข้าง EIP 7702