Blockchain is a way to store data, it’s a type of database, in particular, it’s a “distributed database” (some called it a “distributed ledger” which means the same), meaning that the stored data is distributed among multiple parties, with each party has a complete copy of the data.
For example, Facebook, if they were to use a blockchain system to store the data for user profiles, instead of putting all those data in a single central database, they would give every user a full copy of all the user profiles. (Or if not all users, at least give multiple users a full copy)
I know this probably doesn’t make sense for Facebook to do this, and just like all technologies, blockchain is NOT the solution to everything.
Blockchain is useful when the “cost of trust” is high. When, for instance, the third-party involved is taking too much of a cut, or when believing too much on a company will not be hack in order for everything to work.
The main concept is to give everyone a copy of the data, so that no one is particularly vulnerable to attack and makes it harder for anyone to cheat by trying to add false data.
Things stored on the blockchain are immutable (unable to change), the only alternative is to “update” the data by putting a new version but still keep the old versions around, much like adding amendments to the Constitution. Immutability is achieved through the magic of cryptography.
Below is an illustration of blockchain, new data are organized and packaged into a “block” and then link to existing blocks with a “chain”, thus the name block-chain. It’s a lot like linked list if you’re familiar with some computer programming.
“Distributed” means giving everyone a copy.
Now you know the concept of Blockchain which is quite simple, the implementation, however, is a bit tricky.
The implementation comes with two main questions:
- how to have user privacy given that many people have access to the database
- how to keep everyone’s database in sync (in consensus)
The first question turns out to be easier to solve than the second, although not to the level of full anonymity ( pseudonymity + unlinkability), using cryptography can at least make user’s identity a lot less obvious to the public. Users are typically only represented by some random string of characters and are allowed to have multiple accounts.
Many methods has been tried to solve the problem of keeping everyone’s database in sync. The most famous one is probably Bitcoin’s Proof of Work (PoW), in which the basic concept is quite literally to provide some sort of proof that you’ve done work and that you’ve sacrificed some real-life resources in order to add data to the database. In the case of Bitcoin, it’s the electricity used by computational power to solve puzzles. More on Bitcoin and PoW in a future post.
It ultimately comes down to giving the right person the ability to add data to the blockchain, and the ability for the rest of the people to verify the integrity of the data being added and decide for themselves whether to add or to ignore.
So you can tell that if the majority rejects this newly added data then it will just get discarded and the majority of the network will simply move on. If the person whose trying to add new data but got rejected still feels that they are right then they can create what’s called a “fork”, bring along like-minded and thus lose contact with the rest of the network. Just like creating a new timeline for a parallel universe. In the case of using blockchain as the database for cryptocurrency, then a fork would result in two different cryptocurrencies. Although there’re many practical reasons why having forks is generally a bad idea, as forks create division and increase complexity.
This democratic feature of Blockchain is one of the reasons why it’s being talked about so much and some even compare it to the Internet, which at its core decentralized the information structure and gave people more voice and power.
There’re two types of blockchain, first is a “permissionless” blockchain in which everyone with an access to the Internet is able to participate. Another type called “permissioned” blockchain that require a registration or verification process before being able to access the blockchain. Recently, permissioned blockchain is gaining popularity as more corporations jump into the blockchain space. Projects like Facebook’s Libra and IBM Blockchain are some current active examples. More on enterprise blockchain in the future.