How a Blockchain is Like a Strip of Triangles | A Satoshi Story
This is a continuation of the Satoshi Story series - an investigation into Phil Wilson's story about the origins of Bitcoin. I find Phil's story plausible, not because of the historical claims he makes, but because of the way he thinks. He has a deep conceptual grasp of the system and explains the technology in a way I've never heard before. His story reads like the journal of a man documenting the process of inventing the technology. Whether or not he actually invented Bitcoin, his explanations of the technology are valuable, appear novel, and deserve examination. I'll analyze one example in this article: how a blockchain is like a strip of triangles.
The best ideas seem obvious in hindsight. Bitcoin is no exception. Now that it's been around for decade, it seems like it's existed forever. It's easy to take for granted. The concepts aren't even that hard to grasp at the non-technical level. So why did it take so long to invent?
It turns out, discovering obvious solutions to long-standing problems is really, really hard. Almost by definition, you have to think in a way that's completely different from the people before you. If a certain pattern of thinking cannot solve a problem, it requires a completely fresh perspective in order to solve.
So with Bitcoin, according to Phil's story, the fresh perspective comes from a background in computer graphics processing. The central invention of Bitcoin - the blockchain - can be understood via analogies to graphics, rather than cryptography.
So put yourself in the position of a mind pre-Bitcoin, before blockchains existed. Think about the general concept of what a blockchain is and what it's supposed to do.
At a very abstract level, the subject is this: how to structure and communicate information over a network.
If you're trying to create a cash system - a ledger system - you have to be able to send chunks of information throughout a network, in a way that avoids a bunch of problems. You have to structure this information in a way that's both secure and strictly ordered according to chronology.
Keep that in mind as we analyze a seemingly-unrelated strip of triangles:
Each numbered dot in this strip is called a "vertex." Connect three of vertices together, and you created a triangle.
On this strip, there are some important relations between the triangles and their vertices. For example, there are 7 discrete triangles in this image, created by only 9 vertices. That's an efficient vertex-to-triangle ratio. That means once you've got the starting two vertices, you can create an entirely new triangle by only adding one additional vertex. To illustrate, take the first triangle:
All you need to create this triangle is three data points: the x and y coordinates for the vertices 1, 2, and 3. Connect those three points with lines, and you've got a triangle.
But once we've got our triangle, all we need to create additional triangles is one more data point per triangle. Observe:
All we needed to do is make a new vertex 4, and the blue triangle can be created because it shares the two of the previous vertices with the green triangle. Vertex 2 and 3 are reused.
We can do the same thing again with a third triangle. All we need is one more data point:
Now we have three triangles with only five vertices. All additional triangles can be constructed the same way, importing data from previous triangle. Neat.
There are two other important relations among triangles within a strip.
First, the triangles are glued together. Once they're embedded in the strip, their order becomes inflexible. If you wanted to re-order them, you'd have to re-draw the entire strip.
Also, as the strip grows longer, you can destroy the earlier triangles while still preserve information about them. Take the three triangles above. In order to create a fourth triangle, you don't actually need the first triangle to exist anymore. All you need is the information from the third triangle.
Like magic, information about the first triangle is effectively stored in the third, without the first needing to exist. Even if you were to destroy it, information about it would still exist. In fact, the entire structure of the triangle strip depends on the coordinates of the first triangle, whether or not the triangle itself still exists. (Essentially, old triangles are immortal.)
OK, so what does this have to do with blockchains?
Well, imagine each triangle is a chunk of data. Specifically, information about Bitcoin transactions - a "block," in our current language.
Now imagine each vertex is the proof-of-work header on every block and includes a hash of all the transactions within it.
We're creating a chain of chunks of information. Each time we add a vertex, it comes coupled with a chunk of information. In the Bitcoin Origins story, before calling this structure a "blockchain," Phil called it a "DataChunk Chain," which is a bit more abstract. Here's the visual he created:
Now, imagine we were coming up with rules for adding new triangles to the strip. We could make a requirement where each new triangle (each chunk of data/transactions) must contain a hash of the transactions within in it, plus additional information from the preceding triangle. That way, the order of the triangles would be guaranteed - you couldn't create a new triangle that was "two triangles ahead" in the strip.
This is, essentially, a blockchain. Each additional block/triangle comes with a single additional vertex/header, containing information from the previous block to ensure it's ordered correctly. Just like the triangles cannot be re-ordered once they've been added to the strip, the blocks cannot be re-ordered once they've been added to the chain - at least, they cannot be re-ordered without re-writing the strip/chain from that point.
Who gets to add additional triangles to the strip? Well, in Bitcoin's case, that's the role of proof-of-work. But the blockchain concept can be coupled with different ways to determine who gets to add blocks to the chain. In the Bitcoin Origins story, Phil elaborates further on proof-of-work, but I won't cover it in this article.
Let's return to the analogy to immortal triangles. It also applies to old blocks in the blockchain. The blockchain can function perfectly well without preserving all the blocks going back to the Genesis Block. Since each additional block contains a hash of information that was in the preceding block, and those preceding blocks also contain hashes of information that were in their preceding block, you can know you're operating on the "main chain" without needing to store a copy of the whole blockchain.
In fact, even miners don't need to store the whole historical record of blocks in order to keep adding to the chain. You really only need the header information from the latest-block in order to build a new block. So even if the old blocks get pruned out of existence, they can become immortal. Every hash embedded in the headers of future blocks will be constructed based on the distant influence of ancient ghost blocks. This is a way to keep the effects of particular information without preserving the actual information. Brilliant!
Now, whether this is a glimpse into the way that the actual creator of blockchains thought about them - or whether it's an ex-post-facto way of explaining the blockchain by somebody who imported his knowledge from another area of computer programming - is an open question. Either way, I think it's an excellent example to get at the fundamental concepts behind what a blockchain is and what's its purpose. I know I've never heard it explained that way before.
In the next article, I'll explain the incredible absurdity of having 42 million Bitcoins. Yes, 42 million.
1 of 1 reviewers say it's worth paying for
0 of 1 reviewers say it's not worth paying for