Curious about Blockchain? Yeezy can help

A technical explanation about the Bitcoin blockchain explained using Kanye

Kanye knows what he wants

This is the second of what is turning into a series on blockchain. You can read the first post here.

— Scroll down to skip to the Kanye quotes —

Yeezy, you want to do WHAT?

Kanye is a busy man. He’s a music legend, businessman, and designer, not to mention father, husband, and man who can essentially do whatever he wants. He can’t be concerned with how everything works, as long as it works for him when he needs it — a la your average consumer. He needs to pay someone, order some clothes and track his designer shoe delivery, but he has to be able to trust and rely on the information and that his technology doesn’t leave him vulnerable. Kanye West needs blockchain.

What are you talking about?

To recap; blockchain is a nascent technology born as the underlying infrastructure under Bitcoin. At its core it is a shared database and transaction ledger system that is especially reliable and secure. If you haven’t checked it out yet, here’s the full intro article.

A solution to a complex problem

Let’s start with the initial problem that led us here: I’m creating a digital currency, and I need people to want to use it. Since I’m essentially creating money out of nothing, I need a way to ensure reliability, security, and transparency or trust that the virtual money cannot be tampered with or stolen. I can’t use traditional database and centralized information storage because everyone’s data — in this case their virtual money — would be vulnerable. Target, Sony, Ashley Madison: These days those type of systems are broken into all the time — and virtual currency needs to be more secure than your shopping data. I also need to make sure there’s a way to track how users spend their currency to add to transparency and provide trust with the ability to track your money from previous transactions. How do I do that?

Let’s pretend I’m Kanye.

So I’m Kanye and I’m using the blockchain?

I’m Kanye and I just woke up from some badass Kanye sleep-time. I remember I’m expecting some new Yeezy Boosts just for me. I ordered 5,000 of which 8 are coming custom made for me, and made by different manufacturers. (Why? This. Need I say more?) I’m curious and have some spare time so I go online and look up where my special Boosts are. I know my buddy recently set up a new system using blockchain, which he says can do everything the old one did but is more transparent, reliable, and secure. So I can track the order down to the individual pair using a tool built on blockchain technology.

When my Boosts were sent from the artist’s workshop to the shipping center it was a transaction. In the same way that is done today, this is represented by a message which says: “transferring Kanye’s badass custom Boosts from KL to HK” or in a more basic sense: “send X from A to B.” To make this transaction happen we need to know where X is coming from and where it’s going — like forwarding an email. For this I need to introduce a few things:

  • Private keys
  • Public keys
  • Digital signatures
What goes in a transaction? Little bit of A, little bit of B

A private key is a unique password used to verify who you are, while a public key is your public address that someone needs to direct a transaction — or virtual currency — towards. The signature is made by smushing together the private key and the contents of the message by using a mathematical function. As such, a new signature is made for every transaction you make, and it uses your private key and the message (“X”). Signatures are important in that they verify the identify of the sender without ever revealing their private key. You don’t want to reveal your actual private key for the same reason you don’t want to reveal your Gmail password: anyone could get access and use it to wreak havoc on your digital life. So going back to Kanye’s Boosts; someone in KL (A) sends the shoes to HK, to the HK recipient’s (B) public key, which is accompanied by the sender’s signature.

This means two things: 1. A can send his message to B without revealing his private key and never worry about it since his signature will be different every transaction, and 2. no one can distort the message because if they did, the signature wouldn’t sync up and the transaction would fail. So Kanye can trust that his Boosts are really on their way.

But that was just one move. How can Kanye trust that those sick Boosts are going to make it across each stage? Let’s pull back and consider the entire set of all transactions in this network. We’ve looked at how to secure individual transactions to protect the data and identities, but now we need some way of protecting the entire network and a way to update all the logs in the network simultaneously by using a shared ledger. So let’s jump into the fun part:

1. “I took that money, came back, packed” — Last Call
First we bundle up transactions in sets we’ll call ‘blocks’
2. “How could you be me and want to be someone else?” — Kanye Quotes
Then we verify that each block is valid and what it’s supposed to be using a process called ‘mining’.
Mining — Finding which hash fits the block

