If you’re where I was several months ago, you may have this general sense of “something is happening over there with the blockchain stuff.” You may have even purchased some ETH or BTC at a friend’s recommendation, or read some polemical post on the importance of decentralization. It may all look crazy to you, or maybe you’re starting to get a sense that something important is actually going on.
Today I want to talk about “what’s up with blockchains?” in which I attempt to convince you that blockchains are, in fact, a Big Deal and one that you will be forced to reckon with one way or another within the next decade.
About three months ago, Lambda School asked me to investigate the blockchain space and evaluate launching a course to train existing developers on blockchain technologies. Is there demand? What should we teach? What’s the gap between an experienced web developer and a blockchain developer? The last three months have been a wild ride, exploring a space shrouded in mystery, math, hype, and lots and lots of money.
For my fellow futurists, I want to do my best to demystify what a blockchain is and why it matters. Today’s update will focus on what it is. Next week I’ll write about why it matters.
A blockchain can be pretty confusing because it is fundamentally a new and distinct technology. We come to understand new things by analogy to existing things, but the new thing is any of those existing things. Similarly, if you assess blockchains by measuring them existing things, you are likely to misunderstand them and underestimate their impact.
So, without further ado: what is a blockchain? A blockchain has elements of:
A blockchain is a database. Blockchains get their name from a “chain of blocks.” The easiest way to think of this is a linked list data structure. Every block has a pointer that points to the previous block. Therefore, to retrieve data from a blockchain, unless you know the specific index of the element you’re looking for (in blockchain parlance, “the address of the transaction”) you must “walk the chain” to find something. If you’ve heard technologists talk about blockchains are worse databases, it’s really because linked lists make terrible databases. The technical term for the database aspect of the blockchain is a “ledger.”
A blockchain is a network. The code for a blockchain ends up being run on a bunch of computers that are all talking to each other. In this way, a blockchain operates like a peer-to-peer network of computers. These computers all have to agree on the structure of the blocks on the chain, and that’s where the term “consensus” comes in. These computers that participate in the blockchain network are often called “nodes” or “validators.”
A blockchain is a computer. A block on the chain can store not only data, but also code. This code can then be executed by the computers the make up the network. In this way, a blockchain is like a computer: you can write programs for it, store those programs in a block on the chain, and then execute them. The technical term for the code in a block is a “smart contract.”
A blockchain is a bank. A block on the chain can actually be owned by someone. Every block on the chain can be accessed by someone with the correct key. They can also transfer ownership of that block to someone else. In this way, blocks can become a unit of exchange, or currency. More specifically, the keys to those blocks. A “token” is just another name for a key that gives access to specific blocks.
So that’s my simplistic explanation of a blockchain: it’s a ledger (a database) that is distributed across a bunch of computers that talk to each other (a network) that can execute arbitrary code (a computer) while allowing ownership of blocks (a bank).
Next week I’ll talk about why this amalgamation of technologies is actually meaningful and interesting.
Tools for Thought Interchange: August Event is happening on Wednesday, August 25th @ 9am PT. Geoff Litt will be discussing the importance of interop between tools for thought and talk about how we might accomplish it. Jared Pereira will be talking about the need for tools for thought embedded in educational contexts. I especially love the side-channel chatter and Q&A during these events: I almost always get introduced to a new idea by someone who’s not a speaker!
Why this matters?
There are lots of people working on tools for thought in various contexts, but many of them aren’t talking to one another. A simple monthly event like this creates a venue where toolmakers, users, and thinkers can share ideas and think about how we could work together. Sometimes it just takes a space like this to spark the conversation or the relationship that leads to a major leap forward.
Andy Matuschak wrote a thread about his experience implementing local-first with cloud sync behavior in Orbit. This thread ended up pulling in a dozen or so toolmakers and tool power-users as they debated how to solve this problem. There was so much going on in this thread, I had to resort to a tree-view of the thread to follow the chains of conversation. Definitely worth diving in!
Why this matters?
Local-first software is an important building block of our computing environments, and yet cloud-based functionality is also important. But it’s really difficult to do both, even if you are philosophically inclined. As Andy comments in the the thread: “I see now why people don’t generally do this. It was a huge amount of work.”
I recorded a Workflow Walkthrough of my whiteboard setup and related tools. I think of a Workflow Walkthrough like welcoming someone into your workshop and giving them a brief tour. Many knowledge workers have built fairly interesting bespoke workflows and tool setups. But we often don’t get to see each other’s setups. Recording this and integrating this into the TfTI Monthly Meetings, I hope to normalize sharing our workflows.
Why this matters?
As I noted on twitter, I think this is a huge missed opportunity for us to grow in our practice as knowledge workers.
I look forward to sharing why blockchains are a big deal next week. Until then!