User On-boarding and CREATE2
TL;DR We need to improve usability in Ethereum. The upcoming hard fork was intended to address scalability, but perhaps it’s also the answer to user on-boarding.
Usability in Ethereum
Ethereum is a decentralized network that can process roughly 15 transactions per second. It’s definitely a breakthrough that these transactions are all processing without a middleman. While this is a triumphant feat on its own, it is paltry in comparison to centralized services like Visa, which can peak at 24,000 transactions per second, or even Facebook, which handles 13,000,000 queries a second. On the throughput side, scalability is being addressed through techniques like state channels and plasma.
Currently, for a new user the single act of buying 1 ETH involves overcoming 4 huge obstacles. The hurdles hindering mainstream adoption are:
- Cost Paradox
- Default Advanced Mode
- Key Management
- Account Recovery
You must own ETH to use Ethereum. This means that first-time users, who have little confidence in navigating this disorienting new world, must first buy ETH before they can even begin experimenting in the ecosystem. They must have both figurative and literal buy-in — and from the very beginning, before really knowing what they are getting themselves in to. With the current mainstream precedent of easy-to-use free services, it is difficult to convince a curious but uninitiated user to begin experimenting.
Default Advanced Mode
Ethereum’s possibilities are mind-boggling. It can do so much more than we can even imagine. Automated transactions that were mere pipe dreams only a year ago are now the most basic use-cases out there (voting, gambling, verifying supply chains, etc.). In the last six months alone, Ethereum grew by 40%. If our current pace is any indication, Ethereum is on track to change reality as we know it.
It’s a currency. It’s an ecosystem. It’s a way of life. On a scale of 1 to 10, Ethereum is hyperdrive.
However, that’s also a problem — it is stuck at hyperdrive, which can be intimidating for mainstream users.
This brings us to usability problem number two: On-boarding for many of today’s wallets is exclusionary and inflexible. Let’s be honest. You practically have to climb Mt. Everest just to spend ETH, and that’s the easy part.
It assumes that you’ve already completed the 17 complicated steps that are required to buy it in the first place. By its very nature, many would argue that the ecosystem is closed to all but an elite few who can take on the burden of navigating its mechanics.
Most people may have long forgotten, but here are the steps new users have to follow:
- Choose a wallet.
- Save the keystore file.
- Save your private key and keep it safe (but not too safe — don’t lose it! And not too many copies, because you don’t want someone to steal it!)
- Open your wallet.
- Copy your wallet address.
- Choose an exchange.
- Set up two-factor authentication.
- Verify your account.
- Upload your ID.
- Buy ETH.
- Send ETH to your wallet.
- Input your gas price.
- Submit the transaction.
- Continue to hit refresh on Etherscan until the transaction is confirmed.
By comparison, it takes only 3 steps to set up a Facebook account. Ethereum’s exclusivity — from signup to funding and transactions — is a barrier to entry. We’re expecting a toddler to run a marathon before she’s even learned to walk.
If we don’t expect users to jump through these hoops as part of on-boarding for Google, Netflix, or Amazon, why should Ethereum be any different? Is Ethereum the narcissistic, navel-gazing friend that forces you to always play on his terms?
Instead, let’s meet the user where she’s at, rather than relying upon her to take the initial leap of faith.
The key will be allowing users to take on only as much decentralization as they deem necessary for their needs. Ideally, there should be a continuum, a spectrum of entry points.
The rewards of decentralization are many. Users will arrive at this conclusion on their own terms in their own time. Forcing the user’s hand at the beginning, when they have 0 ETH, doesn’t make sense.
Programmable money deserves programmable access. With so much at stake, there are many well-intentioned but convoluted suggestions for keeping track of everything: Write down your private key and lock it in a safe. Hammer it into steel so it is fireproof. Use a hardware wallet that’s isolated from any network…
Let’s face it — demanding people trade usability for security when they barely know how to drive is a huge turn off. We are forcing the crypto-paradox on them — write down your private key or else you’ll lose all your funds. However, don’t write it down in too many places because if someone finds it they can steal all your funds.
Impossible account recovery is another major usability problem.
Decentralized applications will never take off if new users lose access to all of their funds when they misplace their private key. Users forget or misplace their password all the time in web2, but it’s rarely a deterrent since they can easily authenticate their identity and log back into their accounts. That is the current user expectation today. The vast majority of users will expect nothing less. Users need to be gradually trained to manage their own keys. Forcing new users to figure out their own recovery plan is not reasonable.
The upcoming hard fork will introduce CREATE2, an extremely important yet subtle new opcode. Although it was intended as a scalability solution, it is also a usability feature in disguise and a sleeper game-changer. It allows for new user flows that do not involve keys.
CREATE2 is Ethereum’s best open secret. In our future posts, we’ll explore how CREATE2 can solve usability and scalability. Using CREATE2, we can catalyze massive adoption and make it easier for developers to build more complex apps that demand engagement.