IOBC Capital: Trừu tượng tài khoản Ethereum và ERC-4337
Tuyển chọn TechFlowTuyển chọn TechFlow
IOBC Capital: Trừu tượng tài khoản Ethereum và ERC-4337
Trong bối cảnh Ethereum đã xác định rõ trọng tâm phát triển vào Layer 2, kế hoạch nâng cấp tiếp theo của Vitalik bắt đầu chuyển hướng sang abstraction tài khoản.
Tác giả: Kyouko Madoka, IOBC Capital
Trong hệ thống Ethereum thực tế tồn tại hai loại tài khoản:
-
Một loại là tài khoản do bên ngoài sở hữu (externally-owned account - EOA), được kiểm soát bởi khóa riêng, ví dụ như các tài khoản trong ví mà chúng ta đang sử dụng. Những tài khoản này đều có số dư riêng. Chủ sở hữu có thể tạo và ký một giao dịch để gửi tin nhắn từ tài khoản EOA của mình;
-
Loại còn lại là tài khoản hợp đồng (contract account), được kiểm soát bởi mã được triển khai trên blockchain. Được điều khiển bởi mã EVM nằm trong tài khoản hợp đồng thông minh (đôi khi còn gọi là ví thông minh). Khi tài khoản hợp đồng nhận được tin nhắn, mã bên trong sẽ được kích hoạt, cho phép đọc/ghi vào bộ nhớ nội bộ hoặc tạo các hợp đồng mới.
Theo giao thức Ethereum hiện tại, chỉ có tài khoản EOA mới có thể khởi tạo giao dịch, và chỉ chủ sở hữu tài khoản mới được phép thay đổi trạng thái tài khoản của họ.
Trừu tượng hóa tài khoản là gì?
Trừu tượng hóa tài khoản là một cải tiến đối với hai loại tài khoản nói trên, nhằm xóa nhòa ranh giới giữa chúng, biến thành một loại tài khoản phổ quát chứa đựng logic phức tạp hơn, cho phép tài khoản đồng thời có chức năng của cả tài khoản hợp đồng lẫn tài khoản EOA.
Việc này tương đương với việc người dùng định nghĩa tài khoản EOA theo định dạng tài khoản hợp đồng, có thể tích hợp bất kỳ logic xác thực nào trong ví thông minh. Tài khoản do khóa kiểm soát cũng có thể được hỗ trợ bởi mã.

Các phương án trừu tượng hóa tài khoản
Trong nhiều năm qua, việc hiện thực hóa trừu tượng hóa tài khoản luôn là tầm nhìn của cộng đồng nhà phát triển Ethereum. Cộng đồng đã đề xuất nhiều phương án khác nhau, ví dụ: EIP-86, EIP-2938, v.v.
EIP-86 là bước chuẩn bị kỹ thuật cho trừu tượng hóa tài khoản, nó định nghĩa một loại tài khoản mới, cho phép người dùng tạo tài khoản dựa trên hợp đồng thông minh.
Giao thức Ethereum yêu cầu mọi thứ phải được đóng gói trong giao dịch bắt nguồn từ tài khoản EOA bảo mật bằng ECDSA, mỗi thao tác người dùng cần được bao bọc bởi một giao dịch từ EOA, điều này làm phát sinh phí gas 21.000. Người dùng cần sở hữu ETH trong một EOA riêng biệt để thanh toán gas.
EIP-86 đề xuất một loại giao dịch mới cho trừu tượng hóa tài khoản, trái ngược với giao dịch truyền thống phải có EOA làm người gửi, những giao dịch này không có người gửi. Tuy nhiên, cách này phá vỡ tính duy nhất của hàm băm giao dịch. EIP-86 ban đầu dự kiến nâng cấp ở giai đoạn Metropolis, nhưng do những vấn đề nêu trên, các nhà phát triển quyết định tạm hoãn việc đưa vào Metropolis.
EIP-2938 cung cấp một giải pháp trừu tượng hóa tài khoản, bằng cách thay đổi một phần giao thức Ethereum, cho phép tài khoản hợp đồng khởi tạo giao dịch giống như tài khoản EOA. Tuy nhiên, vì phương án này yêu cầu thay đổi giao thức ở tầng đồng thuận, nên chưa được chấp nhận rộng rãi.
Sau đó, giao thức mới ERC-4337 được đề xuất, cung cấp một phương án đạt hiệu quả tương tự EIP-2938 mà không cần thay đổi giao thức đồng thuận. Cách triển khai an toàn hơn này hiện đang thu hút sự chú ý lớn từ cộng đồng.
ERC-4337 hoạt động như thế nào?
ERC-4337 không cố gắng sửa đổi giao thức đồng thuận, mà sao chép chức năng mempool trong hệ thống.
Người dùng gửi một đối tượng thao tác người dùng (UserOperation), trong đó bao gồm ý định của người dùng, chữ ký và các dữ liệu khác.
UserOperation có một mempool riêng biệt. Các nút kết nối tới mempool này sẽ thực hiện xác thực đặc thù ERC-4337 để lọc các thao tác, đảm bảo chỉ nhận những thao tác đã thanh toán phí.
Thợ đào hoặc các bên đóng gói sử dụng dịch vụ Flashbots sẽ thu thập hàng loạt UserOperation, đóng gói thành một giao dịch nhóm (bundle transaction) duy nhất và đưa vào khối Ethereum. Bên đóng gói sẽ trả phí gas cho giao dịch nhóm trên Ethereum, sau đó được hoàn lại phí thông qua khoản phí mà từng UserOperation riêng lẻ chi trả. Bên đóng gói sẽ chọn các đối tượng UserOperation để bao gồm theo cơ chế ưu tiên phí sử dụng.

