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),

(an Ethereum Name Service name), get a “wallet” without having to install anything nor loosing focus,

nor loosing focus, receive some ethers (or tokens) to pay for gas and interact with the Dapp

(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

- Spammers

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.

Next Steps

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.

Credits

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.