Hôm qua tôi đã được hỏi về mối quan hệ giữa ERC-6551 và AA (Account Abstraction), và khi thảo luận tôi mới nhận ra mọi người có nhiều hiểu lầm về nó. Tôi muốn ghi lại một số ví dụ tương tự được sử dụng trong thảo luận hôm nay, hy vọng nó có ích cho sự hiểu biết của mọi người. Như thường lệ, bài viết này không phải là một bài viết kỹ thuật nghiêm túc, để dễ hiểu tôi sẽ sử dụng các ví dụ tương đối thân thiện.
Hiểu về ERC-6551 một cách đơn giản
Trước tiên, ERC-6551 không phải là một tiêu chuẩn Token, nó không thuộc cùng một loại với ERC-721, mà nó giống hơn với ERC-4337 – đúng vậy, bạn không nghe nhầm đâu, nó giống một tiêu chuẩn AA, chỉ khác là nó là một tiêu chuẩn ứng dụng. Nếu phải so sánh, nó sẽ giống nhất với tiêu chuẩn phục hồi mạng xã hội của ERC-7093 (Cảnh báo: Đây chỉ là ý tưởng của tôi 😛), cả hai đều xem xét cách sử dụng AA. Vì vậy, bạn có thể nói “UniPass v2 là một tài khoản AA tương thích với 4337/6551/7093”, nhưng không có khái niệm “NFT tương thích với ERC-6551”.
Khi đọc đến đây, bạn có thể cảm thấy mơ hồ ❓: Không phải nói rằng mỗi NFT đều được liên kết với một tài khoản sao lại trở thành tiêu chuẩn AA? Đây là sức mạnh của cách kể chuyện – cùng một sự việc, nhưng từ góc độ khác nhau, nhận thức của khán giả sẽ hoàn toàn khác nhau.
Từ góc độ của chủ sở hữu NFT: Trong địa chỉ A của tôi có một NFT, nó có một địa chỉ liên quan là X, tôi có thể sử dụng A để kiểm soát việc chuyển tiền của X. Khi tôi chuyển NFT đến địa chỉ B, A sẽ mất khả năng kiểm soát X và đồng thời B sẽ có khả năng này, vì vậy địa chỉ X được liên kết với NFT này.
Từ góc độ của nhà phát triển AA tài khoản: Trong tài khoản AA, triển khai một cách xác thực liên quan đến NFT. Nếu khóa gửi yêu cầu chuyển tiền là một địa chỉ Ethereum và địa chỉ đó sở hữu một NFT được đăng ký trước đó, thì việc xác thực sẽ thành công và tài khoản sẽ được mở khóa.
Tất nhiên, bạn cũng có thể đạt được hiệu quả “ràng buộc gốc” bằng cách mã hóa ID duy nhất của NFT vào khi tạo địa chỉ. Nếu bạn là một nhà phát triển hợp đồng thông minh, bạn có thể nhanh chóng triển khai một tài khoản AA tương tự bằng Safe Module.
Thực tế, nếu bạn đã đọc Abstract của đề xuất này, bạn sẽ dễ dàng nhận ra kết luận sau:
Đề xuất này định nghĩa một hệ thống cho phép mỗi token ERC-721 có một tài khoản smartcontract. Những tài khoản liên kết với token này cho phép các token ERC-721 sở hữu tài sản và tương tác với các ứng dụng mà không cần thay đổi các smartcontract hoặc cơ sở hạ tầng ERC-721 hiện có.
Giải thích ERC-6551 bằng ví dụ tương tự
Tôi tin rằng mọi người đã hiểu rằng ERC-6551 mô tả một tài khoản AA chứ không phải là NFT. Bây giờ chúng ta sẽ sử dụng một công cụ giảng dạy AA tốt nhất – khóa thông minh – để giải thích bằng ví dụ tương tự.
Đầu tiên, chúng ta có thể so sánh khóa riêng tư với dấu vân tay. Chúng tương ứng với khái niệm “nhận dạng” trong thế giới mã hóa và thế giới vật lý. Nếu bị người thứ ba có được, người khác sẽ không thể phân biệt được liệu đó là “chính mình” hay “người khác” đang thực hiện thao tác, vì vậy chúng ta thường không chia sẻ với người khác.
Tiếp theo, chúng ta bắt đầu với tài khoản AA đơn giản nhất: tài khoản AA được điều khiển bởi một khóa đơn (EOA), ví dụ như một tài khoản Safe chỉ có một chữ ký. Logic mở khóa của nó là xác thực chữ ký của khóa, nếu khớp thì có thể mở khóa tài khoản; tương tự như việc mở khóa bằng dấu vân tay trên khóa thông minh. Tuy nhiên, logic liên kết chặt chẽ với danh tính không phù hợp trong một số tình huống, ví dụ như hộp đựng đồ trong phòng tắm, lúc này chúng ta cần một phương tiện mở khóa không liên quan đến người, chẳng hạn như “thẻ chìa khóa”, có nghĩa là “nhận thẻ không nhận người”.
Cuối cùng, chúng ta ánh xạ “người sử dụng thẻ chìa khóa mở tủ đựng đồ và lấy 100 đô la Mỹ” thành “địa chỉ sử dụng NFT để mở khóa và chuyển 100 USDT” – Chúc mừng bạn, bạn đã hiểu được nguyên tắc cơ bản của ERC-6551! 🎉
ERC-6551 sử dụng mỗi NFT của ERC-721 như một thẻ chìa khóa và kết hợp nó với một tủ đựng đồ.
Tóm lại
Có cảm giác như “kết thúc đột ngột” phải không? Vì khi giải thích bằng ví dụ tương tự thì thực sự không phức tạp, trong các Spec thực tế còn có một số thiết lập tương tự Entry Point trong ERC-4337, cũng như xử lý “tham chiếu lặp” (nghĩa là đặt chìa khóa trong tủ đựng đồ) nhưng nó không liên quan đến việc hiểu nguyên tắc cơ bản, vì vậy chúng ta không đi vào chi tiết này.
Tiêu chuẩn này, mặc dù cách tiếp cận khá đơn giản, chỉ là thay đổi cách kể chuyện, nhưng đôi khi việc thay đổi góc nhìn cũng làm cho thiết kế của một số tình huống trở nên tự nhiên hơn. Ví dụ, logic trang bị trong trò chơi NFT có thể trở thành “liên kết NFT trang bị với địa chỉ liên kết của nhân vật NFT”. Do đó, ERC-6551 có thể được coi là một giao thức có sức mạnh trong việc phổ biến AA, hy vọng sẽ có nhiều giao thức hoặc trường hợp sử dụng tương tự, để mọi người đều cảm nhận được sức hấp dẫn của AA.