Blockchain: what is it, what is it for?

For a technical definition, read here.
A non technical definition is: "a technology that enables digital exchanges of value between entities that don't trust each other without intermediary".
Why does it matter?

Internet: information network

If you are reading this post, I can safely bet you know you what Internet is. So you should be able to wrap your head around the idea of what a network is: Internet being something often referred as THE NETWORK.
One can be 'part of', 'on a', 'connected to' a network. Anyone on the Internet network can directly exchange digital information with another connecte member.
Services whose job precisely used to be to execute some form of exchange on behalf on a sender and recipient progressively became obsolete.

Pre Internet Post Internet Information exchanged
Communication Post office Emails Peer to peer message
News Newspaper Blog, twitter News
Music & Video Music labels and movies studio Streaming Released music
Hospitality Hotels Airbnb Avalaible rooms
Transport Taxi Über Avalaible taxi

In practice, that exchange is seldom disintermediated. Indeed it is more convenient to rely on streaming & hosting services or apps. However nothing technically requires doing so.
Internet = birth of a disintermediated information network.

Post office, newspaper, music and movies studios, hotels, taxis... anything missing on the list?
BANKS. Banks have kept being required because they don't only facilitate exchange of information but exchange of value.
I have often read or heard that "data is the new oil". As a data analyst I used to believe it myself. I would repeat it to people to give me importance. However since such data is exchanged digitally on Internet, this statement is totally bullshit.
Because: ctrl + c & ctrl + v.
Oil is physical. Have you ever ever copy pasted an oil baril? Therefore oil has value. Selling that baril, means the seller is losing ownership of that baril to the benefit of the buyer who pays him. Value flows both ways (asset and money).
Data isn't physical. Therefore, I can just hand over a copy created at no cost and sell again the file later. I don't loose ownerhsip of that file. The file's value hasn't been transferred from me to the buyer. Value flows one way (money only).

Buyer Seller
Money -->
Oil <--
Money -->
File

Other example: sending 1 mail to 1 person or sending 1 mail to 1,000 persons costs the same.
So, as such, data has zero fundamental & commercial value.

Double spending problem

This "copy pasting" of an immaterial asset leads to the so called double spending problem.
How can one prevent a double spend?

Ledger

One must keep track of the past exchanges performed. Double spends could then be detected by checking this history of exchanges. This "history of exchanges" is called a ledger.
Let's say I want to transact with a stranger I don't trust.
Who will write into the ledger?

  1. Myself: I can "omit" transactions so that my double spend don't appear and screw the stranger. He/she won't let that happen.
  2. Stranger: he/she can "omit" transactions so that his/her double spends don't appear and screw me. I won't let that happen.
  3. We both write in the same ledger: ledger will turn into an inconsistent and useless mess.
  4. We both write in our own ledger: two ledger's exist. Their content will be in conflict. Which one to believe?
  5. We ask a third person to write all the transactions in the ledger for us: we both hope for the best and decide to trust that person won't try to screw us.

1, 2, and 3 can't obviously work.

Centralized ledger

5 is the centralized way of solving that problem. We have been relying on them because banks provide a solution to this problem. They act as a trusted intermediary responsible to check whether an immaterial asset exchanged is only spent once. The very reasons of banks' existence is to make trusted exchanges between people that don't trust each other possible..
When Alice wants to wire money to Bob, she doesn't wire it herself from her account to Bob's. Here's what happens

  1. Alice wants to pay Bob.
  2. Bank checks her account balance
  3. Banks substract amount from her account balance
  4. Bank add that amount to Bob's account

The bank is in charge of keeping a big accounting book up to date.
The main issue with that solution is that you have to "hope for the best and decide to trust that banks won't try to screw you".

Decentralized ledger

This the approach described in 4: instead of trusting one single person to maintain the ledger, everybody keep and write in their own copy.
Several challenges need to be solved:

1. How do we agree on what is the current valid version of the ledger?

By distributing to everybody a copy of a the last version of the ledger which was considered as valid.

2. How do we ensure that what was written can't be changed or deleted?

  1. Bundle new records to be added to the ledger in pages
  2. "Mark uniquely" each page based on its content.
    This makes changing a page's content obvious. For instance imagine adding on the corner of a page the number of characters on the page. Adding or deleting character changes obviously that number. So cheaters are detected. The harder the creation of that mark, the more secure the ledger
  3. Link each new page to the previous one. Write on each page's corner its "unique mark" along with the mark of the previous page. This way if one want to "remark" a page, one has to remark all the following one to achieve the change without being noticed. This makes the ledger even more secure.

3. How do we agree on what to write next?

By intuition, a fair way would be to decide "democratically": the correct version is the one most people consider as valid.
How to count what is "most"?
We need a digital voting system. Especially we need to able to ensure nobody is voting twice. Otherwise our voting system is rigged. In the real world we prevent people from voting twice by checking who they are before letting them vote.

On internet nobody knows you are a dog

Don't forget we are "on Internet", which means we can't identify people. Websites may require to authenticate yourself but "Internet protocols do not force users to identify themselves". There are ways to identify people on Internet. It would always end in having some form ID/certificate providers but that would grant internet users with digital IDs. These ID providers would become the "trusted" 3rd party, in charge of maintaining the ledger of all IDs. We would be back to the centralized scenario I refuse to follow.

In a digital voting system, a same person could impersonate lot of different "digital profiles". Using email account as digital ID to count votes? One same physical person could create at no costs 1000 different mail accounts to vote 1000 times.

Voting costs

As we can't identify people, we need a way to dissuade them to vote twice: voting must become costly. It needs to take time or cost money.
But if voting is expensive, why will people vote in the first place?
One solution is to add to the voting system a lottery system:

  • make expensive to be granted the right to vote
  • reward randomly one of the voters: the winner get rewarded economically and get the right to add a new entry in the ledger

Application: Bitcoin

This brilliant combination of voting and lottery system is actually at the core of the Bitcoin Blockchain.

Voter Miner
Voting costs Mining: solving a mathematical challenge ("Proof of Work") that can only be resolved by brute force by spending computer ressources (the "unique mark" on each page of the ledger)
Ledger Bitcoin Blockchain
Content of the ledger Transaction = exchanges of Bitcoin
Consensus The longest ledger is the correct one (the one most people spent ressources to build!

Blocks are simply a group of transactions. Bundling transactions in blocks makes it easier to check the validity of a ledger. Similarly, it is easier to review the content of a long text, when that text is structured in different pages of a book.

Blockchain: disintermediated digital exchange of value

Let's look back at the initial definition: "a technology that enables digital exchanges of value between entities that don't trust each other without intermediary".
Assuming we want to exchange value: making money transfers over the internet, sell or buy digital assets (digital pictures, music, certificates, loyalty points...), trust that double spending can't happen is required.
Ensuring this required trust can be achieved in:

  • a centralized way by relying on a third party (banks, escrow, notary). It comes with costs and risks: will the third party behave in their or your best interest?.
  • a decentralized way thanks to Blockchain technology. It also comes with drawbacks, such as transaction speed.

You'll only receive email when they publish something new.

More from sripwoud
All posts