Aergo Connect: Blockchain Wallet UX Considerations
We outline the history of blockchain wallets, Aergo’s vision for dapp user experience (UX), and the main use cases of Aergo Connect, Aergo’s own browser wallet.
What’s a wallet?
A wallet in the field of blockchains and cryptocurrencies is, most fundamentally, a software that manages a user’s accounts in a safe manner. Blockchains are typically based on private-public-key security, so the piece of information a wallet needs to keep safe and make available to the user is the private key.
Once you have an account on a blockchain, you want to check your balances and initiate transactions. This is fairly simply in the case of token-only blockchains such as Bitcoin. But if we take into account advanced blockchains with smart contracts and on-chain governance protocols, like Ethereum and Aergo, there are a lot more things you could imagine to use a wallet for.
Any communication between decentralized applications (dapps) and the blockchain uses transactions. In order to send transactions, a user has to sign it using their private key, and send it to the network. Often, transactions require fees, so those have to be paid as well.
When designing any software, you first have to define the target user groups. For blockchain wallets, there are, broadly speaking:
- Token holders. They want to store and transfer funds.
b) Governance participants. Some token holders may want to participate in the on-chain governance, such as staking and voting.
- Dapp developers. They need a way to manage funds and test transactions in a rather manual way during development.
- Dapp users. They need to sign transactions while using the dapp.
Before diving deeper into which of those Aergo Connect aims to support, let’s have a quick look at the history of wallets.
Evolution of wallets
Early on, wallets usually came together with full nodes. Both the early Bitcoin (2011) and Ethereum (2015) desktop wallet applications include full nodes that synchronize the complete blockchain state.
However, running a full node takes resources and time that not every user can spare. Even with hopes for light clients being able to do this efficiently one day, for increased usability today, wallets are often reduced to their core functionality of being a private key storage. To interact with the blockchain, external nodes or APIs can be used. There are many mobile apps that do this, for example Coinbase (2013) and BitPay (2016). Recently, wallet-like functionality has also started to appear in more high-level products, such as Status.im (2017), a messenger app with blockchain support.
One big problem of storing private keys in any kind of software are the inherent security limitations. Your keys are only as secure as your computer, operating system, or browser, so if any of those get compromised, there’s nothing you can do to stop a hacker. That’s why for wallets storing a significant amount of value, a hardware wallet (e.g. Ledger (2016)) is recommended. Many dapps/wallets have support to interact with these, but they still introduce additional hurdles for users. However, not all dapps need to deal with significant amounts of value.
An early website client was MyEtherWallet (2015) that has recently launched a new design. MEW does a great job of guiding users through the necessary steps and providing secure recommendations. Standalone web clients have a strong potential: for a basic use case, they don’t require any additional software. Recently, Burner Wallets also started to appear. Those are super simple to use (but not very secure) wallets that a website stores right in the browser’s storage. A great example of this is this one used at ETHDenver (2019).
Then there are wallets integrated into browsers through extensions or standalone applications. One of the earliest concepts of browsers that enabled dapp use was Mist (2015). Mist contributed a lot to advancing dapp UX, but was finally discontinued this year. Instead, most Ethereum dapp users these days use Metamask (2016), a browser extension, which recently also launched as a mobile app. There are also browsers with built-in blockchain support, such as Brave. On the mobile front, we are also starting to see wallets deeply integrated into OS, e.g. the Samsung Keystore (2019), which may soon make hardware wallets obsolete for general-purpose dapp usage.
The future of wallets for dapp adoption
So far, a wallet has been necessary to use dapps because users need to keep and fund an account in order to perform any transactions. In our opinion, this is still one of the biggest hurdles to mainstream blockchain adoption. Having to install additional third-party software before interacting with the actual application you wanted to interact with is a hard sell, especially when decentralized apps are competing with traditional centralized apps. This is also bad for big-name service providers that want to own the complete brand of their products. Can you imagine having to install Metamask before being able to use Apple Pay?
Metamask and Mist have done a great deal to improve UX on Ethereum. They made it much easier to interact with dapps. However, we believe that those are just temporary solutions. Mainstream adoption won’t happen as long as users still have to download third-party software before being able to interact with your app. Keeping a wallet needs to be as simple as possible. Or even better, not require a wallet at all. That’s why we’re so excited about wallets built-in into phones (Samsung Keystore) and concepts like Universal Login, Burner Wallets, and other Layer-2 solutions, enabling standalone dapps that don’t require additional software and offer a direct and easy-to-use onboarding experience.
In the meantime, Mist has officially been sunset, as it became apparent that it’s not really suitable for what it set out to be. Metamask continues to expand to different platforms and open up its own to live up to its name and become an actual “meta-wallet”. This is an exciting development that we’ll be watching closely. Maybe Metamask can also support other blockchains, like Aergo?
Aergo’s goal is to offer the best of both, public and private blockchains. While public chains offer transparency and trust, a big advantage of private chains is that funded wallets are not strictly necessary. Aergo’s core protocol includes critical features such as fee delegation and zero fees on private chains. Using these features, a service provider can cover transaction fees and a dapp client can manage its user’s private keys itself, bringing us closer to the vision of standalone dapps.
Furthermore, because Aergo is a new blockchain built from scratch, we have been able to include various small usability features that are very hard to implement on Ethereum, or at least take years of coordination in the EIP process. For example, on Ethereum, contract call data in transactions uses a packed encoding scheme that is not human readable. This has lead to EIPs such as “typed structured data hashing and signing”. On Aergo, this data is expressed as JSON objects, which are much more user friendly and can be displayed in a human-readable form in a wallet.
Another aspect of Aergo that sets it apart from other blockchains is that its native token can be easily and indefinitely swapped with an ERC20 token on the Ethereum chain. That means that for speculation and trading purposes, there’s no need to hold native tokens or use a native wallet. Traders can continue to use their favorite Ethereum wallet and brokerages, and Aergo development can focus on broader and more high-level use cases.
Implications for Aergo Connect
What does this mean for Aergo’s official browser wallet, Aergo Connect?
As we’ve seen, there are many disadvantages when requiring your users to install third-party applications and manage blockchain accounts manually, especially for enterprises. We want a better user experience for apps built on Aergo.
We envision that many dapps will be using private networks to settle transactions and bridge to the mainnet only when necessary, without the end user having to interact with the mainnet on their own. This approach is different from Ethereum or Metamask which is designed to be visible to and used by end users.
As a consequence, the target audience of Aergo Connect is mainly Aergo token holders, dapp developers and providers, but not necessarily dapp end users. We do, however, support Aergo core protocol applications, such as staking and voting, as those are actions that every token holder should have an interest in. Aergo Connect also works with the permanent aergo-ethereum bridge which will be launched soon, enabling asset transfers between Aergo and Ethereum networks.
The user experience of wallets has come a long way. Aergo Connect’s focus is ease of use for Aergo token holders and service providers, but it’s not likely to be used by dapp end users and cryptocurrency traders. Even though we draw a lot of inspiration from Metamask, our overall vision is quite different, and the Aergo core blockchain platform simplifies certain usability aspects.
Blockchain UX will only be suitable for the mass market once it’s so easy to use that users don’t have to understand complex technical details and install additional software. Aergo is built from the ground up to support this kind of vision.
Want to try out Aergo Connect? It’s available as a Chrome extension on the Chrome webstore. All feedback is much appreciated, please direct it to Github or to firstname.lastname@example.org.