UserOperation trông giống như một giao dịch, nhưng thực chất là một cấu trúc mã hóa ABI, bao gồm các trường sau:
1. Người gửi: ví thực hiện thao tác;
2. Nonce và chữ ký: các tham số truyền vào hàm xác thực của ví để ví có thể xác minh thao tác;
3. initCode: mã khởi tạo dùng để tạo ví nếu ví chưa tồn tại;
4. callData: dữ liệu dùng để gọi các bước thực thi trong ví.
Mỗi ví là một hợp đồng thông minh, phải bao gồm hai hàm chức năng:
1. validateUserOp, nhận một UserOperation làm đầu vào. Hàm này cần xác minh chữ ký và nonce trong UserOperation; nếu thành công thì thanh toán phí và tăng giá trị nonce, nếu thất bại thì ném lỗi;
2. Hàm thực thi op, phân tích calldata thành một hoặc nhiều lệnh để ví thực hiện thao tác.
Những thay đổi do ERC-4337 mang lại
Nếu đề xuất này được áp dụng rộng rãi, việc xác minh chữ ký sẽ được chuyển lên Máy ảo Ethereum (EVM). Hàm validateUserOp thêm vào logic xác minh chữ ký và nonce tùy ý, giúp logic xác minh linh hoạt hơn.
Điều này cho phép sử dụng các công cụ mật mã học mới khi ký giao dịch, ví có thể cung cấp các chức năng mới như:
-
Chữ ký đa ký;
-
Phục hồi xã hội;
-
Thuật toán chữ ký hiệu quả và đơn giản hơn (ví dụ: Schnorr, BLS);
-
Thuật toán chữ ký an toàn hậu lượng tử (ví dụ: Lamport, Winternitz);
-
Ví có thể nâng cấp.
Giải pháp này cũng mở ra nhiều hình thức quản lý giao dịch khác, ví dụ cho phép giao dịch được thanh toán phí gas thông qua hợp đồng thông minh.
Hiện tại, phí gas để tương tác trên Ethereum của ví bên ngoài chỉ có thể thanh toán bằng ETH trong ví. Nếu ví của bạn chỉ có token ERC-20 mà không có ETH, bạn sẽ không thể rút các token đó ra. Khi ERC-4337 được áp dụng, người dùng có thể dùng token ERC-20 trong tài khoản để thanh toán phí. Các nút thợ đào sẽ dùng hợp đồng làm trung gian để trả ETH lên chuỗi và nhận lại token ERC-20 từ người dùng.
Sau khi trừu tượng hóa được hiện thực, việc chủ sở hữu tài khoản EOA ký giao dịch và phát tán sẽ không còn là phương pháp duy nhất để khởi tạo giao dịch. Điều này mở ra khả năng cho Ethereum trở thành trung gian xử lý meta-giao dịch. Hiện tại, nhiều ứng dụng Ethereum cần nhờ đến bên trung gian (relay) để đăng giao dịch của người dùng lên blockchain và trả phí cho relay. Nếu ví có thể tích hợp hợp đồng phức tạp hơn, một số relay sẽ không còn cần thiết, từ đó tiết kiệm khoản phí bổ sung.
Mặc dù có nhiều ưu điểm, phương án mới cũng đối mặt với một số vấn đề.
Vấn đề nổi bật nhất là chi phí gas cao hơn. Một thao tác ERC-4337 cơ bản mất khoảng 42.000 gas, trong khi giao dịch thông thường chỉ cần 21.000 gas, lý do như sau:
1. Cần thanh toán chi phí đọc/ghi lưu trữ đơn lẻ lớn. Trong trường hợp EOA, các chi phí này được gói gọn trong khoản thanh toán 21.000 gas:
(1) Sửa đổi slot lưu trữ chứa pubkey + nonce (~5000);
(2) Chi phí dữ liệu gọi UserOperation (khoảng 4500, có thể giảm xuống ~2500 nhờ nén);
(3) ECRECOVER (~3000);
(4) Truy cập lần đầu vào ví (~2600);
(5) Truy cập lần đầu vào tài khoản người nhận (~2600);
(6) Chuyển ETH vào tài khoản người nhận (~9000);
(7) Sửa đổi lưu trữ để thanh toán phí (~5000);
(8) Truy cập slot lưu trữ chứa proxy (~2100), sau đó truy cập chính proxy (~2600);
2. Ngoài chi phí đọc/ghi lưu trữ nêu trên, hợp đồng còn phải thực thi "logic nghiệp vụ" (giải nén UserOperation, băm, sắp xếp biến, v.v.)
3. Cần tiêu tốn gas để thanh toán phí nhật ký (EOA không phát hành nhật ký);
4. Chi phí tạo hợp đồng một lần (khoảng 32.000 gas, cộng thêm 200 gas cho mỗi byte code trong proxy, cộng thêm 20.000 gas để thiết lập địa chỉ proxy)
Tóm lại, mỗi bước của địa chỉ tài khoản trừu tượng đều cần tính toán, tiêu tốn nhiều tài nguyên hơn và phát sinh thêm chi phí.
May mắn thay, đây không phải là vấn đề không thể giải quyết.
Vì Rollup rất giỏi nén dữ liệu, nên có sự phù hợp tự nhiên với các phương án trừu tượng hóa tài khoản vốn dĩ có dữ liệu phức tạp.
Trong đề xuất mới nhất của Vitalik, ông đề xuất sử dụng layer 2 để xử lý dữ liệu phát sinh từ trừu tượng hóa tài khoản. Điểm cải tiến nằm ở việc đóng gói các chức năng trước đây chỉ thực hiện từng bước thành giao dịch nhóm, đồng thời dùng công nghệ SNARK để đảm bảo tính hợp lệ của giao dịch.

