Blockchain is a technology that is used to store and manage digital transactions (data) securely over a peer-to-peer network of devices using cryptography and distributed ledger technology. By design, blockchains are secure and impossible to manipulate or alter. In simple words, Blockchain is a secured, shared, distributed ledger.
Blockchain is a secured, shared, and distributed ledger.
Figure 1. Blockchain is a secured, shared, distributed ledger
Blockchain is secure. All transactions in a blockchain are cryptographically secure using encryption during the creation of a block.
Blockchain is shared. A blockchain is shared by the number of individuals or organizations who contribute and participate. No single authority controls a blockchain.
Blockchains are distributed and decentralized. A blockchain database is replicated on a peer-to-peer network, and all the participating nodes in the blockchain have the latest copy of the data.
Blockchain is a ledger. Blockchain is a database of immutable transactions. Each transaction involves two parties. Each block is hashed and linked to a previous record, and the reference of the previous block is stored in the current block.
Let’s get a little technical and understand what exactly blockchain is. Here is my simple definition.
Blockchain is computer software with a database.
Blockchain is a combination of computer programming code (software) and data. The software can be written in any programming language, such as C++, C#, Java, Scala, Go, or JavaScript. The data can be stored in any database or file.
Figure 2. Chain of linked blocks
Blockchain technology is designed to share, store, and protect data. The data is protected using mathematical cryptographic algorithms. Blockchain is also immutable. That means that once data is written on a blockchain, it can never be changed or deleted.
Blockchain uses a consensus mechanism to add and validate data to the database. Each node in a blockchain can become a decision-maker depending on the consensus algorithm implemented by the blockchain.
Blockchain nodes communicate directly using a peer-to-peer network technology that avoids third-party server involvement.
Why blockchain now?
Look at a few of the biggest headlines of 2018. You’ll find US election meddling by third parties, Facebook influencing American voters, 143 million American citizens’ sensitive data stolen from the Equifax database, Twitter storing user passwords in plain text in log files, thousands of websites down on Cyber Monday due to increased traffic, hackers stealing 500 million customers’ private data from Marriott’s database -- and the list goes on.
Figure 3. Data generation per day
This is the world we live in. Data never sleeps. We generate 2.5 quintillion bytes of data each day. One exabyte is one quintillion bytes. A smart car generates 2.5 TB of data each day. Imagine what will happen when there are a billion smart cars on the road.
SWIFT handles $5 trillion worth of transfers each day. Cross-border payments and money transfers take three to five working days and up to $40 per wire transfer.
In today’s centralized world, data is stored on centralized databases managed by centralized authorities. Centralized databases have a single access point and are easier to tamper with once a hacker gets into the server. The controlled party can also influence data tampering easily.
Today’s technologies, the Web and Cloud, are incapable of providing ideal solutions for these problems. Blockchain technology may be seen as an ideal solution to the above-discussed problems.
Today’s Web is designed to store data on centralized storage managed by a centralized authority that can easily be compromised.
Blockchain technology is the next evolution and natural extension of Web technology. Blockchain may become one of the core components of Web 3.0.
Today’s Web technology is inefficient in dealing with system scalability, reliability, availability, data safety, and user security. Blockchain technology promises to solve these problems. Blockchain promises to bring trust, transparency, and accountability to digital transactions.
Blockchain technology is a combination of four core technologies:
Cryptographic Hashing Algorithms
Blockchain technology uses cryptographic hashing algorithms to implement data immutability. That means that once data is written on a blockchain database, no one can modify or change it. Previous hash and consensus mechanisms make tampering with a block’s data very hard.
Blockchain technology uses cryptography to encrypt any sensitive data. Users on the system are anonymous, and the system uses private and public key combinations in data authentication.
Figure 4. Public-private key encryption
Peer-to-peer Network
Blockchain technology uses a peer-to-peer network that allows two devices to communicate directly without going through the Internet data pipes. Peer-to-peer network also provides reliability and availability. If one or more nodes in a network are down, it does not impact the system's availability.
Figure 5. Peer-to-peer network
Distributed Ledger
Blockchain technology uses distributed ledger technology to store data. Unlike centralized data storage where data is stored on one server, blockchain stores data on a decentralized network.
Figure 6. Centralized, decentralized, vs distributed network
Each participating node in a blockchain has the exact copy of the blockchain.
Figure 7. A node in a distributed network
As shown in Figure 2, the blocks in a blockchain are linked using the reference of the hash of the previous block. Linking chains provide immutability to blockchain data. If any node attempts to change an existing block’s data, the hash value of the block changes. Before the block is updated, other nodes compare their hash with the new hash, and the changes are rejected.
The consensus mechanism is a vital part of a blockchain. A consensus mechanism uses various consensus mathematical algorithms for the transaction approval process.
The following image describes the process of adding and approving a new transaction on a blockchain. Please note that this diagram is for workflow explanation only. Technical details of the process are more complicated, and everything happens on nodes.
Figure 8. How blockchain works
There are three types of blockchains.
In a permissionless or public blockchain, anyone can join a blockchain network. The process of joining a blockchain is simple. You download the blockchain project (usually from Github or the blockchain project website) and run it on your computer or a qualified device. Once you start running the project, you’re a node on the blockchain. Bitcoin and Ethereum are a couple of examples of permissionless blockchains.
Public-permissioned blockchain
In a public-permissioned blockchain, while the blockchain is public, the participation to join the blockchain network needs approval from the blockchain administrators. Ripple and Hyperledger Fabric are permissioned blockchains.
Private blockchain
Private blockchains are permissioned blockchains where data is unavailable for the public to read. Still, the digital identities of participants are managed and monitored by a consortium or a regulatory authority. Each participant in the blockchain has an access level that allows participants to do certain things on the blockchain.
Blockchain is a new technology and includes several complex computing technologies, including cryptographic mathematical algorithms, low-level computer programming, network programming, and distributed databases.
Blockchain is one of the fastest-growing technologies. Major Fortune 500 companies are either evaluating use cases of blockchain or are investing in blockchain. Here is a list of some of the companies that have already started to invest in blockchain.
Over 250 banks are investing in blockchain development.
LinkedIn, Glassdoor, Indeed, and the JumpstartBlockchain website have seen a rapid jump in the listing of blockchain jobs. Blockchain experts and developers are in-demand, which will grow each year.
Blockchain technology is expected to add $2.3 billion by 2020, which will grow to $7.5 billion by 2024.
Blockchain technology is in its infant stage and is expected to bring trust, transparency, and accountability to the digital world. Blockchain is being sought as the next generation of Web technology that will help with some of the major problems we’re going through today.
If you are a C# and .NET developer, here is the tutorial to get started: Write Your First Smart Contract Using C# and .NET.
Next Article >> Do I need a blockchain?