Blockchain is one of the most promising technology of today. This article is a basic introduction to blockchain technology and its components.
The blockchain concept was first introduced by Stuart Haber and W. Scott Stornetta in 1991 as “a cryptographically secured chain of blocks”, which means a chain or blocks that are linked and cryptographically secured. Each block is a combination of three items; a hash pointer to the previous block, a timestamp, and transaction data. Blocks are encrypted and validated before they join a blockchain.
Blockchain technology is a new way to store and manage data securely over a peer-to-peer network of devices using cryptography and distributed ledger technology. Blockchain brings trust, accountability, and transparency to digital transactions. By design, blockchains are secure and difficult to modify.
Let’s look at a typical definition of blockchain that is universal now:
“Blockchain is a secure, 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 number of individuals or organizations to contribute and participate. No single authority controls a blockchain.
Blockchain is distributed. Blockchain database is replicated on a peer-to-peer network and all the participating nodes in the blockchain has the latest copy of the data.
Blockchain is a ledger. Blockchain is a database of immutable transactions. Each transaction involved 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.
Blockchain Technology vs A Blockchain
A blockchain also called a chain is a product build based on blockchain technology. Bitcoin is the first successful blockchain used for digital payments. There are thousands of cryptocurrencies that are built on blockchain technology.
Blockchain Architecture
As a developer, how can you compare blockchain technology with an existing technology such as Web technology?
Web technology <> Blockchain technology
Website <> Blockchain
Let’s look at a typical Web application architecture that is hosted on an IIS Web server and uses a SQL Server as a backend database.
Unlike a centralized Web server and database server in a Web architecture, a blockchain is a group of distributed computers also known as nodes. Each node has a exact replica of the blockchain. A typical blockchain node consists of the following components.
- A data storage
- Code for various rules including a consensus algorithm
- A P2P networking protocol
- A messaging component
- A blockchain node.
All blockchain nodes are on a peer-to-peer network talk to each other node when a new activity happens on the blockchain.
A typical blockchain has three major components – Identity, Database, and a Software Platform. Identity in blockchain is created using a private and public key cryptography mechanism. Data is stored securely using distributed ledger technology in a data storage. The software platform of a blockchain is responsible for applying rules within a certain protocol.
How does blockchain work
Let’s take a look at a simple workflow of transaction (block) approval in a blockchain.
- new transaction is initiated.
- A new block is created and encrypted.
- New block is broadcasted to a participating P2P network of nodes.
- Block is validated. A reward is given to the validator.
- Block is added to the blockchain.
- Transaction is completed.
Blockchain is a combination of three major technologies – digital identity, distributed ledger technology, and software with consensus algorithm and several other rules.
Digital Identity.
A transaction is a fundamental unit of action in a blockchain. The purpose of a blockchain is to create, store, and execute transactions that are safe, secure, and trusted. A transaction is an agreement between two parties to exchange goods and services. In blockchain world, a transaction is an agreement between two parties to exchange digital assets. The data store that holds transactions and a record of the parties is called a ledger.
In a blockchain world, each transaction involves two parties – an issuer and a receiver. Each member participating in a blockchain needs a secure digital identity that is unique to an individual or an account. Digital identity on a blockchain is created using asymmetric cryptography that uses a private and public key to create a unique identity. The identity is attached with the block itself and becomes a part of the blockchain to keep track of the original creator of the block.
Distributed Ledger Technology.
Distributed ledger technology (DLT) allows us to record and maintain ledgers on distributed computers, also known as nodes. Each node in the network has an equal authority and permission. Each node has exact copy of data.
Blockchain is special kind of DLT that uses cryptographic and algorithms to create, validate, and store data in form of a ledger. A blockchain ledger is append-only and each new transaction is added as the last record in the ledger.
Software with rules and algorithms.
A blockchain has a set of rules, rewards, and validation system. This is all possible with a software program that runs and executes all business rules over a predefined network protocol. Each node participate in a blockchain runs the software with the data.
What Skills Do I Need To Learn Blockchain
Blockchain technology is a platform and language agnostic technology. You can use pretty much any major programming language to write blockchains. Two major components of blockchain are distributed database and hashing, that you can use any major language that support these two functionalities.
To write blockchain from scratch, you will need understanding of cryptography, distributed ledger technology, and low-level coding. You will also need some coding experience with one of the following or a similar programming language.
- Java
- C++
- JavaScript
- Go
- Python
- C#
- Ruby
- Solidity
- PHP
Cryptographically is used to create to encrypt data and create secure digital identities. Hashing algorithms are used to create a blockchain references to make sure the blockchain is immutable and incorruptible.
Distributed ledger technology (DLT) also known as a distributed ledger or a shared ledger a way to stored data on a peer-to-peer distributed network. The data is updated and synchronized using a consensus algorithm as a part of the technology. Blockchain technology is somewhat based on the distributed ledger technology.
You also need experience with low-level coding to interact with data and network.
Besides the core product, you may also need a wallet, other front-end components, and libraries. So, if you want to build a wallet, you could build in any language. A wallet can be a client application runs on a local machine that you can write in C++, Java, or C#. It can also be a Web component that can be written in any web language such as HTML, JavaScript, PHP, ASP.NET, and Node.
You don’t always need to write your own blockchain from scratch. You can also use an existing open source project. Each blockchain project has its own specific use case. For example, Bitcoin is used for cryptocurrency purpose, while Ethereum is designed to write smart contracts. Here are some of the projects and their purpose.
- Bitcoin – Written in C++.
- Ethereum – Written in C++ and solidity that was designed to write ethereum smart contracts.
- Ripple – Written in python.
- Steller – Steller core was written in C++ but also includes JavaScript and C++ for other components.
- IOTA – Written in Java and JavaScript.
- Verge – Written in PHP and JavaScript.
- Stratis – Originally written in C++ but slowly moved to C# and .NET Core.
- Bitcoin Cash – C++ and Ruby.
- NEM – Java, JavaScript, Swift
Summary
This article is an introduction to blockchain technology. In this article, we learned basics of blockchain and its properties. We also saw, how blockchain technology is compared with Web technology. In the end, we also saw how blockchain transactions work.
Not every new software or data storage product need a blockchain. In this next article, we will see how to decide if you need a blockchain.