Note: This article assumes that you are already familiar with crypto wallets and related concepts
Account Abstraction is a concept that is rapidly gaining popularity in the world of crypto, with numerous wallets nowadays claiming to be AA-compatible and heralding a new era for the wallet ecosystem. In this article, we propose a new dApp user flow that Hexlink is experimenting with, which reveals the potential of AA from our perspective.
What is a wallet
Before we start to discuss Account Abstraction, let us first define what a Wallet is.
Conceptually, a wallet consists of two layers: the identifier (public address) and the authenticator (private key). The identifier layer handles asset management, chain configuration, and name service, while the authenticator layer handles signing and authentication. It is worth noting that authentication can provide a richer context than signing. For example, a wallet can support “Sign in with Ethereum” or “Wallet Connect” for login, where signing is just the last step of the whole process.
Among all these components, which is the essence of a wallet?
Interestingly, Web2 users and Web3 developers have different opinions on what the essence of a wallet should be. According to our survey, Web2 users believe that a wallet is more about assets and account management, while Web3 developers believe that the signing and authentication process is the soul of a wallet since it holds the most secret part of it: the private key. It’s difficult to say which one is correct since, in the EOA world, public and private keys are the same thing and derive from each other. However, things change a little bit when it comes to smart contract wallets.
Smart contract wallet as the 1st class citizen
Smart contract wallets have been around for a while, but they have not become the mainstream due to their inability to pay gas for transactions they have triggered. This means they always rely on an EOA with an ETH balance to trigger transactions and pay gas for them. Account Abstraction (EIP-4337) solves this problem by introducing the entry point contract and the bundler service, promoting smart contract wallets as first-class citizens in the blockchain world. There are other good features introduced by AA, such as paymaster and a unified user operation verification interface, but we believe gas payment is the most important one since it fixes the fundamental flaw of the system.
With AA, wallets are being turned into AA compatible smart contract wallets, but many are still following the architecture of the EOA wallet we showed above, which means that they are missing out on the potential brought by account abstraction.
Break down the wallet: the new dApp user flow
With smart contract wallets, there is no longer a binding between the wallet address and the private key. While a smart contract wallet may still have an EOA as its owner, the owner’s key can now be rotated. In this case, does it still make sense to pack these two layers in one wallet app?
Hexlink aims to break down the typical wallet app by splitting it into several different components/layers, making it more flexible and composable. We are proposing a new dApp user flow shown in the diagram below. With this revolutionary user flow, Hexlink is set to provide a seamless Web2 user experience for Web3 apps.
Let’s go through each component:
Name Service Layer
Users should be able to log in to dApps with human-readable names, such as ENS names, instead of raw addresses. Hexlink supports name mappings from email addresses and social account handle to smart contract wallet addresses, making it possible for users to log in to dApps directly with such identities.
Instead of inventing a new ID system, email is considered a natural choice for a decentralized identifier since it’s supported by a decentralized communication protocol. Users have been using their emails as their online IDs for Web1 and Web2 (most social media accounts, including Twitter/Facebook, are registered with emails). We believe this will continue to be the case for Web3.
Since a majority of Web2 users do not have wallet addresses, to further reduce the onboarding cost for new users, Hexlink seamlessly transforms email/Google/Twitter users into Web3 users by translating their familiar login identities into corresponding wallet addresses, allowing them to receive cryptocurrency without any need for downloads or sign-ups! The wallet address is unique to the email or social account owner and is verified by the Hexlink Identity Oracle. We are proposing EIP-4972 to standardize this workflow.
Application Layer
Once users have successfully logged in, they will be directed to the application layer. By using the name service, the application can access the user’s wallet address to display information about their assets. Despite most people being unaware, a wallet can be classified as a dApp as it contains a built-in asset/chain management feature. Nevertheless, Hexlink considers this feature as an independent layer and handles it similarly to any other decentralized applications.
In case users want to sign a transaction, instead of linking the wallet to dApps, Hexlink provides support for push mode. In push mode, dApps can simply send the transaction request to an authenticator app for signing. This approach makes the application layer much more straightforward, as it can now focus primarily on its own business logic, without having to concern itself with private key storage and signing.
Authenticator Layer
The authenticator layer could be an authenticator app, similar to Duo, Authy, or Google Authenticator. It holds the user’s private key and is solely responsible for signing transactions. When a request is received from the user, a notification with the details of the request will be popped up and be displayed for the user to review and approve. Once the user confirms the transaction, it will be signed and either returned to the dApp or directly submitted on-chain.
The communication between dApps and the authenticator app is standardized by EIP-6662, which by introducing a unified account view for all dApps through the new IAccountMetadata interface. Once the user publishes their authenticator information on-chain, all dApps can access the required information proactively, eliminating the need for the user to share their information with each dApp individually.
Summary
In this article, we explore the potential of Account Abstraction (AA) and its role in shaping the future of blockchain wallets. We provide a comprehensive overview of the various components found in a typical EOA wallet and highlight how smart contract wallets can assist in dividing them into multiple applications.
We then present a new dApp user flow by breaking down the wallet app into three distinct layers: the Name Service Layer, Application Layer, and Authenticator Layer. With this revolutionary user flow, Hexlink offers a seamless Web2 experience for Web3 applications.