Đọc đề xuất EIP-7702 mới của Vitalik trong một bài viết: Giải pháp cuối cùng cho việc trừu tượng hóa tài khoản?
Tác giả gốc: Jarrod Watts
Biên soạn gốc: Frank, Tin tức tầm nhìn xa
Vitalik Buterin gần đây đã đề xuất đề xuất EIP-7702, đây có thể là một trong những thay đổi có ảnh hưởng nhất trong lịch sử của Ethereum. Bài viết này sẽ giới thiệu cách thức hoạt động của đề xuất mới và mọi thứ bạn cần biết để triển khai nó.
Trước hết, đề xuất EIP-7702 mới ngắn đến mức đáng ngạc nhiên, khiến một số người bối rối và không biết nó thực sự hoạt động như thế nào, để hiểu 7702, trước tiên chúng ta cần hiểu ba đề xuất còn lại được đề cập trong đó:
EIP-4337
EIP-3074
EIP-5003
Hãy bắt đầu với mục tiêu chung của tất cả các đề xuất này, "trừu tượng hóa tài khoản" - tài khoản EOA ("thông thường") trên Ethereum rất tệ, chúng rủi ro và có chức năng rất hạn chế, trong khi việc trừu tượng hóa tài khoản cho phép người dùng sử dụng hợp đồng thông minh làm tài khoản để thêm nhiều tính năng và bảo mật hơn để giải quyết vấn đề này.

EIP-4337
EIP-4337, xuất hiện trực tuyến trên mạng chính vào tháng 3 năm 2023, cho phép các hợp đồng thông minh được viết giống như tài khoản để chúng có thể xác minh và thực hiện giao dịch, giúp cải thiện nhiều trải nghiệm người dùng (UX).
Kể từ khi phát hành, EIP-4337 đã được áp dụng rộng rãi, chủ yếu là Polygon, trong khi Base đã chứng kiến hoạt động gia tăng trong vài tháng qua.

Cải tiến mới nhất liên quan đến EIP-4337 đến từ hệ sinh thái Coinbase và Ví thông minh Coinbase, dựa trên công nghệ sinh trắc học và mang lại trải nghiệm tuyệt vời cho người dùng. Tôi đã thực hiện một bản demo nhỏ khác để chứng minh điều này tại ETH Global Sydney vào cuối tuần trước.
Vậy EIP-4337 có vấn đề gì? Tại sao hôm nay lại có một đề xuất tóm tắt tài khoản khác? Bởi vì EOA cho đến nay vẫn là loại tài khoản được sử dụng rộng rãi nhất.
Ngoài ra, hầu hết các tài khoản hợp đồng thông minh của EIP-4337 đều được kiểm soát bởi một người ký EOA duy nhất. Đây là mã mẫu:

Do không có cách nào để "chuyển đổi" EOA của người dùng thành tài khoản hợp đồng thông minh nên có giải pháp bước giữa kỳ lạ này - chủ yếu là do thiếu hỗ trợ riêng để kết nối tài khoản hợp đồng thông minh trong ứng dụng Web3, hầu hết mọi người ngày nay vẫn sử dụng plug-in. -trong các ví như MetaMask Sử dụng EOA.
EIP-3074
Điều này dẫn chúng ta đến đề xuất tiếp theo: EIP-3074.
Trên thực tế, đề xuất này đã được đề xuất trước EIP-4337, nhưng nó vẫn chưa được sáp nhập vào mạng chính. EIP-3074 cố gắng cung cấp thêm quyền lực cho EOA, cho phép họ ủy quyền kiểm soát EOA của mình cho các hợp đồng thông minh.
Đề xuất phác thảo những điều sau đây, thêm hai opcode mới:
AUTH: EOA có thể gọi AUTH để ủy quyền cho một hợp đồng thông minh nhất định thực hiện các hoạt động thay mặt cho EOA của nó;
AUTHCALL: Hợp đồng thông minh được ủy quyền có thể sử dụng AUTHCALL để thực hiện các giao dịch cho EOA;

Điều này cho phép nhiều trường hợp sử dụng tương tự như EIP-4337 mà không yêu cầu mỗi người dùng triển khai hợp đồng thông minh mới. Điểm khác biệt chính là giao dịch đến từ EOA của người dùng, thay vì hợp đồng mới không có bất kỳ lịch sử tài khoản nào của người dùng, ETH, NFT, mã thông báo, v.v.

Câu trả lời phổ biến đối với EIP-3074 là "Điều gì sẽ xảy ra nếu ai đó thực hiện một hợp đồng độc hại và người dùng ủy quyền cho họ?" Rốt cuộc, việc ủy quyền cho một hợp đồng độc hại có thể khiến tất cả tài sản tiền điện tử trong ví của người dùng bị cạn kiệt.
Giải pháp cho vấn đề này là nhà cung cấp dịch vụ ví thậm chí không cho phép người dùng ủy quyền bất kỳ hợp đồng nào, họ có thể giữ một danh sách trắng các hợp đồng thông minh mà người dùng có thể ủy quyền và mọi hợp đồng ngoài danh sách này sẽ không được hiển thị cho người dùng.

