ผู้เขียนต้นฉบับ:Albert He, BlockPI Cheif Scientist
การรวบรวมต้นฉบับ: MarsBit, MK
ผู้เขียนต้นฉบับ:
การรวบรวมต้นฉบับ: MarsBit, MK
ไม่ว่าจะเป็นตลาดกระทิงหรือตลาดหมี ระบบนิเวศของ Ethereum ได้สร้างและเพิ่มประสิทธิภาพด้วยตนเองอย่างต่อเนื่อง ในหมู่พวกเขา Account Abstraction (AA) ได้กลายเป็นความก้าวหน้าที่สำคัญมากในช่วงไม่กี่ปีที่ผ่านมา และได้เจาะเข้าไปในองค์ประกอบต่างๆ ของระบบนิเวศ Ethereum รวมถึงแอปพลิเคชัน โครงสร้างพื้นฐาน ผู้ใช้ และนักพัฒนา
เราคาดการณ์ได้ว่าการนำ AA มาใช้อย่างกว้างขวางสามารถลดอุปสรรคในการเข้าสู่กรณีการใช้งานบล็อกเชนได้ ดังนั้นจึงนำประสบการณ์ผู้ใช้ web2 มาสู่อุตสาหกรรม web3
เพื่อตอบรับความเป็นไปได้ในการสร้างตลาด AA มูลค่าหลายพันล้าน BlockPI วางแผนที่จะทุ่มเททรัพยากรเพื่อบูรณาการ AA เข้ากับบริการโครงสร้างพื้นฐาน ด้วยการสร้างการบูรณาการของ AA เรามุ่งมั่นที่จะมอบวิธีที่สะดวกและมีประสิทธิภาพมากขึ้นสำหรับผู้ใช้ AA ในการโต้ตอบกับบัญชีกระเป๋าเงินสัญญาของพวกเขาบนบล็อกเชน ขณะเดียวกันก็วางตำแหน่ง BlockPI ให้เป็นผู้นำในอุตสาหกรรม
ในโพสต์นี้ ฉันจะเจาะลึกความเข้าใจของเราเกี่ยวกับ AA และแบ่งปันความคิดจากมุมมองของผู้ให้บริการโครงสร้างพื้นฐาน
EOA และกระเป๋าเงินสัญญาอัจฉริยะ
แนวคิดของ AA เกิดจากข้อจำกัดของบัญชี EOA บัญชี EOA (บัญชีที่เป็นเจ้าของภายนอก) เป็นบัญชีผู้ใช้ทั่วไปใน Ethereum ซึ่งแสดงด้วยรหัสสาธารณะ (ที่อยู่บล็อกเชน) และเข้าถึงได้ผ่านรหัสส่วนตัว เป็นองค์ประกอบหลักของระบบนิเวศ Ethereum ทำให้ผู้ใช้สามารถโต้ตอบกับสัญญาอัจฉริยะและดำเนินธุรกรรมบนเครือข่ายได้ อย่างไรก็ตาม การใช้ EOA อาจเป็นเรื่องที่ท้าทายสำหรับผู้คน และความไม่สะดวกบางประการอาจส่งผลต่อประสบการณ์ของผู้ใช้
ความไม่สะดวกประการแรกของ EOA เกี่ยวข้องกับการใช้แก๊ส ธุรกรรมแต่ละรายการจะทำให้ผู้ใช้เสียค่าใช้จ่าย ETH จำนวนมากเป็นค่าธรรมเนียม Gas (ค่าธรรมเนียมการโอน ETH อย่างง่าย 25 Gwei สำหรับราคา Gas คือ 0.5 USD และมากกว่านั้นสำหรับการโต้ตอบตามสัญญาหรือราคา Gas ที่สูงขึ้น) ทำให้ค่าธรรมเนียมการทำธุรกรรมมีราคาแพงมากสำหรับธุรกรรมขนาดเล็ก โดยเฉพาะในช่วงที่มีการใช้งานเครือข่ายหนาแน่น นอกจากนี้ มีเพียง ETH เท่านั้นที่สามารถใช้เพื่อชำระค่า Gas ซึ่งหมายความว่าผู้ใช้จะต้องมี ETH ในกระเป๋าสตางค์ ซึ่งเป็นอุปสรรคสำคัญในการเข้าใช้งานสำหรับผู้ใช้จำนวนมาก
ความไม่สะดวกประการที่สองของ EOA คือไม่สามารถทำธุรกรรมแบบมีเงื่อนไขได้ เว้นแต่จะใช้ตรรกะบางอย่างโดยใช้สัญญาอัจฉริยะอื่นๆ ตัวอย่างเช่น หากผู้ใช้ต้องการตั้งค่าการโอนตามกำหนดเวลา ผู้ใช้จะต้องโอน ETH ไปยังสัญญาอัจฉริยะของบุคคลที่สามด้วยฟังก์ชันนี้เพื่อให้บรรลุฟังก์ชันนี้
ความไม่สะดวกประการที่สามของ EOA คืออัลกอริธึมการเข้ารหัสลายเซ็น เครือข่าย Ethereum ใช้อัลกอริธึมลายเซ็นดิจิทัลเฉพาะที่เรียกว่า secp 256 k 1 เพื่อรับรองความถูกต้องและความปลอดภัยของธุรกรรม นี่เป็นฮาร์ดโค้ดเข้าสู่ระบบและผู้ใช้ไม่สามารถเลือกใช้อัลกอริธึมอื่นได้
ดังนั้นจากปัญหาเหล่านี้ผู้คนจึงเริ่มพยายามหาทางแก้ไข กระเป๋าเงินสัญญาอัจฉริยะ เช่น MetaMask และ Argent เป็นผลมาจากความพยายามเหล่านี้ โดยแก้ไขข้อจำกัดหลายประการของ EOA โดยใช้สัญญาอัจฉริยะ Ethereum เพื่อปรับปรุงฟังก์ชันการทำงานของบัญชีผู้ใช้ อย่างไรก็ตาม โซลูชันดังกล่าวยังคงมีข้อเสียบางประการ โดยส่วนใหญ่กำหนดให้ผู้ใช้ต้องชำระค่าธรรมเนียม Gas สำหรับการทำธุรกรรม และความนิยมของกระเป๋าเงินสัญญาอัจฉริยะ
จากความท้าทายเหล่านี้ Ethereum เริ่มพยายามนำเสนอแนวคิดใหม่ ซึ่งก็คือนามธรรมของบัญชี เป้าหมายของการแยกบัญชีคือการแก้ปัญหาเหล่านี้ในระดับโปรโตคอล แทนที่จะอาศัยสัญญาอัจฉริยะหรือมิดเดิลแวร์อื่นๆ นี่คือสิ่งที่เราเรียกว่า Account Abstraction (AA)
ในส่วนที่เหลือของโพสต์นี้ ฉันจะเจาะลึกแนวคิดเกี่ยวกับนามธรรมของบัญชี และวิธีที่เราสามารถใช้เพื่อเพิ่มประสิทธิภาพโครงสร้างพื้นฐานของ BlockPI
นอกเหนือจากความไม่สะดวกสามประการของ EOA ที่กล่าวถึงข้างต้นแล้ว ความสัมพันธ์ที่มีผลผูกพันระหว่างคีย์สาธารณะและคีย์ส่วนตัวก็เป็นปัญหาเช่นกัน คีย์ส่วนตัวเป็นวิธีเดียวในการเข้าถึง EOA และหากสูญหาย จะไม่สามารถกู้คืนคีย์ส่วนตัวได้ ซึ่งหมายความว่าหากคีย์ส่วนตัวสูญหาย ทรัพย์สินทั้งหมดที่เกี่ยวข้องกับคีย์นั้นจะไม่สามารถเรียกคืนได้
นอกจากนี้ EOA ยังเผชิญกับข้อจำกัดเมื่อปฏิบัติงานเชิงเส้นในธุรกรรมเดียว ตัวอย่างเช่น หากผู้ใช้ต้องการอนุมัติ แลกเปลี่ยน และยกเลิกการอนุมัติโทเค็นในการดำเนินการเดียว พวกเขาจำเป็นต้องทำธุรกรรมสามรายการแยกกัน ซึ่งไม่มีประสิทธิภาพและใช้เวลานาน
ข่าวดีก็คือว่าปัญหาทั้งหมดข้างต้นสามารถแก้ไขได้ด้วยกระเป๋าเงินสัญญาอัจฉริยะ กระเป๋าเงินสัญญาอัจฉริยะเป็นสัญญาอัจฉริยะประเภทพิเศษที่ใช้ AA ได้รับการออกแบบมาเพื่อทำหน้าที่เป็นกระเป๋าเงินของผู้ใช้บนเครือข่าย Ethereum และมอบวิธีการจัดการเงินทุนที่ปรับเปลี่ยนและเป็นส่วนตัวมากขึ้น ตราบใดที่ตรรกะของสัญญาอัจฉริยะ Ethereum สามารถรับรู้ได้ กระเป๋าเงินสัญญาอัจฉริยะก็สามารถให้ฟังก์ชันที่จำเป็นได้
EIP-86
โดยเฉพาะอย่างยิ่ง ธุรกรรมของกระเป๋าเงินสัญญาอัจฉริยะสามารถรวมเป็นธุรกรรมออนไลน์เพื่อแบ่งปันต้นทุนก๊าซ หากบุคคลที่สามยินดีจ่าย ก็อาจไม่มีค่าใช้จ่ายก๊าซด้วยซ้ำ การดำเนินการสามารถอำนวยความสะดวกในการดำเนินงานตามลำดับภายในกระเป๋าเงินสัญญาอัจฉริยะได้ กระเป๋าเงินสัญญาอัจฉริยะสามารถรองรับอัลกอริธึมการเข้ารหัสลายเซ็นและตั้งค่ารหัสกู้คืน ฯลฯ
EIP-2938
จากการพูดคุยเกี่ยวกับประโยชน์ของกระเป๋าเงินสัญญาอัจฉริยะ ชุมชน Ethereum ได้ดำเนินการเกี่ยวกับกระเป๋าเงินสัญญามาตั้งแต่ต้น แม้ว่าจะมีการเสนอ EIP จำนวนมากเพื่อสำรวจนามธรรมของบัญชี แต่ก็ยังไม่มีการจัดตั้งมาตรฐานแบบครบวงจรจนถึงปี 2021 ด้านล่างนี้คือข้อเสนอที่เป็นตัวแทนมากที่สุดบางส่วน
EIP-3074
สร้างสรรค์ครั้งแรกในปี 2560 โดย Vitalik Buterin ใช้ชุดการเปลี่ยนแปลงในการตรวจสอบลายเซ็น นามธรรม และบริการตรวจสอบ nonce ทำให้ผู้ใช้สามารถสร้าง สัญญาบัญชี ที่ทำการตรวจสอบลายเซ็น/nonce ที่ต้องการ
สร้างขึ้นในปี 2020 ชื่อของ EIP นี้คือ Account Abstraction EIP ฉบับนี้ให้รายละเอียดเกี่ยวกับแนวคิดของ AA แนะนำธุรกรรมประเภทใหม่ ธุรกรรม AA ธุรกรรมนี้จะเริ่มต้นโดยที่อยู่ EntryPoint และเรียกสัญญากระเป๋าเงิน AA การทำเช่นนี้จะมอบข้อกำหนดที่เป็นหนึ่งเดียวและแนะนำ AA เข้าสู่ฉันทามติของ Ethereum โดยเฉพาะอย่างยิ่ง มันเพิ่ม opcode ใหม่สองตัว ตัวแปรระดับโลกสามตัว และโครงสร้างเพย์โหลดที่แตกต่างกันให้กับฉันทามติของ Ethereum
ERC — 4337
สร้างขึ้นในปี 2020 EIP นี้แนะนำคำสั่ง EVM สองคำสั่ง ได้แก่ AUTH และ AUTHCALL AUTH ตั้งค่าตัวแปรบริบทที่เรียกว่าได้รับอนุญาตตามลายเซ็น ECDSA AUTHCALL ส่งการโทรในนามของบัญชีที่ได้รับอนุญาต ซึ่งช่วยให้สัญญาอัจฉริยะสามารถส่งธุรกรรมในนามของ EOA ได้ แต่นี่ไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์แบบสำหรับ AA EIP-3074 วางข้อจำกัดบางประการเกี่ยวกับการโอนมูลค่าดั้งเดิมในระหว่างธุรกรรมการสนับสนุน หากคุณสูญเสียการเข้าถึง EOA คุณจะไม่สามารถกู้คืนทรัพย์สินของคุณได้ และหากถูกขโมย ทรัพย์สินทั้งหมดจะต้องถูกโอนไปยังบัญชีใหม่
แนวคิดข้างต้นไม่ได้ถูกนำมาใช้อย่างเป็นทางการในโปรโตคอล Ethereum เนื่องจากเหตุผลหลัก เช่น จำเป็นต้องมีการเปลี่ยนแปลงในระดับฉันทามติหรือไม่ครอบคลุม ดังนั้น ชุมชน Ethereum ยังคงสำรวจวิธีการแนะนำ AA ในโปรโตคอล Ethereum โดยไม่เปลี่ยนแปลงความเห็นพ้องต้องกัน และในที่สุดก็สร้าง EIP 4337
EIP-4337 ได้รับการเสนอครั้งแรกในเดือนกันยายน 2021 และได้รับอนุญาตเป็น ERC-4337 ในเดือนมีนาคม 2023 ผู้เขียน ได้แก่ Vitalik Buterin, Yoav Weiss, Kristof Gazso, Namra Patel, Dror Tirosh, Shahaf Nacson และ Tjaden Hess
EIP-4337 เป็นข้อเสนอที่เปลี่ยนแปลงเกมที่แนะนำ AA โดยไม่ต้องทำการเปลี่ยนแปลงใดๆ กับโปรโตคอลหลักของ Ethereum EIP-4337 เป็นแนวทางมาตรฐาน ERC-4337 ซึ่งผู้สร้างสามารถใช้เพื่อปรับใช้กระเป๋าเงินสัญญาอัจฉริยะของตนเองได้ และมีโครงสร้างพื้นฐานเพิ่มเติมบางอย่าง รวมถึง Bundlers และพูลหน่วยความจำ UserOperation โดยการทำเช่นนี้ จะจำลองการทำงานของ mempool ธุรกรรมในระบบขั้นสูงมากขึ้น แทนที่จะส่งธุรกรรม ผู้ใช้ส่งออบเจ็กต์ UserOperation ซึ่งสามารถรวมเป็นธุรกรรมเดียวและรวมอยู่ในห่วงโซ่ Ethereum
ต่อไปนี้เป็นคำอธิบายทางเทคนิคที่เฉพาะเจาะจงมากขึ้นของ ERC-4337 จากเอกสารอย่างเป็นทางการ รวมถึงความคิดเห็นบางส่วนเพื่อความเข้าใจที่ดีขึ้น
ความหมายและบทบาทสำคัญของ ERC-4337
UserOperation — โครงสร้างที่อธิบายธุรกรรมที่ส่งในนามของผู้ใช้ เพื่อหลีกเลี่ยงความสับสน จึงไม่ได้ชื่อว่า ธุรกรรม มันถูกส่งไปยัง Bundler เพื่อรวมแพ็คเกจกับ UserOperations อื่น ๆ แพ็คเกจจะถูกส่งไปยังผู้สร้างบล็อกเป็นธุรกรรมเดียว
ผู้ส่ง — บัญชีสัญญาที่ส่ง UserOperation ใหม่ กระเป๋าเงินสัญญาอัจฉริยะต้องใช้อินเทอร์เฟซ IAccount ของ ERC-4337
EntryPoint — สัญญาแบบซิงเกิลตันที่ใช้แพ็คเกจ UserOperations รายการที่อนุญาตพิเศษของ Bundlers/Client รองรับ EntryPoints สัญญานี้ได้รับการอนุมัติและตรวจสอบโดยทีมงาน Infinitism และมีหน้าที่รับผิดชอบในการจัดการการปฏิบัติงานของผู้ใช้ทั้งหมดและเชื่อมโยงสัญญาอื่นๆ รวมถึง Wallet Factory, Aggregator, Paymaster โดยจะมีที่อยู่เดียวกันบนเครือข่ายที่เข้ากันได้กับ EVM ส่วนใหญ่
Bundler — โหนด (ตัวสร้างบล็อก) ที่รวม UserOperations หลายรายการจาก mempool และสร้างธุรกรรม EntryPoint.handleOps() เครื่องมือตรวจสอบความถูกต้องทั้งหมดที่ชั้นโปรโตคอลไม่จำเป็นต้องเป็น Bundlers บริการ Bundler สามารถทำงานได้อย่างอิสระจากตัวสร้างบล็อก และใช้ RPC เพื่อส่ง UserOperations แบบรวม
ผู้รวบรวม — สัญญาผู้ช่วยที่ได้รับความไว้วางใจจากบัญชีเพื่อตรวจสอบลายเซ็นรวม Bundlers/Clients อนุญาตพิเศษให้กับผู้รวบรวมที่สนับสนุน ผู้รวบรวมต้องใช้อินเทอร์เฟซ ERC-4337 IAggregator
Paymaster — สัญญาที่สามารถชำระค่าธรรมเนียมก๊าซของ UserOperation สำหรับผู้ส่ง หากมีการฝาก ETH เพียงพอในสัญญา EntryPoint Paymaster ใช้ Gas abstraction ที่มีประสิทธิภาพ Paymaster ต้องใช้อินเทอร์เฟซ Paymaster ของ ERC-4337 Paymaster สามารถมีตรรกะของตัวเองในการทำข้อตกลงกับผู้ส่ง ตัวอย่างเช่น ผู้ส่งชำระเงิน USDC ให้กับ Paymaster และ Paymaster สนับสนุน UserOperations ด้วย ETH ในความเป็นจริง โทเค็น ERC 20 ใดๆ หรือแม้แต่โทเค็นบนเชนอื่นๆ สามารถรองรับได้ตราบใดที่ Paymaster เห็นด้วย และเป็นไปได้ในทางเทคนิค
Wallet Factory — สัญญาที่สามารถเรียกใช้เพื่อสร้างกระเป๋าเงินสัญญาอัจฉริยะสำหรับผู้ใช้ ERC-4337 การปรับใช้โรงงานกระเป๋าสตางค์นั้นไม่ได้รับอนุญาต เนื่องจากเป็นองค์ประกอบออนไลน์ จึงเปิดให้มีการตรวจสอบโดยสาธารณะและการตรวจสอบอย่างโปร่งใส Wallet Factory ที่ใช้กันอย่างแพร่หลายควรได้รับการตรวจสอบอย่างครบถ้วนโดยผู้เชี่ยวชาญ
แผนภาพด้านล่างอธิบายว่าสัญญา EntryPoint มีปฏิสัมพันธ์กับผู้มีบทบาทรายอื่นอย่างไร
Bundlers เรียกใช้ฟังก์ชัน handleOps ของสัญญา EntryPoint ซึ่งรับ UserOperation เป็นอินพุต
handleOps ตรวจสอบ UserOperation บนลูกโซ่ ตรวจสอบว่ามีการลงนามโดยที่อยู่กระเป๋าเงินสัญญาอัจฉริยะที่ระบุหรือไม่ และกระเป๋าเงินมี Gas เพียงพอที่จะชดเชย Bundler หรือไม่
หากการตรวจสอบยืนยันสำเร็จ handleOps จะดำเนินการฟังก์ชันกระเป๋าเงินสัญญาอัจฉริยะตามลายเซ็นฟังก์ชันและพารามิเตอร์อินพุตที่กำหนดไว้ในข้อมูลการโทรของ UserOperation
ในทางกลับกัน เมื่อ Bundler ใช้ EOA เพื่อทริกเกอร์ฟังก์ชัน handleOps จะมีค่าธรรมเนียมแก๊ส กระเป๋าเงินสัญญาอัจฉริยะสามารถชำระค่าธรรมเนียม Gas ให้กับ Bundlers จากยอดเงินในบัญชีของตัวเอง หรือขอให้สัญญา Paymaster ชำระในนามของมัน การดำเนินการของผู้ใช้ที่มี Gas ไม่เพียงพอไม่สามารถผ่านกระบวนการตรวจสอบในกระเป๋าเงินสัญญาอัจฉริยะเป้าหมายได้ จึงล้มเหลวก่อนดำเนินการ แม้ว่าจะมีก๊าซเพียงพอ UserOperations อาจล้มเหลวระหว่างการดำเนินการ เช่น เนื่องจากข้อผิดพลาดรันไทม์ ไม่ว่าการดำเนินการจะสำเร็จหรือไม่ก็ตาม สัญญา EntryPoint จะจ่ายค่าธรรมเนียม Gas ให้กับ Bundler ที่เรียกใช้ฟังก์ชัน handleOps

