Liệu "Account Abstraction" có là xu hướng lớn tiếp theo trong Web3?
MỤC LỤC
Trước khi bắt đầu bài viết, bạn hãy thử trả lời một số câu hỏi sau đây:
- Bạn có từng mất tiền điện tử vì lạc mất khóa riêng tư chưa?
- Bạn đã từ bỏ việc sử dụng một ứng dụng phi tập trung (Dapp) nào đó vì thiếu token gas thích hợp chưa?
- Toàn bộ trải nghiệm người dùng của Web3 có thể bị bối rối với một đường cong lĩnh hội.
Chúng ta có thể sử dụng Instagram hoặc Twitter mà không cần biết cách nó hoạt động.
Chúng ta không cần phải tìm hiểu về các công nghệ cơ bản của chúng để bắt đầu sử dụng. Nhưng khi đến với blockchain, người dùng cần rất cẩn trọng về các mạng lưới mà họ tham gia, mã token mà họ gửi, và địa chỉ mà họ sẽ tương tác.
Trước hết, để hiểu rõ về khái niệm, chúng ta cần phải tìm hiểu đến bối cảnh liên quan.
Background
Trong mạng lưới Ethereum, có 2 loại tài khoản:
- Externally Owned Accounts (EOAs)
- Smart Contract Accounts
EOAs liên kết với một khóa riêng tư, điều này có nghĩa là họ có quyền kiểm soát việc truy cập vào các fund hoặc hợp đồng thông minh.
Loại tài khoản khác là Contract Account. Một tài khoản hợp đồng có chứa mã hợp đồng thông minh, điều mà một EOA đơn giản không thể có. Hơn nữa, Contract Account không có khóa riêng tư. Thay vào đó, nó được sở hữu (và kiểm soát) bởi logic của mã hợp đồng thông minh mà nó chứa.
Bởi vì Contract Account không có khóa riêng tư, nên nó không thể khởi tạo một giao dịch, nhưng lại có thể phản ứng với các giao dịch bằng cách gọi các hợp đồng khác và xây dựng các đường thực thi phức tạp.
Hãy tưởng tượng Ethereum như một cỗ máy trạng thái phi tập trung vô cùng rộng lớn. Mỗi khi có ai đó cần tương tác với blockchain, họ thực hiện điều đó thông qua các transaction, chẳng hạn như transfer token, stake token hay tạo ra một NFT. Các quy tắc đồng thuận điều chỉnh các trạng thái, và trạng thái này được phân phối trên toàn cầu để mỗi người tham gia có cùng một trạng thái chung.
Mạng lưới cần phải biết ai là người đã phát hành giao dịch; do đó, mỗi giao dịch phải được ký (sign). Tuy nhiên, trong một số trường hợp nhỏ lẻ, điều này có thể không bắt buộc.
Về giao dịch thay đổi trạng thái của mạng; điều này có thể bao gồm thay đổi số dư khi một người đã chuyển số dư từ một tài khoản này sang tài khoản khác. Những thay đổi trạng thái này đòi một lượng fee; do đó, gần như mỗi giao dịch sẽ đều đi kèm với một khoản phí.
- Tìm hiểu thêm tại đây: <Link>
Nhưng vấn đề nằm ở đâu?
Đối với những người tương tác với Dapps, việc trải nghiệm toàn bộ đã trở nên quá đỗi thông thường, nhưng hãy tưởng tượng từ góc độ của một người mới bắt đầu muốn tham gia, sẽ có một đoạn đường cong lĩnh hội có thể ngăn cản họ tương tác với dApp và làm chậm tiến trình thích nghi với Web3.
Hãy tưởng tượng về việc brigde token, wrap token, các mạng lưới khác nhau, việc lưu trữ khóa riêng tư, ghi nhớ các từ khóa dự phòng (mnemonics), v.v. Điều đó chưa đủ; nếu bạn quên mnemonics của mình thì sao? Hãy nhớ rằng, chúng ta không có chức năng như nút "Quên mật khẩu" như web 2.0 trong web 3.0.
Nếu bạn quên, bạn sẽ mất hết toàn bộ số tiền có liên quan. Không có khái niệm về việc ai đó sẽ giúp bạn lấy lại. Tất cả những điều này sẽ khiến bạn tự hỏi tại sao mọi thứ lại phải phức tạp như vậy. Tại sao không tiếp tục hoạt động tại thế giới tập trung, nơi mà người ta có thể gửi email cho bộ phận chăm sóc khách hàng và yêu cầu họ giúp khôi phục tài khoản?
Đó cũng giống như việc giao cho newbie một trọng trách lớn đến mức họ phải từ bỏ ngay từ lúc nhận việc.
Chúng ta có thể giải quyết những vấn đề này theo một cách nào đó không?
Đề xuất về tính năng "Account Abstraction" chính là câu trả lời. Bạn biết đấy, có rất nhiều rủi ro liên quan đến các EOAs. Nếu không phải là EOAs thì sẽ là gì? Các smart account chính là câu trả lời.
Account Abstraction cho phép bạn sử dụng các smart contract wallet thay vì các EOAs truyền thống. Đại khái: Account Abtraction là một khái niệm trong Ethereum, thứ sẽ cho phép người dùng tương tác với blockchain bằng cách sử dụng ví hợp đồng thông minh thay cho EOA.
Như đã đề cập, ví hợp đồng thông minh không phụ thuộc vào mã hóa công khai/riêng tư nhưng lại dựa vào mã lập trình. Điều này có nghĩa là logic để xác minh giao dịch có thể được tùy chỉnh và không liên quan chặt chẽ đến các khóa công khai/riêng tư. Mã lập trình có tính linh hoạt; bạn có thể thiết lập logic của mình để spend eth, khôi phục tài khoản của bạn, hoặc thậm chí thêm nominee.
EIP-4337 là một đề xuất nhằm thực hiện tính năng Account Abstraction mà không thay đổi giao thức Ethereum. Điều này có nghĩa là đề xuất này không đòi hỏi hard forking, vì nó được thực hiện như một lớp bổ sung trên cơ sở của Ethereum.
Dưới đây là một số trường hợp sử dụng chi tiết về tính năng trừu tượng hóa tài khoản (Account Abstraction) trong Ethereum:
Social Recovery
Điều khiến ai cũng lo lắng trong Web3 là khi nếu chúng ta mất khóa riêng tư thì sao? Bạn sẽ mất hết tài sản trừ khi có một máy tính lượng tử mạnh được xây dựng để khôi phục lại khóa riêng tư của bạn, nhưng điều đó cũng chỉ là một cơ hội nhỏ.
Nhưng người dùng có thể sử dụng tính năng Account Abstraction để tùy chỉnh logic của ví tiền của họ, để có thể khôi phục tài khoản thông qua bạn bè hoặc gia đình mà họ tin tưởng (hay còn gọi là Guardians). Hãy tưởng tượng Guardians như mọi loại account, chẳng hạn như cold storage, thành viên gia đình hoặc dịch vụ của bên thứ ba. Người dùng có thể chỉ định người mà họ muốn tin tưởng và điều kiện mà họ phải đáp ứng để thực hiện quá trình khôi phục mật khẩu.
Giả sử khóa riêng tư của bạn bị tiết lộ; bây giờ bạn sẽ làm gì? Bạn có thể thay đổi nó không?
Nếu bạn đang sử dụng một EOA như Metamask, việc bạn có thể bảo vệ mình rất hạn chế, ngoài việc chuyển toàn bộ số tiền từ tài khoản bị xâm nhập sang một tài khoản khác. Bởi vì khi khóa riêng tư ký giao dịch bị lộ, bất kỳ ai cũng có thể chuyển tiền của bạn.
Hãy giả sử chúng ta có một ví thông minh sử dụng tính năng Account Abstraction. Chúng ta có thể thay đổi khóa ký mà không cần tạo một tài khoản mới, tương tự như việc chúng ta có thể thay đổi mật khẩu sau khi nó bị xâm nhập.
Bạn sẽ phải yêu cầu khôi phục từ những guardian và cung cấp cho họ một khóa ký mới mà bạn muốn sử dụng. Các guardian không nhận được khóa ký, mà chỉ là mã băm (hash) của nó. Nếu đủ số lượng guardian đồng ý với yêu cầu của bạn, bạn có thể thay thế khóa ký cũ bằng khóa ký mới và tiếp tục sử dụng trên cùng một tài khoản.
Cơ chế tự động khóa (Dead Man's Switch)
Nhưng lỡ như bạn gặp một tai nạn nghiêm trọng thì sao? Làm thế nào cho gia đình của bạn có thể truy cập vào số tiền của bạn? Bạn có muốn tài sản bị khóa mãi mãi không? Bạn muốn họ có thể sử dụng tài sản đó không?
Hiện tại, cách duy nhất bạn có thể làm điều này là bằng cách chia sẻ khóa riêng tư với họ, nhờ đó họ có thể truy cập vào quỹ tiền của bạn. Tuy nhiên, chia sẻ khóa riêng tư không phải lúc nào cũng là cách tốt nhất. Chia sẻ khóa riêng tư tương đương với việc chuyển toàn bộ trách nhiệm liên quan đến nó cho người nhận.
Có cách nào khác ngoài việc chia sẻ trực tiếp khóa riêng tư không?
Cơ chế tự động khóa (Dead Man's Switch) là một phương pháp tốt hơn để giải quyết vấn đề này. Bằng cách thiết lập một cơ chế tự động khóa, bạn có thể quyết định một khoảng thời gian nhất định, nếu trong khoảng thời gian đó bạn không thực hiện hành động xác nhất (ví dụ như đăng nhập vào hệ thống), cơ chế tự động sẽ kích hoạt và cho phép người nhận truy cập vào tài sản của bạn.
Việc này giúp đảm bảo rằng tài sản của bạn không bị mất mãi mãi nếu bạn gặp tai nạn, đồng thời không cần chia sẻ khóa riêng tư và giữ an toàn cho quỹ của bạn trong không gian Web3.
Giao dịch hàng loạt (Batch Transactions)
Thường thì việc thực hiện đổi tiền giữa các đồ ứng dụng phi tập trung (Dapp) mới đòi hỏi nhiều xác nhận. Người dùng có thể thiết lập một hợp đồng thông minh để thực hiện nhiều giao dịch cùng một lúc, giúp tiết kiệm phí giao dịch và làm quá trình trở nên hiệu quả hơn.
Không cần phải sử dụng Native Gas token
Nếu bạn muốn thực hiện bất kỳ giao dịch nào trên mạng Ethereum, bạn sẽ phải trả phí gas và phí này thường được thanh toán bằng mã thông báo gốc của họ, đó là ETH. Nhưng nếu bạn chỉ có USDT trong ví của mình thì sao?
Rất tiếc, bạn sẽ phải chuyển đổi một số USDT thành ETH, đòi hỏi phí trao đổi và quay trở lại vấn đề ban đầu. Nhưng với tính năng Account Abstraction, một hợp đồng thông minh có thể được thiết lập để trả phí giao dịch bằng một mã thông báo khác. Điều này sẽ cải thiện đáng kể trải nghiệm người dùng.
Lời kết
Vậy là bạn đã tìm hiểu qua bài viết Liệu "Account Abstraction" có là xu hướng lớn tiếp theo trong Web3? CryptoViet Info hy vọng bài viết sẽ cung cấp cho bạn những thông tin hữu ích nhất.