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.
What exactly is blockchain?
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.
The smallest unit of data storage is a block. A blockchain is a chain of blocks linked in a linked list fashion. That means, each block in a blockchain is linked to the previous and the next block and has a reference to the previous and the next block. A new block is always added to the end of the chain. Once added, a block cannot be moved or removed from the chain.
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 is stored on a distributed and decentralized network of computers, also known as nodes. Each computer in the network has an exact copy of the data and code.
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.
Merchants in the USA lost approximately $190 billion a year in fraud, according to Forbes. US customers lost more than $8 billion in credit card fraud in 2017.
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.
How blockchain technology solves this problem
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:
- Cryptography
- Peer-to-peer network
- Distributed databases
- Consensus mechanism
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
Consensus Mechanism
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.
How does blockchain work?
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
- A new transaction is initiated from a node on the blockchain network.
- A new block is created and encrypted by the initiated node.
- A new block is broadcast to all participating nodes on the blockchain network.
- If the block is validated and approved, the block is added to the end of the blockchain, and a reward is given to the validator. The blockchain validation process uses a consensus algorithm.
- If the block is not approved, the block is rejected and will not be added to the blockchain.
- Nodes are notified about the newly added block, and the sync process starts so all nodes can have a newly updated block.
- The transaction is complete.
What about public and private blockchains?
There are three types of blockchains.
Permissionless or public blockchain
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.
Why blockchain is so difficult to understand
Blockchain is a new technology and includes several complex computing technologies, including cryptographic mathematical algorithms, low-level computer programming, network programming, and distributed databases.
Being a new technology, blockchain is still being developed, and things are changing rapidly. There aren’t enough learning resources for it. Products are still immature, and a lack of visual applications, tools, and utilities makes blockchain difficult to learn and understand.
Who is using blockchain?
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.
Summary
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?