Tom provides a history and explains the functionality of blockchain.
Featuring Tom Merritt.
Please SUBSCRIBE HERE.
A special thanks to all our supporters–without you, none of this would be possible.
Thanks to Kevin MacLeod of Incompetech.com for the theme music.
Thanks to Garrett Weinzierl for the logo!
Thanks to our mods, Kylde, Jack_Shid, KAPT_Kipper, and scottierowland on the subreddit
Send us email to firstname.lastname@example.org
How can the internet make a currency that doesn’t even exist?
And people are trading the original Vine video like it’s a baseball card?
This feels like a scam right?
Are you confused?
Let’s help you Know a Little more about Blockchain.
One of the features of data and the internet has been that it is infinitely copyable. There is no scarcity of digital items since each one can be an exact replica of another.
Through the early part of the internet’s history there has been a battle against that, which has largely been ineffective. Companies try to put locks on digital content and ingenious people come up with ways to break the locks. So we’ve largely ended up with folks on one side who try to get governments and laws to make it illegal to break the locks. And on the other side folks who try to just accept that data is infinitely copyable and adapt to its nature.
On that second side was an unknown person who wanted to make a digital currency. The problem with digital currency is the infinitely copyable thing. If I have a digital dollar and can copy it forever, that makes it worthless. As we’ve mentioned digital locks aren’t forever. So money on the internet has rested on the idea of authority, usually a bank, that decides who has what money.
The unknown person who wanted to make a digital currency didn’t want an authority deciding who had what money. They wanted to make a decentralized currency where everyone would be able to tell which coin was held in which wallet without having an authority holding the power. This could still preserve anonymity since you could hide who owned what wallets.
But how do you make that work when anybody can copy your digital coin at any time?
The answer was a ledger. In analog terms, a ledger records the transactions. If you have a solid ledger that tells which coins have been moved into which wallets, conceivably you could always know who has what coins. It wouldn’t matter if you copied a coin. What would matter was the ledger.
That helped, but of course, data is not only infinitely copyable it’s also editable. How do you make sure the ledger is always accurate and malicious folks don’t sneak in and change the records of which wallets have which coins, so that their wallet has more coins than it should?
The quick answer would be an authority watching it but that’s a bank and that’s back to a centralized authority that you have to trust. What if you don’t want to have to trust anyone?
We have some examples of that now. Maybe even closer to home than you think. If you have a shared Google Doc with a team you probably don’t worry about having one person deciding what goes into it or not. You know that the team will correct any errors and no one person on your team is likely to make a catastrophic change especially because you can undo their changes.
An even larger example of that is Wikipedia. Worries over the decades have been that Wikipedia would be inaccurate or defaced. But we’ve seen that with enough eyes on the content Wikipedia is about as accurate as a centralized encyclopedia and defacements don’t last long at all.
In both those cases you have a centralized server. Google or the Wikimedia Foundation.
What if we don’t even want to trust a single server for the content?
In 1982, cryptographer David Chaum published a dissertation called “Computer Systems Established, Maintained, and Trusted by Mutually Suspicious Groups.” Stuart Haber and W. Scott Stornetta built on this in 1991 describing a secure chain of blocks for such a system, and those two along with David Bayer in 1992 improved the efficiency of that system letting multiple document certificates be collected in one block.
These plans still relied on trusted parties for some things like timestamps and needed better methods for how to add blocks.
The answer came to someone or a group of someones who published their plan in 2008 under the name Satoshi Nakamoto. I almost hesitate to mention the name because immediately we risk getting distracted over who that person is. For our purposes it doesn’t matter. Whether it was a human, alien, dog or AI— whoever it was published the plans for a block chain in 2008.
Of course saying the word blockchain itself risks distracting you into talking about Bitcoin and why it exists and whether it’s currency and whether it should be valued as it is. And for our purposes here that doesn’t matter either. If you understand what just a block chain is you’ll be a lot closer to understanding bitcoin and other cryptocurrencies and non fungible tokens and all that other confusing stuff.
So let’s focus on the block chain. And the block chain itself is a fairly simple and elegant idea.
The block chain is a ledger that can’t be edited easily. It’s made up of blocks of data. Each block of data contains a timestamp, transaction data that updates the ledger and most importantly, a record of the previous block.
That’s it. The chain of blocks tells you which coins have gone to which wallets and software can scan the chain and know where all the coins are. The chain is linked by records of the previous block so you know exactly what order things happened in.
I hear your questions. Can’t anybody edit the timestamps and the amounts and such?
The key is that bit about each block having a record of the previous block. That keeps things in order. A block that doesn’t have that record is ignored.
So why not just fake a block with the record?
To prevent that, each block uses a cryptographic hash of the previous block. It’s also often called a checksum or digital fingerprint. A cryptographic hash is a one-way function. It’s very difficult to reverse. Listen to our episode on Public Key Cryptography for more on why this sort of thing can work. But it’s a way to make something easy to share and hard to crack.
If I write the message, “Allison is the greatest and so is Steve.” My hash function will put out something like DFFC 788A 79DA etc.
That can be used to make sure nothing has changed in the message, that Bart didn’t get in there and have it say something about bicycles. Granted in my message here that’s pretty easy to see because the message is short. But imagine the message is Neal Stephenson’s Cryptonomicon. And let’s say I’m downloading the Cryptonomicon and want to make sure I’m getting the real authorized text and not something that has words changed. Neal Stephenson can issue a cryptographic hash for me to check.
I run the text of the Cryptonomicon through the hashing algorithm and if I come up with the same number I know it’s the same text. This is what checksums when you download software is for.
If the cryptographic hash function is done right, It is computationally improbable that a different text could give the same or even similar hash.
And likewise if you give me a hash it’s really difficult for me to reverse engineer what the text is. That’s useful if you want to pass around an identifier.
OK so that’s a cryptographic hash. Back to the chain. Let’s say block 1 in the chain has a timestamp and transaction data. To make Block 2 we’ll create a cryptographic hash of Block 1 and add that to the next timestamp and transactions data. To make block 3 we do a hash of block 2 and then add the new timestamp and transactions data. This is how the chain happens. Block 3 has a hash of block 2 which itself contains a hash of block 1. Each block contains a link to every previous block.
But we can still just infinitely copy the blocks. Yes! Blockchains use that as a strength. This is where our Wikipedia analogy from earlier plays in.
A peer-to-peer system is used where the chain of blocks is copied over and over the more times the better. If two different versions of a block show up in the chain. Say Block 3a and 3B both with the cryptographic hash of Block 2, an algorithm can determine a score and the higher scoring block is kept. Across a sufficient scale this means most copies of the ledger agree and the one that most agree is the considered the legitimate one. This makes it hard to manipulate since you have to manipulate a majority of the entire peer-to-peer system to try to force a change.
There’s no central point of attack.
But attacks could still be made! What if you just start a bunch of nodes until you have the majority of the nodes. Then you can make all your nodes determine which blocks are valid and undermine the network. That’s what is called a 51 percent attack.
One defense against this is called proof of work. Another is proof of stake. Both say you can only record blocks on the network if you meet certain criteria. And that criteria is costly.
Despite how it sounds, Proof-of-stake is not based on the number of coins in your wallet. That would just have the richest person dominating the network.
Proof of stake is usually based on “coin age” and some other random factors. To oversimplify the longer you hang on to the coin the higher your stake. If you have a coin in your wallet that you haven’t spent for 90 days and everyone else on the network only has coins that have been in their wallet for 60 days you have the highest stake and get to calculate the next block. BUT those coins go to zero age once you’ve used them as your proof of stake, so you can’t keep dominating the network. Other random factors can be used to keep very large collections from dominating.
The one used by Bitcoin and somewhat more common is Proof of Work.
Proof of Work was invented by Cynthia Dwork and Moni Naor in 1993 as a defense against denial of service attacks and spam. In block chains it’s used to have a node earn the right to record a block. The node has to compute a “hard but not intractable function.”
Lets use Bitcoin’s blockchain as the example of how a block can be added. The Bitcoin blockchain calls this “mining” because you not only get to add a block but you get rewarded with some bitcoin.
To get the right to add the block, a Miner has to generate a hash that is acceptable to the algorithm. There are approximately 4 billion possible answers. When the algorithm is satisfied the block is added, every other peer in the network can easily verify it’s the right answer and the “miner” gets rewarded with some coin. Hence the term miner.
It’s one of the reasons bitcoin mining is energy intensive because the mining gets harder as the network ages, requiring more computation which uses more energy.
I’ve skipped over lots of other objections because most of them are answered by the scale of the network. How does the algorithm enforce the proof of work? Because it’s copied so many times, any attempt to change it would be ignored. etc. etc.
In the end the block chain is a way to guarantee that a thing has happened in a way that everyone can see and verify. It’s difficult to add it to the blockchain in a way that everyone on the network would accept, but once it’s there, anybody can see it!
So for a coin, that information is who has what coins. For a house title it could be who owns the house. For a piece of fruit being picked it could be when it was picked and by whom and what truck it went on.
For so-called non-fungible tokens it’s who owns the first Vine video.
In every case there’s not a “thing” that exists independently of the ledger. The ledger on the block chain is the record of what’s true. Weaknesses exist outside of the chain. If the person lies about which truck the fruit went on for instance or records the wrong name on the house title. But once the information is in the block chain it’s very hard for it to be expunged.
That’s it. A block chain is literally a chain of blocks of data that’s hard to alter.
In other words. I hope now you know a little more about blockchain.