Mining is where computers (or nodes) in the network work to solve a mathematical problem first. They take the entire block of transactions, and run the whole text through a function called a cryptographic hash which jumbles the entire block up into random alphanumeric characters. (Why would anyone want to set up their computers to do this? Because they get a reward of Bitcoin, ether or other payment, and can charge transaction fees on top of that.) Blocks are run through random hashes spitting out garbled strings until they find one that meets two key requirements: 1. the has needs to be sufficiently complex and 2. include a link to the previous block. The required complexity of the hash is set by the network based on how many computers (nodes) are connected and how much total computing power is available in the network. This automatic adjustment happens to make sure that the average time to mine a new bock is consistent and impossible to tamper with. The link to the previous block is what builds the network.

How an ordered chain is formed
3. “ I make my jeweler add a few more links” — Chain Heavy
With every block linked to the previous block, an ordered chain of transaction blocks is formed.

The link to the previous block is called the ‘header’. By having the hash of the previous block’s header in the subsequent hash, each block points to the previous block, thus forming an ordered chain. This ordered chain of transactions is very hard if not impossible tamper with because every header has the hash of the previous block, and as such a hash of all previous hashes (this is a weird rabbit hole to go down, so I’ll leave it there, but you can read more here).

4. “They rewrite history, I don’t believe in yesterday” — Gorgeous Lyrics
When a new block is a mined, it’s verified by the rest of the network for accuracy by a majority consensus.
Biggest crew wins — Consensus confirms accuracy

The newly mined block is sent across the network to confirm that it fits the set requirements. Once the majority of the computers on the network agree then the entire network adds the block to their own ‘shared’ ledgers. This protects the accuracy of the log since a consensus is required to update the log, and when a network has many thousands of computers connected to it this feat becomes increasingly reliable.

This is a key part of the process. Because of this distribution, instead of being dependent on pulling data from a central location, everyone already has the records and can compare against others for accuracy, adding the desired reliability and transparency to the system. Part of the security comes from the shared ledger because additions are updated across the network based on mathematical problems NOT on someone or some machine editing a database and then pushing a command to update the server.

5. “Now I look and look around and there’s so many Kanyes” — I Love Kanye
What happens if multiple blocks are mined at the same time? The first one to the next block wins.

Since it is possible that a block can be solved AT THE SAME TIME in two different places, there needs to be a way to resolve the chain. With two separate ways to move forward, commonly thought of as branches, it’s a race to the finish for the next block. Whichever branch gets their next block first, then becomes the dominant one (the “Kanye ”of branches) and the other branch is lost to the ether. This adds another level of reliability.

The Kanye Chain — the Dominant Block
6. “My chain heavy yeah yeah my chain heavy” — Chain Heavy
It’s nigh impossible to break or tamper with the chain.

Suppose I’m trying to manipulate the records and I want to change a previous transaction, even one as recent as 3 block ago. I would have to change it, find a new hash for that block, and then effectively re-mine the next 3 blocks BEFORE the 4th and newest block is mined in order to create a “Kanye” branch that is accepted by the network. The computational power required for that is mindbogglingly large and expensive for an individual. The only way you could manipulate the chain is if you controlled a majority of the nodes on the network (remember this could be many many thousands of nodes) working together to edit and accept the amended order of chains.

Posers don’t last.

And that’s your shared ledger system. Using the blockchain I — Kanye — have tracked down my individual pair of Boosts to the last shipping point in a safe, reliable and secure way. I know they’re reaching soon and now I can get on with my day with Kim.

What else?

It is evident that the blockchain isn’t the answer to everything. To a large extent, the use case I just walked through is possible through existing systems and processes. But this technology is not a way to replace existing databases or small organizations with limited amount of transactions. It’s to improve in specific existing areas with better security, reliability and transparency to make a huge improvement.

I used the use case of a supply chain because there may be thousands of transactions occurring every hour, or more when you log every individual unit (e.g. Boost shoe) instead of batches as is normally done. Plus you have many suppliers, shippers, retailers and more who need to be able to see the transaction flow and contribute to the log. So let’s hope some day soon we can all be Kanye, and have a more reliable, secure and transparent log to track our Boosts.

Thanks to Deedy and Dilip for feedback and edits on this post.

Savar works in product management as an Offering Management Associate at IBM