Blockchain & cryptocurrency explained simply in pictures [newly revised with text annotations]
In the current digital world, if Sam sends Kim a text file...
Sam and Kim each get a copy of the text file.
Now say Sam sends Kim one of his 'digital coins' (we'll talk more about this soon).
Sam should no longer have his coin!
How do we ensure that Sam doesn't send copies of his coins to everyone?
Enter the blockchain.
But before we dive into the blockchain, we need to get a grip on these 'digital coins' (AKA cryptocurrency).
There's no physical money here. Think of 'money' as just a sheet on the internet with a balance.
So each person gets a sheet with a balance.
Sam has 8 of what? For familiarity let's suppose the unit is a 'coin'. For now, don't worry about whether it's bitcoin, ether, etc.
Furthermore, we can call this internet sheet a digital wallet.
One last thing. How do we know whose wallet is whose? For simplicity, suppose Sam and Kim are each given some digital 'address' to access their wallet.
This address is just a sequence of letters and numbers. Only Sam knows his address. Same goes for Kim.
So...
Sam and Kim each have a digital wallet, with digital coins, located at some digital address.
Suppose Sam gives Kim 4 digital coins.
Sam's and Kim's transaction gets broadcast to a group of nodes (computers) listening for new events.
Each node collects transactions like Sam's and Kim's into a 'block'.
Each block is assigned a hash based on a timestamp and a hash of the previous block.
So, each block's hash recursively depends on the previous hash.
Each node tries to find the 'proof of work' (POW) for this new block. POW involves proving that for each block in the blockchain, no money was double spent, and data in that block must have existed in that time.
For a deeper explanation of Proof of Work, check out my Steemit story here.
As soon as a node finds the POW for the block, it broadcasts this block to the rest of the nodes in the network.
If a majority of the nodes agree, this block is added to an 'append only' ledger, called the blockchain.
Sam now has 4 coins and Kim has 8 coins.
Because of the blockchain, Sam and Kim can directly transact. No middleman is needed.
With more and more transactions after Sam's and Kim's, the blockchain grows longer.
Say Sam is evil, and wants to alter his transaction with Kim, and get his coins back.
But there's a problem. Remember how each block depends on the previous one?
Sam has to alter every single block that comes after his own!
As the blockchain grows larger after Sam's transaction with Kim, it becomes harder for Sam to hack this transaction.
If the majority of the nodes in the network are honest and collectively hold more CPU power than the evil nodes...
Then the honest nodes can grow the blockchain longer and faster than the evil nodes can. And as Satoshi Nakomoto says, "The longest chain serves as proof of the sequence of events witnessed".
If you made it this far, pour yourself a drink! This is no easy task, and I hope you learned a little something.
Take care.
P.S. If you know a little JavaScript and want to get your hands dirty with some blockchain code, feel free to check out my Github project where I combine Angular4 and Truffle.