Trừu tượng hóa tài khoản đa chuỗi: Khám phá tương lai của cơ sở hạ tầng mã hóa
Từ ngày 8 đến 11 tháng 7 năm 2024, Hội nghị cộng đồng Ethereum (EthCC) sẽ được tổ chức tại Brussels, Bỉ. Là sự kiện hàng năm lớn nhất về Ethereum ở châu Âu, hội nghị này sẽ tập trung vào phát triển công nghệ và cộng đồng.
Tại hội nghị cộng đồng Ethereum lần này (EthCC 7), hơn 350 lãnh đạo tư tưởng hàng đầu trong ngành công nghiệp blockchain đã phát biểu. Trong số đó, một nhà phát triển blockchain được mời tham gia và đã phát biểu về chủ đề "Khám phá tương lai: Phân tích trừu tượng hóa tài khoản đa chuỗi".
Tóm tắt điểm chính của bài phát biểu
Trừu tượng hóa tài khoản (AA) bao gồm trừu tượng hóa chữ ký và trừu tượng hóa thanh toán. Cái trước cho phép người dùng chọn bất kỳ cơ chế xác thực nào, trong khi cái sau cung cấp nhiều tùy chọn thanh toán giao dịch. Sự linh hoạt này nâng cao đáng kể tính bảo mật và trải nghiệm người dùng.
Hàm điểm vào của ERC-4337 và AA gốc trong giai đoạn xác thực là cố định, nhưng trong giai đoạn thực thi, chỉ AA gốc giữ điểm vào cố định. Các cách triển khai khác nhau có những đặc điểm riêng trong việc giới hạn giao dịch xác thực và các bước thực thi giao dịch.
Khi triển khai ERC-4337 trên chuỗi tương thích EVM, chính chủ yếu đối mặt với hai thách thức lớn: sự khác biệt trong thiết kế Rollup và sự khác biệt trong cách tính toán địa chỉ. Những sự khác biệt này dẫn đến việc xuất hiện một số chi tiết phát triển khó nhận thấy khi thực hiện ERC-4337 giữa L1 và L2.
Trừu tượng hóa tài khoản giới thiệu
Định nghĩa trừu tượng hóa tài khoản
Trừu tượng hóa tài khoản (AA) chủ yếu bao gồm hai khái niệm chính:
Trừu tượng hóa chữ ký: Người dùng có thể tự do chọn bất kỳ cơ chế xác thực nào mà họ thích, không còn bị giới hạn trong các thuật toán chữ ký số cụ thể (như ECDSA).
Trừu tượng hóa thanh toán: Người dùng có thể sử dụng nhiều cách để thanh toán phí giao dịch, chẳng hạn như sử dụng mã hóa ERC-20 thay vì mã hóa gốc, hoặc do bên thứ ba tài trợ giao dịch.
Sự linh hoạt này không chỉ nâng cao tính an toàn mà còn tối ưu hóa trải nghiệm người dùng. Mục tiêu của trừu tượng hóa tài khoản là đạt được hai khái niệm cốt lõi này thông qua nhiều cách khác nhau.
Phân tích ERC-4337
Hiện tại, tài khoản thuộc sở hữu bên ngoài (EOA) trong giao thức Ethereum có một số hạn chế, chẳng hạn như phương pháp ký và thiết kế thanh toán cố định. ERC-4337 giải quyết những vấn đề này bằng cách giới thiệu quản lý tài khoản và phương pháp xử lý giao dịch linh hoạt hơn.
cấu trúc userOp: Trong ERC-4337, người dùng gửi cấu trúc userOp đến Bundler. Bundler thu thập nhiều userOp và gửi chúng đến hợp đồng EntryPoint thông qua việc gọi hàm handleOps.
Hợp đồng EntryPoint: Hợp đồng này xử lý giao dịch giống như hệ điều hành, các chức năng chính bao gồm:
Gọi hàm validate trong hợp đồng tài khoản, đảm bảo userOp nhận được sự ủy quyền của chủ sở hữu tài khoản.
Thu phí.
Gọi hàm execute trong hợp đồng tài khoản, thực hiện thao tác mục tiêu của userOp.
Giới thiệu về AA gốc
Trong Ethereum, tài khoản được chia thành EOA và tài khoản hợp đồng. Tuy nhiên, trong AA gốc, mỗi tài khoản đều là một hợp đồng và cơ chế xử lý giao dịch được nhúng trực tiếp vào giao thức blockchain.
Tuân theo trừu tượng hóa tài khoản gốc của ERC-4337: Thời đại StarkNet và zkSync
Tài khoản trừu tượng hóa nguyên bản có thiết kế bảo mật: Aztec
Sự khác biệt giữa ERC-4337 và AA gốc
vai trò hệ điều hành
Hệ điều hành AA cần giải quyết các vấn đề sau:
Người quyết định giá Gas
Người quyết định thứ tự giao dịch và vị trí của bộ nhớ
Người kích hoạt hàm điểm nhập
Yếu tố quyết định của quy trình xử lý giao dịch
Trong ERC-4337, các vai trò này được thực hiện phối hợp bởi Bundler và EntryPoint Contract.
Trong AA gốc, người dùng gửi userOps của họ đến nhà điều hành/sắp xếp của máy chủ chính thức, thay vì Bundler và Hợp đồng EntryPoint.
Trong StarkNet, Sequencer chịu trách nhiệm xử lý tất cả các nhiệm vụ này.
Đặc điểm chính của zkSync Era là Operator cần phối hợp làm việc với bootloader (hợp đồng hệ thống). Bootloader chịu trách nhiệm mở các khối mới, định nghĩa các tham số khối và tham số Gas, đồng thời nhận các giao dịch từ Operator để xác minh.
giao diện hợp đồng
Do có ba bước, giao diện hợp đồng tài khoản tương tự trong các triển khai khác nhau, các hàm điểm vào này chỉ có thể được gọi bởi AA OS:
ERC-4337: xác thực thao tác người dùng
zkSync: xác thực giao dịch, thanh toán giao dịch, thực hiện giao dịch
Trong ERC-4337 và AA gốc, hàm điểm vào của giai đoạn "xác minh" là cố định, trong khi ở giai đoạn "thực thi", chỉ có điểm vào trong AA gốc là cố định.
giới hạn bước xác minh
Do vì việc xác thực giao dịch không có giới hạn chi phí, kẻ tấn công có thể thực hiện tấn công DoS vào bộ nhớ, từ đó ảnh hưởng đến bộ gộp (EIP-4337) hoặc nhà điều hành/sắp xếp (AA gốc).
EIP-4337 định nghĩa các mã lệnh bị cấm và hạn chế truy cập lưu trữ. zkSync Era đã nới lỏng việc sử dụng một số OpCode:
Logic hợp đồng chỉ có thể truy cập vào khe lưu trữ của chính nó.
Logic hợp đồng không thể truy cập biến toàn cục, chẳng hạn như số khối.
StarkNet không cho phép hợp đồng bên ngoài gọi.
giới hạn của các bước thực hiện
Trong zkSync, việc thực hiện gọi hệ thống cần xác nhận sự tồn tại của cờ hệ thống. Ví dụ, việc tăng nonce cần tương tác với NonceHolder, còn việc triển khai hợp đồng thì cần tương tác với ContractDeployer.
ERC-4337 và StarkNet không có hạn chế đặc biệt trong giai đoạn thực thi.
xử lý số ngẫu nhiên
ERC-4337: Thiết kế số ngẫu nhiên điểm vào phân biệt giá trị khóa 192 bit và giá trị ngẫu nhiên 64 bit.
zkSync: Hệ thống hợp đồng NonceHolder quản lý nonce, đảm bảo tăng dần nghiêm ngặt.
StarkNet: nonce cũng tăng dần một cách nghiêm ngặt, nhưng không có hợp đồng cụ thể để quản lý.
lần giao dịch đầu tiên triển khai
ERC-4337: Cấu trúc userOp bao gồm trường initcode, dùng để triển khai người gửi (hợp đồng tài khoản) trong userOp đầu tiên.
StarkNet và zkSync: Người dùng phải gửi giao dịch đầu tiên cho nhà khai thác/ bộ sắp xếp để triển khai hợp đồng tài khoản.
thiết kế đặc biệt zkSync
Trong zkSync, nếu chuyển ETH từ EOA Ethereum mà không cần triển khai hợp đồng tài khoản tùy chỉnh, người dùng sẽ nhận được một tài khoản mặc định với địa chỉ giống hệt. Tài khoản này có thể hoạt động giống như EOA Ethereum và được kiểm soát bởi khóa riêng EOA Ethereum tương ứng.
Loại tài khoản này là version None chứ không phải version1. Người dùng không thể gọi hàm của DefaultAccount vì nó không được triển khai bất kỳ mã nào trong không gian kernel.
Sự khác biệt giữa L1 và L2 4337
Việc triển khai ERC-4337 trên chuỗi tương thích EVM chủ yếu có hai sự khác biệt chính: sự khác biệt về giao thức và sự khác biệt về địa chỉ.
sự khác biệt trong giao thức
Trong thiết kế Rollup, L2 cần tải dữ liệu lên L1 để đảm bảo an toàn và thanh toán. Trong ERC-4337, các khoản phí liên quan đến quá trình tải lên này (như phí an toàn L1 và phí blob) nên được bao gồm trong Gas tiền xác thực. Việc xác định khoản phí tải lên phù hợp trong Gas tiền xác thực là một thách thức lớn.
sự khác biệt địa chỉ
Cách mã hóa địa chỉ trong hàm create của zkSync ERA khác với Ethereum và OP tổng hợp. Ngoài ra, StarkNet sử dụng hàm băm độc đáo để tính toán địa chỉ.
Trong bối cảnh ERC-4337 trên các chuỗi tương thích EVM, chúng ta thường giả định rằng việc tính toán địa chỉ là nhất quán trên các chuỗi. Tuy nhiên, một chi tiết dễ bị bỏ qua có thể dẫn đến việc địa chỉ hợp đồng tài khoản giữa các triển khai ERC-4337 trên Ethereum và L2 khác nhau.
Vấn đề chính là việc thêm mã lệnh mới trong hard fork. Ví dụ, nếu chuỗi L2 không hỗ trợ hard fork Thượng Hải và không chỉ định phiên bản EVM trong quá trình biên dịch, việc giới thiệu push0 sẽ dẫn đến sự thay đổi bytecode, ngay cả khi mã Solidity là giống nhau.
Xem bản gốc
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 thích
Phần thưởng
8
5
Chia sẻ
Bình luận
0/400
StableGenius
· 5giờ trước
*ngáp* lại một cuộc trò chuyện aa... đã xem bộ phim này trước đây, nói một cách thực nghiệm thì chỉ là các maxies eth đang đối phó.
Xem bản gốcTrả lời0
OfflineNewbie
· 5giờ trước
Xem ai còn đang nhảy múa
Xem bản gốcTrả lời0
TokenVelocity
· 5giờ trước
Đợi tất cả các chuỗi trên các dự án khác đã...
Xem bản gốcTrả lời0
PessimisticLayer
· 5giờ trước
Cảm giác vẫn chỉ là trị ngọn chứ không trị tận gốc
Hội nghị EthCC thảo luận về trừu tượng hóa tài khoản đa chuỗi: So sánh kỹ thuật giữa ERC-4337 và AA gốc
Trừu tượng hóa tài khoản đa chuỗi: Khám phá tương lai của cơ sở hạ tầng mã hóa
Từ ngày 8 đến 11 tháng 7 năm 2024, Hội nghị cộng đồng Ethereum (EthCC) sẽ được tổ chức tại Brussels, Bỉ. Là sự kiện hàng năm lớn nhất về Ethereum ở châu Âu, hội nghị này sẽ tập trung vào phát triển công nghệ và cộng đồng.
Tại hội nghị cộng đồng Ethereum lần này (EthCC 7), hơn 350 lãnh đạo tư tưởng hàng đầu trong ngành công nghiệp blockchain đã phát biểu. Trong số đó, một nhà phát triển blockchain được mời tham gia và đã phát biểu về chủ đề "Khám phá tương lai: Phân tích trừu tượng hóa tài khoản đa chuỗi".
Tóm tắt điểm chính của bài phát biểu
Trừu tượng hóa tài khoản (AA) bao gồm trừu tượng hóa chữ ký và trừu tượng hóa thanh toán. Cái trước cho phép người dùng chọn bất kỳ cơ chế xác thực nào, trong khi cái sau cung cấp nhiều tùy chọn thanh toán giao dịch. Sự linh hoạt này nâng cao đáng kể tính bảo mật và trải nghiệm người dùng.
Hàm điểm vào của ERC-4337 và AA gốc trong giai đoạn xác thực là cố định, nhưng trong giai đoạn thực thi, chỉ AA gốc giữ điểm vào cố định. Các cách triển khai khác nhau có những đặc điểm riêng trong việc giới hạn giao dịch xác thực và các bước thực thi giao dịch.
Khi triển khai ERC-4337 trên chuỗi tương thích EVM, chính chủ yếu đối mặt với hai thách thức lớn: sự khác biệt trong thiết kế Rollup và sự khác biệt trong cách tính toán địa chỉ. Những sự khác biệt này dẫn đến việc xuất hiện một số chi tiết phát triển khó nhận thấy khi thực hiện ERC-4337 giữa L1 và L2.
Trừu tượng hóa tài khoản giới thiệu
Định nghĩa trừu tượng hóa tài khoản
Trừu tượng hóa tài khoản (AA) chủ yếu bao gồm hai khái niệm chính:
Trừu tượng hóa chữ ký: Người dùng có thể tự do chọn bất kỳ cơ chế xác thực nào mà họ thích, không còn bị giới hạn trong các thuật toán chữ ký số cụ thể (như ECDSA).
Trừu tượng hóa thanh toán: Người dùng có thể sử dụng nhiều cách để thanh toán phí giao dịch, chẳng hạn như sử dụng mã hóa ERC-20 thay vì mã hóa gốc, hoặc do bên thứ ba tài trợ giao dịch.
Sự linh hoạt này không chỉ nâng cao tính an toàn mà còn tối ưu hóa trải nghiệm người dùng. Mục tiêu của trừu tượng hóa tài khoản là đạt được hai khái niệm cốt lõi này thông qua nhiều cách khác nhau.
Phân tích ERC-4337
Hiện tại, tài khoản thuộc sở hữu bên ngoài (EOA) trong giao thức Ethereum có một số hạn chế, chẳng hạn như phương pháp ký và thiết kế thanh toán cố định. ERC-4337 giải quyết những vấn đề này bằng cách giới thiệu quản lý tài khoản và phương pháp xử lý giao dịch linh hoạt hơn.
cấu trúc userOp: Trong ERC-4337, người dùng gửi cấu trúc userOp đến Bundler. Bundler thu thập nhiều userOp và gửi chúng đến hợp đồng EntryPoint thông qua việc gọi hàm handleOps.
Hợp đồng EntryPoint: Hợp đồng này xử lý giao dịch giống như hệ điều hành, các chức năng chính bao gồm:
Giới thiệu về AA gốc
Trong Ethereum, tài khoản được chia thành EOA và tài khoản hợp đồng. Tuy nhiên, trong AA gốc, mỗi tài khoản đều là một hợp đồng và cơ chế xử lý giao dịch được nhúng trực tiếp vào giao thức blockchain.
Thiết kế AA trong các mạng blockchain khác nhau:
Sự khác biệt giữa ERC-4337 và AA gốc
vai trò hệ điều hành
Hệ điều hành AA cần giải quyết các vấn đề sau:
Trong ERC-4337, các vai trò này được thực hiện phối hợp bởi Bundler và EntryPoint Contract.
Trong AA gốc, người dùng gửi userOps của họ đến nhà điều hành/sắp xếp của máy chủ chính thức, thay vì Bundler và Hợp đồng EntryPoint.
Trong StarkNet, Sequencer chịu trách nhiệm xử lý tất cả các nhiệm vụ này.
Đặc điểm chính của zkSync Era là Operator cần phối hợp làm việc với bootloader (hợp đồng hệ thống). Bootloader chịu trách nhiệm mở các khối mới, định nghĩa các tham số khối và tham số Gas, đồng thời nhận các giao dịch từ Operator để xác minh.
giao diện hợp đồng
Do có ba bước, giao diện hợp đồng tài khoản tương tự trong các triển khai khác nhau, các hàm điểm vào này chỉ có thể được gọi bởi AA OS:
Trong ERC-4337 và AA gốc, hàm điểm vào của giai đoạn "xác minh" là cố định, trong khi ở giai đoạn "thực thi", chỉ có điểm vào trong AA gốc là cố định.
giới hạn bước xác minh
Do vì việc xác thực giao dịch không có giới hạn chi phí, kẻ tấn công có thể thực hiện tấn công DoS vào bộ nhớ, từ đó ảnh hưởng đến bộ gộp (EIP-4337) hoặc nhà điều hành/sắp xếp (AA gốc).
EIP-4337 định nghĩa các mã lệnh bị cấm và hạn chế truy cập lưu trữ. zkSync Era đã nới lỏng việc sử dụng một số OpCode:
giới hạn của các bước thực hiện
Trong zkSync, việc thực hiện gọi hệ thống cần xác nhận sự tồn tại của cờ hệ thống. Ví dụ, việc tăng nonce cần tương tác với NonceHolder, còn việc triển khai hợp đồng thì cần tương tác với ContractDeployer.
ERC-4337 và StarkNet không có hạn chế đặc biệt trong giai đoạn thực thi.
xử lý số ngẫu nhiên
lần giao dịch đầu tiên triển khai
thiết kế đặc biệt zkSync
Trong zkSync, nếu chuyển ETH từ EOA Ethereum mà không cần triển khai hợp đồng tài khoản tùy chỉnh, người dùng sẽ nhận được một tài khoản mặc định với địa chỉ giống hệt. Tài khoản này có thể hoạt động giống như EOA Ethereum và được kiểm soát bởi khóa riêng EOA Ethereum tương ứng.
Loại tài khoản này là version None chứ không phải version1. Người dùng không thể gọi hàm của DefaultAccount vì nó không được triển khai bất kỳ mã nào trong không gian kernel.
Sự khác biệt giữa L1 và L2 4337
Việc triển khai ERC-4337 trên chuỗi tương thích EVM chủ yếu có hai sự khác biệt chính: sự khác biệt về giao thức và sự khác biệt về địa chỉ.
sự khác biệt trong giao thức
Trong thiết kế Rollup, L2 cần tải dữ liệu lên L1 để đảm bảo an toàn và thanh toán. Trong ERC-4337, các khoản phí liên quan đến quá trình tải lên này (như phí an toàn L1 và phí blob) nên được bao gồm trong Gas tiền xác thực. Việc xác định khoản phí tải lên phù hợp trong Gas tiền xác thực là một thách thức lớn.
sự khác biệt địa chỉ
Cách mã hóa địa chỉ trong hàm create của zkSync ERA khác với Ethereum và OP tổng hợp. Ngoài ra, StarkNet sử dụng hàm băm độc đáo để tính toán địa chỉ.
Trong bối cảnh ERC-4337 trên các chuỗi tương thích EVM, chúng ta thường giả định rằng việc tính toán địa chỉ là nhất quán trên các chuỗi. Tuy nhiên, một chi tiết dễ bị bỏ qua có thể dẫn đến việc địa chỉ hợp đồng tài khoản giữa các triển khai ERC-4337 trên Ethereum và L2 khác nhau.
Vấn đề chính là việc thêm mã lệnh mới trong hard fork. Ví dụ, nếu chuỗi L2 không hỗ trợ hard fork Thượng Hải và không chỉ định phiên bản EVM trong quá trình biên dịch, việc giới thiệu push0 sẽ dẫn đến sự thay đổi bytecode, ngay cả khi mã Solidity là giống nhau.