An Ethereum Developer’s Guide to User Onboarding
By John Gribbin and Kenan O’Neal
P.1: Research
TL;DR: Ethereum has many open source tools and design patterns to ease onboarding of crypto newcomers. The usability, state of development, testing, and support for these tools vary and are use-case specific. Many of these tools are designed with the intention of delaying or displacing potential hurdles until the user has accrued value (sentimental or monetary).
Research Sprint
As part of a two week product research sprint for ConsenSys Space we enlisted and compared current instruments for creating an easier onboarding experience into Ethereum DApps, particularly for those new to cryptocurrency. Onboarding is, of course, one of the biggest challenges for blockchain in 2019, and there are many, many people working on the topic. So, instead of searching for the holy grail of onboarding, we decided to get a birds-eye view of all the different methods for easing users into DApps.
Our research goal was to inform and build an onboarding prototype with the best combination of tools we investigated. We were only able to scratch the surface of many of these tools, but these snapshots were vital to inform our decisions. The scope of our research covered Ethereum features, design patterns (algorithms and data structures), and products. Our time was limited, so many great tools and solutions out there were overlooked. We encourage anyone to comment with additional suggestions that you may find helpful to share.
As we researched, we quickly came up with criteria to judge each tool with:
- Fundamental trade offs of the technology at present.
- Usability (well documented, simple to use, etc.).
- User facing experience.
- Security implications.
3Box
What is it?…
You can think of 3Box as a data network for the decentralized web. 3Box is an off-chain solution, that takes advantage of Ethereum key-pair verification to give users control over their data — all of which is stored in a decentralized way via IPFS (InterPlanetary File System). A 3Box profile will hold your data but not necessarily any financial value.
Possible utilities…
If you are building a DApp and want to give your users the ability to own data they store to their profile and control who can access it.
Pros
- You can store a lot of user data off-chain and there is no need to pay to interact with the blockchain.
- It is open and permission-less, therefore anyone can create a 3Box profile.
Cons
- Being addressed by 3Box team: there is no option for selective disclosure of your data.
- Being addressed by 3Box team: you need an Ethereum account to create a 3Box profile.
Deep dive: https://medium.com/3box/towards-a-more-human-web3-553d6145a5b
Meta-transactions
What is it?…
Meta-transactions can simply be thought of as signed messages that trigger an action on behalf of the user. This process is facilitated by a custodian contract, acting as a relayer, to pay for transaction costs on behalf of the user.
Possible utilities…
Burner Wallets that don’t maintain a significant balance and trigger a relayer to take care of the users’ gas costs.
Pros
- Lower the barrier to entry for newcomers by allowing users to interact with a DApp via an etherless account.
Cons
- Relayer has to shoulder the cost.
- There is no evidence to show that users will eventually pay for transaction costs. This could be problematic for DApps that only intend to front the costs for a limited time.
Deep dive: https://medium.com/@austin_48503/ethereum-meta-transactions-90ccf0859e84
Universal Logins
What is it?…
Universal Logins help to facilitate a streamlined onboarding experience by simply asking the user to provide a username. If said username has never been utilized before, an ens name will be created for the user and a multi-signature identity contract (identity contract — for short) will be deployed on their behalf. This whole process is abstracted from the user. Also abstracted from the user is the fact that the app on their device (or browser) will hold a private key for an ether-less address. This address is then verified by their identity contract to have permission to sign messages, i.e. meta-transactions. The user can verify and link multiple devices for the same username, i.e. their ens name.
Possible utilities…
Universal logins are useful for any developer that wishes to build a DApp that abstracts away the often confusing concepts of ether, gas costs, hex strings, private keys, passwords, QR codes etc.
Pros
- Sign up process is as simple as creating a unique username.
- Familiarity of web 2.0 login without dealing with Ethereum inner workings.
- Enables users to login and have access across different applications without having to open multiple accounts and multiple passwords.
- 2-factor authentication, out of the box.
Cons
- The user may be too abstracted from how to maintain their keys and protect their tokens, currencies, and other value added to a wallet.
- Sybil attacks — spreading access points increases attack surface.
- Many features to be expanded on.
- It is an expensive solution. The relayer will have to pay for the on-chain deployment of an identity contract for every user onboarded.
Deep dive: https://medium.com/@avsa/universal-logins-first-demo-1dc8b17a8de7
https://www.youtube.com/watch?v=qF2lhJzngto
https://www.youtube.com/watch?v=TztR_7IehjU
Shipl
What is it?…
Shipl can be thought of as meta-transactions-as-a-service. The complexity of building and maintaining a relayer service to pay for your users gas costs is taken care of by Shipl, and developers will then pay a fee to Shipl to handle the costs.
Possible utilities…
Plug and play relayer for meta-transactions to simplify the process.
Pros
- It will save time for developers as they don’t have build or maintain their own relayer system.
- Some nice features like 2 factor auth via text messages will come as part of the service.
Cons
- Free for now but costs will be on a case basis.
Deep dive: https://shipl.co/
CREATE2
What is it?…
CREATE is an opcode used to generate an account with the specified code. CREATE2 is similar to CREATE, but this time around developers will have the ability to generate an address for a yet-to-be deployed contract.
Possible utilities…
Allow a user to accumulate value in the off-chain contract as they interact on a test-net with expectations of moving to mainnet.
Pros
- Predetermine smart contract addresses.
- Off-chain based onboarding (with potential to deploy on-chain once value has accrued).
Cons
- Potential high overhead if implemented with counterfactual state-channel design.
Deep dive: https://blog.goodaudience.com/one-weird-trick-to-fix-user-on-boarding-d54b7ff9d711
GnosisSafe
What is it?…
Provides a platform to help users have the ability to reclaim their Ethereum assets using additional methods of recovery in a multi-signature wallet.
Possible utilities…
Giving users a web 2.0 mentality of having methods to recover their assets in the event of no longer having access to their private key.
Pros
- Additional recovery methods.
Cons
- Requires users to have enough funds to deploy a smart contract (i.e. the safe).
Deep dive: https://blog.gnosis.pm/the-state-of-storing-funds-on-ethereum-fdb4c9a09388
MetaMask
What is it?…
A web browser plugin that provides web 3.0 features to a web 2.0 browser. MetaMask acts as a gateway between the browser and the blockchain, allowing the user to send transactions and access data.
Possible utilities…
Many. This is the bridge that allows a significant amount of web 2.0 users to comfortably and easily access web 3.0. Ethereum provider (via Infura). Hot wallet (sign messages and send transactions quickly and securely).
Pros
- Key management.
- Queries and calls to blockchain.
- Transitions between test-nets and mainnet.
Cons
- Requires the user to download a plugin and give permission for it to read and change all data on websites they visit.
- Difficulties in preventing phishing attacks.
Deep dive: https://metamask.io/
Whisper
What is it?…
Whisper is a protocol that comes with many Ethereum clients. It provides messaging to the Ethereum suite (Swarm and Contracts). Whisper enables encrypted messages to propagate through nodes, allowing just the sender and receiver to see the contents of the message.
Possible utilities…
This can be used for general messages where; retrieval is not guaranteed, delivery time can be uncertain, and contents are small in size.
Pros
- Encrypted.
- Decentralized (no central server routing messages).
- Anonymous.
- Free to use.
Cons
- Size must be below 64KB.
- Runs off of network of people choosing to run a node but without incentive.
- Needs to propagate through network.
- No ensured delivery.
- Computational power required (proof of work) to send each message.
Airdrop
What is it?…
Process of sending tokens to users in order to promote a coin or project.
Possible utilities…
Incentivizing the engagement of users by building buzz around a project via social media promotions in exchange for tokens.
Pros
- Create momentum for a token or project.
- Incentivize users to participate in a DApp.
Cons
- Laws involved with “paying” people to perform some task(s) to earn tokens.
- Costs of running a promotion fueled by an airdrop.
Deep dive: https://airdrops.io/
Sidechains & State Channels
What is it?…
Sidechains are a way to temporarily take interactions off of mainnet to avoid potential drawbacks. State channels are a design pattern rather than an implementation detail. They are created to temporarily take state changes off of mainnet usually to lower the gas costs and increase transaction speeds. Both solutions provides a cheaper way of performing secure transactions off-chain where transparency is not top priority but accuracy of interactions is.
Possible utilities…
Micro-payments that can be settled once enough value has been exchanged or once both parties are done with the transaction.
Pros
- Allows for potentially cheaper interactions.
- Can allow for faster transactions.
Cons
- Settling disputes may be difficult depending on implementation.
- Payment channel assets are usually locked until transactions are settled.
- May not always be fully transparent.
Deep dive: https://hackernoon.com/difference-between-sidechains-and-state-channels-2f5dfbd10707
Status
What is it?…
Opensource DApp browser, messaging, and wallet application.
Possible utilities…
Interacting with the Ethereum blockchain in the form of a limited client.
Pros
- Not many hurdles to overcome setting up an account.
- Wallets and many other features do not need to be setup until the user decides they want to utilize them.
Cons
- Documentation could be more robust.
- status-react is the core component of the app but it is written partly in ClojureScript which is not as widely adopted as JavaScript.
Deep dive: https://status.im/
Conclusion
Many of the research topics aim to delay, displace, or abstract common onboarding difficulties for newcomers to DApps, an approach that we generally agree with. Crypto is really hard to understand for new users, especially since they have to make important decisions about their own security with little background. The theory is that by removing or delaying hurdles users face at first, this will ease the transition from traditional web 2.0 apps. The overall objective is to have empathy for new users and lower the bar of entry into what can often seem like a confusing minefield of unfamiliar limitations, like reclaiming private keys, which they now have to be aware of.
We were inspired by solutions that introduce complexity to the user only when value is accrued (sentimental and/or monetary). Particularly, out of all the options we listed above, we found great interest in:
- CREATE2
- Universal Logins
- Sidechains
- Status
We will share a blog post in the following weeks describing how we applied this research sprint to develop a UX flow and accompanying architecture that works for our needs. This will be p.2 of this series. In the meantime, please drop a line if you know of other methods of onboarding that we didn’t get to cover, or if you know of any other interesting onboarding use cases that we haven’t covered here.
Special Thanks:
Austin Griffith
Coogan Brennan
Antoine Toulme
Gonçalo Sá
Tyler Gumb
Joel Torstensson
Mokhtar Bacha
Andreas Morales-Coto
Michael Deal
Kim Macharia
Isaac Kang