Overview of Distributed Systems
Overview of Distributed Systems
Distributed systems
A distributed System is a collection of autonomous computer systems that are physically
separated but are connected by a centralized computer network that is equipped with
distributed system software. The autonomous computers will communicate among each system
by sharing resources and files and performing the tasks assigned to them.
As we can see that each Autonomous System has a common Application that can have its
own data that is shared by the Centralized Database System.
To Transfer the Data to Autonomous Systems, Centralized System should be having a
Middleware Service and should be connected to a Network.
Middleware Services enable some services which are not present in the local systems or
centralized system default by acting as an interface between the Centralized System and the
local systems. By using components of Middleware Services systems communicate and
manage data.
The Data which is been transferred through the database will be divided into segments or
modules and shared with Autonomous systems for processing.
The Data will be processed and then will be transferred to the Centralized system through
the network and will be stored in the database.
Characteristics of Distributed System
Resource Sharing: It is the ability to use any Hardware, Software, or Data anywhere in the
System.
Openness: It is concerned with Extensions and improvements in the system (i.e., How
openly the software is developed and shared with others)
Concurrency: It is naturally present in Distributed Systems, that deal with the same
activity or functionality that can be performed by separate users who are in remote
locations. Every local system has its independent Operating Systems and Resources.
Scalability: It increases the scale of the system as a number of processors communicate
with more users by accommodating to improve the responsiveness of the system.
Fault tolerance: It cares about the reliability of the system if there is a failure in Hardware
or Software, the system continues to operate properly without degrading the performance
the system.
Transparency: It hides the complexity of the Distributed Systems to the Users and
Application programs as there should be privacy in every system.
Heterogeneity: Networks, computer hardware, operating systems, programming languages,
and developer implementations can all vary and differ among dispersed system components.
Advantages of Distributed System
Applications in Distributed Systems are Inherently Distributed Applications.
Information in Distributed Systems is shared among geographically distributed users.
Resource Sharing (Autonomous systems can share resources from remote locations).
It has a better price performance ratio and flexibility.
It has shorter response time and higher throughput.
It has higher reliability and availability against component failure.
It has extensibility so that systems can be extended in more remote locations and also
incremental growth.
Disadvantages of Distributed System
Relevant Software for Distributed systems does not exist currently.
Security possess a problem due to easy access to data as the resources are shared to multiple
systems.
Networking Saturation may cause a hurdle in data transfer i.e., if there is a lag in the
network then the user will face a problem accessing data.
In comparison to a single user system, the database associated with distributed systems is
much more complex and challenging to manage.
If every node in a distributed system tries to send data at once, the network may become
overloaded.
Use cases of Distributed System
Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce websites.
Information Society: Search Engines, Wikipedia, Social Networking, Cloud Computing.
Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
Entertainment: Online Gaming, Music, youtube.
Healthcare: Online patient records, Health Informatics.
Education: E-learning.
Transport and logistics: GPS, Google Maps.
Environment Management: Sensor technologies.
Challenges of Distributed Systems
While distributed systems offer many advantages, they also present some challenges that must
be addressed. These challenges include:
Network latency: The communication network in a distributed system can introduce
latency, which can affect the performance of the system.
Distributed coordination: Distributed systems require coordination among the nodes,
which can be challenging due to the distributed nature of the system.
Security: Distributed systems are more vulnerable to security threats than centralized
systems due to the distributed nature of the system.
Data consistency: Maintaining data consistency across multiple nodes in a distributed
system can be challenging.
Are Distributed Systems and Microservices the Same?
Distributed systems and microservices are related concepts but not the same. Let’s break down
the differences:
1. Distributed Systems:
A distributed system is a collection of independent computers that appear to its users as
a single coherent system.
In a distributed system, components located on networked computers communicate and
coordinate their actions by passing messages.
Distributed systems can encompass various architectures, including client-server, peer-
to-peer, and more.
2. Microservices:
Microservices is an architectural style that structures an application as a collection of
small, autonomous services, modeled around a business domain.
Each microservice is a self-contained unit that can be developed, deployed, and scaled
independently.
Microservices communicate with each other over a network, typically using lightweight
protocols like HTTP or messaging queues.
While microservices can be implemented in a distributed system, they are not same.
Microservices focus on architectural design principles, emphasizing modularity, scalability,
and flexibility, whereas distributed systems encompass a broader range of concepts, including
communication protocols, fault tolerance, and concurrency control, among others.
2. History of block chain
Block chain can be defined as the Chain of Blocks that contain some specific Information. Thus, a Block
chain is a ledger i.e file that constantly grows and keeps the record of all transactions permanently. This
process takes place in a secure, chronological (Chronological means every transaction happens after the
previous one) and immutable way. Each time when a block is completed in storing information, a new
block is generated.
bitcoin.
Satoshi Nakamoto
Releases Bitcoin
White Paper
Ethereum
Blockchain Is
2014 Blockchain 2.0 is born. NA
Funded By
Crowdsale
Ethereum Frontier
Linux Foundation launched the
2015 NA Network was
Hyperledger project.
launched
Bitfinex bitcoin
Blockchain is accepted as a single
exchange was hacked
2016 word instead of two different NA
resulting in 120,000
concepts
bitcoin being stolen.
Japan recognized
[Link] company introduced the
2017 Bitcoin as a legal NA
EOS blockchain operating system.
currency.
Ethereum network
transactions
2019 NA NA
exceeded 1 million
per day.
Ethereum launched
Beacon Chain in
2020 Stablecoins saw a rise. NA
preparation for
Ethereum 2.0.
PoS.
Distributed Database: There is no Central Server or System which keeps the data of the Blockchain. The
data is distributed over Millions of Computers around the world which are connected to the Blockchain.
This system allows the Notarization of Data as it is present on every Node and is publicly verifiable.
A network of nodes: A node is a computer connected to the Blockchain Network. Node gets connected
with Blockchain using the client. Client helps in validating and propagating transactions on to the
Blockchain. When a computer connects to the Blockchain, a copy of the Blockchain data gets downloaded
into the system and the node comes in sync with the latest block of data on Blockchain. The Node
connected to the Blockchain which helps in the execution of a Transaction in return for an incentive is
called Miners.
Project ideas that you can try will learning Blockchain technology
Here are a few project ideas for beginners looking to learn more about blockchain technology:
1. Cryptocurrency Wallet: Create a simple cryptocurrency wallet application that allows users to send
and receive digital assets.
2. Blockchain Explorer: Develop a web-based application that allows users to view and search the
transactions on a specific blockchain.
3. Smart Contract: Implement a simple smart contract on the Ethereum blockchain that can be used to
manage a digital token or asset.
4. Voting System: Create a blockchain-based voting system that allows for secure and transparent voting
while maintaining voter anonymity.
5. Supply Chain Management: Develop a blockchain-based system for tracking the movement of goods
and services through a supply chain, providing greater transparency and traceability.
6. Decentralized marketplace: Create a decentralized marketplace using blockchain technology where
the goods and services can be directly bought by the customers without any intermediary.
7. Identity Management: Create a decentralized digital identity management system that allows users to
control their personal information and share it securely with others.
These are just a few examples, there are many other possibilities to explore within Blockchain technology.
Finance, supply chain management, and the Internet of things are just a few of the sectors that blockchain
technology has the power to upend (IoT). The following are some potential uses for blockchain in the
future:
Digital Identity: Blockchain-based digital IDs might be used to store personal data safely and securely
as well as offer a means of establishing identity without the need for a central authority.
Smart Contracts: A variety of legal and financial transactions could be automated using smart
contracts, self-executing contracts with the terms of the agreement put straight into lines of code.
Decentralized Finance (DeFi): Using blockchain technology, decentralized financial systems might be
built that support peer-to-peer transactions and do away with conventional intermediaries like banks.
Supply Chain Management: Blockchain technology can be applied to a permanent record of how goods
and services have been moved, enabling improved openness and traceability across the whole supply
chain.
-Internet of Things (IoT): Blockchain technology may be used to build decentralized, secure networks
for IoT devices, enabling them to exchange data and communicate with one another in an anonymous,
safe manner.
In general, blockchain technology is still in its early stages and has a wide range of potential applications.
Advantages of Blockchain Technology:
1. Decentralization: The decentralized nature of blockchain technology eliminates the need for
intermediaries, reducing costs and increasing transparency.
2. Security: Transactions on a blockchain are secured through cryptography, making them
virtually immune to hacking and fraud.
3. Transparency: Blockchain technology allows all parties in a transaction to have access to the
same information, increasing transparency and reducing the potential for disputes.
4. Efficiency: Transactions on a blockchain can be processed quickly and efficiently, reducing the
time and cost associated with traditional transactions.
5. Trust: The transparent and secure nature of blockchain technology can help to build trust
between parties in a transaction.
Decentralization:
The distribution of control over a network among multiple nodes, eliminating the need for a central authority.
Distributed Ledger:
A database that is shared and synchronized across multiple sites, institutions, or geographies, accessible by multiple
people or institutions.
Immutable:
Once data is recorded on the blockchain, it cannot be altered or deleted. This ensures the integrity and
trustworthiness of the data.
Consensus Mechanism:
The process by which all nodes in a blockchain network agree on the validity of transactions and achieve
synchronization.
Smart Contracts:
Self-executing contracts with the terms of the agreement directly written into code. They automatically execute and
enforce when predefined conditions are met.
Permissioned Blockchain:
A type of blockchain where access is restricted to certain entities, allowing for greater control over participants and
transactions.
Fork:
A split or divergence in the blockchain’s transaction history, resulting in two separate paths, typically due to a
change in protocol rules.
These definitions cover key aspects of blockchain technology, illustrating its decentralized, secure, and transparent
nature, along with the various mechanisms and cryptographic principles that underpin its functionality.
[Link] elements of a block chain
As per the name ‘Blockchain‘, it itself suggests that information (i.e transactions) will be stored in the form of
blocks. Every node can see the block, but they can’t tamper with them. If a block value is tampered the hash value
associated with that block changes and that block will be disconnected from the network. On an average of 12.6
seconds, every node in the blockchain network gets the most updated blockchain. The technology behind Bitcoins is
the Blockchain Network. Following are the components of a Blockchain network –
1. Node
2. Ledger
3. Wallet
4. Nonce
5. Hash
1. Node –
It is of two types – Full Node and Partial Node.
Full Node –
It maintains a full copy of all the transactions. It has the capacity to validate, accept and reject the transactions.
Partial Node –
It is also called a Lightweight Node because it doesn’t maintain the whole copy of the blockchain ledger. It
maintains only the hash value of the transaction. The whole transaction is accessed using this hash value only.
These nodes have low storage and low computational power.
2. Ledger –
It is a digital database of information. Here, we have used the term ‘digital’ because the currency exchanged
between different nodes is digital i.e cryptocurrency. There are three types of ledger. They are –
1. Public Ledger –
It is open and transparent to all. Anyone in the blockchain network can read or write something.
2. Distributed Ledger –
In this ledger, all nodes have a local copy of the database. Here, a group of nodes collectively execute the job i.e
verify transactions, add blocks in the blockchain.
3. Decentralized Ledger –
In this ledger, no one node or group of nodes has a central control. Every node participates in the execution of
the job.
3. Wallet –
It is a digital wallet that allows user to store their cryptocurrency. Every node in the blockchain network has a
Wallet. Privacy of a wallet in a blockchain network is maintained using public and private key pairs. In a wallet,
there is no need for currency conversion as the currency in the wallet is universally acceptable. Cryptocurrency
wallets are mainly of two types –
1. Hot Wallet –
These wallets are used for online day-to-day transactions connected to the internet. Hackers can attack this
wallet as it is connected to the internet. Hot wallets are further classified into two types –
a. Online/ Web wallets –
These wallets run on the cloud platform. Examples – MyEther Wallet, MetaMask Wallet.
b. Software wallets –
It consists of desktop wallets and mobile wallets. Desktop wallets can be downloaded on a desktop and the user
has full control of the wallet. An example of a desktop wallet is Electrum.
c. Mobile wallets –
They are designed to operate on smartphone devices. Example – mycelium.
2. Cold Wallet –
These wallets are not connected to the internet. It is very safe and hackers cannot attack it. These wallets are
purchased by the user. Example – Paper wallet, hardware wallet.
a. Paper wallet –
They are offline wallets in which a piece of paper is used that contains the crypto address. The private key is
printed in QR code format. QR code is scanned for cryptocurrency transactions.
b. Hardware wallet –
It is a physical electronic device that uses a random number generator that is associated with the wallet.
The focus of wallets is on these three things –
1. Privacy
2. Transactions should be secure
3. Easy to use
Privacy of a wallet is maintained using public and private key pairs. Transactions are made secure as a private key is
used both to send fund and to open the encrypted message.
4. Nonce –
A nonce is an abbreviation for “number only used once,” which is a number added to a hashed or encrypted block in
a blockchain. It is the 32-bit number generated randomly only one time that assists to create a new block or validate
a transaction. It is used to make the transaction more secure.
It is hard to select the number which can be used as the nonce. It requires a vital amount of trial-and-error. First, a
miner guesses a nonce. Then, it appends the guessed nonce to the hash of the current header. After that, it rehashes
the value and compares this to the target hash. Now it checks that whether the resulting hash value meets the
requirements or not. If all the conditions are met, it means that the miner has created an answer and is granted the
block.
5. Hash –
The data is mapped to a fixed size using hashing. It plays a very important role in cryptography. In a blockchain
network hash value of one transaction is the input of another transaction. Properties of the hash function are as
follows –
Collision resistant
Hiding
Puzzle friendliness
1. Immutable
Immutability means that the blockchain is a permanent and unalterable network. Blockchain technology functions
through a collection of nodes. Once a transaction is recorded on the blockchain, it cannot be modified or deleted.
This makes the blockchain an immutable and tamper-proof ledger that provides a high degree of security and trust.
Every node in the network has a copy of the digital ledger. To add a transaction every node checks the validity
of the transaction and if the majority of the nodes think that it is a valid transaction then it is added to the
network. This means that without the approval of a majority of nodes no one can add any transaction blocks to
the ledger.
Any validated records are irreversible and cannot be changed. This means that any user on the network won’t be
able to edit, change or delete it.
2. Distributed
All network participants have a copy of the ledger for complete transparency. A public ledger will provide complete
information about all the participants on the network and transactions. The distributed computational power across
the computers ensures a better outcome.
Distributed ledger is one of the important features of blockchains due to many reasons like:
In distributed ledger tracking what’s happening in the ledger is easy as changes propagate really fast in a
distributed ledger.
Every node on the blockchain network must maintain the ledger and participate in the validation.
Any change in the ledger will be updated in seconds or minutes and due to no involvement of intermediaries in
the blockchain, the validation for the change will be done quickly.
If a user wants to add a new block then other participating nodes have to verify the transaction. For a new block
to be added to the blockchain network it must be approved by a majority of the nodes on the network.
In a blockchain network, no node will get any sort of special treatment or favors from the network. Everyone
will have to follow the standard procedure to add a new block to the network.
3. Decentralized
Blockchain technology is a decentralized system, which means that there is no central authority controlling the
network. Instead, the network is made up of a large number of nodes that work together to verify and validate
transactions. Each and every node in the blockchain network will have the same copy of the ledger.
Decentralization property offers many advantages in the blockchain network:
As a blockchain network does not depend on human calculations it is fully organized and fault-tolerant.
The blockchain network is less prone to failure due to the decentralized nature of the network. Attacking the
system is more expensive for the hackers hence it is less likely to fail.
There is no third-party involved hence no added risk in the system.
The decentralized nature of blockchain facilitates creating a transparent profile for every participant on the
network. Thus, every change is traceable, and more concreate.
Users now have control over their properties and they don’t have to rely on third-party to maintain and manage
their assets.
4. Secure
All the records in the blockchain are individually encrypted. Using encryption adds another layer of security to the
entire process on the blockchain network. Since there is no central authority, it does not mean that one can simply
add, update or delete data on the network.
Every information on the blockchain is hashed cryptographically which means that every piece of data has a unique
identity on the network. All the blocks contain a unique hash of their own and the hash of the previous block. Due to
this property, the blocks are cryptographically linked with each other. Any attempt to modify the data means to
change all the hash IDs which is quite impossible.
5. Consensus
Every blockchain has a consensus to help the network to make quick and unbiased decisions. Consensus is a
decision-making algorithm for the group of nodes active on the network to reach an agreement quickly and faster
and for the smooth functioning of the system. Nodes might not trust each other but they can trust the algorithm that
runs at the core of the network to make decisions. There are many consensus algorithms available each with its pros
and cons. Every blockchain must have a consensus algorithm otherwise it will lose its value.
6. Unanimous
All the network participants agree to the validity of the records before they can be added to the network. When a
node wants to add a block to the network then it must get majority voting otherwise the block cannot be added to the
network. A node cannot simply add, update, or delete information from the network. Every record is updated
simultaneously and the updations propagate quickly in the network. So it is not possible to make any change without
consent from the majority of nodes in the network.
7. Faster Settlement
Traditional banking systems are prone to many reasons for fallout like taking days to process a transaction after
finalizing all settlements, which can be corrupted easily. On the other hand, blockchain offers a faster settlement
compared to traditional banking systems. This blockchain feature helps make life easier.
Blockchain technology is increasing and improving day by day and has a really bright future in the upcoming years.
The transparency, trust, and temper proof characteristics have led to many applications of it like bitcoin, Ethereum,
etc. It is a pillar in making the business and governmental procedures more secure, efficient, and effective.
Smart Contracts – Blockchain technology enables the creation and execution of smart contracts, which are self-
executing contracts that automatically execute when certain conditions are met. Smart contracts have the potential to
revolutionize various industries by providing a secure and transparent way to execute contracts.
Transparency – The blockchain ledger is public and transparent, which means that anyone can access and view the
transactions on the network. This makes it a highly transparent system that is resistant to fraud and corruption.
Applications of Blockchain – Blockchain technology has a wide range of applications across various industries.
Some of the most well-known applications include cryptocurrency, supply chain management, identity verification,
and voting systems. However, blockchain technology has the potential to revolutionize many other industries as
well, such as healthcare, real estate, and finance.
[Link] of block chain technology
A blockchain is actually a digital ledger of transactions that is copied and distributed across the network of computer
systems. Each of the blocks generated after every transaction holds various information about the transaction and
gets itself updated in every participant’s ledger which once written cannot be changed. Every participant in the chain
of transactions is a vital part of the network.
In simple terms, it is distributed database that everyone can get a copy of. Every person with a copy can add new
records to this database but cannot change any record that’s already in there. So, how can it be used? Let us start
with the most obvious and most popular applications of blockchain and that is:
Cryptocurrencies: A cryptocurrency is a digital currency, basically designed to be used as a medium of
exchange wherein each coin ownership record is stored in a decentralized ledger. Cryptocurrencies use
‘decentralized control’, which suggests that they are not controlled by one person or government. When Bitcoin
launched in 2008, it allowed people to directly transact with each other without having to trust third parties like
banks. Since then 4000 different cryptocurrencies have been created. Some examples are Bitcoin, Ethereum,
Dogecoin, Fantom, etc. The blockchain is the technology behind cryptos where all the exchange or transaction
information is stored which cannot be hacked or changed and a copy of the ledger is distributed among all the
participants of the network. It records every single transaction. Each and every person can buy/sell or deal in
cryptos and be a part of the network. Nowadays, several financial applications provide a user with the luxury of
doing so.
Cars: Let us see how can blockchain be used in cars. Ever heard of odometer fraud? By tampering with the
odometer, someone can make a car appear to be newer and less worn out, resulting in customers paying more
than what the car is actually worth. The government tries to encounter by collecting the mileage of cars when
they get a safety inspection, but that’s not enough. So, instead, we could replace regular odometers with smart
ones that are connected to the internet and frequently write the car’s mileage to the blockchain. This would
create a secure and digital certificate for every car. And because we use a blockchain, nobody can tamper with
the data/information, and everyone can look up a vehicle’s history to ensure it’s correct. In fact, this has already
been developed used by Bosch’s IoT lab and they are currently testing it on a fleet of 100 cars in Germany and
Switzerland.
Legal Documents: So, blockchains are great at keeping a good track of data over time. So, besides odometers,
you can keep track of things like intellectual property or patents or it can even function as a notary. A notary is
someone (for example the Central Government) who can confirm and verify signatures on legal documents. But
we can just as well use blockchain for it. The online website [Link] as an example, allows you to feature the
documents to the Bitcoin or Ethereum Blockchain. Once, a document has been added you can always prove that
you simply created a document at a particular point of time very similar to a notary, although right now
blockchains are not on the same level as notaries in a legal perspective.
Digital Voting: Another interesting application is digital voting. Right now voting happens either on paper or
EVM (electronic voting machines) which are special computers running proprietary software. Voting on paper
costs a lot of money and wastage and electronic voting has security issues. In recent years we have seen
countries move away from digital voting and adopting paper again because they fear that electronic votes can be
tampered with and influenced by hackers. In our country as well, we have seen politicians fight over “EVM
hack” things. But, in place of paper ballots or EVMs, we could use blockchains to cast and store votes. Such a
system would be very transparent and everyone could verify the voting count for themselves and it would make
tampering with it very difficult. The Swiss company Agora is already working on such a system and it is going
to be completely open-source. But there are many challenges. First, you have to be able to verify voters without
compromising their privacy. Secondly, if you allow people to vote with their own computers or phones, you
have to take care of the situation that those devices might be infected with malware designed to tamper with the
voting process. And a final example: a system like this also has to be able to withstand denial-of-service attacks
that could render the whole thing unusable. Definitely, a very tough nut to crack but if it becomes reality it could
make for a more transparent and practical voting system.
Food and Medical Industry: They could use blockchain technology to track their food products from the
moment they are harvested or made, to when they end up in the hands of the customers. See, every year almost
half a million people die because of food-borne diseases and that’s partly because it takes too long to isolate the
food that is causing harm. Blockchains could help us to create a digital certificate for each package of food,
proving where it came from and where it has been. So, if contamination has been detected i.e. the manufacturer
wants to revert a batch of food because of certain quality issues, we can trace it back to its root and instantly
notify other people who bought the same batch of bad food. Walmart and IBM are the two big giants currently
working on such a system. It allowed them to trace the origin of a box of mangoes in just 2 seconds, compared
to days or even weeks with a traditional system. A system like this could be applied to other similar industries as
well. We could use it to track medicines, and other regular products and battle counterfeit goods by allowing
anyone (the officials in general) to verify whether or not the product comes from the original and authentic
manufacturer.
Logistics and Supply-chain: Another idea would be to track packages and shipments using blockchain. That is
something that IBM and container shipping giant Maersk Line are working on a decentralized ledger to help
with making the global trade of goods more efficient. Many hackathons on blockchain have this topic for college
students to build the project. It is still in the development phase and companies are trying to come up with such a
system to track their package pinpoint.
Smart Contracts: So far, we have looked at ways blockchains can be used to keep track of information and
verify its integrity. But blockchains are even more powerful when we use them as smart contracts as one of its
applications. These contracts live on the blockchain and can perform actions when various conditions are met.
Insurance companies could use smart contracts to validate claims and keep a record of all the people who are
buying insurance and paying their premiums on time so as to continue the terms of the policy. Or they could
allow us to only pay for car insurance when we are driving. But it goes even further, with smart contracts we can
our own data on a blockchain. In the same fashion, you could store your personal identity there and choose what
data you want to reveal.
Original Content Creation and Royalties tracking: Think about collecting royalties for artists. A beautiful
idea for the use case would be streaming platforms could set up two smart contracts: one where users send a
monthly subscription to and one that keeps track of what song or video a particular user is consuming and how
many times the song has been played or a video being watched. At the end of each month, the smart contract
that holds the subscription fee can automatically distribute the money to artists, based o how many times their
songs have been played. People can have smart contracts for their content and have proof that they were the
creators and no other. Mediachain is one of the companies working in the music industry using blockchain and
smart contracts. Similarly, smart contracts can be used in other places as well, some of them are:
Blockchain technology can be used in so many different ways and we are still discovering and finding other ways
out. This list is just a brief of what things are happening around this space. Similarly, other applications are:
Real Estate: Propy, a California-based company is using blockchain as a title registry system for property
ownership with distributed and decentralized systems.
IoT Devices: Filament, a Nevada-based company, creates IoT microchip hardware and software that lets the
connected devices run on blockchain technology. The product’s encrypted and secured ledger data distribute
information to other blockchain-connected devices and allow monetization of machines based on the usage of
time stamps and others. A cybersecurity company, HYPR, is using this technology to secure IoT devices with a
decentralized credential system. By taking passwords away from a centralized system to make devices even
more secure and unhackable.
Documents: Many countries are adopting blockchain technology to store their data and people’s data, this way
they are bringing transparency and security to the documents like birth certificates, social security numbers, and
voter registration cards, and much more.
Non-Fungible Tokens (NFTs): These are the new trend in the world after crypto-currencies survive upon
blockchain technology. The year 2020-2021 gave rise to digital items at par. NFTs are also digital items that
include videos, photos, arts, GIFs, and other media that are sold over blockchain such that the owner of the
media created can claim his/her full rights. The Nyan cat meme that was a trend in 2011, that GIF was sold for
$600,000.
Gambling: The gambling industry can use blockchain to provide several benefits to players. With the help of
the blockchain there is a transparency between the potential gamblers. The transaction are recorded in the
blockchain network, game could be played fairly.
Big Data: The every computer in the network is trying to verify the information stored in it, making blockchain
an excellent tool for storing data with its immutable nature.
The skill of standing out online is needed more than ever in today's digital world. Whether to become a young
marketer or grow one's brand, it is most important to learn digital marketing concepts. With our Digital Marketing
Live Training Program , you can do all that, right in line with what any willing student needs. The course focuses
on hands-on training in SEO, Social Media, and Content Marketing. Build the skills to make a difference in
creating campaigns and driving accurate results. Set trends, not follow them. Enroll now and dominate the digital
world!
Permissioned Blockchain
These are the closed network only a set of groups are allowed to validate transactions or data in a given
blockchain network. These are used in the network where high privacy and security are required.
Characteristics:
A major feature is a transparency based on the objective of the organization.
Another feature is the lack of anatomy as only a limited number of users are allowed.
It does not have a central authority.
Developed by private authority.
Advantages:
This blockchain tends to be faster as it has some nodes for validations.
They can offer customizability.
Strong Privacy as permission is needed for accessing transaction information.
As few nodes are involved performance and scalability are increased.
Disadvantages:
Not truly decentralized as it requires permission
Risk of corruption as only a few participants are involved.
Anytime owner and operator can change the rules as per their need.
Types of Blockchain
These blockchains are completely open to following the idea of decentralization. They don’t have any
restrictions, anyone having a computer and internet can participate in the network.
As the name is public this blockchain is open to the public, which means it is not owned by anyone.
Anyone having internet and a computer with good hardware can participate in this public blockchain.
All the computer in the network hold the copy of other nodes or block present in the network
In this public blockchain, we can also perform verification of transactions or records
Advantages:
Trustable: There are algorithms to detect no fraud. Participants need not worry about the other nodes
in the network
Secure: This blockchain is large in size as it is open to the public. In a large size, there is greater
distribution of records
Anonymous Nature: It is a secure platform to make your transaction properly at the same time, you
are not required to reveal your name and identity in order to participate.
Decentralized: There is no single platform that maintains the network, instead every user has a copy of
the ledger.
Disadvantages:
Processing: The rate of the transaction process is very slow, due to its large size. Verification of each
node is a very time-consuming process.
Energy Consumption: Proof of work is high energy-consuming. It requires good computer hardware
to participate in the network
Acceptance: No central authority is there so governments are facing the issue to implement the
technology faster.
Use Cases: Public Blockchain is secured with proof of work or proof of stake they can be used to displace
traditional financial systems. The more advanced side of this blockchain is the smart contract that enabled
this blockchain to support decentralization. Examples of public blockchain are Bitcoin, Ethereum.
2. Private Blockchain
These blockchains are not as decentralized as the public blockchain only selected nodes can participate in
the process, making it more secure than the others.
These are not as open as a public blockchain.
They are open to some authorized users only.
These blockchains are operated in a closed network.
In this few people are allowed to participate in a network within a company/organization.
Advantages:
Speed: The rate of the transaction is high, due to its small size. Verification of each node is less time-
consuming.
Scalability: We can modify the scalability. The size of the network can be decided manually.
Privacy: It has increased the level of privacy for confidentiality reasons as the businesses required.
Balanced: It is more balanced as only some user has the access to the transaction which improves the
performance of the network.
Disadvantages:
Security- The number of nodes in this type is limited so chances of manipulation are there. These
blockchains are more vulnerable.
Centralized- Trust building is one of the main disadvantages due to its central nature. Organizations
can use this for malpractices.
Count- Since there are few nodes if nodes go offline the entire system of blockchain can be
endangered.
Use Cases: With proper security and maintenance, this blockchain is a great asset to secure information
without exposing it to the public eye. Therefore companies use them for internal auditing, voting, and asset
management. An example of private blockchains is Hyperledger, Corda.
3. Hybrid Blockchain
It is the mixed content of the private and public blockchain, where some part is controlled by some
organization and other makes are made visible as a public blockchain.
It is a combination of both public and private blockchain.
Permission-based and permissionless systems are used.
User access information via smart contracts
Even a primary entity owns a hybrid blockchain it cannot alter the transaction
Advantages:
Ecosystem: Most advantageous thing about this blockchain is its hybrid nature. It cannot be hacked as
51% of users don’t have access to the network
Cost: Transactions are cheap as only a few nodes verify the transaction. All the nodes don’t carry the
verification hence less computational cost.
Architecture: It is highly customizable and still maintains integrity, security, and transparency.
Operations: It can choose the participants in the blockchain and decide which transaction can be made
public.
Disadvantages:
Efficiency: Not everyone is in the position to implement a hybrid Blockchain. The organization also
faces some difficulty in terms of efficiency in maintenance.
Transparency: There is a possibility that someone can hide information from the user. If someone
wants to get access through a hybrid blockchain it depends on the organization whether they will give
or not.
Ecosystem: Due to its closed ecosystem this blockchain lacks the incentives for network participation.
Use Case: It provides a greater solution to the health care industry, government, real estate, and financial
companies. It provides a remedy where data is to be accessed publicly but needs to be shielded privately.
Examples of Hybrid Blockchain are Ripple network and XRP token .
4. Consortium Blockchain
It is a creative approach that solves the needs of the organization. This blockchain validates the transaction
and also initiates or receives transactions.
Also known as Federated Blockchain.
This is an innovative method to solve the organization’s needs.
Some part is public and some part is private.
In this type, more than one organization manages the blockchain.
Advantages:
Speed: A limited number of users make verification fast. The high speed makes this more usable for
organizations.
Authority: Multiple organizations can take part and make it decentralized at every level. Decentralized
authority, makes it more secure.
Privacy: The information of the checked blocks is unknown to the public view. but any member
belonging to the blockchain can access it.
Flexible: There is much divergence in the flexibility of the blockchain. Since it is not a very large
decision can be taken faster.
Disadvantages:
Approval: All the members approve the protocol making it less flexible. Since one or more
organizations are involved there can be differences in the vision of interest.
Transparency: It can be hacked if the organization becomes corrupt. Organizations may hide
information from the users.
Vulnerability: If few nodes are getting compromised there is a greater chance of vulnerability in this
blockchain
Use Cases: It has high potential in businesses, banks, and other payment processors. Food tracking of the
organizations frequently collaborates with their sectors making it a federated solution ideal for their use.
Examples of consortium Blockchain are Tendermint and Multichain.
[Link] in block chain
Blockchain is a distributed decentralized network that provides immutability, privacy, security, and transparency.
There is no central authority present to validate and verify the transactions, yet every transaction in the Blockchain
is considered to be completely secured and verified. This is possible only because of the presence of the consensus
protocol which is a core part of any Blockchain network. A consensus algorithm is a procedure through which all
the peers of the Blockchain network reach a common agreement about the present state of the distributed ledger. In
this way, consensus algorithms achieve reliability in the Blockchain network and establish trust between unknown
peers in a distributed computing environment. Essentially, the consensus protocol makes sure that every new block
that is added to the Blockchain is the one and only version of the truth that is agreed upon by all the nodes in the
Blockchain. The Blockchain consensus protocol consists of some specific objectives such as coming to an
agreement, collaboration, cooperation, equal rights to every node, and mandatory participation of each node in the
consensus process. Thus, a consensus algorithm aims at finding a common agreement that is a win for the entire
network. Now, we will discuss various consensus algorithms and how they work.
1. Proof of Work (PoW): This consensus algorithm is used to select a miner for the next block generation. Bitcoin
uses this PoW consensus algorithm. The central idea behind this algorithm is to solve a complex mathematical
puzzle and easily give out a solution. This mathematical puzzle requires a lot of computational power and thus,
the node who solves the puzzle as soon as possible gets to mine the next block. For more details on PoW, please
read Proof of Work (PoW) Consensus
2. Practical Byzantine Fault Tolerance (PBFT): Please refer to the existing article on practical Byzantine Fault
Tolerance(pBFT).
3. Proof of Stake (PoS): This is the most common alternative to PoW. Ethereum has shifted from PoW to PoS
consensus. In this type of consensus algorithm, instead of investing in expensive hardware to solve a complex
puzzle, validators invest in the coins of the system by locking up some of their coins as stakes. After that, all the
validators will start validating the blocks. Validators will validate blocks by placing a bet on them if they
discover a block that they think can be added to the chain. Based on the actual blocks added in the Blockchain,
all the validators get a reward proportionate to their bets, and their stake increase accordingly. In the end, a
validator is chosen to generate a new block based on its economic stake in the network. Thus, PoS encourages
validators through an incentive mechanism to reach to an agreement.
4. Delegated Proof Of Stake (DPoS): This is another type of Proof of Stake consensus algorithm. This type of
consensus mechanism depends on the basis of the delegation of votes. The users delegate their votes to other
users. Whichever user then mines the block will distribute the rewards to the users who delegated to that
particular vote. Refer to the article Delegated Proof of Stake for more.
5. Proof of Burn (PoB): With PoB, instead of investing in expensive hardware equipment, validators ‘burn’ coins
by sending them to an address from where they are irretrievable. By committing the coins to an unreachable
address, validators earn the privilege to mine on the system based on a random selection process. Thus, burning
coins here means that validators have a long-term commitment in exchange for their short-term loss. Depending
on how the PoB is implemented, miners may burn the native currency of the Blockchain application or the
currency of an alternative chain, such as bitcoin. The more coins they burn, the better their chances of being
selected to mine the next block. While PoB is an interesting alternative to PoW, the protocol still wastes
resources needlessly. And it is also questioned that mining power simply goes to those who are willing to burn
more money.
6. Proof of Capacity: In the Proof of Capacity consensus, validators are supposed to invest their hard drive space
instead of investing in expensive hardware or burning coins. The more hard drive space validators have, the
better their chances of getting selected for mining the next block and earning the block reward.
7. Proof of Elapsed Time: PoET is one of the fairest consensus algorithms which chooses the next block using
fair means only. It is widely used in permissioned Blockchain networks. In this algorithm, every validator on the
network gets a fair chance to create their own block. All the nodes do so by waiting for a random amount of
time, adding proof of their wait in the block. The created blocks are broadcasted to the network for others’
consideration. The winner is the validator which has the least timer value in the proof part. The block from the
winning validator node gets appended to the Blockchain. There are additional checks in the algorithm to stop
nodes from always winning the election, and stop nodes from generating the lowest timer value.
10. CAP theorem and block chain
CAP theorem states that it is impossible for a distributed data store to simultaneously provide more than
two out of the three guarantees: Consistency, Availability, and Partition. The article focuses on discussing
CAP Theorem in Blockchain in detail.
What is Blockchain?
Blockchain is a method of storing data that makes it challenging or impossible to alter, hack, or defraud the
system. A hash, a sort of immutable cryptographic signature, is used to record transactions on a
blockchain, a type of DLT.
A blockchain is just a group of computer systems connected in a way that allows duplicate copies of
each transaction to be kept and distributed throughout the network’s digital ledger.
Every time a new transaction occurs on the blockchain, a record of it is added to each participant’s
ledger, and each block on the chain consists of a number of transactions.
The term “Distributed Ledger Technology” describes a decentralized database governed by many users
(DLT).
CAP Theorem stands for Consistency, Availability, and Partition Tolerance. According to the theory, a
distributed system cannot always ensure consistency, availability, and partition tolerance. When things go
wrong, we must prioritize at most two distributed system features and trade-offs between them.
CAP Theorem or Brewer’s theorem states that it is feasible to provide either consistency or availability
—but not both—in the event of a network failure on a distributed database, a theory from theoretical
computer science about distributed data stores. In other words, according to the CAP theorem, a
distributed database system that experiences a partition must choose between Consistency and
Availability.
We must simultaneously communicate over the network and store data among several nodes in a
distributed system. A distributed system frequently falls victim to network failures because of its
reliance on network calls in a significant way. Tolerance for partitions is crucial. In this situation, we
must decide, based on our needs, whether to prioritize consistency or availability.
With blockchain technology, immediate consistency is frequently sacrificed for availability and
partition tolerance. By requiring a specific amount of “confirmations,” blockchain consensus
techniques are simply simplified to eventual consistency.
Network failures can affect any distributed system, hence network partitioning is usually required.
There are just two choices remaining in the event of a partition: consistency or availability. The system
will return an error or time out if a specific piece of information cannot be guaranteed to be current
owing to network segmentation when consistency is chosen above availability. The system will always
process the query and attempt to return the most recent version of the data even if it cannot ensure that
it is up to date because of network partitioning when availability is preferred over consistency.
Blockchain is a decentralized database that manages a shared ledger that cannot be altered.
Transactions are what make up the shared ledger. Consensus techniques are used to record transactions
inside the shared ledger. Sharing distributed transactions naturally raises questions about the CAP
theorem.
Consistency is sacrificed in Blockchain due to the priority given to Availability and Partition
Tolerance. In this case, Partition tolerance (P), Availability (A), and Consistency (C) on the blockchain
are not attained simultaneously; instead, they are acquired over time.
The theory initially surfaced in the fall of 1998, according to computer scientist Eric Brewer of the
University of California, Berkeley. Brewer proposed it at the 2000 Symposium on Principles of
Distributed Computing as a conjecture. It was first published as the CAP principle in 1999.
Brewer’s conjecture became a theorem in 2002 after Seth Gilbert and Nancy Lynch of MIT gave a
formal proof of it. The CAP theorem is also known as Brewer’s Theorem since Professor Eric A.
Brewer introduced it in 2000 during a talk he gave on distributed computing. Professors Seth Gilbert
and Nancy Lynch from MIT produced proof of “Brewer’s Conjecture” two years later.
Brewer clarified some of his positions in 2012, explaining why the frequently used “two out of three”
concept may be somewhat misleading because partition management and recovery techniques already
exist, so system designers only need to sacrifice consistency or availability in the presence of
partitions.
Brewer also brought up how the definition of consistency in the CAP theorem and the ACID
(Atomicity, Consistency, Isolation, Durability) definition is different. Since it was first proposed ten
years ago, designers and academics have explored a wide range of unique distributed systems using the
CAP theorem.
It has also been used by the NoSQL movement to argue against conventional databases. The
implementation of CAP achieved its goal of exposing designers to a greater variety of systems and
tradeoffs; in fact, during the past 10 years, a wide variety of new systems have evolved along with a
heated debate about the relative advantages of consistency and availability.
As a result of its propensity to oversimplify the tensions between attributes, the “2 of 3” formulation
was always deceptive. Such subtleties now matter. Only a small portion of the design area is prohibited
by CAP: complete availability and consistency in the absence of partitions, which is uncommon.
CAP Theorem in Block chain
As we know that CAP stands for Consistency, Availability, and Partition Tolerance so, let us understand
Consistency, Availability, and Partition Tolerance with the help of some examples. Let us first understand
availability as then it will be much easier to understand consistency and partition tolerance then.
1. Availability
Availability means that all clients who request data receive a response even if one or more nodes are down.
In a distributed system, every operational node replies to each valid request made to it, to put it another
way.
Example: Imagine you are the customer of a well-known vehicle company in your city because of the
incredible deals and services it provides. In addition, they provide fantastic customer service, so you can
contact them whenever you have questions or issues and get answers right away. The car company is able
to connect every consumer who phones to one of its customer service representatives. Any information
needed by the customer regarding his cars, such as the service date, the insurance plan, or other details, can
be obtained. Because any customer can connect to the business or its operator and obtain information about
the user or client, we refer to this as availability.
2. Consistency
Consistency means that the duplicated data item will appear in the same copies on all nodes during
different transactions. an assurance that each node in a distributed cluster returns the same, most recent,
and successful writer. Every client’s perception of the data must be consistent to be considered consistent.
Sequential consistency, which is a particularly powerful type of consistency, is referred to as consistency
in CAP.
Example: Recently the insurance policy of your car got outdated and you want to update or get a new
insurance policy for your car. You decide to call the bank or the insurance company and update it with
them. When you call, you connect with an agent. This agent asks you for the relevant details of your
previous policy. But once you have put down the phone, you realize that you missed one detail. So you
frantically call the agent again. But, this time when you call, you connect with a different agent but then
also, they are able to access your records as well and know that you are registering for your new insurance
policy. They make the relevant changes in the house number and the rest of the address is the same as the
one you told the last operator. We call this Consistency because even though you connect to a different
customer care operator, they were able to retrieve the same information.
3. Partition Tolerance
Consistency and high availability are not compatible with NoSQL. Eric Brewer initially stated this in his
CAP Theorem. We can only accomplish two out of the three guarantees for a database, consistency,
availability, and partition tolerance. It is crucial to comprehend the NoSQL database’s constraints.
Consistency and high availability are not compatible with NoSQL.
It can be observed from the above diagram that Consistency and Availability are connected by a database
CA, Availability and Partition Tolerance by a database AP, and Consistency and Partition Tolerance by a
database CP. Let us discuss what CA, AP, and CP mean.
CA: CA database provides availability and consistency among all the nodes. However, it cannot
accomplish this if there is a partition between any two system nodes, hence it is unable to provide fault
tolerance. For eg: Applications used in banking and finance demand available and consistent data.
AP: AP database means that the system continues to operate even in the presence of node failures. AP-
based systems compromise consistency and availability. Non- distributed databases like PostgreSQL uses
AP-based database systems.
CP: CP database means that the system continues to operate even though network failures are occurring in
the database. CP systems are strongly consistent but they are not properly available.
CAP Theorem Applied
1. Availability over consistency (A+P)
When availability is preferred over consistency the system will always process the query and attempt to
return the most recent version of the data even if it cannot ensure that it is up to date because of
network partitioning.
When accumulating data is a top priority, availability is crucial. Consider factors like user preferences
or behavioral data in this situation. In situations like these, you’ll want to record as much data as you
can about what a user or customer is doing, but it’s not necessary to keep the database updated all the
time. Even when network connections are down, they must still be reachable and available.
One more reason to adopt a NoSQL database that puts availability over consistency is the rising
demand for offline application use.
The following picture clearly shows Availability over Consistency:
When discussing consistency and availability, a lot of technical jargon might be used, but the core idea
is simple: consistency is required if the database’s data must always be current and aligned, even in the
event of a network failure.
When you need several clients to share the same view of the data, consistency is a particular use case
where you should prioritize it. Use a database, for instance, that provides consistency and assurance
that the data you are looking at is up to date in cases when the network is unreliable or malfunctions
while dealing with financial or sensitive information.
For example, Information about bank accounts must be consistent and accurate because it is sensitive
information. Therefore, it is preferable to announce an outage if the most recent accurate information is
not accessible than to provide the consumer with inaccurate information.
The following picture clearly shows Consistency over Availability:
CAP Theorem Examples
Example 1: A mobile phone has been designed in such a way that it has space for only one sim card which
means no sharing.
Solution: This system guarantees Consistency, Availability, and Tolerance to Partitions.
Example 2: Immediately after sending a message to someone, that individual might not get it.
Solution: With this system, availability and partition tolerance are compromised without compromising
consistency, or AP.
Example 3: When we build a form for a group of individuals, the others can only access it once we
provide them permission to do so.
Solution: CP, or Consistency and Partition Tolerance without Compromising Availability, is ensured by
this system.
The different database of CAP Theorem fits in different software:
AP: Dynamo, Cassandra, Elastic Search, CouchDB, Riak, MongoDB.
CP: HBase, MongoDB, Redis, Memcached.
CA: Postgres, MySQL.
Decentralization
This is a core concept and benefit of blockchain. There is no need for a trusted third party or intermediary to
validate transactions; instead a consensus mechanism is used to agree on the validity of transactions.
As blockchains are shared and everyone can see what is on the blockchain, this allows the system to be
transparent and as a result trust is established. This is more relevant in scenarios such as the disbursement of
funds or benefits where personal discretion should be restricted.
Immutability
Once the data has been written to the blockchain, it is extremely difficult to change it back. It is not truly
immutable but, due to the fact that changing data is extremely difficult and almost impossible, this is seen as
a benefit to maintaining an immutable ledger of transactions.
High availability
As the system is based on thousands of nodes in a peer-to-peer network, and the data is replicated and
updated on each and every node, the system becomes highly available. Even if nodes leave the network or
become inaccessible, the network as a whole continues to work, thus making it highly available.
Highly secure
The current model in many industries such as finance or health is rather disorganized, wherein multiple
entities maintain their own databases and data sharing can become very difficult due to the disparate nature
of the systems. But as a blockchain can serve as a single shared ledger among interested parties, this can
result in simplifying this model by reducing the complexity of managing the separate systems maintained by
each entity.
Faster dealings
In the financial industry, especially in post-trade settlement functions, blockchain can play a vital role by
allowing the quicker settlement of trades as it does not require a lengthy process of verification,
reconciliation, and clearance because a single version of agreed upon data is already available on a shared
ledger between financial organizations.
Cost saving
As no third party or clearing houses are required in the blockchain model, this can massively eliminate
overhead costs in the form of fees that are paid to clearing houses or trusted third parties.
As with any technology there are challenges that need to be addressed in order to make a system more robust,
useful, and accessible. Blockchain technology is no exception; in fact a lot of effort is being made in
Academia and Industry to overcome the challenges posed by blockchain technology. A selection of the most
sensitive challenges are presented as follows:
Scalability
Adaptability
Regulation
Privacy