Blockchain Onboarding Is the Worst
While some in the cryptosphere appear befuddled that cryptocurrency has not yet reached mass adoption, the explanation seems rather obvious to me. Frankly, using blockchain and crypto is a pain.
First, you have to have enough information to care in the first place. Most people I talk to don't even know what blockchain is, but people already in the space seem to forget how esoteric this stuff is. At the very base level, you have to sell people on the underlying values of decentralization and security, and make them understand, at least in some general way, that blockchain delivers on those promises. This alone is a challenge.
Then, once a person knows what blockchain is and why it matters, they have to know how to access it. For people who are new to blockchain, even finding the right terms for a Google search might be difficult. They might not know what Ethereum is, or what Dapps are, or how to buy the cryptocurrency required to interact with them. They have to learn about private keys, exchanges, MetaMask – they likely have to jump through a million KYC hoops, or have problems with their bank or credit union's compatibility with an exchange or wallet. Onboarding is a nightmare is what I am saying.
But say you get through all of that, and you've chosen to use Ethereum because you think that as a network and community it aligns with your values. Then you get to the Dapps. There aren't a whole lot of particularly useful ones out there, at least in part because of the lack of network effect (again, probably related to the extreme friction in onboarding and lack of consumer awareness). But say you get this far, and you're excited because you can finally get started on starting your CryptoKitty breeding operation. Once you're this far, depending on your Dapp of choice, it's mostly smooth sailing. It's adorable cats, relatively decent UX. (Of course, not all Dapps are user-friendly; there are also applications that seem intentionally designed to make me question my intelligence.)
Infura Eliminates One Major Hassle, But It's Only a Stopgap
But get this: Unless you're also running your own node, you're probably not benefiting from all of those glorious promises of security and decentralization that got you jumping through all of those hoops. At least not to the extent you might assume or hope. You're probably interacting with Ethereum through Infura, a node cluster that connects the front-end user interface (UI) of Dapps to the back-end smart contract on the Ethereum blockchain. It also connects Dapps to Ropsten, Rinkeby, and Kovan testnets. Infura is the infrastructure that allows MetaMask to access Ethereum. uPort, Cipher Browser, CryptoKitties, MyCrypto, and MyEtherWallet all use Infura to connect to Ethereum. Truffle lets you build Dapps with Infura. Its infrastructure is pervasive.
Let me clarify.
When you go on CryptoKitties.co and you see all of those cute pictures and easy-to-click buttons, that's not Ethereum. That's just a website that makes it easier for non-technical people to buy kitties and see what they look like. If you're a technical person, that much is obvious, but to others this might come as a surprise. CryptoKitties exists as an EDCC (or "smart contract"), and your cat's code, as well as proof of your ownership, is stored on Ethereum. But most people probably don't interact with CryptoKitties at the code level, and instead use the CryptoKitties website. So then, when you buy a CryptoKitty from the website, that transaction has to be communicated to and recorded on the blockchain. If you're running your own node, then it's your computer that directly sends a transaction to the blockchain to be mined into a block. Or, if you're running a mining node, then you might mine the transaction into a block yourself. Either way, you're directly interacting with the blockchain, and you can guarantee that it will be recorded as sent. However, if you're not running your own node, then you're allowing an Infura node to send that transaction on your behalf. And a lot of transactions are relayed through its infrastructure. It boasts processing more than 10 billion requests per day, and has been used by more than 40,000 developers and Dapps. It should be noted that Infura also allows access to IPFS, but still, those numbers are incredible.
Infura offers its services for free, and they seem to work very well. Infura successfully eliminates one of the most challenging hurdles to blockchain adoption. Running a full node requires a decent level of tech know-how (more than I possess, at least), patience, processing power, and memory. It is highly unlikely that someone like myself would ever run a node, and yet I was willing to jump through all of the other hoops. So on that point, Infura should be applauded for making Ethereum significantly more accessible.
Not to mention that Infura offers a stack of developer tools that significantly ease the buidling process. Even skeptics of the technology are generally pretty quick to defend Infura for its merits.
The Potential Problem
But there are skeptics.
The whole promise of Ethereum is that it offers secure, decentralized, p2p transactions, so the fact that one node cluster is relaying such a huge amount of data for users not running their own nodes, and – on top of that – is built into the core of so many Dapps, raises some concerns. Infura boasts security as a central promise, but nothing is hack proof. Because Infura's infrastructure is as pervasive as it is, a security breach, or if something simply goes wrong with the code, it could have catastrophic effects to the network, the Dapps built on it, and the people using them.
Right now, there aren't any solid alternatives. Developers tend to emphasize the need for more people to run their own nodes, and that light clients are a relatively accessible solution for most users. Light clients don't require the same processing power, memory, or patience as syncing and then running a full node, but that still puts the responsibility on the user, who already has enough challenges. I think that developers – steeped so deeply as they are in the cryptosphere – underestimate the burden even one more obstacle creates for a non-technical person.