ก่อนการแยกบัญชี มีบัญชีสองประเภทใน Ethereum: บัญชีที่เป็นเจ้าของภายนอก (EOA) และสัญญาอัจฉริยะ EOA เป็นบัญชีผู้ใช้ทั่วไปที่มีคีย์ส่วนตัว นี่เป็นบัญชีประเภทเดียวที่สามารถเริ่มการทำธุรกรรมได้ ตัวอย่างเช่น ผู้ใช้จะต้องมี ETH เพื่อส่งธุรกรรม การสร้างธุรกรรมแบบแบตช์เป็นเรื่องยาก และไม่มีตัวเลือกการกู้คืนหากผู้ใช้ทำคีย์ส่วนตัวหาย Account abstraction (AA) ถูกสร้างขึ้นเพื่อแก้ไขปัญหาเหล่านี้ แต่มันเป็นวิธีแก้ปัญหาแบบไร้ความเสี่ยงหรือไม่? คู่มือนี้ครอบคลุมพื้นฐานของ AA ก่อนที่จะให้รายละเอียดเกี่ยวกับความเสี่ยงและวิธีลดความเสี่ยง
การแยกบัญชีเป็นเทคโนโลยีที่ช่วยให้ สัญญาอัจฉริยะ สามารถเริ่มต้นธุรกรรมได้ด้วยตัวเอง อนุญาตให้ผู้ใช้สร้างบัญชีที่แสดงโดยสัญญาอัจฉริยะ เทคโนโลยีนี้ยังเปิดใช้งานคุณสมบัติหลายอย่างที่ปรับปรุงการโต้ตอบของผู้ใช้กับห่วงโซ่
มีข้อเสนอที่แตกต่างกันเกี่ยวกับวิธีการนำ AA ไปใช้กับเครือข่าย Ethereum บางส่วนเกี่ยวข้องกับการเปลี่ยนแปลงที่สำคัญในโปรโตคอลของ Ethereum ซึ่งทำให้การใช้งานยุ่งยาก การใช้งานที่โดดเด่นที่สุดคือ ERC-4337 ซึ่งไม่เกี่ยวข้องกับการเปลี่ยนแปลงเลเยอร์ที่เป็นเอกฉันท์ มาตรฐานจะจำลอง mempool ของธุรกรรมในระดับที่สูงกว่า สัญญาอัจฉริยะของ ERC-4337 ถูกนำไปใช้กับเครือข่าย Ethereum ในเดือนมีนาคม 2023
ERC-4337 ใช้สัญญาอัจฉริยะที่มีชื่อว่า wallets แทน EOA กระเป๋าเงินสัญญาอัจฉริยะนี้สามารถควบคุมได้ไม่เพียงแค่คีย์ส่วนตัวเท่านั้น แต่โดยกลไกที่ซับซ้อนตามอำเภอใจที่ถูกเข้ารหัสในสัญญา
แทนที่จะทำธุรกรรม ผู้ใช้จะส่ง UserOperations UserOperation ประกอบด้วยคำแนะนำในการดำเนินการ การตรวจสอบลายเซ็น และข้อมูลอื่นๆ เช่นเดียวกับธุรกรรม ผู้ใช้ระบุพรีเมี่ยมสำหรับ Bundler เพื่อจัดลำดับความสำคัญของการดำเนินการของเขา
Miners หรือ Bundlers บรรจุการดำเนินการเป็นธุรกรรมแบบ Bundle ซึ่งจะรวมอยู่ในเครือข่าย Ethereum
การใช้งาน AA: HashEx
ในบรรดาข้อมูลอื่นๆ UserOperation มีโค้ดสำหรับสร้างกระเป๋าเงินสัญญาอัจฉริยะ หากผู้ใช้ไม่มีกระเป๋าสตางค์ ระบบจะสร้างกระเป๋าสตางค์ให้พวกเขา
หากผู้ใช้ต้องการชำระค่าธุรกรรมด้วยโทเค็น ERC20 หรือแม้กระทั่งไม่ต้องการชำระค่าธุรกรรมเลย ผู้ใช้จะระบุที่อยู่สัญญาของผู้ชำระเงินใน UserOperation ผู้ชำระเงินเป็นบริการของบุคคลที่สามที่จะชำระค่าธุรกรรมเพื่อแลกกับโทเค็น ERC20
แม้ว่าการลบบัญชีจะถูกสร้างขึ้นเพื่อปรับปรุงความปลอดภัยของผู้ใช้ แต่ก็มีความเสี่ยงอยู่บ้าง โดยเฉพาะอย่างยิ่งในระยะแรกของการใช้งาน ระบบนิเวศของ Ethereum มีชื่อเสียงในเรื่องข้อบกพร่องในสัญญาอัจฉริยะที่นำไปสู่การขโมยเงินหลายพันล้านดอลลาร์โดยผู้ใช้ที่เป็นอันตราย ต่อไปนี้เป็นความเสี่ยงบางประการของ AA และวิธีหลีกเลี่ยง/บรรเทาความเสี่ยงเหล่านั้น
เช่นเดียวกับเทคโนโลยีใหม่ ๆ การลบบัญชีทำให้เกิดความเสี่ยงในการใช้งานครั้งแรกที่มีข้อบกพร่อง สัญญาอัจฉริยะของ ERC-4337 ได้รับการตรวจสอบโดยบริษัทรักษาความปลอดภัยบล็อกเชนชั้นนำ OpenZeppelin
การบรรเทาผลกระทบ: วิธีแก้ปัญหาคือการใช้การตรวจสอบอย่างเป็นทางการ ซึ่งเป็นกระบวนการที่เกี่ยวข้องกับการใช้วิธีทางคณิตศาสตร์เพื่อพิสูจน์ความถูกต้องของสัญญาอัจฉริยะ กระบวนการตรวจสอบอย่างเป็นทางการสำหรับสัญญา ERC4337 ยังดำเนินอยู่แต่ยังไม่เสร็จสิ้น
ไม่ใช่ทุกสัญญาที่ชาญฉลาดจะเข้ากันได้กับกระเป๋าสตางค์ที่เป็นนามธรรมของบัญชี ตัวอย่างเช่น สัญญาอัจฉริยะที่ใช้ฟิลด์ tx.origin เพื่อตรวจสอบกระเป๋าเงินที่ส่งธุรกรรมจะได้รับมูลค่าที่ไม่คาดคิด ความไม่เข้ากันอีกประการหนึ่งเกิดขึ้นกับสัญญาอัจฉริยะที่ใช้ลายเซ็น EOA: กระเป๋าเงิน AA ไม่รองรับ
ในสัญญาดังกล่าว ฟังก์ชันสำคัญบางอย่างอาจทำงานไม่ถูกต้อง ในกรณีที่เลวร้ายที่สุด เงินทุนของผู้ใช้อาจถูกบล็อคได้
การบรรเทาผลกระทบ: เพื่อลดความเสี่ยง ผู้ใช้ที่ใช้ wallet abstraction ของบัญชีจะต้องตรวจสอบว่าโปรโตคอลที่เขาโต้ตอบด้วยรองรับเทคโนโลยีหรือไม่
มาตรฐานได้รับการออกแบบเพื่อให้สามารถสร้างกระเป๋าเงินสัญญาอัจฉริยะได้ภายใน UserOperation แรกผ่านโรงงานสัญญาอัจฉริยะ อย่างไรก็ตาม มีความเสี่ยงที่สัญญาอัจฉริยะในการใช้งานกระเป๋าเงินจะมีข้อบกพร่อง สิ่งสำคัญอย่างยิ่งคือต้องใช้โรงงานกระเป๋าสตางค์ที่ได้รับการตรวจสอบและทดสอบอย่างละเอียดโดยบริษัทรักษาความปลอดภัยบล็อคเชนชั้นนำเท่านั้น
การบรรเทาผลกระทบ: ใช้บริการที่เชื่อถือได้เท่านั้นเพื่อสร้างกระเป๋าเงินและตรวจสอบให้แน่ใจว่ารหัสของกระเป๋าเงินได้รับการตรวจสอบอย่างน้อยโดยบริษัทรักษาความปลอดภัยบล็อกเชนที่น่าเชื่อถือหนึ่งแห่ง
หากผู้ใช้หรือโปรเจ็กต์ใช้ผู้ชำระเงิน ก็จะต้องอาศัยบุคคลที่สามในการชำระเงินสำหรับธุรกรรมดังกล่าว อาจมีข้อผิดพลาดในการใช้งานระบบชำระเงินและผู้ชำระเงินที่เป็นอันตรายสามารถขโมยเงินของผู้ใช้ได้
โปรดทราบว่าบริการผู้ชำระเงินที่เลือกอาจได้รับผลกระทบจากผู้ใช้ที่เป็นอันตรายซึ่งสามารถหาวิธีหลอกผู้ชำระเงินให้ชำระเงินสำหรับธุรกรรมของตนได้
การบรรเทาผลกระทบ: กระเป๋าเงินจะใช้เฉพาะผู้ชำระเงินจากผู้ให้บริการที่น่าเชื่อถือเท่านั้น และตรวจสอบให้แน่ใจว่ามีการตรวจสอบรหัสของผู้ชำระเงินก่อนใช้งาน
นามธรรมบัญชีบน Ethereum blockchain เป็นแนวคิดที่ค่อนข้างใหม่ ด้วยเหตุนี้ แนวปฏิบัติที่ดีที่สุดและเฟรมเวิร์กของนักพัฒนาสำหรับการใช้งานจึงยังอยู่ในระหว่างการจัดทำ มีตัวอย่างการใช้นามธรรมบัญชีน้อยมากให้นักพัฒนาได้เรียนรู้
การบรรเทาผลกระทบ: แนวทางปฏิบัติที่ดีที่สุดจะพัฒนาขึ้นในที่สุดหลังจากการเผยแพร่มาตรฐาน สำหรับนักพัฒนา การแบ่งปันประสบการณ์โดยใช้เทคโนโลยีใหม่ถือเป็นสิ่งสำคัญ โดยเฉพาะอย่างยิ่งในช่วงเริ่มต้นของการนำไปใช้
ERC-4337 ยังอยู่ในโหมดร่าง แม้ว่าสัญญาจะถูกปรับใช้บน Mainnet แล้วก็ตาม มีความเป็นไปได้ที่มาตรฐานจะเปลี่ยนไป ควรสังเกตว่าการเปลี่ยนแปลงดังกล่าวควรจะส่งผลกระทบต่อรายละเอียดเล็กๆ น้อยๆ และไม่ส่งผลกระทบต่อสัญญาอัจฉริยะที่ปรับใช้แล้ว
การบรรเทาผลกระทบ: นักพัฒนาควรจับตาดูว่ามาตรฐานพัฒนาอย่างไรและอัปเดตโค้ดของโครงการตามการเปลี่ยนแปลงมาตรฐานหากเกิดขึ้น
แม้ว่า ERC-4337 ได้รับการออกแบบมาเพื่อให้ทุกคนสามารถเริ่มต้น Bundler ได้ อย่างน้อยก็ในระยะเริ่มต้น ระบบนิเวศของ Account Abstraction จะถูกรวมศูนย์อย่างเป็นธรรม เนื่องจากมีการใช้งาน Bundlers ที่พร้อมสำหรับการผลิตเพียงเล็กน้อย
การบรรเทาผลกระทบ: เพื่อหลีกเลี่ยงความเสี่ยงของข้อผิดพลาดในการใช้งาน Bundler ที่ส่งผลต่อเครือข่ายสรุปบัญชี ควรใช้การใช้งาน Bundler อย่างน้อยสองสามรายการ ปัจจุบันการใช้งาน Bundler จำนวนมากกำลังอยู่ในระหว่างการพัฒนา และเร็วๆ นี้หลายๆ การใช้งานจะพร้อมสำหรับการใช้งานจริง
การแยกบัญชีเป็นเทคโนโลยีที่ยอดเยี่ยมที่สามารถนำมาปรับใช้กับ Ethereum ได้มากขึ้น ในขณะเดียวกันก็เป็นหนึ่งในการพัฒนาที่สามารถทำให้บล็อคเชนมีความปลอดภัยมากขึ้น อย่างไรก็ตาม เช่นเดียวกับการเพิ่มเทคโนโลยีบล็อกเชนในระยะแรก ผู้ใช้ควรระมัดระวังเป็นพิเศษ การทบทวนและค้นคว้า AA เป็นตัวเลือกที่ดีที่สุดสำหรับทุกคนที่ยินดีนำเทคโนโลยีนี้มาใช้
ก่อนการแยกบัญชี มีบัญชีสองประเภทใน Ethereum: บัญชีที่เป็นเจ้าของภายนอก (EOA) และสัญญาอัจฉริยะ EOA เป็นบัญชีผู้ใช้ทั่วไปที่มีคีย์ส่วนตัว นี่เป็นบัญชีประเภทเดียวที่สามารถเริ่มการทำธุรกรรมได้ ตัวอย่างเช่น ผู้ใช้จะต้องมี ETH เพื่อส่งธุรกรรม การสร้างธุรกรรมแบบแบตช์เป็นเรื่องยาก และไม่มีตัวเลือกการกู้คืนหากผู้ใช้ทำคีย์ส่วนตัวหาย Account abstraction (AA) ถูกสร้างขึ้นเพื่อแก้ไขปัญหาเหล่านี้ แต่มันเป็นวิธีแก้ปัญหาแบบไร้ความเสี่ยงหรือไม่? คู่มือนี้ครอบคลุมพื้นฐานของ AA ก่อนที่จะให้รายละเอียดเกี่ยวกับความเสี่ยงและวิธีลดความเสี่ยง
การแยกบัญชีเป็นเทคโนโลยีที่ช่วยให้ สัญญาอัจฉริยะ สามารถเริ่มต้นธุรกรรมได้ด้วยตัวเอง อนุญาตให้ผู้ใช้สร้างบัญชีที่แสดงโดยสัญญาอัจฉริยะ เทคโนโลยีนี้ยังเปิดใช้งานคุณสมบัติหลายอย่างที่ปรับปรุงการโต้ตอบของผู้ใช้กับห่วงโซ่
มีข้อเสนอที่แตกต่างกันเกี่ยวกับวิธีการนำ AA ไปใช้กับเครือข่าย Ethereum บางส่วนเกี่ยวข้องกับการเปลี่ยนแปลงที่สำคัญในโปรโตคอลของ Ethereum ซึ่งทำให้การใช้งานยุ่งยาก การใช้งานที่โดดเด่นที่สุดคือ ERC-4337 ซึ่งไม่เกี่ยวข้องกับการเปลี่ยนแปลงเลเยอร์ที่เป็นเอกฉันท์ มาตรฐานจะจำลอง mempool ของธุรกรรมในระดับที่สูงกว่า สัญญาอัจฉริยะของ ERC-4337 ถูกนำไปใช้กับเครือข่าย Ethereum ในเดือนมีนาคม 2023
ERC-4337 ใช้สัญญาอัจฉริยะที่มีชื่อว่า wallets แทน EOA กระเป๋าเงินสัญญาอัจฉริยะนี้สามารถควบคุมได้ไม่เพียงแค่คีย์ส่วนตัวเท่านั้น แต่โดยกลไกที่ซับซ้อนตามอำเภอใจที่ถูกเข้ารหัสในสัญญา
แทนที่จะทำธุรกรรม ผู้ใช้จะส่ง UserOperations UserOperation ประกอบด้วยคำแนะนำในการดำเนินการ การตรวจสอบลายเซ็น และข้อมูลอื่นๆ เช่นเดียวกับธุรกรรม ผู้ใช้ระบุพรีเมี่ยมสำหรับ Bundler เพื่อจัดลำดับความสำคัญของการดำเนินการของเขา
Miners หรือ Bundlers บรรจุการดำเนินการเป็นธุรกรรมแบบ Bundle ซึ่งจะรวมอยู่ในเครือข่าย Ethereum
การใช้งาน AA: HashEx
ในบรรดาข้อมูลอื่นๆ UserOperation มีโค้ดสำหรับสร้างกระเป๋าเงินสัญญาอัจฉริยะ หากผู้ใช้ไม่มีกระเป๋าสตางค์ ระบบจะสร้างกระเป๋าสตางค์ให้พวกเขา
หากผู้ใช้ต้องการชำระค่าธุรกรรมด้วยโทเค็น ERC20 หรือแม้กระทั่งไม่ต้องการชำระค่าธุรกรรมเลย ผู้ใช้จะระบุที่อยู่สัญญาของผู้ชำระเงินใน UserOperation ผู้ชำระเงินเป็นบริการของบุคคลที่สามที่จะชำระค่าธุรกรรมเพื่อแลกกับโทเค็น ERC20
แม้ว่าการลบบัญชีจะถูกสร้างขึ้นเพื่อปรับปรุงความปลอดภัยของผู้ใช้ แต่ก็มีความเสี่ยงอยู่บ้าง โดยเฉพาะอย่างยิ่งในระยะแรกของการใช้งาน ระบบนิเวศของ Ethereum มีชื่อเสียงในเรื่องข้อบกพร่องในสัญญาอัจฉริยะที่นำไปสู่การขโมยเงินหลายพันล้านดอลลาร์โดยผู้ใช้ที่เป็นอันตราย ต่อไปนี้เป็นความเสี่ยงบางประการของ AA และวิธีหลีกเลี่ยง/บรรเทาความเสี่ยงเหล่านั้น
เช่นเดียวกับเทคโนโลยีใหม่ ๆ การลบบัญชีทำให้เกิดความเสี่ยงในการใช้งานครั้งแรกที่มีข้อบกพร่อง สัญญาอัจฉริยะของ ERC-4337 ได้รับการตรวจสอบโดยบริษัทรักษาความปลอดภัยบล็อกเชนชั้นนำ OpenZeppelin
การบรรเทาผลกระทบ: วิธีแก้ปัญหาคือการใช้การตรวจสอบอย่างเป็นทางการ ซึ่งเป็นกระบวนการที่เกี่ยวข้องกับการใช้วิธีทางคณิตศาสตร์เพื่อพิสูจน์ความถูกต้องของสัญญาอัจฉริยะ กระบวนการตรวจสอบอย่างเป็นทางการสำหรับสัญญา ERC4337 ยังดำเนินอยู่แต่ยังไม่เสร็จสิ้น
ไม่ใช่ทุกสัญญาที่ชาญฉลาดจะเข้ากันได้กับกระเป๋าสตางค์ที่เป็นนามธรรมของบัญชี ตัวอย่างเช่น สัญญาอัจฉริยะที่ใช้ฟิลด์ tx.origin เพื่อตรวจสอบกระเป๋าเงินที่ส่งธุรกรรมจะได้รับมูลค่าที่ไม่คาดคิด ความไม่เข้ากันอีกประการหนึ่งเกิดขึ้นกับสัญญาอัจฉริยะที่ใช้ลายเซ็น EOA: กระเป๋าเงิน AA ไม่รองรับ
ในสัญญาดังกล่าว ฟังก์ชันสำคัญบางอย่างอาจทำงานไม่ถูกต้อง ในกรณีที่เลวร้ายที่สุด เงินทุนของผู้ใช้อาจถูกบล็อคได้
การบรรเทาผลกระทบ: เพื่อลดความเสี่ยง ผู้ใช้ที่ใช้ wallet abstraction ของบัญชีจะต้องตรวจสอบว่าโปรโตคอลที่เขาโต้ตอบด้วยรองรับเทคโนโลยีหรือไม่
มาตรฐานได้รับการออกแบบเพื่อให้สามารถสร้างกระเป๋าเงินสัญญาอัจฉริยะได้ภายใน UserOperation แรกผ่านโรงงานสัญญาอัจฉริยะ อย่างไรก็ตาม มีความเสี่ยงที่สัญญาอัจฉริยะในการใช้งานกระเป๋าเงินจะมีข้อบกพร่อง สิ่งสำคัญอย่างยิ่งคือต้องใช้โรงงานกระเป๋าสตางค์ที่ได้รับการตรวจสอบและทดสอบอย่างละเอียดโดยบริษัทรักษาความปลอดภัยบล็อคเชนชั้นนำเท่านั้น
การบรรเทาผลกระทบ: ใช้บริการที่เชื่อถือได้เท่านั้นเพื่อสร้างกระเป๋าเงินและตรวจสอบให้แน่ใจว่ารหัสของกระเป๋าเงินได้รับการตรวจสอบอย่างน้อยโดยบริษัทรักษาความปลอดภัยบล็อกเชนที่น่าเชื่อถือหนึ่งแห่ง
หากผู้ใช้หรือโปรเจ็กต์ใช้ผู้ชำระเงิน ก็จะต้องอาศัยบุคคลที่สามในการชำระเงินสำหรับธุรกรรมดังกล่าว อาจมีข้อผิดพลาดในการใช้งานระบบชำระเงินและผู้ชำระเงินที่เป็นอันตรายสามารถขโมยเงินของผู้ใช้ได้
โปรดทราบว่าบริการผู้ชำระเงินที่เลือกอาจได้รับผลกระทบจากผู้ใช้ที่เป็นอันตรายซึ่งสามารถหาวิธีหลอกผู้ชำระเงินให้ชำระเงินสำหรับธุรกรรมของตนได้
การบรรเทาผลกระทบ: กระเป๋าเงินจะใช้เฉพาะผู้ชำระเงินจากผู้ให้บริการที่น่าเชื่อถือเท่านั้น และตรวจสอบให้แน่ใจว่ามีการตรวจสอบรหัสของผู้ชำระเงินก่อนใช้งาน
นามธรรมบัญชีบน Ethereum blockchain เป็นแนวคิดที่ค่อนข้างใหม่ ด้วยเหตุนี้ แนวปฏิบัติที่ดีที่สุดและเฟรมเวิร์กของนักพัฒนาสำหรับการใช้งานจึงยังอยู่ในระหว่างการจัดทำ มีตัวอย่างการใช้นามธรรมบัญชีน้อยมากให้นักพัฒนาได้เรียนรู้
การบรรเทาผลกระทบ: แนวทางปฏิบัติที่ดีที่สุดจะพัฒนาขึ้นในที่สุดหลังจากการเผยแพร่มาตรฐาน สำหรับนักพัฒนา การแบ่งปันประสบการณ์โดยใช้เทคโนโลยีใหม่ถือเป็นสิ่งสำคัญ โดยเฉพาะอย่างยิ่งในช่วงเริ่มต้นของการนำไปใช้
ERC-4337 ยังอยู่ในโหมดร่าง แม้ว่าสัญญาจะถูกปรับใช้บน Mainnet แล้วก็ตาม มีความเป็นไปได้ที่มาตรฐานจะเปลี่ยนไป ควรสังเกตว่าการเปลี่ยนแปลงดังกล่าวควรจะส่งผลกระทบต่อรายละเอียดเล็กๆ น้อยๆ และไม่ส่งผลกระทบต่อสัญญาอัจฉริยะที่ปรับใช้แล้ว
การบรรเทาผลกระทบ: นักพัฒนาควรจับตาดูว่ามาตรฐานพัฒนาอย่างไรและอัปเดตโค้ดของโครงการตามการเปลี่ยนแปลงมาตรฐานหากเกิดขึ้น
แม้ว่า ERC-4337 ได้รับการออกแบบมาเพื่อให้ทุกคนสามารถเริ่มต้น Bundler ได้ อย่างน้อยก็ในระยะเริ่มต้น ระบบนิเวศของ Account Abstraction จะถูกรวมศูนย์อย่างเป็นธรรม เนื่องจากมีการใช้งาน Bundlers ที่พร้อมสำหรับการผลิตเพียงเล็กน้อย
การบรรเทาผลกระทบ: เพื่อหลีกเลี่ยงความเสี่ยงของข้อผิดพลาดในการใช้งาน Bundler ที่ส่งผลต่อเครือข่ายสรุปบัญชี ควรใช้การใช้งาน Bundler อย่างน้อยสองสามรายการ ปัจจุบันการใช้งาน Bundler จำนวนมากกำลังอยู่ในระหว่างการพัฒนา และเร็วๆ นี้หลายๆ การใช้งานจะพร้อมสำหรับการใช้งานจริง
การแยกบัญชีเป็นเทคโนโลยีที่ยอดเยี่ยมที่สามารถนำมาปรับใช้กับ Ethereum ได้มากขึ้น ในขณะเดียวกันก็เป็นหนึ่งในการพัฒนาที่สามารถทำให้บล็อคเชนมีความปลอดภัยมากขึ้น อย่างไรก็ตาม เช่นเดียวกับการเพิ่มเทคโนโลยีบล็อกเชนในระยะแรก ผู้ใช้ควรระมัดระวังเป็นพิเศษ การทบทวนและค้นคว้า AA เป็นตัวเลือกที่ดีที่สุดสำหรับทุกคนที่ยินดีนำเทคโนโลยีนี้มาใช้