I want you to understand what is a blockchain. I will explain it in simple terms. Whether you are technical or not, I think that at the end of this article you will understand what it is, how it differs from a traditional database, and you might even be able to come up with use cases and applications all by yourself 😱. We will also go over the differences between public and private blockchains, and mention some nice features allowed by blockchains.
Some aspects are purposedly a bit simplified, to make the explanations short and easily understandable.
A blockchain
Before telling you what it is, I'll tell you what it means. I came across the following sentence, which I happily borrow as I think it gathers well the main philosophy:
Blockchain is a structure that brings everyone to the highest degree of accountability.
With a blockchain, whether public or private, you cannot cheat. You cannot create money you do not have, you cannot steal from others, you cannot reverse transactions, you cannot tamper information, you cannot cheat with your processes, you cannot cheat with your partners,...
Before going deeper, a quick word from our sponsor, ₿₿ Bitcoin ₿₿, who reminds us that Bitcoin was the first implementation of a blockchain. The birth of the concept can therefore be dated back to October 31, 2008, the day of the release of the Bitcoin whitepaper. If you speak french, I encourage you to check out my article Le Bitcoin démystifié for an introduction to Bitcoin.
Some kind of definition of a blockchain
Now how does it achieve this high degree of accountability?
Everyone in the industry has its own definition of a blockchain. Mine is somewhat technical, and it will allow me to walk you through in more details what is a blockchain:
A blockchain is a shared, append-only, immutable, time-stamped, cryptographically-secured ledger of transactions... structured as a chain of blocks.
💥 Boom! There it is...
Ok, let us go through each of those terms. It will make us understand the specificities of blockchains and how they differ from traditional databases.
A chain of blocks
The word blockchain comes from the fact that the information is structured as a chain of blocks. Transactions are grouped by blocks. A block contains the list of all transactions that happened in a specific time span. To illustrate, let us assume that we work with a blockchain with block times of one minute. Then all the transactions of the last minute are grouped in a block. All the transactions happening during the next minute will be grouped in another block that will be added to the blockchain after the previous block.
All blocks are chained as each block points to the previous one. Indeed, each block contains a digital fingerprint (a hash) of the previous block. We will see below the crucial implications it has.
Shared
The blockchain is shared, or distributed, among all the participants in the network. Every participant holds a full copy of the data. The above chart shows a consortium of three entreprises, but the same principle applies to a public blockchain like Bitcoin, where the number of participants is much larger.
No one participant can modify any piece of data without all the others realizing it. No one participant can submit a transaction that goes against the rules of the network (an invalid transaction). No one participant can delete data. If one node is offline, the others can still function.
With a traditional database, the owner of the database usually has full admin rights on it. With a blockchain, there is no single owner of the database, the ownership is shared among all the participating parties.
Ledger of transactions
Unlike traditional databases, the blockchain does not store entries, variables and their values. It just stores transactions that update those values (this is a simplification, many blockchains have a twist around that principle). If we take the example of a payment system: The blockchain does not store the amount of money available on each specific account. If Alice has 0$ on her account and Bob transfers 3$ to Alice, we know that Alice has access to 3$ because there is a transaction saying that she received 3$. If Alice now sends 1$ to Carole, Alice has 2$ left. But nowhere in the blockchain is it said that Alice has 2$. In fact, by keeping track of the transactions, we know that she first received 3$ then spent 1$, so because each node in the network always computes all the transactions, they can all conclude that she has 2$ left. That smoothly brings us to the following paragraph.
Append-only
As we do not modify any entry in the database per se, but we just add transactions that change the state of information, the blockchain is append-only. Each minute, if we follow our previous example, a new block is added with new transactions that modify the state of the ledger.
Immutable
You remembered when we said that the blocks are chained together because each block contains a digital fingerprint of the previous block? Well, that is the key characteristic that prevents any party from modifying any historical data without every other parties noticing it immediately. Indeed, the least modification of data in any block changes its fingerprint. If its fingerprint is modified, the next block, that includes the previous block's fingerprint, is also modified. Therefore, same thing for the next block, and the next and the next. The chain is broken. Any modification in the past breaks the chain and as all parties hold the ledger, everybody will immediately realize that some invalid action took place. That is how we can claim that the blockchain is immutable.
Of course, if all parties agree on a modification, they can proceed and change whatever they want. So modifications are very well feasible in a private blockchain / consortium environment, where agreeing between a limited number of parties is possible. In a public blockhain, it is often infeasible (fortunately) due to the large number of participants and the decentralized nature of the network. (the differences between public and private blockchain is explained below.)
Timestamped
Every block includes a timestamp. That timestamp attests the time all the transactions in that block were computed and added to the blockchain. And as per the previous paragraph, no data in a block can be modified without all participants noticing it, the same apply for the timestamp, which is also part of the block data that is used to deduct its digital fingerprint. The timestamps are tamper-proof as well.
Cryptographically-secured
Blockchains and all the points mentioned above are made possible thanks to the use of cryptography. Two of the main cryptographic systems used in a blockchain are:
Public-key cryptography: We use a combination of a public and a private digital keys. Each user has his own private key(s) that "identifies" him and grants him access to perform certain transactions or own/transfer certain assets (like bitcoins or tokens).
Hashing: The hash of a piece of data is its digital fingerprint. It is notably used, as we saw above, to compute the digital fingerprint of a block and to guarantee the integrity of the chain.
I am not going into more details here as I do not want this introduction to be too technical. Feel free to click the links or to contact me for more explanation.
Blockchain primitives
There are some specific features enabled by blockchain and that allow to imagine new use cases or to improve greatly business processes. I will mention three of them: Smart contracts, Multisignature, Tokenization.
Smart contracts
Now that we have access to a platform in which we can put our trust, even if we are dealing with other parties, we can envision the automation of important transactions, like, for example, automatic payments when certain conditions are met.
Smart contracts are pieces of code that live on a blockchain. They represent digital agreements between parties that will be computed automatically when called by a transaction. Like any other piece of code, they are made of clauses like if...then...else. So based on certain conditions, they will lead to different actions.
As they are on a blockchain and must be computed the same way by all the nodes on the network, smart contracts are deterministic and auto-enforced. That implies that there is a certainty of the contract fulfillment, the contract cannot be interpreted in different ways and its enforceability does not depend on the subjectivity of a judge; and the agreement between the parties is inseparable from its execution.
Imagine that Alice owns a car renting company. Bob wants to rent a car for two days. Alice installed an electronic key system for entering and starting the car. The smart contract between Alice and Bob says that from a specific date until 48 hours later, Bob's private key will be able to open and use the car. It also says that Bob cannot drive more than 1000km with the car, and that at the end date of the lease, the fuel tank must be full otherwise Bob will not get back his security deposit. Alice also digitally signed a smart contract with a car insurance company. The contract says that every time the car drives 1km, a micropayment is made by Alice to the car insurance company. At the start time of the lease, Bob automatically has access to the car. While Bob drives the car, the insurance company is automatically paid by kilometer. If Bob tries to drive longer than 1000km, the car stops and, based on the GPS, only accepts to drive if Bob goes to the direction of Alice's shop (so Bob and the car are not stucked in the middle of nowhere 😠). Bob goes back to the shop and fills the fuel tank before giving the car back to Alice. Alice digitally signs that she received the car back and in good condition. The security deposit, which was held in an escrow account on the blockchain, is automatically transfered to Bob.
A blockchain, a few smart contracts, a few connected trackers/devices in the car were all what was needed to enable a smooth renting experience, without any payment delay or room for conflict. I know, I am exaggerating a bit 🤷, but you get the idea. Now imagine the infinite number of cases where smart contracts could be applied...
Multisignature
Multisignature is the concept to require more than one key to authorize a transaction. It is allowed by a combination of cryptography and smart contracts. It allows implementing schemes like 2-of-3 signatures, or 3-of-5, or any other scheme you want. In a 2-of-3 multisignature scheme, 2 of 3 specific users/entities must sign a transaction to send it.
Imagine that you are the CEO of a large corporation. You want to empower your divisions vice-presidents and your CFO. For the purpose of spending a division's budget, so in order to be able to make financial transactions, you implement a 2-of-3 signatures scheme. The CEO, the CFO, the VP each have one of the 3 valid keys. In a 2-of-3, if the VP needs to spend money, he can go to the CFO, and if they both agree on the spending, they are enough to sign the transaction. If anyone of the CFO and the VP disagrees, they will not be able to spend without consulting the CEO and getting is approval (via his digital signature).
Multisignature, together with the flexibility of smart contracts, allow to imagine very powerful schemes and methods of governance.
Tokenization
What Satoshi Nakamoto has invented with Bitcoin (and blockchain) is the scarcity of a digital object. Prior to Bitcoin, no digital object could be scarce, limited in supply. When you sent a digital object, like a picture, an e-mail or a music file, you were sending a copy of that file. Any digital piece of data could be copied as many times as wanted. When you sent a file to someone, you could not prove that you transfered that file and you did not keep it. Bitcoin was the first digital thing that could be provably transfered, provably owned, and could not be copied at will. Such feat is possible thanks to the distributed blockchain ledger, the cryptography, the consensus algorithm.
A blockchain token is a digital object that lives on a blockchain. Like a bitcoin, a token on a blockchain can be provably transfered and owned. If they live on a blockchain, they can be used in combination with smart contracts and, again, that opens up many possibilities.
Tokens can be something of their own, like bitcoin or other crypto-currencies, utility tokens, collectible tokens like CryptoKitties,... They do not represent something else, they are the thing. They can be used as money, as collectibles, as keys, as tickets,...
Or tokens can be the representation of other assets, other objects (digital or physical). A good example is a house. The ownership of a house could be tokenized. It would therefore be much easier to buy, sell, transfer the ownership of a house, or even, why not, of a portion of the house.
This is just a glimpse of what tokenization means. As always, now let your imagination run and drop the limits of the past 🤯.
Public and Private blockchains
There are two main kinds of blockchains: Public (permissionless) blockchains and private (permissioned) blockchains. Both are based on the same data structure (chain of blocks) but they are very different in their security model and their use cases.
Public (permissionless) blockchains
In a public blockchain, anybody can launch a node, join the network and start making transactions. No permission is required to participate. The most well known permissionless blockchain is Bitcoin. Ethereum is another example.
As anybody can participate and run a node, there is a need for a mechanism to control how new blocks are added to the chain and by who. For that purpose, the most secure blockchains like Bitcoin and Ethereum use proof of work. Nodes must burn energy (by having many computers solve a super hard mathematical puzzle) in order to append new blocks. That prevents an adversarial party to tamper with the ledger because it has to compete with an already enourmous amount of running computers.
Public blockchains are uncensorable. Even if one or multiple governments wanted to stop, modify, censor, attack the Bitcoin blockchain, they could not efficiently circumvent its proof of work (I invite you to check out a small article I wrote about How Governments Could Attack Bitcoin).
Private (permissioned) blockchains
In a private blockchain, only a limited set of participants can run a node and join the network. The node must be in the list of permissioned participants. An important use case is for collaborations between entreprises or within a consortium of entreprises (there are many other use cases, some of which I will probably study in following articles). If multiple entreprises do not have aligned interests or do not fully trust each others (they could be competitors) but collaborate on a project or have to regularly transact among each other, a private blockchain is a good option to automate business processes between them. Indeed, with a private blockchain, no one company is the owner or admin of the database. All participants can trust the ledger and the smart contracts running on them. The blockchain will be a good replacement for the countless emails, pdfs, phone calls 😲, physical pieces of paper 😲😲, manual signatures, manual money transfers between those companies because of the lack of IT system integration.
Consensus mechanisms within private/consortium blockchains are very different from public blockchains. They are not based around the consumption of energy but use other types of consensus algorithms, like, for example, voting-based algorithms. Indeed, we know the participants and how many they are (list of permissioned nodes). Therefore there is no need to protect against attackers or dishonest participants launching many nodes to screw up the voting (what we call a Sybil attack on the network).
Unlike public blockchains, private blockchains are not uncensorable. They are run by a limited number of participants, often entreprises, and if those all agree on a modification, they can proceed with it. If they are forced by the authorities to amend the ledger, they will most likely comply.
Public vs Private
Based on the above, we can conclude that (large) public/permissionless blockchains are the ideal vehicles for exchanging value or tokenized valuable assets. They are also preferred over private blockchains for supporting smart contracts between entities that cannot be confined in a limited list (anybody can participate). On the other hand, private/permissioned blockchains are very useful for integrating processes between business entities and for securing and recording important data and transactions among them.
Closing words
I'll stop there in order to avoid overwhelming you with new information (if it's not already done).
I hope you learnt stuff. I hope you are now better equipped to understand what this is about and how you can use this technology. One thing I'll add is that, although I am convinced and I try to convince you that blockchains will disrupt the world and many business processes, blockchain is not adequate for everything. There are many cases where a traditional database does the job perfectly well, especially for internal processes within a single entity, where there is no trust issue. Do not believe those who surf on the hype and want to use and implement blockchain everywhere. (I might follow up this article with one about some areas where I think blockchain makes the more sense.)
Do not hesitate to contact me if you have questions, need more information, would like me to go deeper on any specific aspect or completely disagree with what I wrote.
Join the forward thinking people who receive the Micropole Blockchain Tribe monthly newsletter - subscribe now. You'll get a small curated selection of the best articles about Blockchain for Entreprises and you will be kept updated with our activities and developments.
Thanks a lot for this article!
That's really a nice blockchain presentation !
Congratulations @jongr! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word
STOP
Really interesting :-)
Hello @jongr! This is a friendly reminder that you have 3000 Partiko Points unclaimed in your Partiko account!
Partiko is a fast and beautiful mobile app for Steem, and it’s the most popular Steem mobile app out there! Download Partiko using the link below and login using SteemConnect to claim your 3000 Partiko points! You can easily convert them into Steem token!
https://partiko.app/referral/partiko
Congratulations @jongr! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!