a UX, technical and strategic solution to easily on-board no-coiners and accelerate the adoption of the Blockchain
Today, Crypto is only of the initiated, to use any Dapp you need to be already an “expert” user: you need to have a wallet installed, have some ether or tokens, which likely implies that you’ve gone through an exchange and their lengthy KYC process.
The Friction — the journey of a no-coiner:
When a user 😄 that is new to the blockchain lands on a Dapp, not being able to detect a wallet installed, she is immediately prompted to install one 😯, likely MetaMask, sending her out of the Dapp itself, to the browser extension store or another page, but she will likely google it to check if its legit and what it means (…after 10 minutes “ok It seems legit, let’s install it!”)
Now she will have to read through the wallet’s own instructions…and ask more questions, what is a “Den”? What is a “private key”? What is this weird “mnemonic” thing? Where should I write it down? (🤔 “…let me grab a post-it! Or better, let me put it on Dropbox so I have it everywhere” 🤦)
If you haven’t lost her already and she’s really motivated to understand your Dapp, she comes back to your page and starts to fiddle around (“ok I have a wallet! Now what?”) and soon discovers that she needs Ether to pay for Gas (😧 “WTF if gas? I’ve heard of Ether, but where do I get it? Let me google these things”).
After a while she discovers she has to go through an exchange to get Ether (“but there are plenty of exchanges, which one do I choose? Let me google it…”).
After some digging, frustrating reading and cognitive fatigue trying to remember all these pieces of information 😫, she choses one, signs up, provide some of the basic questions (“you nosy exchange, asking all these questions…” 😠 ), but finds out that she needs to provide more information to qualify for a higher tier and also that she will have to wait, several days, maybe weeks, before they respond 😡 .
After some more hoops and self-learning 😨, this really really motivated user can finally come back to your dapp and maybe start to use it, if she doesn’t get frustrated with a couple more complications along the way like understanding transaction pop-ups, signing them, gas and gas price, etc. 😱
By this point a Dapp has probably lost 99.99% of users.
The UX Friction of using the Blockchain today sublimates instantly the user base.
This is not the right way to on-board users. We can do better and have set out to find the solution.
After some initial ideas and one first attempt we developed at the ENS Hackaton in London, we went to ETHBerlin and developed a new model that we think finally works. We were honoured with ETHBerlin’s UX award 🎉
All-aboard proposes a UX flow, a technical architecture, and a Strategic solution (the Alliance for Mass Adoption) to get rid of that friction and be able to easily on-board the next wave of users.
And does so in a decentralized and non-custodial way.
1 — The Simple UX Flow
we propose a way that allows no-coiners to land on any Dapp and there, in context, without asking them to leave the page, they can
- get a username (an Ethereum Name Service name),
- get a “wallet” without having to install anything nor loosing focus,
- receive some ethers (or tokens) to pay for gas and interact with the Dapp
- without asking them to store a private key
- without seeing annoying popups nor having to learn about gas or gas price
It just works. It reproduces the user experience of any Web2 App.
The only limitation which we still have not overcome is the need to wait for transactions to be mined. That is a solution that will need to be tackled at the infrastructure level, or with level 2 solutions like Plasma and State Channels. In the meantime we will have to add some considerate loaders and educate the user about this current limitation of the Blockchain.
2 — The Technical Architecture
Our solution builds on the shoulder of giants: there are 3 main technologies or patterns, some of which have emerged recently in the Ethereum development community, that can finally be composed together to magically and elegantly solve this UX puzzle:
- Universal Logins by Alex Van de Sande
- Meta Transactions by Austin Griffith
- All these of course build on top of many prior and connected ideas like account abstractions, etherless accounts, executable signed transactions, gas abstractions, proxy contracts, and more
- We’ve added something new, a permissioned way to use Ether only on certain Dapps, that will make sense when you read the next section on the strategic solution.
There are four main parts to the architecture we’ve implemented
1. Browser-based “Invisible and Etherless Accounts”
2. Identity contract
3. Alliance Registry (and Identity Factory)
4. Alliance MetaTransaction Web Service
You can read more about them and how they work together in our DevPost submission to ETHBerlin
3 — The Strategic Solution: the Alliance for Mass Adoption
At this point the user is partially on-boarded, we have given her a “wallet” without asking to install anything; but now what? She doesn’t have any Ether to pay for transactions nor use the Dapps on the blockchain?
We’ve also already incurred in some costs, to deploy the user identity contract and setting their ENS name.
The strategic solution proposes that a group of companies band together and create an “Alliance for Mass Adoption” that will sponsor this initial cost and, on top of it, it should also provide a tiny allowance, some Ether or tokens, that the user can employ to pay for gas and operate on certain Dapps that require payments.
This allowance can be spent only on Dapps of the Alliance and has an expiration date, let’s imagine 30 days, which creates the incentive to try the other Dapps as soon as possible.
The allowance can’t be used to transfer it to someone else, it can be used only inside the magic circle of the alliance dapps. However the user can feel free to earn or get more Ether from other sources and the system will not restrict their usage with their own money.
This is customer acquisition cost for the Web3 era: to on-board a user on one Dapp, we fist must on-board them onto the Blockchain (and progressively educate them to its idiosyncrasies).
It makes sense that a group of likeminded companies, that maybe share some customer segment, try to share these costs and risks.
The user can therefore be on-boarded from any of the Dapps of the alliance, but as soon as she’s inside, the circle proposes her other Dapps to try. It’s a coopetitive marketing strategy that creates a win-win solution for all parties.
The Alliance should probably have a DAO to collaboratively make decision like how much ether to give, how long does the allowance last, which dapps to let into the alliance, how to expel one Dapp that has gone rogue and more. These choices then become settings and mechanisms of the alliances smart contracts themselves.
Addressing some possible drawbacks
One risk with giving away Ether is that it attracts malicious users or maybe competitors of the alliances Dapps that will attack the system with the intention to make it loose money.
There are various solutions to these issues, one entails some form of KYC, even a light one, whereas the system asks an email to the user, just like it happens in normal apps, and the contracts are deployed only after the user clicks on the confirmation email. This doesn’t stop all attacks, but at least it does stop unsophisticated malicious users, and it has the added value of capturing user email for Dapp communications, which is a missing part of the equation in decentralisation.
The most effective solution probably comes from the permissioned allowance: since you can’t use it on anything else beyond the Dapps of the alliance themselves this is a disincentive to wasting time and money.
- Insecurity: It’s not safe if users doesn’t hold their private keys
We agree, but think of this system as a throw-away email, something that you use to play around, a light introduction, but once you start receiving your own Ether, or desire more control beyond the alliance, then the system will guide the user towards more secure systems and wallets, and will progressively educate them to learn all they need to know.
Instead of having to learn everything at the beginning, that as we’ve seen causes enormous friction and scares users away, this system proposes a more user friendly introduction, delaying and progressively delivering the appearance of new Web3 concepts.
I am quite opinionated on the fact that users, and everyone, should learn the value propositions of decentralization (a shortcut word for many other ideas), I even conjecture that in the future the real user base of Dapps will be those who prefer it to centralized counterparts.
But it’s clear that this paradigm shift needs to be delivered slowly and in digestible chunks.
Play with it
the hackish demo is available on http://allaboard.xyz
(be nice…we know it’s ugly! 😜 we’ve hacked it in 24h)
- choose a name and a password
- once it finally mines the Transaction go to the QueenChain Dapp
- write something in the text field
- click the “spill it!”
- wait for it to be mined (I know we should have put more gas and also a loaded…we did this in 24h ;) )
- once it’s written you can verify it by going on Etherscan to the address of the QueenChain contract
- select the last transaction
- scroll down to the input data field
- click the dropdown “View input as” and select UTF-8
- verify that it’s the same content that appears in the page
(if it’s not refresh the etherscan page and look around other transactions, there might be other users writing at the same time :) )
Last but not least…amaze at how awesome it is that you didn’t have to see a wallet, nor any pop-up, nor hear about gas nor anything else, to actually use a decentralized application.
There are many more aspects to on-boarding users and to this same idea: what’s the best setup for the MetaTx layer? should these MetaTransactions be part of the protocol? how do we educate the users and when? what are the right words to explain the complexity of the Blockchain, etc.
If you are interested in helping on-board the next billion users onto the blockchain and have ideas about how to do it, join the conversations on Conflux or on twitter and come to participate to breakout on-boarding sessions at Web3 Summit and especially at Devcon.
Thanks to Amy Jung, Kyle Bryant, Evangelos Pappas, Ali Azam, with whom we’ve developed the proposal for ETHBerlin;
the uberHacker Austin Griffith who was the first to put the pieces of the puzzle together and mentored us during the hackaton while he was winning one of his own, thousands of miles away;
Alex Van de Sande for giving some inspiring suggestions and imagining the Universal Logins pattern, plus the whole Ethereum community of creators, devs and designers who have all added many other elements, layer upon layer, before we could put them together.