Demystifying an industry in motion for users and developers alike.
Last year I decided to dive into crypto headfirst.
The space was as boisterous as a teenager — acne & all — and growing up just as fast. I was intrigued. And I was wary.
I’d been working on web applications since the dot-com era, and wanted a new challenge. Taking the lead on the technical vision of a stablecoin — a cryptocurrency pegged to real world asset — seemed like a good way to dive in headfirst. 😳
Most of what I saw in the space were inflated egos of self-proclaimed “visionaries” and dollar signs behind every perked-up ear. Everyone I met was pitching their brand new infrastructure/platform, and it was exhausting. To top it off, the jargon thrown around at events was so thick you could cut it with a knife. A day at a conference felt like a week in some foreign land. I was sequestered in hotel ballrooms and warehouses, hidden from the sun, courted by one-dimensional pitchmen speaking a language that I (and arguably they) barely understood.
It was hard to cut through to any real signal.
But, from the things I’d read to discussions with people whose insights I trusted, I was certain there was something happening in this space that demanded attention. Even just the pace it had been evolving at was frankly intimidating. Not being immersed in crypto seemed like a huge opportunity cost.
So, I set out to learn it. To understand its shape, demystify its structure and ruminate on its implications.
Like most technical readers — I’d read up a bunch, and had learned the basics.
I knew that it, in effect, a blockchain was a collection of actions, with identical copies running across a large number of computers across the world (the larger the number and the more widespread, the better). I knew that the information in them was publicly available to everyone, and that any prior actions in the chain, once added, could never be modified or removed — only more added.
From those key features publications and pundits had inferred the sectors best suited to the technology, and I tended to agree. Namely services that store important, public domain information — such as census data, public expenditure, research statistics and the like. It would be a boon for government, science and organizations around the world.
Yet, I was also pretty bearish on cryptocurrencies like bitcoin (BTC) and ether (ETH) as a replacements for fiat (government backed) currencies. The volatility wasn’t manageable — fiat wouldn’t be replaced until goods and services started being priced in crypto, and that seemed — and still does — like a distant pipe-dream. That said, there are still plenty of true believers.
As soon as I started looking around, it became apparent that any guide to crypto was not forthcoming. There was no one great top-down explanation of it all that would allow me to drill into a section piece by piece; I better get used to a hybrid of top-down and bottom-up understanding as I read articles, listened to presentations and read whitepapers. I also accepted a large amount of “black-box” learning[1] — a term I use to refer to learning while accepting that there are large holes in understanding, to be filled in later.
[1] Not to be confused with black-box machine learning.
While making my way timidly across the ecosystem, I became increasingly frustrated with the abysmal user experiences in the space I was constantly dealing with. It seemed to me the developers creating the applications on blockchain were not aware how much knowledge they had assumed; their interfaces presumed their users shared their understanding of the nuances of transacting.
This assumed context went well beyond user interfaces — it was in every blogpost, news article and conversation I had. I was infuriated. I knew I needed the proper background yet I was drinking from the firehose and drowning fast.
I became fed up not having a good mental modal to fit everything into. So, I promised myself once I demystified enough of the space to be able to teach it to others that I’d write a guide to do just that.
I soon realized that there were at least two different perspectives to tackle it from — a user and a developer — and that I’d be doing both a disservice if I tried to combine them. So I began to take notes on the lessons and learnings I found along the way, and set out to create both a guide for users of blockchain and a guide for those creating on blockchain — hence this blog post.
However, in order to illustrate some of the key learnings in the space, these lessons need to be presented in the context from which they emerged. And for that, we need both history and perspective.
Before we begin, one note: I’m not going to go into much of how mining works or the cryptography behind blockchain. If you’re a bottom-up learner, or dislike the black-box approach, I recommend you looking up posts specific to your interests. Though be aware, mining and cryptography, while similar, work differently between blockchains — even Bitcoin and Ethereum.
Blockchain has been evolving from the elegant simplicity of Bitcoin released nearly eleven years ago amidst the global financial crisis. Bitcoin is referred to the first generation of blockchain — or blockchain 1.0. Confusingly bitcoin (all lowercase) refers to the cryptocurrency (where BTC is the ticker symbol) and Bitcoin to the software that supports it.
In essence, Bitcoin is a ledger of financial transactions — of bitcoins flowing between wallets (or, more rightly, between addresses). Those who keep the network running and growing — the miners — are paid in the network’s native cryptocurrency as a reward.
This highlighted the first and arguably most important insight of the crypto industry:
Lesson #1: Cryptocurrencies work by financially incentivizing actors to behave the way you want them to
This might seem obvious, but the implications are vast. Indeed this concept underpins pretty much every successful blockchain application today.
What a brilliant technique — support a system by paying those who maintain it in the embedded currency (assuming first however that you can ensure the system has value). The people paying the electricity and bandwidth bills for the computers running the Bitcoin software (thus upholding the Bitcoin network) — the miners — receive rewards both from an explicit mining reward (some amount of slowly diminishing bitcoin) and fees paid by those who are transacting (you and I). And, as part of being a miner, each one will broadcast the state of the blockchain to everyone else — for free.
That means, that anyone, anywhere, can read the state of a blockchain whenever they like[2]. And, when you and I want to transact, we have to pay for the right to add to the blockchain in terms of transaction fees.
[2] I’m ignoring private blockchains because frankly, they aren’t relevant to our discussion.
A block in Bitcoin on blockexplorer.com. After the summary section (showing the current block reward of 12.5BTC) you can see the collection of transactions mined in the block. Each transaction shows bitcoin (BTC) flowing in (and often out of) wallets.
This led to the next insight:
Lesson #2: Blockchains are free to read, but cost to write
This cost naturally reflects the fact that reading is cheap — data that hasn’t changed can be cached for easy access — but writing is costly, it requires processing power and storage.
So the system works by having people (miners) financially incentivized to keep their computers up, connected to the internet, with the latest state of the blockchain available for all to read, competing frantically[3] to append to the state by including your transactions in them. Beautiful, right?
[3] The way they compete and come to agreement about who won is part of consensus algorithms — an interesting rabbit hole but unnecessary for the rest of our discussion.
Thus Bitcoin is a highly available system that supports itself by distributing value to those who maintain and uphold it. Consider other such systems where information is provided for free — public libraries funded by taxation, Wikipedia funded by donations and social media funded by advertising. In contrast, the crypto funding system is direct and straightforward.
Bitcoin’s success eventually led to the development of Ethereum, ushering in “blockchain 2.0” and the smart contract revolution. The team behind Ethereum, most notably Vitalik Buterin, understood that Bitcoin was limited. The Bitcoin blockchain stored merely financial transactions[4] — what if it could instead store any arbitrary data, and what if there was a way to run computations and logic on this data within a transaction?
[4] OK so technically Bitcoin can run scripts as part of a transaction, but their functionality is limited.
This insight led to smart contracts — actual code that can run in any transaction — and can access the state of the blockchain at the current block. It can both read from and write to, the blockchain.
The data stored can be any coding primitive (think of these as building blocks) — from a single blockchain address, a timestamp, an arbitrary number or string of characters. And from these building blocks, more complex data structures can be formed.
In order to work, each and every Ethereum miner has to execute the code on their own machine — in order to be truly decentralized (a word we’ll come back to), every node has to validate the code itself, not trust others as to its content. Don’t trust, verify — one of the core tenets of crypto purists.
Lesson #3: The introduction of smart contracts and associated data with Ethereum ushered in a new era of blockchain development — on-chain applications
The smart contract revolution created the concept of a blockchain application — one whose entire state and computation lived on-chain. One of the most common blockchain applications were custom tokens, themselves a precursor to ICOs and crowdfunding.
Instead of forking bitcoin, launching it as a new blockchain and token, and convincing a large number of miners to support your new chain, you could write a simple smart contract on Ethereum that contained a mapping of addresses to numerical balances and a way to transfer between them. Once you’d deployed it, you could use that contract’s deployed address as your “token”. Tokenomics was born.
On the Ethereum block explorer Etherscan we can inspect the code that backs the REP token from the prediction market protocol Augur.
Lesson #4: By leveraging Ethereum, anyone could launch their own token easily. This led to the coining of Tokenomics — leveraging custom tokens to financially incentivize users to behave in certain ways
This represented a profound shift: up until recently, startups would create free services — search, email, social networking, file sharing — with the hopes of drawing in new users; perhaps they would even offer early access to new features as an incentive to users who spread the word. Yet with custom tokens, once created and valued**,** crypto startups had denominated value with which to reward users for their actions. They could leverage financial incentives without all the hassle of having to launch their own chain. How would these tokens be valued? By issuing a fixed supply and raising other crypto (typically bitcoin and ether) in an ICO, or some other fundraising mechanism**.**
For example — do you have spare CPU cycles or disk space to share? You can earn tokens for your trouble.
Moreover, once these token-based startups launched, instead of using equity to raise funds or attract new employees, they could reach into their supply of tokens. You can see why it quickly became the preferred investment vehicle of startups — a way to distribute value without relinquishing any ownership. Though as you’re not doubt aware, this method of fundraising comes with its own public disclaimer.
Lesson #5: Custom token ownership became a mechanism by which companies could raise funds and attract employees without giving away equity
Now, while Ethereum’s power to enable blockchain-based applications has been hailed as the future of blockchains by many (but not all), it has one major downside — slow transaction speeds. The popularity of CryptoKitties, a collectibles game on Ethereum, showed how susceptible the network was to congestion. And congestion is anathema to a startup trying to scale.
So now, a few years after Ethereum’s release, we have third generation of competitors under the banner of “blockchain 3.0”. Not to be confused with Web 3.0, blockchain 3.0 refers to those blockchain 2.0 platforms that also manage real scale — to be able to process hundreds if not thousands of transactions per second (and thus compete with the Visa network — as taking down the bloated and aging incumbent is the holy grail of cryptocurrencies). Those that claim this title are EOS, Cardano, Zilliqa, the upcoming 2.0 version of Ethereum (titled Serenity) and a number of worthy adversaries.
Now it’s important to note that while we now have this so-called “third generation” of blockchains, their ancestors are still very much alive and kicking. Those aforementioned 3.0 upstarts are struggling to challenge Ethereum in terms of market capitalization of their native tokens compared with ether (ETH), and Ethereum itself still falls far short of its predecessor in market cap terms (see image below). Bitcoin shows no sign of disappearing. On the contrary, as a cryptocurrency it’s the longest living and least volatile (with the exception of stablecoins). And, not to be outdone by transaction speeds of hot new blockchains, Bitcoin is being complemented by a “layer-2” solution (i.e. not a change to the core protocol but rather an additional software layer) in the form of the Lightning Network.
The top 8 cryptocurrencies by market cap on Feb 4, 2019.
The movement away from just simple financial transactions to a more fully fledged “global computer” as Vitalik referred to Ethereum, combined with the open access to all, and the enforced prohibition that every action be accountable to a immutable transaction, meant the very real possibility of an open data future with blockchain 2.0.
Lesson #6: By making available any arbitrary data on the blockchain, smart contracts further opened up the possibility of an open data revolution. Like open source, open data lives in the public domain, readily available to everyone
For years, publications such as the Economist and think tanks have lamented how quick we were to relinquish our data to the tech empires of today. Facebook, Google, Twitter et al, all make money by monetizing our online activities. We concede that value for the services they provide. And yet, as we’ve seen in 2018 with the revelations on Facebook’s data sharing, the lock-in criticism of Google Chrome, and the introduction of GDPR felt across the entire globe, it’s clear that many of us underestimate how much that data is worth.
Ethereum has paved the way for creating and managing data in the public domain. Some data — such as anonymized studies or voting records — are obvious candidates. But even consumer tech has applications. Imagine a social network where users band together in communities, making money off their shared usage to the highest bidder? Or what if your digital ID lived on a blockchain, finally promising to be everything OpenID was always meant to?
It’s this exact concept that has lead to the coining of Web 3.0 — the era when we as users reclaim the right to our data — and vote with our feet about which services we use. Better yet, due to the peer-to-peer nature of the blockchain, there is real potential of this same movement to enable a true share economy without a corporate middleman.
Yet as I delved deeper into the world of crypto, it became apparent there were other forces — and ideologies — at work. Words and phrases such as “decentralization”, “censorship resistant”, “cypher punk” and “crypto anarchy” cropped up now and then. And these terms — and the self-sovereign views espoused by those who used them — seemed at odds with the seedier and greedier underbelly of the crypto crowd.
One word in particular — “decentralization” — crops up continually in the blockchain application world. In fact, it’s so common that blockchain based applications are referred to as decentralized applications — or dApps for short.
A smart contract on Ethereum, once deployed, can always be read but cannot be changed or removed[5]. The contract’s code and its associated state — the application — lives on every single node of the blockchain. As such, the application itself is commonly referred to as being decentralized[6]. It’s hosted and maintained by the entire blockchain — and users are able to inspect or transact at their discretion. The larger the number, more geographically dispersed and autonomous the nodes of the blockchain, the more decentralized it is given to be.
[5] There are workarounds but let’s ignore these for now.
[6] Technically a project is decentralized if there is no single entity that can change things on a whim (such an individual or company), and that the project is managed by some kind of community governance model. That said, projects that live on the blockchain but are moving towards an open governance model are seen as partially, or moving towards, full decentralization — even the Ethereum chain itself is working towards better governance. There’s an argument by Bitcoin maximalists that Ethereum isn’t fully decentralized because the Ethereum Foundation are able to convince the entire community of miners to update their software to the latest official forks, but that’s a whole other rabbit hole.
Lesson #7: Blockchain applications — dApps — contain the promise of decentralization. That is, no single authority has control of your data
The list of dApps ranked by users in the last 24hrs from Feb 4, 2019. At under 10K daily active users, even the best dApps are far from the threatening the likes of Instagram and Facebook.
In essence, the idea behind decentralization is that no one central authority is in control. Once a transaction is committed to the blockchain, no one can change or rewrite it, nor can they easily remove a user’s access to that piece of data without restricting them to the entire blockchain (which, due to its distributed nature, is exceedingly difficult).
Thus, these decentralized applications, by their very nature, resist being censored. This means that it’s difficult to near impossible for any government or nation state from preventing users from interacting with applications on a highly distributed blockchain like Bitcoin or Ethereum.
Lesson #8: The built-in nature of highly distributed blockchain applications means that they cannot be easily restricted or blocked by nation states — thus they are censorship resistant
This idea leads to the ideological aspect of decentralization and indeed to the forefront of crypto anarchy: that we, as self-sovereign individuals, do not need (and should not want) governments controlling our access to online systems — even a monetary system. Such a system could — in theory — be truly democratic — it could be owned and controlled by everyone.
Before leaving this ideology behind however, there are some downsides to consider. There are some unintended consequences of not having a central authority in charge. Your cryptocurrency wallet for instance, is merely a string of characters generated by another string of characters you keep secure — your private key. If anyone gets hold of your private key, they can do anything with your funds that you can[7] — and there’s no government or corporation out there to help you.
[7] Most likely, they’d move all your cryptoassets to a wallet of their control before you realized.
Lesson #9: One downside to decentralization is a lack of disaster recovery options. No one can recover the loss of your funds if you lose — or someone steals — your private key
This might not seem like a big deal, but it opens the door to grim possibilities such as kidnapping and armed robbery — with little police forces can do other than follow the paper trail of funds taken as ransom. That is until the funds are inevitably washed into more opaque cryptocurrencies by the criminals.
What about in the case of accidental death? If a loved one has crypto assets and dies without leaving their private key available online to a family member or written down in their will — then that value is lost forever.
For that matter, a lack of censorship resistance can have downsides for any liberal democracy. Hate speech, defamation and child pornography are just a few things that could find their way onto a blockchain, and once there, be very hard — if not impossible — to remove.
So that’s the history of blockchain evolution in a nutshell. Bitcoin showed us there’s a market for a public ledger and currency not backed by a federal reserve. Ethereum arguably improved on this model by introducing computation and state in the form of smart contracts. And now the race is on for a blockchain that can both support decentralized applications and handle an ever-increasing number of transactions in a timely manner.
We’ve seen how blockchains support themselves by rewarding those who maintain the network. We’ve seen that blockchain-based applications in Ethereum and beyond have leant on this concept with custom tokens — allowing them to incentivize users, attract employees and raise funds. These applications, when hosted entirely on-chain, are challenging conventional web services like Facebook and Google, offering the promise of decentralization — putting power back into the hands of users.
What next? Well, I’m working on the following guides, depending on what your next step is with blockchain. I’ve written them using examples from three major blockchains: Bitcoin, Ethereum and EOS, each representing one of the three major generations of blockchain.
Crypto for AdventurersFeel like diving in and getting your feet wet? This guide covers the practical implications of acquiring and transacting on a blockchain, how it works in a nutshell, and keeping yourself safe.Part 1: Access. Part 2: Acquisition [Coming soon]
Crypto for Crafters[Coming soon] Want to start creating some applications on a blockchain? Curious about this whole Web 3.0 business? This guide covers the implications and rewards from working on blockchain 2+ application, along with the many gotchas and standard features you can expect to work with on a daily basis. I recommend reading the Adventurers guide above first before tackling this.
Thanks for reading. Please let me know if you found this article helpful, and follow me for updates.