(ที่มา: เอกสารอย่างเป็นทางการ: https://eips.ethereum.org/EIPS/eip-4337)
หลังจากที่ ERC-4337 มีผลบังคับใช้ ผู้ใช้มีสองวิธีในการเริ่มต้นธุรกรรมบล็อคเชน วิธีแรกคือวิธีดั้งเดิมที่ EOA เป็นผู้เริ่มการทำธุรกรรม อีกประการหนึ่งคือใช้มาตรฐาน ERC-4337 เพื่อเริ่ม UserOperation ผ่าน Bundler จากนั้น Bundler จะทำแพ็กเกจกับ UserOperations อื่นๆ และเริ่มต้นบนเชน แผนผังลำดับงานต่อไปนี้แสดงให้เห็นถึงความแตกต่างระหว่างธุรกรรมการส่ง EOA ปกติและกระเป๋าเงินสัญญา ERC-4337 ที่ส่ง UserOperation
ถนนลาดยางแต่ผู้โดยสารไม่มากนัก
ERC-4337 มอบเฟรมเวิร์กอันทรงพลังสำหรับผู้ใช้และนักพัฒนาเพื่อใช้และสร้าง AA บนแพลตฟอร์ม Ethereum แม้ว่ากรอบการทำงานนี้จะเป็นก้าวสำคัญในการก้าวไปข้างหน้า แต่ความท้าทายและความไม่แน่นอนหลายประการยังคงต้องได้รับการแก้ไขและแก้ไข
การนำ AA มาใช้ยังอยู่ในช่วงเริ่มต้น ตามแผงการวิเคราะห์ Dune ERC-4337 (ERC-4337 Account Abstraction จาก @niftytable) การดำเนินการของผู้ใช้เพียง 65 k+ เท่านั้นที่ถูกดำเนินการบนลูกโซ่ ซึ่ง 90% มาจากรูปหลายเหลี่ยม ดังนั้นจำนวน UserOperations ที่ดำเนินการในเวลานี้ยังน้อยมาก ซึ่งส่วนใหญ่เป็นการทดสอบของนักพัฒนาซอฟต์แวร์และมีเพียงส่วนเล็ก ๆ เท่านั้นที่มาจากผู้ใช้ เราทราบว่าผลิตภัณฑ์ที่รวม AA ยังอยู่ในช่วงเริ่มต้น ในเวลาเดียวกัน คุณจะเห็นว่ากำไรของ Bundler เป็นลบ (-700 ในแง่ MATIC) เนื่องจากตัวรวมข้อมูลบางตัวบน Polygon ไม่ได้คำนวณก๊าซการตรวจสอบล่วงหน้าอย่างถูกต้อง อัลกอริธึมการยืนยันนี้ยังต้องการการเพิ่มประสิทธิภาพ
นอกเหนือจากนั้น ยังมีประเด็นบางประการที่ต้องแก้ไข ปัญหาหนึ่งคือวิธีที่ Bundlers จัดการกับความล้มเหลวของธุรกรรม หลังจากที่ Bundler รวม UserOperations หลายรายการไว้ด้วยกัน Bundler จะจำลองธุรกรรมก่อนเพื่อตรวจสอบว่าจะมีการย้อนกลับหรือไม่ จากนั้นคำนวณว่าค่าธรรมเนียม Gas ที่ผู้ส่งหรือ Paymaster คืนนั้นมากกว่าค่าธรรมเนียม Gas ที่ชำระโดยธุรกรรมหรือไม่ หากทำกำไรได้ Bundler จะส่งชุด UserOperations นี้พร้อมกันเป็นธุรกรรมไปยังตัวสร้างบล็อก อย่างไรก็ตาม ธุรกรรมอาจยังคงล้มเหลว ส่งผลให้ Bundler ชำระค่าธรรมเนียมแก๊ส แต่ไม่ได้รับแก๊สคืนจาก EntryPoint ตัวอย่างเช่น ผู้ใช้อาจส่งการดำเนินการไปยัง Bundlers ที่แตกต่างกัน Bundlers ยินดีที่จะส่งการดำเนินการใดๆ บนเครือข่ายหากพวกเขาทำกำไรได้และการจำลองของพวกเขาประสบความสำเร็จ ซึ่งหมายความว่าหาก UserOperation ถูกส่งโดย Bundlers ที่แตกต่างกันในเวลาเดียวกัน ธุรกรรมเดียวเท่านั้นที่จะสำเร็จ มี Bundler เพียงรายเดียวเท่านั้นที่จะได้รับค่าธรรมเนียมก๊าซจาก EntryPoint ส่วน Bundler อื่นๆ ทั้งหมดจะสูญเสียก๊าซเนื่องจากความล้มเหลวของเครือข่ายออนไลน์ แม้ว่าใครจะโต้แย้งว่าผู้ใช้ไม่ควรทำเช่นนี้ แต่พฤติกรรมดังกล่าวจะถือว่าเป็นการโจมตีที่เป็นอันตราย และ Bundler สามารถแบนที่อยู่ผู้ส่งและปฏิเสธคำขอในอนาคตจากที่อยู่นี้ นี่ไม่ใช่แนวทางที่สมเหตุสมผลเนื่องจากผู้ใช้ การดำเนินการนี้อาจมี ถูกส่งมาโดยไม่ได้ตั้งใจ ปัญหาดังกล่าวจำเป็นต้องได้รับการแก้ไขอย่างถูกต้องในโค้ด โดยอาจเกิดจากการพัฒนาเครือข่าย mempool สาธารณะที่ยังไม่เสร็จสมบูรณ์ นอกจากนี้ เนื่องจากความผันผวนของก๊าซอย่างกะทันหัน Bundlers อาจเผชิญกับความสูญเสียแม้ว่าธุรกรรมจะถูกส่งสำเร็จและจำลองว่ามีผลกำไรก็ตาม
อีกประการหนึ่งคือค่าที่สามารถสกัดได้สูงสุด (MEV) ที่สามารถสกัดได้จาก AA ในบริบทของ Ethereum โดยทั่วไป MEV หมายถึงมูลค่าที่นักขุดหรือผู้ประมวลผลธุรกรรมอื่น ๆ สามารถดึงออกมาได้โดยจัดการลำดับของธุรกรรมในบล็อกหรือรวมธุรกรรมของตนเองในบล็อก มีใครสังเกตเห็นว่าตรรกะของ MEV สามารถนำไปใช้กับ AA ได้เช่นกัน เนื่องจาก Bundlers สามารถสั่งซื้อ UserOperations ได้ฟรี อย่างไรก็ตาม นี่เป็นเงื่อนไข โดยต้องมี UserOperations รวมกันเพียงพอเพื่อให้ Bundlers แยก MEV ได้ ขณะนี้ตลาด AA ทั้งหมดยังอยู่ในช่วงเริ่มต้น ดังนั้น Bundler MEV จึงสามารถพิจารณาได้ในช่วงเริ่มต้นด้วยเช่นกัน โดยทั่วไป อุตสาหกรรม AA อาจพัฒนาในสองทิศทาง: ด้านหนึ่งคล้ายกับ Ethereum mainnet โดยมีผู้เข้าร่วมเช่น Flashbots, Ultra Sound และ BloXroute เข้าร่วม และอีกด้านคือการสร้างฉันทามติของ Bundler เพื่อบังคับใช้การสั่งซื้อที่ยุติธรรม แนวทางหลังจะขจัดความเป็นไปได้ของ MEV ใน AA โดยสิ้นเชิง
การพัฒนาในอนาคต
สระสาธารณะ
แม้ว่าระบบนิเวศ AA จะทำงานอยู่แล้ว แต่ก็ยังมีงานพัฒนาอีกมากที่ต้องทำ เมื่อพิจารณาระบบนิเวศ AA ทั้งหมด ช่องว่างที่ใหญ่ที่สุดในปัจจุบันคือพื้นที่สาธารณะ ทีม Etherspot ซึ่งเป็นผู้พัฒนาไคลเอนต์ Skandha Bundler กำลังพัฒนาเครือข่าย p2p ด้วย mempool สาธารณะ เครือข่าย p2p ของ mempool สาธารณะคาดว่าจะพร้อมใช้งานในเดือนสิงหาคมปีนี้
อัลกอริธึมการบรรจุ
ตลอดระยะเวลาที่ผ่านมา มูลนิธิ Ethereum ได้ให้ทุนแก่ทีมพัฒนา AA หลายทีมซึ่งเป็นนักพัฒนาที่ทุ่มเทและทำงานหนัก จนถึงปัจจุบัน ไคลเอนต์ Bundler หลายเวอร์ชันได้รับการพัฒนาและพร้อมใช้งานแล้ว บางส่วนได้รับการพัฒนาอย่างมากในแง่ของการครบกำหนดของผลิตภัณฑ์ ได้แก่ Candide (Voltaire Bundler เขียนด้วย Python), Pimlico (Alto Bundler เขียนด้วย Typescript), Etherspot (Skandha Bundler เขียนด้วย Typescript), Stackup (Stackup-Bundler เขียนด้วย Go) และอีกมากมาย
ตอนนี้ เรามาดูรายละเอียดอัลกอริธึมการบรรจุโดยละเอียดกันดีกว่า ในปัจจุบัน เนื่องจาก UserOperations มีจำนวนน้อย Bundlers จึงสามารถใช้ตรรกะการบรรจุหีบห่อที่เรียบง่ายและตรงไปตรงมา เช่น ช่วงเวลาที่คงที่ หรือจำนวน UserOperations ในแต่ละบันเดิล อย่างไรก็ตาม เนื่องจากจำนวน UserOperations เพิ่มขึ้น โดยเฉพาะอย่างยิ่งหลังจากการแนะนำ mempool สาธารณะ กลยุทธ์ในการเลือกและจัดแพ็กเกจ UserOperations จึงซับซ้อนมากขึ้น เหตุผลง่ายๆ ก็คือ หากไม่มีโปรโตคอลที่เป็นเอกฉันท์ เช่น บล็อกเชน Bundlers จะสร้างป่ามืดขึ้นมา โดยแต่ละแห่งจะจัดลำดับความสำคัญของงานตามความสนใจของตนเอง และแข่งขันกันเอง mempool ส่วนตัวซึ่งสอดคล้องกับ mempool สาธารณะตามลำดับ มีแนวโน้มที่จะมาก่อนมากกว่า เนื่องจากเมื่อไม่ได้ผลกำไรในการจัดแพคเกจ UserOperations จาก mempool สาธารณะ จึงอาจกลายเป็นผลกำไรในการจัดแพคเกจ UserOperations ร่วมกันใน mempool ส่วนตัว ด้วยวิธีนี้ Bundler มีข้อได้เปรียบทางการแข่งขันในเรื่องบรรจุภัณฑ์
นอกจากนี้ เมื่อมีการยอมรับ mempool สาธารณะ การดำเนินการของผู้ใช้จะมีลักษณะที่แตกต่างกัน เช่น ความคาดหวังกำไรของ Gas ที่แตกต่างกัน และความซับซ้อนในการดำเนินการแบบออนไลน์ Bundlers จะดำเนินการจำลองนอกเครือข่ายเพื่อประเมินความสามารถในการทำกำไรของการผสมผสาน UserOperations ต่างๆ เพื่อสร้างกลยุทธ์การรวมกลุ่มที่เป็นเอกลักษณ์ การบรรจุ UserOperations มากขึ้นมีศักยภาพในการสร้างผลกำไรมากขึ้น แต่ยังเพิ่มความเสี่ยงของความล้มเหลวในการตรวจสอบความถูกต้องอีกด้วย แม้ว่าจะผ่านการตรวจสอบแล้ว แต่ความเสี่ยงในการดำเนินการล้มเหลวในห่วงโซ่ยังคงมีอยู่ UserOperations ที่มีแพ็คเกจน้อยกว่าจะทำตรงกันข้าม ผู้รวมกลุ่มจำเป็นต้องตั้งค่าพารามิเตอร์ธุรกรรมก๊าซของตนเอง ซึ่งจะส่งผลต่อลำดับความสำคัญของผู้สร้างบล็อกในการดำเนินการธุรกรรม ภายใต้ราคาก๊าซในตลาดที่แตกต่างกันและสภาวะความผันผวนของก๊าซ ผู้รวมกลุ่มอาจมีกลยุทธ์การบรรจุที่แตกต่างกัน ในเวลาเดียวกัน การตรวจสอบและการคำนวณนโยบายเหล่านี้จำเป็นต้องใช้ทรัพยากรการประมวลผลฮาร์ดแวร์ภายในเครื่องและทรัพยากรโหนดบล็อกเชน นอกจากนี้ Bundlers ยังต้องตรวจสอบให้แน่ใจว่าผู้ใช้ได้รับประสบการณ์ที่ดีและผู้ใช้ไม่ต้องเผชิญกับความล่าช้ามากเกินไปหลังจากส่ง UserOperation
แม้ว่าแนวทางแก้ไขปัญหาความท้าทายเหล่านี้จะยังคงไม่แน่นอน แต่เรามั่นใจได้ว่าวิวัฒนาการของอุตสาหกรรม AA และความพยายามร่วมกันของนักพัฒนาจะพบวิธีแก้ปัญหาในที่สุด ในฐานะผู้สร้างโครงสร้างพื้นฐาน BlockPI หวังที่จะแก้ไขปัญหาในการพัฒนาอุตสาหกรรม AA ไม่ว่าจะเป็นในฐานะนักพัฒนาหรือจัดหาโครงสร้างพื้นฐาน AA ที่เป็นมิตรสำหรับนักพัฒนารายอื่น
โครงสร้างพื้นฐานต้องปรับตัว
AA สรุปบทบาทต่างๆ ในพฤติกรรมการทำธุรกรรมบนห่วงโซ่ รวมถึงผู้ส่ง ผู้รวมกลุ่ม ผู้จ่ายก๊าซ กระเป๋าเงินสัญญา และผู้ลงนาม ทำให้ผู้ใช้สามารถมีอิสระในระดับที่สูงขึ้นเมื่อใช้บล็อกเชน นอกจากนี้ บริการภายใน AA สามารถปรับใช้แยกกันได้
เพื่อปรับตัวให้เข้ากับการนำ AA มาใช้อย่างกว้างขวาง อันดับแรกผู้ให้บริการโครงสร้างพื้นฐานจำเป็นต้องให้บริการพื้นฐานอย่างน้อยสองบริการ ได้แก่ บริการ Bundler และบริการ Paymaster
ในบริการ Bundler ผู้ให้บริการโครงสร้างพื้นฐานอาจจำเป็นต้องพัฒนา mempool ส่วนตัวด้วย Bundlers เพื่อให้มั่นใจว่าผู้ใช้จะได้รับประสบการณ์ที่ดี โดยเฉพาะอย่างยิ่ง ผู้ให้บริการโครงสร้างพื้นฐานจำเป็นต้องผสานรวมไคลเอนต์ Bundler ต่างๆ เพื่อให้มั่นใจถึงความแข็งแกร่งของบริการ Bundler ไคลเอนต์ Bundler เหล่านี้ได้รับการพัฒนาในภาษาการเขียนโปรแกรมที่แตกต่างกัน แต่ทั้งหมดมีชุดวิธีมาตรฐานของ JSON RPC ที่ระบุโดยทีมงานหลักของ ERC-4337 ปัจจุบันมีวิธีที่ใช้ได้ไม่มากนัก แต่จะเพิ่มเติมวิธีอื่นๆ ในอนาคต ผู้ให้บริการโครงสร้างพื้นฐานควรให้การสนับสนุน API เหล่านี้อย่างต่อเนื่องและครบถ้วน
นอกจากนี้ ผู้ให้บริการโครงสร้างพื้นฐานยังจำเป็นต้องผสานรวมบริการ Paymaster ต่างๆ เพื่อให้ลูกค้าได้รับประสบการณ์การใช้งานแบบไร้น้ำมัน และมอบตัวเลือกบริการที่แตกต่างกันแก่ลูกค้า สิ่งนี้ต้องการการสื่อสารและการบูรณาการที่ดีกับผู้ให้บริการ Paymaster บุคคลที่สาม ในเวลาเดียวกันตามความต้องการของตลาดก็สามารถออกแบบโซลูชันการรวมที่สะดวกยิ่งขึ้นโดยอิงจากบริการ Paymaster ที่มีอยู่ได้ บริการอื่นๆ เช่น ลายเซ็นรวม โรงงานกระเป๋าเงิน ฯลฯ ก็เป็นแนวทางที่เป็นไปได้สำหรับการพัฒนาและการบูรณาการในอนาคต
สรุป
ปัจจุบัน BlockPI กำลังพยายามบรรลุเป้าหมายข้างต้นทั้งหมด ไม่เพียงเท่านั้น เรากำลังสื่อสารกับลูกค้า Bundler และผู้ให้บริการ Paymaster เกือบทั้งหมดในชุมชน และได้ให้ความสำคัญกับการรวมบริการ AA เข้ากับเครือข่าย BlockPI เป็นสิ่งสำคัญที่สุดของเรา นอกจากนี้เรายังมีการสนทนาเชิงลึกกับนักพัฒนากระเป๋าเงิน AA เพื่อทำความเข้าใจความต้องการของผู้ใช้ ดังนั้นเราจึงยินดีต้อนรับความร่วมมือและการแลกเปลี่ยนกับ Bundlers, Paymasters และ Wallet ทั้งหมดอย่างจริงใจในขณะที่เราก้าวไปข้างหน้า เป้าหมายโดยรวมของเราคือการสร้างและพัฒนาระบบนิเวศ AA ร่วมกับผู้อื่น ขับเคลื่อนการเติบโตและการพัฒนาอย่างสุดความสามารถของเรา ด้วยการทำงานร่วมกัน เราหวังว่าจะมีส่วนสนับสนุนอุตสาหกรรม AA โดยรวมและสนับสนุนการพัฒนาอย่างต่อเนื่อง เพราะท้ายที่สุดแล้ว ภารกิจสูงสุดของเราคือการเป็นผู้บุกเบิกในอุตสาหกรรมและส่งเสริมการพัฒนาระบบนิเวศ AA เพื่อให้ผู้ใช้ web2 สามารถเพลิดเพลินกับประสบการณ์บล็อคเชนโดยไม่มีอุปสรรค
สรุป
จากมุมมองของ AA เราอยู่ในช่วงเวลาแห่งประวัติศาสตร์ครั้งใหม่ แม้ว่าเราจะมีถนนลาดยางบนถนนแล้ว แต่ก็ยังมีนักปั่นไม่มากนัก ในปัจจุบัน แอปพลิเคชัน AA ยังอยู่ในช่วงเริ่มต้น ERC-4337 มอบเฟรมเวิร์กที่ทรงพลังสำหรับผู้ใช้และนักพัฒนาเพื่อใช้และสร้าง AA บนแพลตฟอร์ม Ethereum อย่างไรก็ตาม ยังมีความท้าทายและความไม่แน่นอนมากมายที่ต้องแก้ไข
ผู้ให้บริการโครงสร้างพื้นฐานของ AA จำเป็นต้องให้บริการ Bundler และบริการ Paymaster สำหรับผู้ใช้ และจำเป็นต้องผสานรวมไคลเอนต์ Bundler และผู้ให้บริการ Paymaster ต่างๆ เพื่อให้มั่นใจถึงความมีเสถียรภาพของบริการ เพื่อปรับการตอบสนองระหว่าง API และไคลเอนต์โหนดให้เหมาะสม ข้อมูล AA อาจจำเป็นต้องได้รับการจัดทำดัชนีเพื่อลดการใช้ฮาร์ดแวร์สำหรับคำขอเดียว เพื่อมอบประสบการณ์ผู้ใช้ที่ดียิ่งขึ้น ผู้ให้บริการโครงสร้างพื้นฐานจำเป็นต้องมอบตัวเลือกบริการเพิ่มเติมแก่ผู้ใช้ด้วย


