Hardfork Pectra mang đến những cập nhậng đáng chú ý về mặt tính năng của Ethereum, tập trung chủ yếu vào những cải tiến về validator, tối ưu khả năng mở rộng và trải nghiệm của người dùng. Trong tâm của những cải tiến này chính là EIP-7702, tích hợp những tính năng account abstraction mới giúp cải thiện khả năng lập trình của mạng lưới một cách bền vững.
EIP-7702 thiết lập một loại giao dịch mới cho phép các tài khoản do con người sở hữu (EOA) sử dụng mã hợp đồng thông minh trong quá trình thực thi. Khi bytecode được thiết lập trong giao dịch ủy quyền ban đầu, một EOA có thể tiếp tục sử dụng mã đó cho đến khi họ chủ động thu hồi hoặc chỉnh sửa việc ủy quyền. Bản cập nhật này thu hẹp khoảng cách giữa ví EOA thông thường và hợp đồng thông minh, cho phép EOA truy cập vào một khung giao dịch linh hoạt và mạnh mẽ hơn.
Với EIP-7702, các EOA có thể gom nhiều giao dịch và hoàn tất các giao dịch DeFi chỉ trong một bước (thay vì quy trình hai bước hiện tại là chấp thuận + chi tiêu), thanh toán phí gas bằng các token khác nhau, thanh toán phí gas cá nhân bằng 0 với các giao dịch được tài trợ (khi kết hợp với các paymaster của ERC-4337), và tận dụng thêm các trường hợp sử dụng khác thông qua logic hợp đồng thông minh. EOA giờ đây có thể ủy quyền chức năng cho các hợp đồng thông minh, cho phép hành vi giống ví tùy thuộc vào khả năng của hợp đồng được ủy quyền.
Trong bài viết này, chúng tôi nêu bật những thay đổi cụ thể được giới thiệu bởi EIP-7702 và mô tả một số trường hợp sử dụng phổ biến. Chúng tôi cũng trình bày các cập nhật đã được thực hiện tại Blockscout để giúp bạn nhận diện và khám phá các giao dịch EIP-7702.
EIP-7702 giới thiệu một thay đổi quan trọng cho phép các EOA truy cập vào chức năng bổ sung khi gửi giao dịch. Một loại giao dịch mới (được gọi là loại 0x04 hoặc set_code) cung cấp tùy chọn để thêm các ủy quyền vào một giao dịch. Một ủy quyền sẽ ủy thác một hợp đồng thông minh hiện có cho một EOA, cho phép EOA đó lấy và thực thi mã.
Thuộc tính “authorization list” mới kiểm soát các sự gán này. Authorization list chứa một tập hợp các bộ giá trị (chain_id, contract_address, nonce, chữ ký (y_parity, r, s)) dùng để gán contract_address cho EOA được chỉ định trong các trường chữ ký. Ủy quyền này sẽ tồn tại cho đến khi nó được thay thế hoặc xóa trong một giao dịch tương lai.
Dưới đây là ví dụ về các trường được mã hóa RLP được gửi trong một giao dịch có hỗ trợ EIP-7702. Các trường này tuân theo cấu trúc giống như các giao dịch EIP-1559, với sự bổ sung của authorization_list như một tham số mới.
Tham số authorization_list
bao gồm các trường sau:
chain_id
cho phép địa chỉ được ủy quyền thay mặt EOA trên một chuỗi cụ thể. Trước khi thực thi, một kiểm tra sẽ được thực hiện để xác định rằng
chain_id
hoặc là khớp với chuỗi hiện tại hoặc được đặt là 0, biểu thị cho tất cả các chuỗi. Có thể đặt giá trị này là 0, nhưng có thể gây ra vấn đề nếu nonce giao dịch của EOA hoặc địa chỉ hợp đồng khác nhau giữa các chuỗi.
contract_address
được đặt là địa chỉ 0x của hợp đồng thông minh hiện có sẽ thay mặt chủ sở hữu EOA hành động.
nonce
– nonce của EOA, giúp ngăn chặn các cuộc tấn công phát lại. Nonce sẽ tăng sau khi một giao dịch được ủy quyền.
signature
– chữ ký từ EOA xác nhận rằng chủ sở hữu muốn thiết lập một ủy quyền và rằng bản cập nhật đã được chủ sở hữu EOA chấp thuận.
Lưu ý rằng bất kỳ ai cũng có thể khởi tạo một giao dịch
set_code
chứaauthorization_list
. Điều này cho phép các tính năng như tài trợ gas, trong đó người khởi tạo giao dịch sẽ thanh toán phí gas, trong khi chủ sở hữu EOA được chỉ định trong các trường chữ ký chỉ cần ủy quyền cho giao dịch.
EIP-7702 mở rộng đáng kể khả năng của các tài khoản, xây dựng cầu nối giữa những giới hạn hiện tại của EOA và tương lai nơi khái niệm trừu tượng hóa tài khoản (account abstraction) được tích hợp gốc vào Ethereum. Khi EIP-7702 được áp dụng, các EOA có thể truy cập vào nhiều khả năng mới bao gồm:
Thao tác gộp: Nhiều thao tác có thể được kết hợp trong một giao dịch duy nhất. Điều này có thể bao gồm quy trình approve/spend cũng như các thao tác phức tạp hơn trong đó đầu ra của thao tác đầu tiên được sử dụng làm đầu vào cho thao tác thứ hai. Việc này giúp tiết kiệm chi phí gas và thời gian.
Giao dịch được tài trợ: Một tài khoản phụ có thể thanh toán phí cho giao dịch của EOA chính. Trường hợp sử dụng có thể là EOA chính gửi bất kỳ token ERC-20 nào đến tài khoản phụ, và tài khoản phụ thanh toán giao dịch bằng đồng coin gốc. Tài khoản phụ cũng có thể tài trợ cho các giao dịch của EOA chính trong vai trò tài trợ (ví dụ: các Dapp chi trả phí gas như một hình thức khuyến khích sử dụng).
Phương thức đăng nhập nâng cao: Các tài khoản có thể ủy quyền đăng nhập thông qua sinh trắc học, tính năng xã hội hoặc các phương pháp khác.
Phương thức khôi phục tài khoản: Khóa có thể được chia cho nhiều người dùng, cung cấp cơ chế dự phòng để khôi phục tài khoản nếu khóa chính bị mất.
Quyền hạn chi tiết: Quyền tài khoản có thể bị thu hồi hoặc cấp phép theo thời gian. Có thể tạo ra các khóa giới hạn chỉ truy cập được vào một số chức năng nhất định (như chỉ được phép chi tiêu một loại token cụ thể như USDC) trong EOA.
Tương thích ERC-4337: UserOperations
hiện đã khả dụng cho EOA. Bất kỳ thao tác ERC-4337 nào hiện đang được thực hiện bởi ví hợp đồng thông minh (như đa chữ ký, gộp giao dịch, sử dụng paymaster) giờ đây có thể được gửi trực tiếp từ EOA đến các bundler.
Vì các EOA đang sử dụng mã để tăng cường chức năng, các trường hợp sử dụng mới sẽ tiếp tục xuất hiện khi các nhà phát triển và dự án khám phá thêm những khả năng mới.
Để bắt đầu, chúng tôi khuyến nghị các tài liệu sau, giúp các nhà phát triển từng bước thực hiện việc gọi các hàm hợp đồng với EIP-7702:
Chúng tôi đã thực hiện một số thay đổi trên Blockscout để cung cấp khả năng hiển thị bổ sung cho các giao dịch EIP-7702. Những cập nhật này làm nổi bật các EOA đã ủy quyền mã (EOA + code) và phân loại các giao dịch sử dụng tx-type-4 trong quá trình thực thi.
Ở phía backend, chúng tôi đã tạo các bảng mới để lưu trữ các ủy quyền đã ký và phân tích, lưu lại các bộ giá trị ủy quyền từ phản hồi RPC, sau đó cập nhật giao diện frontend để hiển thị thông tin này trên nhiều trang khác nhau.
Thẻ EOA+code được thêm vào một địa chỉ khi địa chỉ đó đã ủy quyền một hợp đồng thông qua EIP-7702. Thẻ này được hiển thị trên trang chi tiết địa chỉ và kèm theo biểu tượng dấu + trên biểu tượng địa chỉ. Khi di chuột lên biểu tượng, cũng sẽ hiển thị thẻ EOA + verified code. Nếu mã đã được xác minh, biểu tượng + sẽ có màu xanh lá; nếu chưa xác minh, biểu tượng + sẽ có màu trắng.
Trên trang chi tiết địa chỉ, bạn sẽ thấy trường Delegated to hiển thị hợp đồng được ủy quyền (đã được ủy quyền) cho EOA khi có. Trường này sẽ hiển thị tên hợp đồng (nếu đã được xác minh) hoặc địa chỉ hash của hợp đồng được ủy quyền nếu chưa được xác minh.
💡 Ví dụ một giao dịch trên Sepolia -> https://eth-sepolia.blockscout.com/tx/0x67c64f36c2b0da8d845be8b5c810f4392ac91f1306a4bb2d1f4fdf3f429b9c1f
Các giao dịch EIP-7702 bao gồm tab Authorizations, hiển thị địa chỉ (hợp đồng được ủy quyền), authority (EOA), chain, và nonce được chỉ định trong giao dịch.
Nếu giao dịch sử dụng ERC-4337 UserOps, Blockscout cũng hiển thị chi tiết thao tác người dùng liên quan đến hành động thực tế được thực hiện bởi EOA. Trong ví dụ này, chúng ta thấy địa chỉ đích và giải mã calldata nội bộ, cho thấy đó là một giao dịch chuyển ERC20.
Để xem thêm chi tiết về giao dịch, cuộn xuống liên kết “details” để mở rộng thông tin về giao dịch, bao gồm trạng thái của nó là Txn-type-4.
Biểu đồ và Thống kê
Chúng tôi cũng đã thêm một số biểu đồ mới vào phần biểu đồ và thống kê, hiển thị số lượng ủy quyền EIP-7702 mới mỗi ngày cũng như sự tăng trưởng của các ủy quyền theo thời gian. Những biểu đồ này sẽ minh họa mức độ áp dụng tiêu chuẩn mới khi các giao dịch EIP-7702 tiếp tục được sử dụng rộng rãi.
EIP-7702 đại diện cho một bước tiến quan trọng trong hạ tầng của Ethereum, thu hẹp khoảng cách giữa các EOA truyền thống và hợp đồng thông minh. Bằng cách cho phép các tài khoản do con người sở hữu tạm thời sử dụng chức năng của hợp đồng thông minh, bản cập nhật này mở rộng đáng kể những gì người dùng có thể thực hiện trên mạng lưới — từ giao dịch gộp và tài trợ phí gas đến khôi phục tài khoản nâng cao và kiểm soát quyền truy cập chi tiết.
Blockscout đã triển khai hỗ trợ toàn diện cho các loại giao dịch mới này, giúp việc nhận diện và khám phá các tương tác EIP-7702 trở nên dễ dàng thông qua các chỉ báo trực quan rõ ràng và thông tin giao dịch chi tiết. EIP-7702 cùng với bản nâng cấp Pectra lớn hơn hứa hẹn sẽ nâng cao khả năng mở rộng và trải nghiệm người dùng trong hệ sinh thái Ethereum, đưa mạng lưới tiến gần hơn đến trừu tượng hóa tài khoản gốc mà vẫn duy trì khả năng tương thích với hạ tầng hiện tại.
cRekto