Bằng cách kết hợp ERC-4337 với công nghệ Rollup, có thể đạt được hiệu quả nén dữ liệu và giảm chi phí gas trong trừu tượng hóa tài khoản, từ đó phát huy tốt hơn các lợi thế của trừu tượng hóa.
Kết luận
Trong bối cảnh Ethereum đang tập trung phát triển Layer 2, kế hoạch nâng cấp tiếp theo của Vitalik bắt đầu hướng tới trừu tượng hóa tài khoản.
Đề xuất mới nhất đã trình bày lộ trình công nghệ rollup + trừu tượng hóa tài khoản. Các nhà cung cấp Rollup cũng đã ra mắt phiên bản mới hỗ trợ trừu tượng hóa tài khoản.
Tháng 6 năm nay, zkSync công bố thông tin cập nhật V2: bổ sung chức năng "trừu tượng hóa tài khoản", tăng cường khả năng tương thích với EVM của Ethereum.
Tháng 10, ERC-4337 phát hành phiên bản mới, bổ sung chức năng tập hợp chữ ký với thuật toán BLS. Tập hợp chữ ký cho phép các bên xây dựng và gửi批次 cũng có thể tập hợp chữ ký (ví dụ: BLS, SNARKs), giảm mạnh dữ liệu trên chuỗi, giúp rollup tiết kiệm chi phí dữ liệu.

Chúng ta có lý do tin rằng, những thay đổi do trừu tượng hóa tài khoản mang lại cũng tiềm ẩn khả năng bùng nổ hệ sinh thái. Cùng với sự phát triển của Rollup, trừu tượng hóa tài khoản kết hợp được với Rollup chắc chắn sẽ phát triển ra những phương án tối ưu và tinh vi hơn.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News