Một điểm quan trọng của ủy quyền EIP-3074 là việc ủy quyền không phải là vĩnh viễn "Một giao dịch EOA sẽ khiến số tiền không tăng lên, do đó làm mất hiệu lực ủy quyền chưa hoàn thành."
Về cơ bản, sau khi người dùng thực hiện giao dịch mới, lệnh sẽ không còn hiệu lực.

EIP-5003
Chúng tôi thực sự không muốn trao thêm quyền lực cho EOA. Suy cho cùng, mục tiêu của những đề xuất này là chuyển người dùng từ EOA sang tài khoản hợp đồng thông minh, vậy tại sao chúng tôi lại thêm chức năng vào EOA?
Điều này dẫn đến đề xuất tiếp theo của chúng tôi: EIP-5003. EIP-5003 thêm một mã opcode khác "AUTHUSURP", mã này triển khai mã tại địa chỉ được ủy quyền EIP-3074.
Sự khác biệt giữa EIP-3074 và EIP-5003 là:
EIP-3074 là ủy quyền tạm thời cho hợp đồng thông minh và có thể bị thu hồi;
EIP-5003 là quá trình di chuyển vĩnh viễn từ EOA và "chuyển đổi" từ EOA sang tài khoản hợp đồng thông minh;
Một vấn đề lớn với EIP-3074 + EIP-5003 là nó không tương thích lắm với sơ đồ trừu tượng hóa tài khoản hiện tại thông qua EIP-4337, vì vậy một số người trong cộng đồng Ethereum lo lắng rằng chúng tôi sẽ “tạo ra hai hệ sinh thái mã riêng biệt”.
EIP-7702
Điều đó đưa chúng ta đến đề xuất của Vitalik Buterin ngày hôm nay: EIP-7702 - anh ấy đề xuất sửa đổi EIP-3074 để làm cho nó hợp lý hơn và tương thích hơn với EIP-4337 để chúng tôi không kết thúc với hai hệ sinh thái trừu tượng tài khoản riêng biệt mà còn phải cân nhắc EIP-5003 bước tiếp theo trong quá trình di chuyển vĩnh viễn.
EIP-7702 đề xuất một loại giao dịch mới chấp nhận cả trường hợp đồng và chữ ký và khi bắt đầu thực hiện giao dịch, nó sẽ đặt mã hợp đồng của tài khoản của người ký thành hợp đồng. Khi kết thúc giao dịch, nó sẽ đặt lại mã đánh dấu thành trống.
Điều này giống như EIP-3074, thực hiện chức năng ủy quyền tạm thời của EOA cho các hợp đồng thông minh. Tuy nhiên, EIP-7702 không giới thiệu các opcode mới (cần phải hard fork), mà thay vào đó xác định các hàm được gọi:
AUTH -> gọi "xác minh" (xác minh)
AUTHCALL -> gọi "thực thi"

Cụ thể là:
Kiểm tra xem mã hợp đồng tài khoản của bạn có trống không;
Nếu trống, nó được đặt thành mã hợp đồng được cung cấp;
Thực hiện giao dịch theo cách hợp đồng thông minh được cung cấp xử lý giao dịch;
Khôi phục cài đặt mã hợp đồng tài khoản thành trống;
“Mã hợp đồng” theo nghĩa đen có nghĩa là mã của hợp đồng thông minh được lưu trữ trong “mã hợp đồng”. Vì bản thân EOA không phải là hợp đồng nên trường này thường trống. Tuy nhiên, điều thông minh về EIP-7702 là nó tạm thời điền vào trường này một số mã hợp đồng thông minh trong quá trình thực hiện giao dịch.
Đây là một cách để cung cấp cho EOA của bạn hành vi mới (dưới dạng mã đánh dấu) để thực hiện giao dịch cụ thể này, bước tiếp theo là biến điều này thành thay đổi hành vi vĩnh viễn, chỉ cần chọn "Không đặt mã đánh dấu sau khi giao dịch đóng" null ".
Một trong những điều tốt nhất về đề xuất này là nó có khả năng tương thích cao với tất cả công việc trừu tượng hóa tài khoản được xây dựng cho EIP-4337 cho đến nay, "mã hợp đồng mà người dùng cần ký thực sự có thể là mã ví EIP-4337 hiện có."
Khi thay đổi này có hiệu lực, EOA hiện tại của người dùng có thể thực thi bất kỳ mã hợp đồng thông minh nào. Với các EIP bổ sung, EOA cũng có thể được nâng cấp vĩnh viễn để chạy mã cụ thể.
Theo thời gian, điều này có thể cách mạng hóa cách tất cả chúng ta tương tác với các ứng dụng Web3.


