KEMBAR78
Blockchain and Bitcoin Applications Part1 | PDF | Cryptocurrency | Bitcoin
0% found this document useful (0 votes)
50 views252 pages

Blockchain and Bitcoin Applications Part1

The document outlines a comprehensive roadmap for becoming a blockchain developer, covering essential topics such as the basics of blockchain technology, its structure, operations, and various applications across industries. It explains the decentralized nature of blockchain, its security features, and how it can be utilized in sectors like finance, healthcare, and supply chain management. Key concepts include transaction processes, smart contracts, and the potential of blockchain to improve transparency and efficiency in data management.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views252 pages

Blockchain and Bitcoin Applications Part1

The document outlines a comprehensive roadmap for becoming a blockchain developer, covering essential topics such as the basics of blockchain technology, its structure, operations, and various applications across industries. It explains the decentralized nature of blockchain, its security features, and how it can be utilized in sectors like finance, healthcare, and supply chain management. Key concepts include transaction processes, smart contracts, and the potential of blockchain to improve transparency and efficiency in data management.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 252

BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

C.NANDA KISHORE

Created by Nandakishore 1
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

PART-1

Created by Nandakishore 2
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

CONTENT
1.Basics of Blockchain Technologies
• What is BLOCKCHAIN
• Decentralized
• Why it matters
• Blockchain structure and operations
• Application and Uses
2.General Blockchain Knowledge
• Storage and Mining and incentive models
• Decentralized vs trust
• Blockchain Forking and Cryptocurrency
• Crypowallets and cryptography
• Consensus protocols
• Blockchain interoperability

3.Blockchain
• Ton
• Solana
• EVM based
• TVM based

Created by Nandakishore 3
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

BASICS OF BLOCKCHAIN KNOWLEDGE

Guide to Blockchain

Definition

Blockchain is a decentralized digital ledger that securely stores records across a network of
computers in a way that is transparent, immutable, and resistant to tampering. Each “block”
contains data, and blocks are linked in a chronological “chain.”

What Is a Blockchain?

A blockchain is a distributed database or ledger shared across a computer network’s nodes. They
are best known for their crucial role in cryptocurrency systems, maintaining a secure and
decentralized record of transactions, but they are not limited to cryptocurrency uses. Blockchains
can be used to make data in any industry immutable—meaning it cannot be altered.

Created by Nandakishore 4
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Since a block can’t be changed, the only trust needed is at the point where a user or program
enters data. This reduces the need for trusted third parties, such as auditors or other humans, who
add costs and can make mistakes.

Since Bitcoin’s introduction in 2009, blockchain uses have exploded via the creation of various
cryptocurrencies, decentralized finance (DeFi) applications, non-fungible tokens (NFTs), and
smart contracts.

Key Takeaways

• Blockchain is a type of shared database that differs from a typical database in the way it
stores information; blockchains store data in blocks linked together via cryptography.
• Different types of information can be stored on a blockchain, but the most common use
has been as a transaction ledger.
• In Bitcoin’s case, the blockchain is decentralized, so no single person or group has
control—instead, all users collectively retain control.
• Decentralized blockchains are immutable, which means that the data entered is
irreversible. For Bitcoin, transactions are permanently recorded and viewable to anyone.

How Does a Blockchain Work?

• You might be familiar with spreadsheets or databases. A blockchain is somewhat similar


because it is a database where information is entered and stored. The key difference
between a traditional database or spreadsheet and a blockchain is how the data is
structured and accessed.
• A blockchain consists of programs called scripts that conduct the tasks you usually would
in a database: entering and accessing information, and saving and storing it somewhere. A
blockchain is distributed, which means multiple copies are saved on many machines, and
they must all match for it to be valid.
• The Bitcoin blockchain collects transaction information and enters it into a 4MB file
called a block (different blockchains have different size blocks). Once the block is full,
the block data is run through a cryptographic hash function, which creates a hexadecimal
number called the block header hash.
• The hash is then entered into the following block header and encrypted with the other
information in that block’s header, creating a chain of blocks, hence the name
“blockchain.”

Transaction Process
1. Transactions follow a specific process, depending on the blockchain. For example, on
Bitcoin’s blockchain, if you initiate a transaction using your cryptocurrency wallet—the
application that provides an interface for the blockchain—it starts a sequence of events.

Created by Nandakishore 5
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

2. In Bitcoin, your transaction is sent to a memory pool, where it is stored and queued until
a miner picks it up. Once it is entered into a block and the block fills up with transactions,
it is closed, and the mining begins.
Blockchain
1. Every node in the network proposes its own blocks in this way because they all choose
different transactions. Each works on their own blocks, trying to find a solution to the
difficulty target, using the “nonce,” short for number used once.
2. The nonce value is a field in the block header that is changeable, and its value
incrementally increases with every mining attempt. If the resulting hash isn’t equal to or
less than the target hash, a value of one is added to the nonce, a new hash is generated,
and so on. The nonce rolls over about every 4.5 billion attempts (which takes less than
one second) and uses another value called the extra nonce as an additional counter. This
continues until a miner generates a valid hash, winning the race and receiving the reward.
3. Generating these hashes until a specific value is found is the “proof-of-work” you hear so
much about—it “proves” the miner did the work. The sheer amount of work it takes to
validate the hash is why the Bitcoin network consumes so much computational power
and energy.
4. Once a block is closed, a transaction is complete. However, the block is not considered
confirmed until five other blocks have been validated. Confirmation takes the network
about one hour to complete because it averages just under 10 minutes per block (the first
block with your transaction and five following blocks multiplied by 10 equals 60
minutes).
5. Not all blockchains follow this process. For instance, the Ethereum network randomly
chooses one validator from all users with ether staked to validate blocks, which are then
confirmed by the network. This is much faster and less energy intensive than Bitcoin’s
process.
Blockchain Decentralization
• A blockchain allows the data in a database to be spread out among several network
nodes—computers or devices running software for the blockchain—at various locations.
This creates redundancy and maintains the fidelity of the data. For example, if someone
tries to alter a record on one node, the other nodes would prevent it from happening by
comparing block hashes. This way, no single node can alter information within the chain.
• Because of this distribution—and the encrypted proof that work was done—the
blockchain data, such as transaction history, becomes irreversible. Such a record could be
a list of transactions, but private blockchains can also hold a variety of other information
like legal contracts, state identifications, or a company’s inventory. Most blockchains
wouldn’t “store” these items directly; they would likely be sent through a hashing
algorithm and represented on the blockchain by a token.
Blockchain Transparency
Because of the decentralized nature of the Bitcoin blockchain, all transactions can be
transparently viewed by downloading and inspecting them or by using blockchain explorers that
allow anyone to see transactions occurring live. Each node has its own copy of the chain that gets

Created by Nandakishore 6
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

updated as fresh blocks are confirmed and added. This means that if you wanted to, you could
track a bitcoin wherever it goes.
For example, exchanges have been hacked in the past, resulting in the loss of large amounts of
cryptocurrency. While the hackers may have been anonymous—except for their wallet address—
the crypto they extracted is easily traceable because the wallet addresses are stored on the
blockchain.
Of course, the records stored in the Bitcoin blockchain (as well as most others) are encrypted.
This means that only the person assigned an address can reveal their identity. As a result,
blockchain users can remain anonymous while preserving transparency.
Is Blockchain Secure?
Blockchain technology achieves decentralized security and trust in several ways. To begin, new
blocks are always stored linearly and chronologically. That is, they are always added to the “end”
of the blockchain. After a block has been added to the end of the blockchain, previous blocks
cannot be altered.
A change in any data changes the hash of the block it was in. Because each block contains the
previous block’s hash, a change in one would change the following blocks. The network would
generally reject an altered block because the hashes would not match. However, a change can be
accomplished on smaller blockchain networks.
Not all blockchains are 100% impenetrable. They are distributed ledgers that use code to create
the security level they have become known for. If there are vulnerabilities in the coding, they can
be exploited.
A new and smaller chain might be susceptible to this kind of attack, but the attacker would need
at least half of the computational power of the network (a 51% attack). On the Bitcoin and other
larger blockchains, this is nearly impossible. By the time the hacker takes any action, the
network is likely to have moved past the blocks they were trying to alter. This is because the rate
at which these networks hash is exceptionally rapid—the Bitcoin network hashed at a rate of
around 640 exahashes per second (18 zeros) as of September 2024.
1.The Ethereum blockchain is not likely to be hacked either—again, the attackers would need to
control more than half of the blockchain’s staked ether. As of September 2024, over 33.8 million
ETH has been staked by more than one million validators.
2. An attacker or a group would need to own over 17 million ETH, and be randomly selected to
validate blocks enough times to get their blocks implemented.
3.Bitcoin vs. Blockchain
Blockchain technology was first outlined in 1991 by Stuart Haber and W. Scott Stornetta, two
researchers who wanted to implement a system where document timestamps could not be
tampered with.
4. But it wasn’t until almost two decades later, with the launch of Bitcoin in January 2009, that
blockchain had its first real-world application.
Bitcoin

Created by Nandakishore 7
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The Bitcoin protocol is built on a blockchain. In a research paper introducing the digital
currency, Bitcoin’s pseudonymous creator, Satoshi Nakamoto, referred to it as “a new electronic
cash system that’s fully peer-to-peer, with no trusted third party.”
5.The key thing to understand is that Bitcoin uses blockchain as a means to transparently record
a ledger of payments or other transactions between parties.
Blockchain
• Blockchain can be used to immutably record any number of data points. The data can be
transactions, votes in an election, product inventories, state identifications, deeds to
homes, and much more.
• Currently, tens of thousands of projects are looking to implement blockchains in various
ways to help society other than just recording transactions—for example, as a way to vote
securely in democratic elections.
• The nature of blockchain’s immutability means that fraudulent voting would become far
more difficult. For example, a voting system could work such that each country’s citizens
would be issued a single cryptocurrency or token.
• Each candidate could then be given a specific wallet address, and the voters would send
their token or crypto to the address of whichever candidate they wish to vote for. The
transparent and traceable nature of blockchain would eliminate the need for human vote
counting and the ability of bad actors to tamper with physical ballots.
Blockchain vs. Banks
• Blockchains have been heralded as a disruptive force in the finance sector, especially
with the functions of payments and banking. However, banks and decentralized
blockchains are vastly different.
• To see how a bank differs from blockchain, let’s compare the banking system to Bitcoin’s
blockchain implementation.
How Are Blockchains Used?
• As we now know, blocks on Bitcoin’s blockchain store transactional data. Today, tens of
thousands of other cryptocurrencies run on a blockchain. But it turns out that blockchain
can be a reliable way to store other types of data as well.
• Some companies experimenting with blockchain include Walmart, Pfizer, AIG, Siemens,
and Unilever, among others. For example, IBM has created its Food Trust blockchain to
trace the journey that food products take to get to their locations.
• Why do this? The food industry has seen countless outbreaks of E. coli, salmonella, and
listeria; in some cases, hazardous materials were accidentally introduced to foods. In the
past, it has taken weeks to find the source of these outbreaks or the cause of sickness
from what people are eating.

Using blockchain allows brands to track a food product’s route from its origin, through each stop
it makes, to delivery. Not only that, but these companies can also now see everything else it may
have come in contact with, allowing the identification of the problem to occur far sooner—
potentially saving lives. This is one example of blockchain in practice, but many other forms of
blockchain implementation exist or are being experimented with.

Created by Nandakishore 8
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Banking and Finance

• Perhaps no industry stands to benefit from integrating blockchain into its business
operations more than personal banking. Financial institutions only operate during
business hours, usually five days a week. That means if you try to deposit a check on
Friday at 6 p.m., you will likely have to wait until Monday morning to see the money in
your account.

• Even if you make your deposit during business hours, the transaction can still take one to
three days to verify due to the sheer volume of transactions that banks need to settle.
Blockchain, on the other hand, never sleeps.

• By integrating blockchain into banks, consumers might see their transactions processed in
minutes or seconds—the time it takes to add a block to the blockchain, regardless of
holidays or the time of day or week. With blockchain, banks also have the opportunity to
exchange funds between institutions more quickly and securely. Given the sums
involved, even the few days the money is in transit can carry significant costs and risks
for banks.

• The settlement and clearing process for stock traders can take up to three days (or longer
if trading internationally), meaning that the money and shares are frozen for that period.
Blockchain can, in theory, drastically reduce that time.

Currency

Blockchain forms the bedrock for cryptocurrencies like Bitcoin. This design also allows for
easier cross-border transactions because it bypasses currency restrictions, instabilities, or lack of
infrastructure by using a distributed network that can reach anyone with an internet connection.

Healthcare

Healthcare providers can leverage blockchain to store their patients’ medical records securely.
When a medical record is generated and signed, it can be written into the blockchain, which
provides patients with proof and confidence that the record cannot be changed. These personal
health records could be encoded and stored on the blockchain with a private key so that they are
only accessible to specific individuals, thereby ensuring privacy.

Property Records

If you have ever spent time in your local Recorder’s Office, you will know that recording
property rights is both burdensome and inefficient. Today, a physical deed must be delivered to a
government employee at the local recording office, where it is manually entered into the county’s
central database and public index. In the case of a property dispute, claims to the property must
be reconciled with the public index.

Created by Nandakishore 9
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This process is not just costly and time-consuming, it is also prone to human error, where each
inaccuracy makes tracking property ownership less efficient. Blockchain has the potential to
eliminate the need for scanning documents and tracking down physical files in a local recording
office. If property ownership is stored and verified on the blockchain, owners can trust that their
deed is accurate and permanently recorded.

Proving property ownership can be nearly impossible in war-torn countries or areas with little to
no government or financial infrastructure and no Recorder’s Office. If a group of people living in
such an area can leverage blockchain, then transparent and clear timelines of property ownership
could be maintained.

Smart Contracts

A smart contract is computer code that can be built into the blockchain to facilitate transactions.
It operates under a set of conditions to which users agree. When those conditions are met, the
smart contract conducts the transaction for the users.

Supply Chains

As in the IBM Food Trust example, suppliers can use blockchain to record the origins of
materials that they have purchased. This would allow companies to verify the authenticity of not
only their products but also common labels such as “Organic,” “Local,” and “Fair Trade.”

As reported by Forbes, the food industry is increasingly adopting the use of blockchain to track
the path and safety of food throughout the farm-to-user journey.

Voting

As mentioned above, blockchain could facilitate a modern voting system. Voting with blockchain
carries the potential to eliminate election fraud and boost voter turnout, as was tested in the
November 2018 midterm elections in West Virginia.

Using blockchain in this way would make votes nearly impossible to tamper with. The
blockchain protocol would also maintain transparency in the electoral process, reducing the
personnel needed to conduct an election and providing officials with nearly instant results. This
would eliminate the need for recounts or any real concern that fraud might threaten the election.

Pros and Cons of Blockchain

For all of its complexity, blockchain’s potential as a decentralized form of record-keeping is


almost without limit. From greater user privacy and heightened security to lower processing fees
and fewer errors, blockchain technology may very well see applications beyond those outlined
above. But there are also some disadvantages.

Created by Nandakishore 10
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Pros

1. Improved accuracy by removing human involvement in verification

2. Cost reductions by eliminating third-party verification

3. Decentralization makes it harder to tamper with

4. Transactions are secure, private, and efficient

5. Transparent technology

6. Provides a banking alternative and a way to secure personal information for citizens of
countries with unstable or underdeveloped governments

Cons

1. Significant technology cost associated with some blockchains

2. Low number of transactions per second

3. History of use in illicit activities, such as on the dark web

4. Regulation varies by jurisdiction and remains uncertain

5. Data storage limitations

Benefits of Blockchains

Accuracy of the Chain

Transactions on the blockchain network are approved by thousands of computers and devices.
This removes almost all people from the verification process, resulting in less human error and
an accurate record of information. Even if a computer on the network were to make a
computational mistake, the error would only be made to one copy of the blockchain and not be
accepted by the rest of the network.

Cost Reductions

Created by Nandakishore 11
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Typically, consumers pay a bank to verify a transaction or a notary to sign a document.


Blockchain eliminates the need for third-party verification—and, with it, their associated costs.
For example, business owners incur a small fee when they accept credit card payments because
banks and payment-processing companies have to process those transactions. Bitcoin, on the
other hand, does not have a central authority and has limited transaction fees.

Decentralization
Blockchain does not store any of its information in a central location. Instead, the blockchain is
copied and spread across a network of computers. Whenever a new block is added to the
blockchain, every computer on the network updates its blockchain to reflect the change.

By spreading that information across a network, rather than storing it in one central database,
blockchain becomes significantly more difficult to tamper with.

Efficient Transactions

Transactions placed through a central authority can take up to a few days to settle. If you attempt
to deposit a check on Friday evening, for example, you may not actually see funds in your
account until Monday morning. Financial institutions operate during business hours, usually five
days a week—but a blockchain runs 24 hours a day, seven days a week, and 365 days a year.

On some blockchains, transactions can be completed and considered secure in minutes. This is
particularly useful for cross-border trades, which usually take much longer because of time zone
issues and the fact that all parties must confirm payment processing.

Private Transactions
Many blockchain networks operate as public databases, meaning anyone with an internet
connection can view a list of the network’s transaction history. Although users can access
transaction details, they cannot access identifying information about the users making those
transactions. It is a common misperception that blockchain networks like Bitcoin are fully
anonymous; they are actually pseudonymous because there is a viewable address that can be
associated with a user if the information gets out.

Secure Transactions
Once a transaction is recorded, its authenticity must be verified by the blockchain network. After
the transaction is validated, it is added to the blockchain block. Each block on the blockchain
contains its unique hash and the unique hash of the block before it. Therefore, the blocks cannot
be altered once the network confirms them.

Transparency

Created by Nandakishore 12
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Many blockchains are entirely open source. This means that everyone can view its code. This
gives auditors the ability to review cryptocurrencies like Bitcoin for security. However, it also
means there is no real authority on who controls Bitcoin’s code or how it is edited. Because of
this, anyone can suggest changes or upgrades to the system. If a majority of the network users
agree that the new version of the code with the upgrade is sound and worthwhile, then Bitcoin
can be updated.

Private or permission blockchains may not allow for public transparency, depending on how they
are designed or their purpose. These types of blockchains might be made only for an
organization that wishes to track data accurately without allowing anyone outside of the
permissioned users to see it.

Alternatively, there might come a point where publicly traded companies are required to provide
investors with financial transparency through a regulator-approved blockchain reporting system.
Using blockchains in business accounting and financial reporting would prevent companies from
altering their financials to appear more profitable than they really are.
Banking the Unbanked
Perhaps the most profound facet of blockchain and cryptocurrency is the ability for anyone,
regardless of ethnicity, gender, location, or cultural background, to use it. According to The
World Bank, an estimated 1.4 billion adults do not have bank accounts or any means of storing
their money or wealth.

Moreover, nearly all of these individuals live in developing countries where the economy is in
its infancy and entirely dependent on cash.

These people are often paid in physical cash. They then need to store this physical cash in hidden
locations in their homes or other places, incentivizing robbers or violence. While not impossible
to steal, crypto makes it more difficult for would-be thieves
.Drawbacks of Blockchains

Technology Cost

Although blockchain can save users money on transaction fees, the technology is far from free.
For example, the Bitcoin network’s proof-of-work system to validate transactions consumes vast
amounts of computational power. In the real world, the energy consumed by the millions of
devices on the Bitcoin network is more than the country of Pakistan consumes annually.
10

Created by Nandakishore 13
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Some solutions to these issues are beginning to arise. For example, bitcoin-mining farms have
been set up to use solar power, excess natural gas from fracking sites, or energy from wind
farms.

Speed and Data Inefficiency

Bitcoin is a perfect case study of the vinefficiencies of blockchain. Bitcoin’s PoW system takes
about 10 minutes to add a new block to the blockchain. At that rate, it’s estimated that the
blockchain network can only manage about seven transactions per second (TPS).
11
Although other cryptocurrencies, such as Ethereum, perform better than Bitcoin, the complex
structure of blockchain still limits them. Legacy brand Visa, for context, can process 65,000 TPS.
12

Solutions to this issue have been in development for years. There are currently blockchain
projects that claim tens of thousands of TPS. Ethereum is rolling out a series of upgrades that
include data sampling, binary large objects (BLOBs), and rollups. These improvements are
expected to increase network participation, reduce congestion, decrease fees, and increase
transaction speeds.
13

The other issue with many blockchains is that each block can only hold so much data. The block
size debate has been and continues to be one of the most pressing issues for the scalability of
blockchains in the future

Illegal Activity

While confidentiality on the blockchain network protects users from hacks and preserves
privacy, it also allows for illegal trading and activity on the blockchain network. The most cited
example of blockchain being used for illicit transactions is probably the Silk Road, an online
dark web illegal-drug and money laundering marketplace operating from February 2011 until
October 2013, when the FBI shut it down.
14

The dark web allows users to buy and sell illegal goods without being tracked by using the Tor
Browser and make illicit purchases in Bitcoin or other cryptocurrencies. This is in stark contrast
to U.S. regulations, which require financial service providers to obtain information about their
customers when they open an account. They are supposed to verify the identity of each customer
and confirm that they do not appear on any list of known or suspected terrorist organizations.

Created by Nandakishore 14
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

15

Illicit activity accounted for only 0.34% of all cryptocurrency transactions in 2023.
16
This system can be seen as both a pro and a con. It gives anyone access to financial accounts, but
allows criminals to transact more easily. Many have argued that the good uses of crypto, like
banking the unbanked, outweigh the bad uses of cryptocurrency, especially when most illegal
activity is still accomplished through untraceable cash.

Public perception of blockchain and cryptocurrencies, in particular, remains uneasy. High-profile


collapses of once-trusted cryptocurrency brokers, such as Mt. Gox back in 2014, or FTX in
November 2022, persistence of various crypto scams, and general skepticism towards new
technology and its bold promises, all contribute to ongoing public skepticism about a
decentralized future. As of 2024, 44% of Americans still say they will never purchase a
cryptocurrency.

Regulation

Many in the crypto space have expressed concerns about government regulation of
cryptocurrencies. Several jurisdictions are tightening control over certain types of crypto and
other virtual currencies. However, no regulations have yet been introduced that focus on
restricting blockchain uses and development, only certain products created using it.
What is decentralization?

• In blockchain, decentralization refers to the transfer of control and decision-making


from a centralized entity (individual, organization, or group thereof) to a distributed
network. Decentralized networks strive to reduce the level of trust that participants
must place in one another, and deter their ability to exert authority or control over
one another in ways that degrade the functionality of the network.
Data Storage
• Another significant implication of blockchains is that they require storage. This may
not appear to be substantial because we already store lots of information and data.
However, as time passes, the growing blockchain use will require more storage,
especially on blockchains where nodes store the entire chain.

• Currently, data storage is centralized in large centers. But if the world transitions to
blockchain for every industry and use, its exponentially growing size would require
more advanced techniques to make storage more efficient, or force participants to
continually upgrade their storage.

Created by Nandakishore 15
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• This could become significantly more expensive in terms of both money and
physical space needed, as the Bitcoin blockchain itself was over 600 gigabytes as of
September 15th, 2024—and this blockchain records only bitcoin transactions.

• This is small compared to the amount of data stored in large data centers, but a
growing number of blockchains will only add to the amount of storage already
required for the digital world.

What Exactly Is a Blockchain?


Simply put, a blockchain is a shared database or ledger. Bits of data are stored in files
known as blocks, and each network node has a replica of the entire database. Security is
ensured since the majority of nodes will not accept a change if someone tries to edit or
delete an entry in one copy of the ledger.

What Is a Blockchain in Easy Terms?


Imagine you typed some information into a document on your computer and sent it through
a program that gave you a string of numbers and letters (called hashing, with the string
called a hash). You add this hash to the beginning of another document and type
information into it. Again, you use the program to create a hash, which you add to the
following document. Each hash is a representation of the previous document, which
creates a chain of encoded documents that cannot be altered without changing the hash.
Each document is stored on computers in a network. This network of programs compares
each document with the ones they have stored and accepts them as valid based on the
hashes they generate. If a document doesn’t generate a hash that is a match, that
document is rejected by the network.

What Is a Blockchain for Beginners?


A blockchain is a distributed network of files chained together using programs that create
hashes, or strings of numbers and letters that represent the information contained in the
files. Every network participant is a computer or device that compares these hashes to the
one they generate. If there is a match, the file is kept. If there isn’t, the file is rejected.

The Bottom Line


With many practical applications for the technology already being implemented and
explored, blockchain is finally making a name for itself in no small part because of Bitcoin
and cryptocurrency. As a buzzword on the tongue of every investor across the globe,

Created by Nandakishore 16
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

blockchain stands to make business and government operations more accurate, efficient,
secure purposes, and cheap, with fewer intermediaries.

As we head into the third decade of blockchain, it’s no longer a question of if legacy
companies will catch on to the technology—it’s a question of when. Today, we see a
proliferation of NFTs and the tokenization of assets. Tomorrow, we may see a combination
of blockchains, tokens, and artificial intelligence all incorporated into business and
consumer solutions.

Why decentralization matters


Decentralization is not a new concept. When building a technology solution, three primary
network architectures are typically considered: centralized, distributed, and decentralized.
While blockchain technologies often make use of decentralized networks, a blockchain
application itself cannot be categorized simply as being decentralized or not. Rather,
decentralization is a sliding scale and should be applied to all aspects of a blockchain
application. By decentralizing the management of and access to resources in an
application, greater and fairer service can be achieved. Decentralization typically has some
tradeoffs such as lower transaction throughput, but ideally, the tradeoffs are worth the
improved stability and service levels they produce.
Benefits of decentralization

Provides a trustless environment


In a decentralized blockchain network, no one has to know or trust anyone else. Each
member in the network has a copy of the exact same data in the form of a distributed
ledger. If a member’s ledger is altered or corrupted in any way, it will be rejected by the
majority of the members in the network.

Improves data reconciliation


Companies often exchange data with their partners. This data, in turn, is typically
transformed and stored in each party’s data silos, only to resurface when it needs to be
passed downstream. Each time the data is transformed, it opens up opportunities for data
loss or incorrect data to enter the workstream. By having a decentralized data store, every
entity has access to a real-time, shared view of the data.

Reduces points of weakness


Decentralization can reduce points of weakness in systems where there may be too much
reliance on specific actors. These weak points could lead to systemic failures, including
failure to provide promised services or inefficient service due to the exhaustion of

Created by Nandakishore 17
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

resources, periodic outages, bottlenecks, lack of sufficient incentives for good service, or
corruption.

Optimizes resource distribution


Decentralization can also help optimize the distribution of resources so that promised
services are provided with better performance and consistency, as well as a reduced
likelihood of catastrophic failure.

How decentralization compares


Decentralization should be applied where it makes sense. Just because it’s a blockchain
application doesn’t mean it needs to be 100% decentralized. The goal of any blockchain
solution is to deliver what the users of that solution need, and this may or may not include
certain levels of decentralization. To better understand decentralized networks, the table
below breaks out how decentralized networks compare to the more common centralized
and distributed networks.

Blockchain
Each network architecture has its benefits and tradeoffs. For example, decentralized
blockchain systems, unlike distributed systems, typically prioritize security over
performance. So, when a blockchain network scales up or out, the network becomes more
secure, but performance slows down because each member node must validate all data
being added to the ledger. Adding members to a decentralized network can make it safer,
but not necessarily faster.

Who is building blockchain applications leveraging decentralization


• Every blockchain protocol, decentralized Application (dApp), Decentralized
Autonomous Organization (DAO), or other blockchain-related solution adopts
varying levels of decentralization. The adoption level is typically based on the
maturity of the solution, the time-proven reliability of its incentive models and
consensus mechanisms, and the ability of the founding team to strike the right
balance.
• For example, many DAOs have various components at different stages of
decentralization: oracles (i.e., third-party services that provide smart contracts with
external information) may be partly decentralized, smart contracts might be fully
centralized, while the governance process for adjusting parameters is community-
driven and decentralized.

Created by Nandakishore 18
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• On a broader scale, decentralized blockchain solutions are being explored and


adopted by organizations of every type, size, and industry. Some notable examples
include applications that provide immediate foreign or emergency aid to those who
need it most, without the mediation of a bank, government or third-party entity.
• Or applications that give people the ability to manage their own digital identities and
data. Today, social media platforms, companies, and other organizations sell this
information without the individual seeing any benefit. A decentralized approach
would help make it equitable for all.

A real-world example
• Contura Energy, a leading U.S.-based coal supplier, has depended on an outdated
letters of credit system to manage its international trade payments.
• These letters of credit, issued by an intermediary bank on behalf of its client, serve
as a guarantee of payment for buyers. While this system is trustworthy, it’s also
manually driven, slow, and highly inefficient.
• Contura Energy understands the importance and value of digitizing and automating
their letters of credit process. The challenge they face, however, is enabling mutual
trust and verification between sellers and buyers.
• They are working with AWS on a decentralized, blockchain-based innovation that
provides a more efficient, cost saving, and less risky system to manage international
trade payments.
• This decentralized solution also increases transparency, giving all parties real-time
visibility into the data and documentation.

Datafication is the Blockchain Technology

1. The creation, assortment, dispersal, and allotment of a wide range of data in


the digital domain don’t depend exclusively on public processes but more on
technologies. An algorithm decides the updates you see on Fb; press offices
rely on information research to survey the newsworthiness of data.
2. Online journals, blogs, and social networking websites are digitally trimmed
for data to target commercial advertisements at people.
3. Ethereum blockchain, a decentralized system, promises to change the digital
currency to improve logistics and help oversee digital identity in a
decentralized and trustless way. These algorithms are basically evolved and
utilized by private users.

Created by Nandakishore 19
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

4. Data is essential for social coordination, i.e., for services, and digital
information is the advanced example of data. This implies that the states of
the digital domain influence administration and services considerably.
5. AI and blockchain platforms are among the most unmistakable
representations of this trend. Increasingly more of our social associations
are being molded by these technologies.
6. The political and monetary sectors are additionally getting progressively
organized and directed by the impacts of AI and DLT, expanded availability,
and the administrations encompassing them.
7. Analysts and experts are prophesying an information upheaval that is as
equivalent in power and troublesome in intensity as the modern industrial
revolution.
Why is decentralization important?
Decentralization is actually not a new idea. When assembling a technological
arrangement, three essential network structures are commonly thought of: centralized,
decentralized, and disseminated. While blockchain technologies frequently utilize
decentralized networks, a blockchain application itself simply can’t be sorted as being
decentralized or not.
Maybe, decentralization is a sliding scale and should be applied to all parts of a blockchain
application. By decentralizing the administration of and admittance to assets in an
application, more prominent and more pleasant assistance can be accomplished.
Decentralization typically has a few setoffs, for example, lower exchange. However, such
setoffs are worth it in comparison to the improved security and services they provide.
Benefits of decentralization:

Facilitates a trustless setting

Created by Nandakishore 20
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In a decentralized blockchain system, trusting other members is not required. This is


because every member in the network has a duplicate or precisely the same information as
a disseminated record. In any case, where any member’s record is modified or tainted in
any way, it will be dismissed by most of the individuals in the network.

Improves data recovery


Corporations regularly trade information with their associates. This information, thus, is
regularly changed and put away in each party’s information storehouses, possibly to
reemerge when it requires to be passed downstream. Each time the information is
modified, it opens up circumstances for information loss or wrong information to enter the
workplace. By having a decentralized information store, each party has a timely and shared
impression of the data.

Reduces degrees of shortcoming


Decentralization can lessen degrees of shortcomings in frameworks where there might be
an excess of dependence on explicit workers. These tender spots could prompt critical
failures, including the inability to give guaranteed administrations or wasteful assistance
because of the weariness of assets, intermittent blackouts, bottlenecks, absence of
adequate motivations for excellent service, or fraud.

Optimized assets dispersion


Decentralization can likewise help streamline the dispersion of assets so that guaranteed
services are furnished with better execution and consistency, just as a decreased
probability of explosive letdown.
Closing Thoughts
• To sum up this in a simplified way, the decentralization in the blockchain is an
information base that stores a library of resources and trades across a peer-to-peer
network.
• The “resource” may not exclusively be cash or transactional data, yet additional
data regarding ownership, agreements, products, and some other data.
• A blockchain doesn’t copy the worth that is transmitted as other peer-to-peer
networks do. However, all things being considered, it enlists that credit has been
moved from one member to the next.
Why it matters
The nature of blockchain allows for trustless systems to be built on top of it. Users don’t
rely on a centralized group of people, such as a bank, to make decisions and allow
transactions to flow through. Because the system is decentralized, users know that
transactions will never be denied for non-custodial reasons.

Created by Nandakishore 21
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This decentralization enables use-cases that were previously impossible, such as


parametric insurance, decentralized finance, and decentralized organizations (DAOs),
among a few. This allows developers to build products that provide immediate value
without having to go through a bureaucratic process of applications, approvals, and general
red tape.

What Is Blockchain Technology?


DEFINITION
• A blockchain is a highly secure and reliable network that records data in a
distributed ledger that is not controlled by a central authority.
• A blockchain is a highly secure, reliable, and decentralized network that allows
people to record transaction activity, store data, and exchange value in a distributed
ledger that is not controlled by any central authority, but instead maintained by
computers all around the world.
• Blockchain is the foundational technology that underpins the value proposition of
the entire cryptocurrency/Web3 ecosystem. It’s the engine that secures Bitcoin and
establishes the foundation for why smart contracts have value.
• The fundamental value proposition of blockchains is the ability to exchange value in
a trust-minimized, permissionless way that doesn’t require the intermediation of
any third party. The most basic case possible to showcase this is payments or the
transfer of funds from one party to another.
• For example, let’s assume that Bob would like to send Alice a payment. Using legacy
systems, Bob would send his payment to a third party—a bank or financial
institution—that would take full custody of his funds and transfer those funds to
Alice. In the case of blockchains, Bob sends money directly to Alice’s account
without a centralized intermediary, but with full assurances that funds are
transferred between accounts. The transaction takes place in a decentralized
manner, without any intermediaries involved, enforced by deterministic processes
secured by cryptography, encryption, math, and physics.
• The difference In how the user’s funds are handled when making a payment through
a blockchain vs. the banking system
• The difference in how the user’s funds are handled when making a payment through
a blockchain vs. the banking system.
• In this educational post, we explore what a blockchain is, how blockchains work,
what benefits they can provide that aren’t present in centralized systems, and how
they’re being used to reshape the role of trust in society.

Created by Nandakishore 22
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Who Invented Blockchain Technology?


While protocols similar to blockchain were conceptualized as early as the 1980s and were
implemented in the 1990s for verification of document timestamps, the invention of the
first decentralized blockchain is widely attributed to the pseudonymous person (or group of
people) known as Satoshi Nakamoto, who published the Bitcoin whitepaper in 2008.

Blockchain technology serves as the backbone of the Bitcoin network, which was launched
in 2009 when its implementation was released as open-source software. Interestingly, the
word blockchain is never mentioned in the Bitcoin whitepaper — the term has been
popularized by later proponents of the technology.
How Does a Blockchain Work?
A ledger is a book or computer file that keeps track of economic activity. Ledgers can track
individual account balances and/or the ongoing movement of money within entire
economies. Today, most ledgers are handled by centralized entities such as a bank, which
maintain and store ledgers on their own servers in opaque databases.

A blockchain is a digital ledger that is stored and maintained by a decentralized network of


computers. Each computer (node) in the network runs the same software and maintains,
stores, and validates a copy of the ledger. Public blockchains use their own native asset
known as a cryptocurrency to financially incentivize nodes to communicate with one
another and reach an agreement (consensus) on the validity of the ledger.

Users propose additions to the ledger by submitting transactions that transfer value from
one account to another. User accounts are known as public keys (also called public
address) and each public key has an associated private key. The public key is akin to an
email address and the private key is similar to a password that the public key owner must
enter (called a digital signature) to transfer funds stored on their address.

Pending transactions are grouped together into “blocks”, where they are processed and
validated by each node in the network. Having each node check each transaction ensures
that changes to the ledger are redundantly validated, making it nigh impossible to make
malicious changes to the ledger or state of the network. For a transaction to be valid, the
digital signature must be correct and the public key must have sufficient funds to cover the
transaction.

Once a block is confirmed, it is appended to an ever-growing distributed ledger. The ledger


is a continual chain of blocks linked using cryptography, and is thus termed a “blockchain”.

Created by Nandakishore 23
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Nodes are rewarded for their services with transaction fees and/or newly minted
cryptocurrency (referred to as a block reward).

There are many different ways to design a blockchain, with each design having advantages
and disadvantages.

• Network Access & Participation – Blockchains can vary in terms of how open or
limited the network is to use and participate in. The three main types of blockchains:
public (completely open), private (completely closed), and permissioned (open
access, limited participation).
• Consensus Mechanism – Blockchains can reach consensus about transactions
through different means. Some of the most popular consensus mechanisms are
proof of work (Bitcoin), proof of stake (Solana), and proof of authority (most private
blockchains).
• Design Features – Blockchains currently cannot satisfy all desired qualities. Instead,
blockchains make tradeoffs to optimize certain feature sets over others between
security, decentralization, and scalability — commonly known as the Scalability
Trilemma. Other important design features include privacy, transaction finality, and
more.
Benefits of Blockchain
• Blockchains offer several value propositions not available in centralized systems.

• Security – In a sufficiently decentralized blockchain, there is a very high probability


that only valid transactions will be confirmed despite the efforts of malicious actors.
• Immutability – Once a block is redundantly confirmed, it becomes a part of the
unchangeable ledger that gets increasingly more difficult to alter over time.
• Reliability – Blockchains have globally distributed networks with 24/7 uptime. They
are always online and are not restricted geographically or politically.
• Peer-to-Peer – Blockchains cut out intermediaries that siphon off value from
transactions. Parties transact directly with each other without incurring any
counterparty risk—the probability that the other participant in the contract will not
fulfill their obligations.
• Overall, blockchains create infrastructure that two or more parties can use to
conduct highly secure, reliable, and tamper-proof economic exchange. The
counterparty risk is shifted from reliance on probabilistic trusted third parties to
reliance on deterministic open-source software that executes exactly as instructed.

Created by Nandakishore 24
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Companies become more efficient by avoiding reconciliations, removing


unnecessary intermediaries, and reducing counterparty risk.

Blockchain Use Cases and Applications


The Internet is a way of sharing digital information that can be applied in a multitude of
ways, such as email, messaging, telecommunication, social media, and more. The Web3
ecosystem powered by blockchains and hybrid smart contracts offers the same multi-use
application for exchanging value, which can be applied in many unique ways to create
utility for end-users through a wide range of use cases, ultimately creating a positive
impact for society.
Monetary System
Bitcoin demonstrates how a public permissionless blockchain can be used as a self-
contained financial ecosystem with its own monetary policy. Bitcoin has a native
currency—BTC—with built-in distribution mechanics and financial incentives to keep the
network operational without a central coordinator. Bitcoin has a censorship-resistant hard
cap on the money supply; there will never be more than 21 million BTC. These deflationary
monetary properties lead some to argue that BTC is a stronger store of value than
inflationary fiat currencies.

Smart Contracts
Blockchains such as Ethereum show how a public permissionless blockchain can be used
as a highly secure and reliable distributed computer for processing conditional agreements
known as smart contracts. Instead of tracking the movement of a single currency, users
send instructions to the blockchain that state “if x event happens, then execute y action.”
The blockchain processes these predefined instructions by producing outputs (transferring
value) based on inputs (data). This capability has enabled an entirely new financial
ecosystem of permissionless, transparent financial services known as decentralized
finance (DeFi).

Asset Tokenization
Several projects are using the blockchain as a global public registry for assets. Through a
smart contract, developers can create a unique non-fungible token (NFT) that represents
ownership of a real-world asset such as a building, car, rare trading card, or more.
Blockchains provide authenticity to asset ownership, transparent tracking of an asset’s life
cycle, and global liquidity to previously illiquid assets.

Enterprise Middleware

Created by Nandakishore 25
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchains can act as a middleware to ensure two or more enterprise databases have
matching records without putting their sensitive internal data on a public blockchain. Since
a public blockchain is always online, easily auditable, resistant to manipulation, and
permissionless to access, enterprises can use it to inform one another on actions taken by
either side by storing them as data on the blockchain. The data is stored using a privacy
technique known as a zero-knowledge proof (ZKP) where only parties in the agreement
have the context to understand its meaning. The proof serves as a common frame of
reference for the state of the business process; e.g. the current terms of a volume discount
agreement between a seller and buyer.

Ledger of Record
Blockchains can serve as immutable environments for storing historical records. Having a
highly trusted set of records reduces friction within fragmented markets which often
contain many disparate databases. Blockchains offer a “Ledger of Record” that can
improve the tracking of financial contracts, storing of medical records, tracking of
identities, and much more.

Utility
Blockchains can be designed to provide a specific utility. For example, to provide
distributed video streaming using a decentralized network of nodes, host a tamper-proof
online game, or immutably store files. Similar to torrent systems, blockchains provide a
way to harness the power of a decentralized network to produce a shared public utility.

Blockchain Gaming
Blockchains can serve as a way to track and verify ownership of assets via NFTs that
represent ownership of in-game digital items and collectibles. Players can tap into a global
liquidity pool and trade in-game assets at decentralized marketplaces while maintaining
full custody over them, enabling fully community-owned blockchain games. With the
potential of interoperable blockchain games and the metaverse, players might be able to
trade in-game assets between different games in the future.

Supply Chain
As an immutable distributed database, blockchain can improve supply chain processes by
enhancing traceability and improving coordination between different participants, enabling
faster and more cost-efficient delivery of products. Since each participant has their own
copy of the blockchain, each party can identify errors, review the status of transactions,
and hold counterparties responsible for their actions. No participant can overwrite

Created by Nandakishore 26
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

historical data as doing so would require having to rewrite all subsequent blocks on all
shared copies of the blockchain.

Insurance
The combination of blockchains, smart contracts, and oracles has shown the potential to
solve the problem of transparency in the traditional insurance industry, streamline the
insurance process for all participants, and make insurance available to regions that
otherwise would be isolated from the global insurance industry. Smart contracts offer
automated execution of insurance policies based on if/then parameters that can replace
the traditional claims process in a way that is highly transparent and reliable.

What Is The Blockchain And Why Does It Matter?

Everyone has heard the term “Bitcoin,” especially when its price hit $20,000 per coin in late
2017. Despite this, I’ve found that few people know what the word “blockchain” means.
The blockchain is the distributed ledger that cryptocurrencies run on. Without the
blockchain, the entire cryptocurrency market would not exist.

The blockchain was created by a pseudo-anonymous individual going by the name of


Satoshi Nakamoto. Satoshi’s innovation that powers cryptocurrencies is known as the
blockchain. It is a ledger of transactions that is distributed on computers all over the world.
The ledger automatically updates with every transaction and can be viewed by anyone at
any time. Essentially, the entirety of the network reaches a consensus on each of the
transactions, thereby preventing false transactions from being added to the ledger.
Specialized computer hardware, called miners, carries out the process of verifying and
adding transactions to the blockchain ledger. The miners are rewarded in cryptocurrency
for carrying out these transactions.

As the CEO of a blockchain mining company that develops mining software and hardware,
I’d like to talk about how the blockchain works and where the industry may be heading.

The blockchain has been described as the biggest innovation since the internet. Billions of
dollars have been invested into projects that are building technology on the blockchain.
The most successful application of this technology to date has been in the use of
cryptocurrencies such as Bitcoin. (Full disclosure: My company holds Bitcoin, Ethereum,
XRP and other cryptocurrencies.) Cryptocurrency is special because it provides the
anonymity of physical cash without the need to be controlled by a central authority, such
as a bank.

Created by Nandakishore 27
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

E-gold was introduced in 1996 and became the first successful digital currency system.
Due to a lack of trust over the internet, we needed centralized authorities, such as banks,
through which to route our monetary transactions. Cryptocurrency, through the blockchain
ledger, created something like digital cash. It is anonymous, nontraceable, instant and
decentralized. Cryptocurrencies allow us to transfer value without a centralized authority.
Thus, the blockchain is often considered to be a solution to something known as the
Byzantine Generals problem.

Because we can’t trust everyone over the internet, the internet has filled up with a massive
number of third parties. The function of these parties is to store and verify our information.
Facebook, Google, PayPal and Amazon are examples of third parties that have monetized
our data. Unfortunately, the storage of our data by one central authority does have its
disadvantages. The central authority becomes a target for hacks and misuse of customer
data. Cambridge Analytica, which involved Facebook user data being used to manipulate
the electoral process, is an infamous example of this.

Despite the positives of the blockchain, it currently comes with limitations. Maintaining the
ledger takes a lot of work, and the machines that carry out this process consume a lot of
electricity. Recent data has estimated that the power consumed by the Bitcoin network
surpasses the power consumption of some countries. Furthermore, Bitcoin carries out less
than a dozen transactions per second, while Visa’s system can do 65,000 transactions per
second. It’s important to note that there are other cryptocurrencies that do not have these
limitations. XRP, a coin from the company Ripple, can purportedly do 1,500 transactions
per second at a negligible power cost. So, although there are other promising coins, Bitcoin
is still the most widely known in the market, perhaps because it was the blockchain’s first
trial run.

Just as gold’s value comes from what people perceive it to be worth, cryptocurrency value
stems from the same principle. In 2010, one Bitcoin was worth six cents; at the time of
writing this article, one Bitcoin is worth over $8,000. The billions invested into blockchain
projects are an indication that people are optimistic the blockchain can revolutionize more
than just money.

Entrepreneurs looking to break into the blockchain space should remember, however, that
there are many poor applications of this technology. I’ve seen companies using the
blockchain simply because they see so much hype around it. In many cases, a centralized
database is a better way of storing data. So, when considering the use of blockchain for

Created by Nandakishore 28
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

your company or for a specific project, it would be wise to thoroughly assess it to make
sure there’s a genuine need for the technology. You can find countless online courses on
the topic to learn more.

Web3/Crypto: Why Bother?

One thing that keeps surprising me is how quite a few people see absolutely nothing
redeeming in web3 (née crypto). Maybe this is their genuine belief. Maybe it is a reaction to
the extreme boosterism of some proponents who present web3 as bringing about a
libertarian nirvana. From early on I have tried to provide a more rounded perspective,
pointing to both the good and the bad that can come from it as in my talks at the Blockstack
Summits.

Today, however, I want to attempt to provide a cogent explanation for why bothering about
web3 makes sense. This requires telling a bit of a story and also understanding the nature
of disruptive innovation. The late Clayton Christensen characterized this type of innovation
as being worse at everything except for one dimension, but where that dimension really
winds up mattering a lot (and then over time everything else gets better also as the
innovation is widely adopted).

The canonical example here Is the personal computer (PC). The first PCs were worse
computers than every existing machine. They had less memory, less storage, slower CPUs,
less software, couldn’t multitask, etc. But they were better at one dimension: they were
cheap. And for those people who didn’t have a computer at all that mattered a great deal. It
is exactly this odd combination that made existing computer manufacturers (making
mainframes down to mini computers) ignore the PC. They only focused on all the bad parts
and ignored the one positive dimension or to the extent that they understood it they tried to
compete by making their own product cheaper. Other than IBM, they never embraced the
PC and went out of business or were absorbed by other companies.

A blockchain Is a worse database. It is slower, requires way more storage and compute,
doesn’t have customer support, etc. And yet it has one dimension along which it is radically
different. No single entity or small group of entities controls it – something people try to
convey, albeit poorly, by saying it is “decentralized.”

Ok, so how is this remotely the same as PCs being cheaper? Well because to some people
this matters a great deal. Why? Because much of the power held by large companies (and
by governments) comes from the fact that they operate and control databases. Facebook

Created by Nandakishore 29
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

alone gets to decide who can read and write from their database and what parts of it
anyone can see. They alone can make changes to this database. This turns out to be the
source of Facebook’s power in the world. Many people rightly see this power as a problem,
but fail to see how the structure of the original web technology directly contributed to this
extreme centralization.

It Is useful to go back to the beginning of the web to see how we got here. When (now Sir)
Tim Berners-Lee invented the HyperText Transfer Protocol (HTTP) he unleashed what we
now think of as permissionless publishing. Anyone can put up a web page and anyone with
a browser can access it. This was an amazing breakthrough, as pretty much all publishing
previously had required going through a publisher of some kind, who decided what should
and should not be published. And while some people bemoan this as a loss, I consider it a
gain in access to knowledge for many creators and learners who previously were kept at the
margins or shut out entirely.

HTTP though is a so-called stateless protocol. That means there is no memory built directly
into the protocol. It doesn’t have a notion of a database. So for example if you want to build
something as simple as a shopping cart that can hold multiple items, you need to
implement the data storage somewhere that’s not part of HTTP itself. Marc Andreessen and
his team at Netscape invented cookies to help solve this problem (sadly a far less elegant
mechanism than what Roy Fielding proposed in his dissertation on REST years later).

Cookies are files that get sent along with HTTP requests and can be read by and then
written to by the web server. In the early days people would literally write the items in a
shopping cart directly into cookie files. But because these files sit locally on a client
computer, it meant that someone couldn’t start shopping on their desktop computer at
work and then finish shopping once they got home. So instead these days cookies tend to
just contain user IDs and all the other database functions reside on the servers.

As a first approximation all the big powerful internet companies are really database
providers. Facebook is a database of people’s profiles, their friend graphs and their status
updates. Paypal is a database of people’s account balances. Amazon is a database of
SKUs, payment credentials and purchase histories. Google is a database of web pages and
query histories. Of course all of these companies have built a great deal more over time,
but operating a database has stayed at the core of why they are powerful. Only they get to
decide who has permission to read and write to this database and which parts of it they get
access to.

Created by Nandakishore 30
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Put differently: it turned out that permissionless publishing alone was insufficient. We also
need permissionless data. Why do we need this? Because otherwise we are left with a few
large corporations controlling much of what happens on the internet, which then leads us
to all sort of regulatory contortions aimed at rectifying the power imbalance but in practice
mostly cementing it. We of course know where this winds up and that’s why pretty much
everyone hates their cable company and their electric utility.

Now the important part to keep in mind here is that prior to the Bitcoin Paper we literally
didn’t know how to have permissionless. Yes, we had distributed databases. And yes, we
had federated databases. But all of those still had a small group of entities in charge (cf
pretty much every financial network such as ACH or VISA). We didn’t have a protocol for
maintaining consensus – meaning agreeing on what’s in the database – that would allow
anyone to join the protocol (as well as anyone to leave).

It is difficult to overstate how big an innovation this is. We went from not being able to do
something at all to having a first working version. Again to be clear, I am not saying this will
solve all problems. Of course it won’t. And it will even create new problems of its own. Still,
permissionless data was a crucial missing piece – its absence resulted in a vast power
concentration. As such Web3 can, if properly developed and with the right kind of
regulation, provide a meaningful shift in power back to individuals and communities.

And if widely adopted Web3/crypto technology will also start to improve along other
dimensions. It will become faster and more efficient. It will become easier and safer to use.
And much like the PC was a platform for innovation that never happened on mainframes or
mini computers, Web3 will be a platform for innovation that would never come from
Facebook, Amazon, Google, etc.

Why is Blockchain Important and Why Does it Matter


What is Blockchain Technology?What Are the Benefits of Blockchain Technology?Building
Trust in GovernmentBlockchain SecurityIncreasing Government AccountabilityView More
The rapid progress of Blockchain technology is showing no signs of slowing down. In the
past few decades, many things that seemed impossible have turned out to be false, such
as high transaction fees, double spending, net fraud, retrieving lost data, etc. But, now all
this can be avoided with the help of Blockchain Technology

What is Blockchain Technology?


Blockchain started in 1991 as a way to store and secure digital data. Blockchain is an open
ledger that several parties can access at once. One of its primary benefits is that the

Created by Nandakishore 31
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

recorded information is hard to change without an agreement from all parties involved. IBM
explained that each new record becomes a block with a unique, identifying hash. Linking
the blocks into a chain of records forms a blockchain. Bitcoin cryptocurrency uses
blockchain technology.

Blockchain helps in the verification and traceability of multistep transactions needing


verification and traceability. It can provide secure transactions, reduce compliance costs,
and speed up data transfer processing. Blockchain technology can help contract
management and audit the origin of a product. It also can be used in voting platforms and
managing titles and deeds.

Note: The data is recorded in chronological order. Also, once the data is recorded, it cannot
be changed.

What Are the Benefits of Blockchain Technology?


• Here’s a list of key benefits you can expect to achieve when adopting Blockchain
technology into your business:

• It is an immutable public digital ledger, which means when a transaction is


recorded, it cannot be modified
• Due to the encryption feature, Blockchain is always secure
• The transactions are done instantly and transparently, as the ledger is updated
automatically
• As it is a decentralized system, no intermediary fee is required
• The authenticity of a transaction is verified and confirmed by participants
• Building Trust in Government
• A Pew Research Center study published last May stated that American trust in
government is near an all-time low. Only about one-quarter of Americans say they
can trust the government in Washington to do what is right “just about always” (2%)
or “most of the time” (22%). Only 18 percent of Americans say they can trust the
government to do what is right most of the time.

Booz Allen Hamilton consulting firm wrote that the government could benefit from
blockchain-based applications because it offers transparency through decentralization,
allowing participating stakeholders to see and verify data. In addition, blockchain can
enable independent verification of governmental claims. The firm wrote that Sweden,

Created by Nandakishore 32
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Estonia, and Georgia are experimenting with blockchain-based land registries, which could
help quickly resolve or prevent property disputes.

Blockchain Security
One of the negatives of digital transformation has been the growth in personal data theft.
Government databases are a target of cyber hackers. Database hacks have exposed
names, Social Security numbers, birthdates, addresses, and driver’s license numbers of
millions of Americans, such as the 2017 Equifax database breach. Booz Allen Hamilton
wrote that blockchain data structures harden network security by reducing single-
point-of-failure risk, making a database breach difficult.

The Department of Homeland Security is researching blockchain approaches to data


security, such as managing online identity and internet access. McKinsey said the
technology could store hash values of citizen documents on the blockchain, allowing
governments to provide a verifiable electronic version of these documents when needed.

Increasing Government Accountability


In specific applications, blockchain could reduce government redundancy, streamline
processes, decrease audit burden, increase security, and ensure data integrity. One
process ripe for streamlining is GSA’s FASTLane process, which manages incoming
proposals from vendors. Booz Allen Hamilton wrote it currently takes 40 days to process
incoming submissions. However, GSA hopes that a blockchain solution will help process
them in 10 days.

Reducing Government Corruption


While blockchain won’t prevent crime, the World Economic Forum (WEF) wrote there are
five use cases to address weaknesses in government systems.

Public Procurement / Government Contracting


WEF wrote that government contracting is the largest area of government spending with the
greatest potential for corruption worldwide. A blockchain-based process can facilitate
third-party oversight of transactions and provide greater objectivity and uniformity through
automated contracts. There also would be more transparency and accountability of
transactions and participants. However, its implementation could be hindered by how it’s
deployed. WEF wrote that the easier it is to access and use the blockchain platform, the
more vulnerable it is to abuse. Further, if offline transactions continue outside of the
blockchain platform, its anti-corruption potential will be limited.

Created by Nandakishore 33
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Land Title Registries


As mentioned earlier, blockchain is a way for some countries to increase efficiency in land
title registries. WEF wrote that Honduras and India are working on using blockchain to
expand property rights and enhance transparency in a process known to have corrupt
practices. Blockchain-based land registries could provide a secure, decentralized, publicly
verifiable, and immutable record system where people could prove their land rights. A
limitation would be that countries without land registries would have to build and digitize
the information before blockchain could be used.

Electronic Voting
Governments are considering blockchain-based voting platforms due to concerns about
election security, voter registration integrity, poll accessibility, and voter turnout.
Blockchain’s information security qualities could help address election tampering and
increase poll accessibility. WEF said a limitation would be blockchain’s vulnerability to
cyberattacks and other security issues.

Beneficial Corporate Ownership Registries


According to WEF, secretly operated companies present avenues for money laundering,
influence peddling, and steering government investments. Blockchain can develop central
registries to help track conflicts of interest and criminal activity. It also could provide
transparency and disclosure. However, there are several limitations as most countries
don’t require companies to maintain beneficial ownership information themselves. Also, a
blockchain-based registry would require buy-in from politicians, lawyers, banks, and big
business, which may be a heavy lift in some locations.

Grant Disbursements
Because of the millions of dollars granted to various institutions, the opaque donation
process is ripe for inefficiency and corruption. Blockchain could reduce the number of
actors and managers, could streamline the process, and improve verification. WEF said a
limitation would be among the less technologically savvy who might be excluded from
grant disbursement processes. In addition, it would not address how recipients spend
grant money.

How Will Blockchain Disrupt Industries?


Several industries like Unilever, Walmart, Visa, etc. use blockchain technology and have
gained benefits in transparency, security, and traceability. Considering the benefits
blockchain offers, it will revolutionize and redefine many sectors.

Created by Nandakishore 34
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Here are the top 5 prominent industries that will be disrupted by blockchain technology in
the near future:
1. Banking
2. Cyber Security
3. Supply Chain Management
4. Healthcare
5. Government
1. Banking
• Before Blockchain
Banking has transfer fees, which can be both expensive and time-consuming for people.
Also, sending money overseas becomes even more difficult due to the exchange rate and
other hidden costs.
• After Blockchain
Blockchain eliminates the need for a middleman. Blockchain is disrupting the banking
system by providing a peer-to-peer payment system with the highest security and low fees.

Blockchain technology provides instant and borderless payments across the globe
Cryptocurrencies (like Ethereum, bitcoin) remove the requirement for a third party to
perform transactions
Blockchain records all the transactions in a public ledger which is globally accessible by
bitcoin users
Let’s consider an example of ABRA
Abra is a financial cryptocurrency application which helps in performing peer-to-peer
money transfers
With this application, cryptocurrency users can save, send and receive their digital money
on their electronic devices
2. Cyber Security
• Before Blockchain
Earlier, cyberattacks were a significant threat to the public. Several organizations were
developing an effective solution to secure the data against unauthorized access and
tampering.

• After Blockchain
Blockchain quickly identifies malicious attack due to the peer-to-peer connections where
data cannot be tampered with
Every single piece of data stored on the blockchain network is verified and encrypted using
a cryptographic algorithm

Created by Nandakishore 35
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

By eliminating the centralized system, blockchain provides a transparent and secure way of
recording transactions (without disclosing your private information to anyone)
For example, a software security company called Guardtime offers blockchain-based
products and services.

Rather than following the centralized system, the company utilizes blockchain technology
and distributes data to its nodes.

3. Supply Chain Management


• Before Blockchain
Due to the lack of transparency, supply chain management often had its challenges like
service redundancy, lack of coordination between various departments, and lack of
reliability.

• After Blockchain
• Tracking of a product can be done with blockchain technology, by facilitating
traceability across the entire Supply chain.
• Blockchain gives the facility to verify and audit transactions by multiple supply chain
partners involved in the supply chain management system.
• Blockchain records transaction (history, timestamp, date, etc.) of a product in a
decentralized distributed ledger
• Each transaction is recorded into a block
• With blockchain, anyone can verify the authenticity or status of a product being
delivered
• Let’s consider an example of the Pacific Tuna project.

Here, blockchain supply chain management provides a step-by-step verification process to


track tuna fish. The process results in preventing illegal fishing.
4. Healthcare
Before Blockchain
In the healthcare system, patients can connect to other hospitals and collect their medical
data immediately. Apart from the delay, there are high data corruption chances since the
information is stored in a physical memory system.
After Blockchain
Blockchain removes a central authority, which results in instant access to data
Here, each block is linked to another block and distributed across the computer node. This
becomes difficult for a hacker to corrupt the data

Created by Nandakishore 36
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

For example, United Healthcare is an American healthcare company that has enhanced its
privacy, security, and medical records’ interoperability using Blockchain.
5. Government
Before Blockchain
Rigged votes is an illegal activity that occurs during most traditional voting systems. Also,
citizens who want to vote to wait a little longer in a queue and cast their votes to a local
authority, which is a very time-consuming process.
After Blockchain
Voters are allowed to vote without the need of disclosing their identity in public
The votes are counted with high accuracy by the officials knowing that each ID can be
attributed to just one vote
As soon the vote is added to the public ledger, the information can never be erased
Consider an example of MiVote
MiVote is a token-based blockchain platform that is similar to a digital ballot box
Using MiVote, through a smartphone, voters can cast their votes, where the records are
stored in the blockchain securely
Moving forward, let’s understand the fundamentals of Blockchain.
Fundamentals of Blockchain
1. Public Distributed Ledgers
A blockchain is a decentralized public distributed ledger that is used to record transactions
across many computers
A distributed ledger is a database that is shared among the users of the blockchain network
The transactions are accessed and verified by users associated with the bitcoin network,
thereby making it less prone to cyberattack
2. Encryption
Blockchain eliminates unauthorized access by using the cryptographic algorithm (SHA256)
to ensure the blocks are kept secure
Each user in the blockchain has their key
3. Proof of Work
Proof of work (PoW) is a method to validate transactions in a blockchain network by solving
a complex mathematical puzzle called mining.
Note: Users trying to solve the puzzle are called miners.
4. Mining
In Blockchain, when miners use their resources (time, money, electricity, etc.) to validate a
new transaction and record them on the public ledger, they are given a reward.
Note: As a reward, the miner gets 12.5 BTC (bitcoins)

FAQs

Created by Nandakishore 37
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

1. What Is a Blockchain in simple terms?


Blockchain is a method of storing data that makes it difficult or impossible to update, hack,
or defraud the system. A blockchain is simply a digital ledger of transactions that is
replicated and distributed across the blockchain’s complete network of computer systems.
Why is blockchain technology the future?
Blockchain facilitates the verification and traceability of multistep transactions that require
verification and traceability. It can ensure secure transactions, lower compliance
expenses, and accelerate data transfer processing. Blockchain technology can aid in
contract administration and product auditing.
2. How Many Blockchains Are There?
There are currently over 10,000 additional cryptocurrency systems running on blockchain.
However, it has been shown that blockchain is also a reliable method of recording data
about other types of transactions.
3. Difference Between a Private Blockchain and a Public Blockchain?
Public blockchains are accessible to anybody; private blockchains are only accessible to a
limited number of users; and permissioned blockchains are a hybrid of public and private
blockchains that anyone may access as long as they have permission from the
administrators.
4. What Is a Blockchain Platform?
A blockchain platform enables users and developers to build new applications on top of
existing blockchain infrastructure. One example is Ethereum, which has its own
cryptocurrency called ether (ETH). However, the Ethereum blockchain enables the
development of smart contracts, programmable tokens used in initial coin offerings (ICOs),
and non-fungible tokens (NFTs). These are all built around the Ethereum technology and
safeguarded by Ethereum network nodes.
5. Are cryptocurrencies and Blockchain the same?
Blockchain is the technology that allows cryptocurrencies to exist (among other things).
Bitcoin is the most well-known cryptocurrency, and it was for it that blockchain technology
was established.
6. What is the scope of Blockchain?
Blockchain technology has been used brilliantly in the banking industry. Financial
institutions were unable to handle the additional demand following demonetization,
stressing the necessity for a centralized specialist to handle financial transactions.
7. What does a block in a Blockchain mean?
Blocks are used to store batches of valid transactions that have been hashed and encoded
into a Merkle tree. Each block contains the cryptographic hash of the previous block in the
blockchain, which connects the two. A chain is formed by the linked blocks.

Created by Nandakishore 38
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Conclusion
Blockchain technology is only going to grow in the fields of business, finance, law,
medicine, and real estate. Whether you’re an experienced Blockchain developer, or you’re
aspiring to break into this exciting industry, enrolling in our Blockchain Certification Training
program will help individuals with all levels of experience to learn Blockchain developer
techniques and strategies.

What is Blockchain Architecture?

For starters, let’s first learn what is blockchain technology. Logically, a blockchain is a
chain of blocks which contain specific information (database), but in a secure and genuine
way that is grouped together in a network (peer-to-peer). In other words, blockchain is a
combination of computers linked to each other instead of a central server, meaning that
the whole network is decentralized.

To make it even simpler, the blockchain concept can be compared to work done with
Google Docs. You may recall the days of tossing over doc. Documents and waiting for other
participants to make necessary edits. These days, with the help of Google Docs, it is
possible to work on the same document simultaneously.

The blockchain technique allows digital information to be distributed, rather than copied.
This distributed ledger provides transparency, trust, and data security.

Blockchain architecture is being used very broadly in the financial industry. However, these
days, this technology helps create software development solutions for cryptocurrencies
and record keeping, digital notary, and smart contracts.

Created by Nandakishore 39
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Database vs. Blockchain Architecture

The traditional architecture of the World Wide Web uses a client-server network. In this
case, the server keeps all the required information in one place so that it is easy to update,
due to the server being a centralized database controlled by a number of administrators
with permissions.

In the case of the distributed network of blockchain architecture, each participant within
the network maintains, approves, and updates new entries. The system is controlled not
only by separate individuals, but by everyone within the blockchain network. Each member
ensures that all records and procedures are in order, which results in data validity and
security. Thus, parties that do not necessarily trust each other are able to reach a common
consensus.

To summarize things, the blockchain is a decentralized, distributed ledger (public or


private) of different kinds of transactions arranged into a P2P network. This network
consists of many computers, but in a way that the data cannot be altered without the
consensus of the whole network (each separate computer).
The structure of blockchain technology is represented by a list of blocks with transactions
in a particular order. These lists can be stored as a flat file (txt. Format) or in the form of a
simple database. Two vital data structures used in blockchain include:
• Pointers – variables that keep information about the location of another variable.
Specifically, this is pointing to the position of another variable.
• Linked lists – a sequence of blocks where each block has specific data and links to
the following block with the help of a pointer.

Created by Nandakishore 40
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchain Hashing

Logically, the first block does not contain the pointer since this one is the first in a chain. At
the same time, there is potentially going to be a final block within the blockchain database
that has a pointer with no value.
• Basically, the following blockchain sequence diagram is a connected list of records:

Blockchain Structure

Blockchain architecture can serve the following purposes for organizations and
enterprises:

• Cost reduction – lots of money is spent on sustaining centrally held databases (e.g.
banks, governmental institutions) by keeping data current secure from cyber crimes
and other corrupt intentions.

Created by Nandakishore 41
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• History of data – within a blockchain structure, it is possible to check the history of


any transaction at any moment in time. This is a ever-growing archive, while a
centralized database is more of a snapshot of information at a specific point.

• Data validity & security – once entered, the data is hard to tamper with due to the
blockchain’s nature. It takes time to proceed with record validation, since the
process occurs in each independent network rather than via compound processing
power. This means that the system sacrifices performance speed, but instead
guarantees high data security and validity.

Types of Blockchain Architecture Explained

All blockchain structures fall into three categories:

Public blockchain architecture


A public blockchain architecture means that the data and access to the system is available
to anyone who is willing to participate (e.g. Bitcoin, Ethereum, and Litecoin blockchain
systems are public).

Private blockchain architecture


As opposed to public blockchain architecture, the private system is controlled only by
users from a specific organization or authorized users who have an invitation for
participation.
Consortium blockchain architecture
This blockchain structure can consist of a few organizations. In a consortium, procedures
are set up and controlled by the preliminary assigned users.

The following table provides a detailed comparison among these three blockchain
systems:

Created by Nandakishore 42
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Property Public blockchain Consortium Private blockchain


blockchain
Consensus All miners Selected set of Within one
determination nodes organization
Read permission Public Public or restricted Public or restricted
Immutability level Almost impossible Could be tampered Could be tampered
to tamper
Efficiency (use of Low High High
resources)
Centralization No Partial Yes
Consensus process Permissionless Needs permission Needs permission
• As mentioned, blockchain is a distributed journal where all parties hold a local copy.
However, based on the type of blockchain structure and its context, the system can
be more centralized or decentralized. This simply refers to the blockchain
architecture design and who controls the ledger.

• A private blockchain is considered more centralized since it is controlled by a


particular group with increased privacy. On the contrary, a public blockchain is
open-ended and thus decentralized.

• In a public blockchain, all records are visible to the public and anyone could take
part in the agreement process. On the other hand, this is less efficient since it takes
a considerable amount of time to accept each new record into the blockchain
architecture.

• In terms of efficiency, the time for each transaction in a public blockchain is less
eco-friendly since it requires a huge amount of computation power compared to
private blockchain architecture.

Core Components of Blockchain Architecture: How Does It Work


These are the core blockchain architecture components:
• Node – user or computer within the blockchain architecture (each has an
independent copy of the whole blockchain ledger)
• Transaction – smallest building block of a blockchain system (records, information,
etc.) that serves as the purpose of blockchain
• Block – a data structure used for keeping a set of transactions which is distributed
to all nodes in the network
• Chain – a sequence of blocks in a specific order

Created by Nandakishore 43
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Miners – specific nodes which perform the block verification process before adding
anything to the blockchain structure
• Consensus (consensus protocol) – a set of rules and arrangements to carry out
blockchain operations
Any new record or transaction within the blockchain implies the building of a new block.
Each record is then proven and digitally signed to ensure its genuineness. Before this block
is added to the network, it should be verified by the majority of nodes in the system.

The following is a blockchain architecture diagram that shows how this actually works in
the form of a digital wallet.

Let’s have a closer look at what is a block in a blockchain. Each blockchain block consists
of:
• Certain data
• The hash of the block
• The hash from the previous block
• The data stored inside each block depends on the type of blockchain. For instance,
in the Bitcoin blockchain structure, the block maintains data about the receiver,
sender, and the amount of coins.

• A hash is like a fingerprint (long record consisting of some digits and letters). Each
block hash is generated with the help of a cryptographic hash algorithm (SHA 256).
Consequently, this helps to identify each block in a blockchain structure easily. The
moment a block is created, it automatically attaches a hash, while any changes
made in a block affect the change of a hash too. Simply stated, hashes help to
detect any changes in blocks.

Created by Nandakishore 44
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• The final element within the block is the hash from a previous block. This creates a
chain of blocks and is the main element behind blockchain architecture’s security.
As an example, block 45 points to block 46. The very first block in a chain is a bit
special – all confirmed and validated blocks are derived from the genesis block.

• Any corrupt attempts provoke the blocks to change. All the following blocks then
carry incorrect information and render the whole blockchain system invalid.

• On the other hand, in theory, it could be possible to adjust all the blocks with the
help of strong computer processors. However, there is a solution that eliminates
this possibility called proof-of-work. This allows a user to slow down the process of
creation of new blocks. In Bitcoin blockchain architecture, it takes around 10
minutes to determine the necessary proof-of-work and add a new block to the
chain. This work is done by miners – special nodes within the Bitcoin blockchain
structure. Miners get to keep the transaction fees from the block that they verified as
a reward.

• Each new user (node) joining the peer-to-peer network of blockchain receives a full
copy of the system. Once a new block is created, it is sent to each node within the
blockchain system. Then, each node verifies the block and checks whether the
information stated there is correct. If everything is alright, the block is added to the
local blockchain in each node.

• All the nodes inside a blockchain architecture create a consensus protocol. A


consensus system is a set of network rules, and if everyone abides by them, they
become self-enforced inside the blockchain.

• For example, the Bitcoin blockchain has a consensus rule stating that a transaction
amount must be cut in half after every 200,000 blocks. This means that if a block
produces a verification reward of 10 BTC, this value must be halved after every
200,000 blocks.

• As well, there can only be 4 million BTC left to be mined, since there is a maximum
of 21 million BTC laid down in the Bitcoin blockchain system by the protocol. Once
the miners unlock this many, the supply of Bitcoins ends unless the protocol is
changed.

Created by Nandakishore 45
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• To recap, this makes blockchain technology immutable and cryptographically


secure by eliminating any third-parties. It is impossible to tamper with the
blockchain system; as it would be necessary to tamper with all of its blocks,
recalculate the proof-of-work for each block, and also control more than 50% of all
the nodes in a peer-to-peer network.

How to Make a Private Blockchain Architecture


A decentralized blockchain application is designed just the same as any other normal
software product. Functional specification, UX/UI designs, and an architecture plan are
required for its development. It is crucial to identify the app’s functionality, user roles, and
think over the system flow and the interaction between users and information.

In order to build your own blockchain architecture, it is necessary to consider:


• BLOCKCHAIN Network- refers to the application’s infrastructure placed within a
particular environment inside one, or a few, organizations.
• Blockchain code – refers to the tasks and goals this blockchain solution has been
developed to perform.
There are a few open-source solutions used to build a private blockchain architecture. The
most popular among them is Hyperledger by Linux Foundation. This project is also widely
used by IBM and other famous tech organizations. Hyperledger Composer provides a set of
tools for building blockchain architecture.
Some other solutions to build your own blockchain with are Ethereum and Corda.

Blockchain Network Creation


Once an organization, or a few, decide to implement a blockchain solution, they are
already creating a network. The network could be viewed as companies with their
personnel or from the perspective of the technical infrastructure within these companies.

To make it more concrete, let’s take the example of diamonds. Risks and challenges
associated with diamonds exist during every part of the process, from the extraction of
diamonds to their final, commercial result. Consumers want to be sure they are purchasing
real and ethical diamonds. Government institutions want to keep track of their taxation and
exports. Blockchain architecture can be used to eliminate these risks.

The parties involved in this network include:


• Diamond Manufacturers
• Government Institutions
• Diamond Transporters

Created by Nandakishore 46
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Diamond Sellers
Blockchain solutions organize all these parties into a peer-to-peer network that helps to
remove all the mentioned risks and build a transparent system. Everyone would receive
access to the synchronized data of a “shared, immutable ledger” and be able to keep track
of the diamond’s moving from manufacturing to the final consumer. The blockchain ledger
would hold the sequence of all actions occurring like diamond mining, refining, and
distribution.

In most cases, each organization within a network holds their own copy synced together
with clever protocols and technical layers of blockchain network (called peers). As well, in
order to outline a few processes happening at the same time, there is the Ordering Service.
This is shared among all parties deciding the transactions within the blockchain structure
and their order. In case with multiple users, there is a Membership Services Provider (MSP)
that allows access for particular users inside the network.

In the end, all the transactions during this path are kept in a general ledger (e.g data with
diamond photos, place of extraction, color, serial number, place where it was cut, purified,
sold, etc.). This information is complete and authentic.

Here is a high-level hyperledger architecture diagram to create a blockchain solution.

Blockchain Code Creation

Created by Nandakishore 47
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

After the blockchain network is set up, the next step is to agree upon the type of business
transactions happening inside the blockchain architecture. In reality, these rules are
written in legal agreements. Logically, within the blockchain code, this refers to a Smart
Contract (also called as Chaincode or Business Network Definition from Hyperledger
Composer).

As in the real world, the blockchain contract has participants, assets, and transactions. For
each transaction, a Transactional Processor Function is written (reflects JavaScript) and
lays out the things that will happen once the transaction has been generated.

Skills Required to Build Blockchain Architecture


To be a blockchain developer is a demanding task that requires a lot of technical skills and
a complex background. Generally, in order to work with blockchain architecture, a strong
background in Computer Science or Engineering is most desirable. As well, knowledge
pertaining to consensus methods, data structures, decentralized ledgers, cryptographies
and cryptocurrencies, and data security is also highly sought after.

Recently, the task of developing a blockchain has been simplified with the help of
Ethereum and other similar blockchain software. Ethereum is an open source software
platform based on blockchain technology allowing for the building and deployment of
decentralized applications (DApps).

In terms of the coding skills required to develop a blockchain solution, one should become
familiar with a range of programming languages, not one specifically. If the goal is to
implement a customizable blockchain system, programming languages such as C++,
Python, C, Java, and Ruby help to accomplish this task. As well, web development skills
like HTML, CSS, Node JS could become handy.

In case you are interested in writing smart contracts (smart contracts are the programs
stored in the blockchain system and used to automatically exchange coins or any other
funds based on predefined conditions) using Ethereum, the contract-based programming
language Solidity is required.

Aside from hard programming skills, custom software developers need to understand
business requirements and operations, as well as possess great cooperation and
negotiation skills.

Key Characteristics of Blockchain Architecture

Created by Nandakishore 48
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchain architecture possesses a lot of benefits for businesses. Here are several
embedded characteristics:
• Cryptography – blockchain transactions are validated and trustworthy due to the
complex computations and cryptographic proof among involved parties
• Immutability – any records made in a blockchain cannot be changed or deleted
• Provenance – refers to the fact that it is possible to track the origin of every
transaction inside the blockchain ledger
• Decentralization – each member of the blockchain structure has access to the
whole distributed database. As opposed to the central-based system, consensus
algorithm allows for control of the network
• Anonymity- each blockchain network participant has a generated address, not user
identity. This keeps users’ anonymity, especially in a public bloc
Blockchain Architecture 101: Components, Structure, and Benefits

Key Takeaways
• Decentralized and Secure: Blockchain architecture revolutionizes data exchange
and security by offering a decentralized system, contrasting sharply with traditional
centralized models. This structure ensures transparent and secure transactions
across a peer-to-peer network.
• Historical Evolution: Originally conceptualized in 1991 to timestamp digital
documents, blockchain technology gained mainstream attention with the creation
of Bitcoin by Satoshi Nakamoto in 2008, marking a pivotal moment in its evolution.
• Core Characteristics: Blockchain’s fundamental features include decentralization,
robust security through advanced cryptographic techniques, and immutability of
recorded data, which together enhance its reliability and transparency.
• Layered Architecture: Blockchain is composed of multiple layers, including the data
layer (containing transactional information), the network layer (for peer-to-peer
communication), the consensus layer (ensuring ledger integrity), and the
application layer (enabling user-facing applications).
• Versatile Applications: Blockchain’s structure supports various types of networks,
such as public, private, hybrid, and consortium blockchains, each tailored for
specific use cases ranging from open, decentralized systems to controlled,
enterprise-focused environments.
• Historical Context and Evolution of Blockchain Technology
The journey of blockchain architecture began far before its mainstream popularity. Initially
conceptualized in 1991, the primary objective was to create a system for timestamping

Created by Nandakishore 49
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

digital documents, ensuring they couldn’t be backdated or tampered with. This


foundational idea laid the groundwork for the structure of blockchain as we know it today.

Deciphering the Structure of Blockchain


The structure of blockchain is akin to a digital backbone of a new type of internet,
introducing an innovative way of sharing information. At the heart of this blockchain
fundamentals lies its most defining characteristic – a secure and decentralized approach
to data management. Essentially, each block in the blockchain structure serves as a
record-keeping unit, securely interlinked with its predecessors and successors, forming an
unbreakable chain.

The architecture of blockchain ensures that each block Is tamper-proof, maintaining the
integrity and trustworthiness of the entire chain. This structure of block in blockchain is not
just a technical feat but also a paradigm shift in how data security and transparency are
perceived and implemented. Understanding this structure is vital for appreciating the full
scope of blockchain’s potential in various sectors.

Although there is some variation among different chains, this example shows a standard
structure for a block.
Core Characteristics of Blockchain Architecture
Delving deeper into the blockchain architecture, its core characteristics emerge as pillars
of this revolutionary technology. The architecture of blockchain is fundamentally
decentralized, eliminating the need for a central authority and thereby enhancing the
system’s robustness against failures and attacks. In this structure of blockchain, each
participant, or node, plays a role in maintaining the network, leading to a more democratic
and equitable digital ecosystem.

Another key aspect is the unyielding blockchain security inherent in the blockchain
structure, provided by advanced cryptographic techniques. This blockchain security
feature, combined with the meticulous structure of block in blockchain, ensures that once
data is recorded, it becomes immutable – a permanent and unalterable part of the
blockchain. These characteristics not only define the blockchain architecture but also
open up a myriad of possibilities for its application in various sectors, from finance to
supply chain management.

Understanding its Layers


• The architecture of a blockchain is not a monolithic structure but rather a complex
stack of multiple blockchain layers, each with its distinct role and function. At the

Created by Nandakishore 50
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

base of this structure of blockchain is the data layer, where the actual blocks reside,
containing transactional information securely linked using cryptographic hashes.
• The network layer forms the next tier in the blockchain structure, responsible for the
peer-to-peer communication essential for distributing information across the
network.
• Above this lies the consensus layer, a critical component of the architecture of
blockchain, which ensures that all nodes agree on the state of the ledger, thus
maintaining its integrity and trustworthiness.
• The application layer sits at the top, where the structure of blockchain manifests
into user-facing applications and services, making blockchain technology
accessible and useful in real-world scenarios.
• Understanding these layers is crucial for comprehending the full scope and
versatility of blockchain architecture, paving the way for innovative applications that
extend beyond cryptocurrencies.

Types and Variations in Blockchain Structure


Exploring the types of blockchain architecture reveals a diverse spectrum of applications
and blockchain use cases.

Each type of blockchain structure serves specific needs and scenarios, highlighting the
versatility and adaptability of blockchain architecture in various domains.

• Public Blockchains — Open to everyone, exemplifying the essence of


decentralization seen in systems like Bitcoin and Ethereum.
• Private Blockchains — Offer restricted access, often employed by enterprises for
confidential transactions and streamlined processes.
• Hybrid Blockchains — Blend elements of both public and private blockchains,
offering a balance of transparency and privacy.
• Consortium Blockchains — Represent a collaborative model, where multiple
organizations govern the network, ensuring a higher level of control and security.
The Building Blocks
At the heart of blockchain architecture lies the fundamental unit known as the block. Each
block in the blockchain structure serves a critical role, acting as a ledger entry for
transactions. Delving into the structure of block in blockchain, we find that it contains three
key elements: transaction data, a unique hash that identifies the block and its contents,
and the hash of the previous block, creating an unbreakable link in the chain.

Created by Nandakishore 51
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This design is a cornerstone of the architecture of blockchain, ensuring that once a block is
added to the chain, altering it retrospectively becomes nearly impossible. This immutability
is a defining feature of the structure of blockchain, providing a level of security and trust
that is unparalleled in traditional database systems. Understanding this block structure is
essential to appreciate the full security and transparency that blockchain architecture
offers.

Nodes and Networks


In the blockchain structure, nodes are the fundamental components that uphold the
network’s integrity and functionality. A node in the architecture of blockchain is typically a
computer connected to the blockchain network, which actively maintains a copy of the
entire ledger. This decentralized nature of nodes is what gives the blockchain architecture
its strength and resilience. In a public blockchain structure, anyone can participate as a
node, contributing to the network’s robustness and security.

On the other hand, in a private blockchain architecture, node participation is restricted,


offering a more controlled environment. These nodes play a crucial role in the validation
and relay of transactions, forming a peer-to-peer network that is central to the blockchain
structure. This setup ensures that the blockchain architecture remains transparent yet
secure, as every node in the network works towards achieving consensus, validating
transactions, and maintaining an identical copy of the ledger.

The Mechanism of Transactions and Validation in Blockchain


The blockchain structure is not only about storing data but also about validating and
securing transactions. Each transaction within the blockchain architecture represents a
digital action, often involving the transfer of value or information. When a transaction is
initiated, it is broadcasted to the network, where nodes undertake the crucial task of
validation. This process is integral to the architecture of blockchain, as it ensures the
legitimacy and integrity of each transaction.

In the structure of blockchain, this validation is typically done through a process known as
mining, particularly in public blockchains like Bitcoin. Cryptocurrency mining involves
solving complex cryptographic puzzles to validate transactions and add them to a block.
Once a transaction is verified and included in a block, it becomes an immutable part of the
blockchain structure. This meticulous validation process is what makes blockchain
architecture inherently secure and trustworthy.

Ensuring Security and Trust

Created by Nandakishore 52
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

A pivotal aspect of blockchain architecture is the mechanism used to achieve consensus


among the various nodes in the network. This consensus mechanism is crucial in the
structure of blockchain as it ensures all participants agree on the ledger’s current state. In
many public blockchains, the proof-of-work system is employed as a part of this
consensus process.

This system, integral to the architecture of blockchain, requires nodes (or miners) to solve
complex mathematical problems, thus validating transactions and creating new blocks.
The proof-of-work model not only secures the blockchain structure but also mitigates the
risk of fraudulent transactions and double-spending. It is the backbone of the trust and
security that blockchain architecture promises, ensuring that each transaction is
accurately recorded and immutable once added to the structure of block in blockchain.

Building a Blockchain Architecture


Developing a blockchain network is a meticulous process that forms the backbone of any
blockchain architecture. It involves setting up an infrastructure that adheres to the specific
requirements of the intended blockchain structure.
Whether it’s a public, private, or consortium blockchain, each type demands a unique
approach to network creation. This network is the foundation upon which the structure of
blockchain operates, enabling nodes to interact, transactions to be processed, and
consensus mechanisms to be executed.

Key considerations when considering how to build a blockchain include selecting the right
consensus algorithm, ensuring scalability, and maintaining security protocols. Tools and
platforms, such as Ethereum for public blockchains or Hyperledger for private ones, offer
diverse functionalities tailored to different blockchain structures. These tools not only
facilitate the creation of a blockchain network but also empower developers to customize
the architecture of blockchain to fit specific use cases.

Skill Set for Blockchain Development


To effectively build and maintain a robust blockchain architecture, a diverse skill set is
crucial. Developers delving into the world of blockchain structure need a strong foundation
in computer science and engineering, coupled with a deep understanding of the specific
principles that underpin the architecture of blockchain. Proficiency in blockchain
programming languages like Solidity for Ethereum, or Java and Go for Hyperledger, is
essential to craft the structure of block in blockchain.

Created by Nandakishore 53
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Beyond technical prowess, a successful blockchain developer must also possess an acute
awareness of business processes and applications. This dual competency enables
developers to not only construct a technically sound blockchain structure but also ensure
that it aligns with business objectives and operational requirements. The blend of technical
skills and business acumen is key to unlocking the transformative potential of blockchain
architecture.

The Transformative Impact of Blockchain Architecture


The implementation of blockchain architecture extends far beyond its origins in
cryptocurrency, offering transformative potential across a wide range of industries. The
unique characteristics of the blockchain structure—such as decentralization,
transparency, and immutability—provide innovative solutions to complex problems in
sectors like finance, supply chain management, and healthcare. For instance, in supply
chain management, the structure of blockchain enables the creation of transparent and
unalterable records of product journeys, from manufacture to sale. In the financial sector,
the architecture of blockchain streamlines transactions, reduces fraud, and enhances
security. Furthermore, the blockchain structure is instrumental in developing smart
contracts that automate and enforce contractual agreements without intermediaries.
These diverse applications underscore the versatility and wide-reaching benefits of
blockchain architecture, marking it as a key driver of future technological and economic
innovation.

Conclusion
As we have explored, the blockchain architecture is not just a technological marvel but a
catalyst for innovation across various sectors. Its robust structure of blockchain,
characterized by decentralization, security, and transparency, paves the way for a future
where digital transactions and record-keeping are revolutionized. From the intricate
structure of block in blockchain to the comprehensive architecture of blockchain, this
technology offers a plethora of opportunities for businesses, governments, and individuals
alike.

Blockchain Basics: Structure, Operations, and the Bitcoin Blockchain


In this guide, we introduce the fundamental concepts of blockchain technology including
its structure, basic operations, and review the Bitcoin vs. Ethereum blockchain.

In this guide, we’ll introduce the fundamental concepts of blockchain technology including
its structure, basic operations, and the Bitcoin blockchain.

Created by Nandakishore 54
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This article is based on notes from the first course in this Blockchain Specialization and is
organized as follows:

• What is Blockchain Technology?


• Defining the Bitcoin Blockchain
• Centralized vs. Decentralized Networks
• Blockchain Structure
• Basic Blockchain Operations

What is Blockchain Technology?


Blockchain technology enables the peer-to-peer transfer of assets without any
intermediaries. As EuroMoney describes:

A blockchain is essentially a digital ledger of transactions that is duplicated and distributed


across the entire network of computer systems on the blockchain.
Blockchain technology was originally conceptualized and introduced to support the largest
cryptocurrency by market capitalization: bitcoin.

• Finance
• Healthcare
• Government
• Manufacturing
• Supply chains and distribution
Specifically, a few real-world examples of blockchains application in these industries
include:

• Digital media transfer: for example the sale of art and collectibles with non-
fungible tokens (NFTs)
• Remote services delivery: for example in the travel and tourism industry
• Decentralized business logic: for example moving computing to data sources
• Distributed intelligence: for example in education credentialing
• Distributed resources: for example, in power generation and distribution
• Crowdfunding: for example in startup financing
• Crowd operations: for example, in electronic voting
• Identity management: for example, having a single ID
• And many more

Created by Nandakishore 55
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchain offers the opportunity for people in remote corners of the world to take part in
democratic processes.
In short, there is a tremendous opportunity for entrepreneurs, developers, and innovators
to create new applications and use cases built on top of blockchain technology.
In order to better understand this technology, we’ll discuss both the Bitcoin and Ethereum
blockchain in more detail below.
We’ll also explain several of the algorithms and techniques that are commonly used in a
blockchain.

Defining the Bitcoin Blockchain


The two major contributions of the cryptocurrency bitcoin include:
• A continuously working digital currency system
• A model for an autonomous decentralized application technology called a
blockchain
One of the key innovations of the Bitcoin blockchain is that it enabled a platform for the
peer-to-peer transfer of value without any central authority.
So how did the blockchain enable trust and security without any central authority?

At a high level, it implemented cryptography and software that is used for validation,
verification, and consensus in a blockchain infrastructure.

A few years later in 2012, several computational elements were added to the blockchain
infrastructure that opened up a new level of opportunities beyond just currency transfers.

These innovations are the backbone of what is referred to as “Web 3.0”. To give you some
context, Web 2.0 was driven by three layers of innovation including mobile, social, and
cloud computing.

As Fabric Ventures describes in their article on Web 3.0, this includes:

…edge computing, decentralised data networks, and artificial intelligence


To recap, at its core blockchain technology enables three main innovations:

• Peer-to-peer transactions in a decentralized network


• Establishing trust among unknown peers
• Recording transactions in an immutable distributed ledger
Centralized vs. Decentralized Networks

Created by Nandakishore 56
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

To better understand blockchain technology, let’s now review a real-world situation of


paying for a cup of coffee with a credit card. In this example of a centralized network, there
are several intermediaries to facilitate the transaction:
• The customer’s bank
• The credit card’s bank
• A credit card agency
• An exchange
• The merchant’s bank
• The merchant
In a decentralized system, the customer and merchant could transact directly with one
another. In this case, functions of the intermediaries are shifted to the periphery—to the
peer-to-peer participants in the blockchain infrastructure.

These peers are not necessarily known to each other, although they are able to establish
trust by having a process that can validate, verify, and confirm transactions.

Transactions are also recorded in a distributed ledger of blocks, which creates a chain of
blocks that cannot be tampered with.

A blockchain also has a consensus protocol that defines an agreement of how a block will
be added to the chain.

Through these mechanisms of validation, verification, consensus, and immutable record-


keeping lead to trust and security between peers of a blockchain.

To learn more about the Bitcoin blockchain, you can find the original whitepaper here.

Blockchain Structure
In this section, we’ll review the basic structure of a blockchain.

In the Bitcoin blockchain, transactions are a basic element:


• Transactions are validated and broadcast
• Many transactions form a single block
• Many blocks form a chain
Blocks go through a consensus process that selects which the next block to be added to
the chain.

Created by Nandakishore 57
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The chosen block is then verified and added to the chain.

This validation process is done by special peer nodes called miners.

Understanding a Single Transaction in the Bitcoin Blockchain


Let’s now review a single transaction in the Bitcoin network.

A core concept of the bitcoin network is an Unspent Transaction Output, otherwise known
as UTXO.
• The set of all UTXOs in the Bitcoin network collectively translate the state of the
Bitcoin blockchain.
UTXOs are referenced as the inputs of a transaction and are also the outputs generated
from a transaction.

All UTXOs in the system are stored by the network’s participant nodes in a database.

In the Bitcoin blockchain, a transaction uses the amount specified by one or more UTXOs
and transmits it to one or more new output UTXOs.
The structure of a UTXO includes:
• A unique identifier of the transaction that created the UTXO
• An index of the position of the UTXO in the transaction output lists
• A value of the transaction
• An optional script that specifies the conditions of which the output can be spent
• The transaction itself includes the following elements:

A reference number of the current transaction


• Reference(s) to one of more input UTXOs
• Reference(s) to one of more output UTXOs generated from the current transaction
• The total input and output amount
You can learn more about blockchain transactions on the Blockchain Explorer website:

Created by Nandakishore 58
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Basic Blockchain Operations


In this section, we’ll review the basic operations of a blockchain.

• Operations in a decentralized networks are the responsibility of the peer


participants and their respective computational nodes.
In particular, these operations include:

• Gathering the transactions for a block


• Broadcasting valid transactions and blocks
• Reaching consensus on the next block to be created
• Chaining the blocks together to form an immutable record
Bitcoin Blockchain Operations
Let’s take a look at the operations of the Bitcoin blockchain in more detail.

There are two major participants in the bitcoin network…

The first participants are people that initiate the transfer of value by creating a transaction.
The second group of participants are called miners, which provide the computational
resources needed to:
• Verify transactions
• Broadcast transactions
• Compete for the right to create a block
• Reach consensus by validating the block
• Broadcast the new block
• Confirm transactions
For these computational resources provided by miners, they are incentivized and rewarded
with newly minted bitcoin, which is currently set at 6.25 BTC.

Created by Nandakishore 59
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The algorithm that miners use to reach consensus is called the proof-of-work protocol,
which t requires the miner to provide the computational work required to solve a puzzle and
claim the right to add a new block to the chain.

To summarize, the main operations in a blockchain include transaction validation and


block creation with a consensus of the participants.

Beyond the Bitcoin Blockchain


In this introductory article, we’ve focused on the Bitcoin blockchain, which is entirely open
source and available on Github.

In addition to the bitcoin cryptocurrency, the Bitcoin blockchain supports an optional


feature called scripts for the conditional transfer of values.

The Ethereum blockchain extended this scripting feature into a complete execution
framework called smart contracts.

A smart contract provides the powerful capability of code execution that embeds
business logic into the blockchain.
Based on these capabilities, three major types of blockchains have emerged:

• Only Cryptocurrency: Coins in the cryptocurrency chain, for example, Bitcoin


• Cryptocurrency + Business Logic: This provides a layer of business logic
supported by software execution, for example, Ethereum
• Only Business Logic: This type has no cryptocurrency and only supports software
execution for business logic, for example, the Linux Foundation’s Hyperledger
• With the addition of business logic and code execution comes the consideration of
who has access to the blockchain.

There are three main categories of blockchain access:

• Public: Bitcoin is an example of a public blockchain in which anyone can join and
transact with other participants
• Private: Access is limited to select participants of an organization
• Permissioned: Also called a consortium blockchain, this type is meant for a
consortium of collaborating partings to transact on a blockchain. Permissioned

Created by Nandakishore 60
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

blockchains have the benefit of a public blockchain while allowing only users with
permission to collaborate and transact.
In summary, smart contracts have taken the innovation of the Bitcoin blockchain to
another level by opening up broader applications of the technology.
Summary: Blockchain Basics
A few key takeaways about the basics of blockchain technology:
• One of the key innovations of the Bitcoin blockchain is that it enabled a platform for
the peer-to-peer transfer of value without any central authority
• Operations in a decentralized network are the responsibility of the peer participants
and their respective computational nodes.
• A smart contract provides the powerful capability of code execution that embeds
business logic into the blockchain.

Transactions
The following subsections briefly document core transaction details.

Opcodes
The opcodes used in the pubkey scripts of standard transactions are:

Created by Nandakishore 61
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Various data pushing opcodes from 0x00 to 0x4e (1–78). These aren’t typically
shown in examples, but they must be used to push signatures and public keys onto
the stack. See the link below this list for a description
• OP_TRUE/OP_1 (0x51) and OP_2 through OP_16 (0x52–0x60), which push the
values 1 through 16 to the stack.
• “OP_CHECKSIG” consumes a signature and a full public key, and pushes true onto
the stack if the transaction data specified by the SIGHASH flag was converted into
the signature using the same ECDSA private key that generated the public key.
Otherwise, it pushes false onto the stack.
• “OP_DUP” pushes a copy of the topmost stack item on to the stack.
• “OP_HASH160” consumes the topmost item on the stack, computes the
RIPEMD160(SHA256()) hash of that item, and pushes that hash onto the stack.
• “OP_EQUAL” consumes the top two items on the stack, compares them, and
pushes true onto the stack if they are the same, false if not.
• “OP_VERIFY” consumes the topmost item on the stack. If that item is zero (false) it
terminates the script in failure.
• “OP_EQUALVERIFY” runs “OP_EQUAL” and then “OP_VERIFY” in sequence.
• “OP_CHECKMULTISIG” consumes the value (n) at the top of the stack, consumes
that many of the next stack levels (public keys), consumes the value (m) now at the
top of the stack, and consumes that many of the next values (signatures) plus one
extra value.
• The “one extra value” it consumes is the result of an off-by-one error in the Bitcoin
Core implementation. This value is not used, so signature scripts prefix the list of
secp256k1 signatures with a single OP_0 (0x00).
• “OP_CHECKMULTISIG” compares the first signature against each public key until it
finds an ECDSA match. Starting with the subsequent public key, it compares the
second signature against each remaining public key until it finds an ECDSA match.
The process is repeated until all signatures have been checked or not enough public
keys remain to produce a successful result.
• Because public keys are not checked again if they fail any signature comparison,
signatures must be placed in the signature script using the same order as their
corresponding public keys were placed in the pubkey script or redeem script. See
the “OP_CHECKMULTISIG” warning below for more details.
• “OP_RETURN” terminates the script in failure when executed.

A complete list of opcodes can be found on the Bitcoin Wiki Script Page, with an
authoritative list in the opcodetype enum of the Bitcoin Core script header file

Created by Nandakishore 62
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Warning icon Signature script modification warning: Signature scripts are not signed, so
anyone can modify them. This means signature scripts should only contain data and data-
pushing opcodes which can’t be modified without causing the pubkey script to fail. Placing
non-data-pushing opcodes in the signature script currently makes a transaction non-
standard, and future consensus rules may forbid such transactions altogether. (Non-data-
pushing opcodes are already forbidden in signature scripts when spending a P2SH pubkey
script.)

Warning icon “OP_CHECKMULTISIG”warning: The multisig verification process described


above requires that signatures in the signature script be provided in the same order as their
corresponding public keys in the pubkey script or redeem script. For example, the following
combined signature and pubkey script will produce the stack and comparisons shown:

OP_0 <A sig> <B sig> OP_2 <A pubkey> <B pubkey> <C pubkey> OP_3

Sig Stack Pubkey Stack (Actually a single stack)


--------- ------------
B sig C pubkey
A sig B pubkey
OP_0 A pubkey

1. B sig compared to C pubkey (no match)


2. B sig compared to B pubkey (match #1)
3. A sig compared to A pubkey (match #2)

Success: two matches found


• But reversing the order of the signatures with everything else the same will fail, as
shown below:

OP_0 <B sig> <A sig> OP_2 <A pubkey> <B pubkey> <C pubkey> OP_3

Sig Stack Pubkey Stack (Actually a single stack)


--------- ------------
A sig C pubkey
B sig B pubkey
OP_0 A pubkey

Created by Nandakishore 63
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

1. A sig compared to C pubkey (no match)


2. A sig compared to B pubkey (no match)

Failure, aborted: two signature matches required but none found so far, and there’s
only one pubkey remaining

Address Conversion
The hashes used in P2PKH and P2SH outputs are commonly encoded as Bitcoin
addresses. This is the procedure to encode those hashes and decode the addresses.

First, get your hash. For P2PKH, you RIPEMD-160(SHA256()) hash a ECDSA public key
derived from your 256-bit ECDSA private key (random data). For P2SH, you RIPEMD-
160(SHA256()) hash a redeem script serialized in the format used in raw transactions
(described in a following sub-section). Taking the resulting hash:
1. Add an address version byte in front of the hash. The version bytes commonly used
by Bitcoin are:
• 0x00 for P2PKH addresses on the main Bitcoin network (mainnet)
• 0x6f for P2PKH addresses on the Bitcoin testing network (testnet)
• 0x05 for P2SH addresses on mainne.
• 0xc4 for P2SH addresses on testnet

2. Create a copy of the version and hash; then hash that twice with SHA256:
SHA256(SHA256(version . hash))
3. Extract the first four bytes from the double-hashed copy. These are used as a
checksum to ensure the base hash gets transmitted correctly.
4. Append the checksum to the version and hash, and encode it as a base58 string:
BASE58(version . hash . checksum)

Bitcoin’s base58 encoding, called Base58Check may not match other implementations.
Tier Nolan provided the following example encoding algorithm to the Bitcoin Wiki
Base58Check encoding page under the Creative Commons Attribution 3.0 license:

Code_string =
“123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz”
X = convert_bytes_to_big_integer(hash_result)

Output_string = “”

Created by Nandakishore 64
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

While(x > 0)
{
(x, remainder) = divide(x, 58)
Output_string.append(code_string[remainder])
}

Repeat(number_of_leading_zero_bytes_in_hash)
{
Output_string.append(code_string[0]);
}

Output_string.reverse();

Bitcoin’s own code can be traced using the base58 header file.
To convert addresses back into hashes, reverse the base58 encoding, extract the
checksum, repeat the steps to create the checksum and compare it against the extracted
checksum, and then remove the version byte.

Raw Transaction Format


Bitcoin transactions are broadcast between peers in a serialized byte format, called raw
format. It is this form of a transaction which is SHA256(SHA256()) hashed to create the
TXID and, ultimately, the merkle root of a block containing the transaction—making the
transaction format part of the consensus rules.

Bitcoin Core and many other tools print and accept raw transactions encoded as hex.
As of Bitcoin Core 0.9.3 (October 2014), all transactions use the version 1 format
described below. (Note: transactions in the block chain are allowed to list a higher version
number to permit soft forks, but they are treated as version 1 transactions by current
software.)
A raw transaction has the following top-level format:
Byte Name Datatype Description
4 Version Int32_t Transaction version number (note, this is signed);
currently version 1 or 2. Programs creating
transactions using newer consensus rules may
use higher version numbers. Version 2 means
that BIP 68 applies.
Varies Tx_in.count Compact Number of inputs in this transaction.
size.unit
Varies Tx_in txIn Transaction inputs. See description of txIn below.

Created by Nandakishore 65
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Varies Tx_out count compactSize Number of outputs in this transaction.


uint
Varies Tx_out txOut Transaction outputs. See description of txOut
below.
4 Lock_time Uint32_t A time (Unix epoch time) or block number. See
the locktime parsing rules.

A transaction may have multiple inputs and outputs, so the txIn and txOut structures may
recur within a transaction. CompactSize unsigned integers are a form of variable-length
integers; they are described in the CompactSize section.

TxIn: A Transaction Input (Non-Coinbase)


Each non-coinbase input spends an outpoint from a previous transaction. (Coinbase
inputs are described separately after the example section below.)
Bytes Name Data Type Description
36 Previous_output Outpoint The previous outpoint being spent. See
description of outpoint below.
Varies Script bytes compactSize uint The number of bytes in the signature script.
Maximum is 10,000 bytes.
Varies Signature script Char[] A script-language script which satisfies the
conditions placed in the outpoint’s pubkey
script. Should only contain data pushes; see
the signature script modification warning.
4 Sequence Uint32_t Sequence number. Default for Bitcoin Core
and almost all other programs is 0xffffffff.
Outpoint: The Specific Part Of A Specific Output
Because a single transaction can include multiple outputs, the outpoint structure includes
both a TXID and an output index number to refer to specific output.
Bytes Name Data Type Description
32 Hash Char[32] The TXID of the transaction holding the output to spend. The
TXID is a hash provided here in internal byte order.
4 Index Uint32_t The output index number of the specific output to spend from
the transaction. The first output is 0x00000000.
TxOut: A Transaction Output
Each output spends a certain number of satoshis, placing them under control of anyone
who can satisfy the provided pubkey script.
Bytes Names Datatype Description
8 Value Int64_t Number of satoshis to spend. May be zero; the sum of all
outputs may not exceed the sum of satoshis previously
spent to the outpoints provided in the input section.

Created by Nandakishore 66
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

(Exception: coinbase transactions spend the block subsidy


and collected transaction fees.)
1+ Pk_script compactSize Number of bytes in the pubkey script. Maximum is 10,000
bytes uint bytes.
Varies Pk_script Char[] Defines the conditions which must be satisfied to spend
this output.

Example

The sample raw transaction itemized below is the one created in the Simple Raw
Transaction section of the Developer Examples. It spends a previous pay-to-pubkey output
by paying to a new pay-to-pubkey-hash (P2PKH) output.

01000000 …………………………….. Version

01 ………………………………….. Number of inputs


|
| 7b1eabe0209b1fe794124575ef807057
| c77ada2138ae4fa8d6c4de0398a14f3f ……… Outpoint TXID
| 00000000 …………………………… Outpoint index number
|
| 49 ………………………………… Bytes in sig. script: 73
| | 48 ………………………………. Push 72 bytes as data
| | | 30450221008949f0cb400094ad2b5eb3
| | | 99d59d01c14d73d8fe6e96df1a7150de
| | | b388ab8935022079656090d7f6bac4c9
| | | a94e0aad311a4268e082a725f8aeae05
| | | 73fb12ff866a5f01 ………………… [Secp256k1][secp256k1] signature
|
| ffffffff …………………………… Sequence number: UINT32_MAX

01 ………………………………….. Number of outputs


| f0ca052a01000000 ……………………. Satoshis (49.99990000 BTC)
|
| 19 ………………………………… Bytes in pubkey script: 25
| | 76 ………………………………. OP_DUP
| | a9 ………………………………. OP_HASH160
| | 14 ………………………………. Push 20 bytes as data
| | | cbc20a7664f2f69e5355aa427045bc15

Created by Nandakishore 67
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

| | | e7c6c772 ……………………….. PubKey hash


| | 88 ………………………………. OP_EQUALVERIFY
| | ac ………………………………. OP_CHECKSIG

00000000 …………………………….. locktime: 0 (a block height)

Coinbase Input: The Input Of The First Transaction In A Block


The first transaction in a block, called the coinbase transaction, must have exactly one
input, called a coinbase. The coinbase input currently has the following format.
Bytes Name Datatype Description
32 Hash (null) Char[32] A 32-byte null, as a coinbase has no previous
outpoint.
4 Index Uint32_t 0xffffffff, as a coinbase has no previous
(UINT32_MAX) outpoint.
Varies Script bytes compactSize The number of bytes in the coinbase script, up to
uint a maximum of 100 bytes.
Varies Height Script The block height of this block as required by
(4) BIP34. Uses script language: starts with a data-
pushing opcode that indicates how many bytes
to push to the stack followed by the block height
as a little-endian unsigned integer. This script
must be as short as possible, otherwise it may
be rejected. The data-pushing opcode will be
0x03 and the total size four bytes until block
16,777,216 about 300 years from now.
Varies Coinbase None The coinbase field: Arbitrary data not exceeding
script 100 bytes minus the (4) height bytes. Miners
commonly place an extra nonce in this field to
update the block header merkle root during
hashing.
4 Sequence Uint32_t Sequence number.

Most (but not all) blocks prior to block height 227,836 used block version 1 which did not
require the height parameter to be prefixed to the coinbase script. The block height
parameter is now required.

Although the coinbase script is arbitrary data, if it includes the bytes used by any signature-
checking operations such as “OP_CHECKSIG”, those signature checks will be counted as
signature operations (sigops) towards the block’s sigop limit. To avoid this, you can prefix
all data with the appropriate push operation.

Created by Nandakishore 68
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

An itemized coinbase transaction:

01000000 ………………………… Version

01 ……………………………… Number of inputs


| 00000000000000000000000000000000
| 00000000000000000000000000000000 … Previous outpoint TXID
| ffffffff ………………………. Previous outpoint index
|
| 29 ……………………………. Bytes in coinbase

| | 03 ………………………….. Bytes in height


| | | 4e0105 …………………….. Height: 328014

| | 062f503253482f0472d35454085fffed
| | f2400000f90f54696d65202620486561
| | 6c74682021 …………………… Arbitrary data
| 00000000 ………………………. Sequence

01 ……………………………… Output count


| 2c37449500000000 ……………….. Satoshis (25.04275756 BTC)
| 1976a914a09be8040cbf399926aeb1f4
| 70c37d1341f3b46588ac ……………. P2PKH script
| 00000000 ………………………. Locktime

CompactSize Unsigned Integers


The raw transaction format and several peer-to-peer network messages use a type of
variable-length integer to indicate the number of bytes in a following piece of data.

Bitcoin Core code and this document refers to these variable length integers as
compactSize. Many other documents refer to them as var_int or varInt, but this risks
conflation with other variable-length integer encodings—such as the CVarInt class used in
Bitcoin Core for serializing data to disk. Because it’s used in the transaction format, the
format of compactSize unsigned integers is part of the consensus rules.

For numbers from 0 to 252, compactSize unsigned integers look like regular unsigned
integers. For other numbers up to 0xffffffffffffffff, a byte is prefixed to the number to indicate

Created by Nandakishore 69
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

its length—but otherwise the numbers look like regular unsigned integers in little-endian
order.
Value Bytes used Format
>= 0 && <= 252 1 Uint8_t
>= 253 && <= 0xffff 3 0xfd followed by the
number as uint16_t
>= 0x10000 && <= 0xffffffff 5 0xfe followed by the
number as uint32_t
>= 0x100000000 && <= 9 0xff followed by the number
0xffffffffffffffff as uint64_t

For example, the number 515 is encoded as 0xfd0302.

Etherurem block chain transactions

What’s a transaction?
An Ethereum transaction refers to an action initiated by an externally-owned account, in
other words an account managed by a human, not a contract. For example, if Bob sends
Alice 1 ETH, Bob’s account must be debited and Alice’s must be credited. This state-
changing action takes place within a transaction.

Diagram showing a transaction cause state change


Diagram adapted from Ethereum EVM illustrated(opens in a new tab)

Transactions, which change the state of the EVM, need to be broadcast to the whole
network. Any node can broadcast a request for a transaction to be executed on the EVM;
after this happens, a validator will execute the transaction and propagate the resulting
state change to the rest of the network.

Transactions require a fee and must be included in a validated block. To make this overview
simpler we’ll cover gas fees and validation elsewhere.

A submitted transaction includes the following information:

• From – the address of the sender, that will be signing the transaction. This will be an
externally-owned account as contract accounts cannot send transactions.
• To – the receiving address (if an externally-owned account, the transaction will
transfer value. If a contract account, the transaction will execute the contract code)

Created by Nandakishore 70
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Signature – the identifier of the sender. This is generated when the sender’s private
key signs the transaction and confirms the sender has authorized this transaction
• Nonce – a sequentially incrementing counter which indicates the transaction
number from the account
• Value – amount of ETH to transfer from sender to recipient (denominated in WEI,
where 1ETH equals 1e+18wei)
• Input data – optional field to include arbitrary data
• gasLimit – the maximum amount of gas units that can be consumed by the
transaction. The EVM specifies the units of gas required by each computational step
• maxPriorityFeePerGas – the maximum price of the consumed gas to be included
as a tip to the validator
• maxFeePerGas – the maximum fee per unit of gas willing to be paid for the
transaction (inclusive of baseFeePerGas and maxPriorityFeePerGas)
• Gas is a reference to the computation required to process the transaction by a
validator. Users have to pay a fee for this computation. The gasLimit, and
maxPriorityFeePerGas determine the maximum transaction fee paid to the validator.
More on Gas.

The transaction object will look a little like this:

{
From: “0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8”,
To: “0xac03bb73b6a9e108530aff4df5077c2b3d481e5a”,
gasLimit: “21000”,
maxFeePerGas: “300”,
maxPriorityFeePerGas: “10”,
nonce: “0”,
value: “10000000000”
}

But a transaction object needs to be signed using the sender’s private key. This proves that
the transaction could only have come from the sender and was not sent fraudulently.

An Ethereum client like Geth will handle this signing process.

Example JSON-RPC call:

Created by Nandakishore 71
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

{
“id”: 2,
“jsonrpc”: “2.0”,
“method”: “account_signTransaction”,
“params”: [
{
“from”: “0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db”,
“gas”: “0x55555”,
“maxFeePerGas”: “0x1234”,
“maxPriorityFeePerGas”: “0x1234”,
“input”: “0xabcd”,
“nonce”: “0x0”,
“to”: “0x07a565b7ed7d7a678680a4c162885bedbb695fe0”,
“value”: “0x1234”
}
]
}
SExample response:

{
“jsonrpc”: “2.0”,
“id”: 2,
“result”: {
“raw”:
“0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e40
00000000000000000000000000000000000000000000000000000000000001226a0223a7
c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b
45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663”,
“tx”: {
“nonce”: “0x0”,
“maxFeePerGas”: “0x1234”,
“maxPriorityFeePerGas”: “0x1234”,
“gas”: “0x55555”,
“to”: “0x07a565b7ed7d7a678680a4c162885bedbb695fe0”,
“value”: “0x1234”,
“input”: “0xabcd”,
“v”: “0x26”,

Created by Nandakishore 72
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

“r”:
“0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e”,
“s”:
“0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663”,
“hash”:
“0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e”
}
}
}

The raw is the signed transaction in Recursive Length Prefix (RLP) encoded form
The tx is the signed transaction in JSON form
With the signature hash, the transaction can be cryptographically proven that it came from
the sender and submitted to the network.

The data field


The vast majority of transactions access a contract from an externally-owned account.
Most contracts are written in Solidity and interpret their data field in accordance with the
application binary interface (ABI).

The first four bytes specify which function to call, using the hash of the function’s name
and arguments. You can sometimes identify the function from the selector using this
database(opens in a new tab).

The rest of the calldata is the arguments, encoded as specified in the ABI specs(opens in a
new tab).

For example, lets look at this transaction(opens in a new tab). Use Click to see More to see
the calldata.

The function selector is 0xa9059cbb. There are several known functions with this
signature(opens in a new tab). In this case the contract source code(opens in a new tab)
has been uploaded to Etherscan, so we know the function is transfer(address,uint256).

The rest of the data is:

0000000000000000000000004f6742badb049791cd9a37ea913f2bac38d01279
000000000000000000000000000000000000000000000000000000003b0559f4

Created by Nandakishore 73
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

According to the ABI specifications, integer values (such as addresses, which are 20-byte
integers) appear in the ABI as 32-byte words, padded with zeros in the front. So we know
that the to address is 4f6742badb049791cd9a37ea913f2bac38d01279(opens in a new
tab). The value is 0x3b0559f4 = 990206452.

Types of transactions
• On Ethereum there are a few different types of transactions:

• Regular transactions: a transaction from one account to another.


• Contract deployment transactions: a transaction without a ‘to’ address, where the
data field is used for the contract code.
• Execution of a contract: a transaction that interacts with a deployed smart contract.
In this case, ‘to’ address is the smart contract address.
On gas
• As mentioned, transactions cost gas to execute. Simple transfer transactions
require 21000 units of Gas.

So for Bob to send Alice 1 ETH at a baseFeePerGas of 190 gwei and


maxPriorityFeePerGas of 10 gwei, Bob will need to pay the following fee:

(190 + 10) * 21000 = 4,200,000 gwei


--or—
0.0042 ETH
Bob’s account will be debited -1.0042 ETH (1 ETH for Alice + 0.0042 ETH in gas fees)

Alice’s account will be credited +1.0 ETH

The base fee will be burned -0.00399 ETH

Validator keeps the tip +0.000210 ETH

Diagram showing how unused gas is refunded


Diagram adapted from Ethereum EVM illustrated(opens in a new tab)

Any gas not used in a transaction is refunded to the user account.

Smart contract interactions


Gas is required for any transaction that involves a smart contract.

Created by Nandakishore 74
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Smart contracts can also contain functions known as view(opens in a new tab) or
pure(opens in a new tab) functions, which do not alter the state of the contract. As such,
calling these functions from an EOA will not require any gas. The underlying RPC call for
this scenario is eth_call

Unlike when accessed using eth_call, these view or pure functions are also commonly
called internally (i.e. from the contract itself or from another contract) which does cost gas.

Transaction lifecycle
Once the transaction has been submitted the following happens:

A transaction hash is cryptographically generated:


0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017
The transaction is then broadcasted to the network and added to a transaction pool
consisting of all other pending network transactions.
A validator must pick your transaction and include it in a block in order to verify the
transaction and consider it “successful”.
As time passes the block containing your transaction will be upgraded to “justified” then
“finalized”. These upgrades make it much more certain that your transaction was
successful and will never be altered. Once a block is “finalized” it could only ever be
changed by a network level attack that would cost many billions of dollars.
A visual demo
Watch Austin walk you through transactions, gas, and mining.

Typed Transaction Envelope


Ethereum originally had one format for transactions. Each transaction contained a nonce,
gas price, gas limit, to address, value, data, v, r, and s. These fields are RLP-encoded, to
look something like this:

RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])

Ethereum has evolved to support multiple types of transactions to allow for new features
such as access lists and EIP-1559(opens in a new tab) to be implemented without affecting
legacy transaction formats.

Created by Nandakishore 75
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

EIP-2718(opens in a new tab) is what allows for this behavior. Transactions are
interpreted as:

TransactionType || TransactionPayload

Where the fields are defined as:

TransactionType – a number between 0 and 0x7f, for a total of 128 possible transaction
types.
TransactionPayload – an arbitrary byte array defined by the transaction type.
Based on the TransactionType value, a transaction can be classified as

• Type 0 (Legacy) Transactions: The original transaction format used since Ethereum’s
launch. They do not include features from EIP-1559(opens in a new tab) such as
dynamic gas fee calculations or access lists for smart contracts. Legacy
transactions lack a specific prefix indicating their type in their serialized form,
starting with the byte 0xf8 when using Recursive Length Prefix (RLP) encoding. The
TransactionType value for these transactions is 0x0.

• Type 1 Transactions: Introduced in EIP-2930(opens in a new tab) as part of


Ethereum’s Berlin Upgrade, these transactions include an accessList parameter.
This list specifies addresses and storage keys the transaction expects to access,
helping to potentially reduce gas costs for complex transactions involving smart
contracts. EIP-1559 fee market changes are not included in Type 1 transactions.
Type 1 transactions also include a yParity parameter, which can either be 0x0 or 0x1,
indicating the parity of the y-value of the secp256k1 signature. They are identified by
starting with the byte 0x01, and their TransactionType value is 0x1.

• Type 2 Transactions, commonly referred to as EIP-1559 transactions, are


transactions introduced in EIP-1559(opens in a new tab), in Ethereum’s London
Upgrade. They have become the standard transaction type on the Ethereum
network. These transactions introduce a new fee market mechanism that improves
predictability by separating the transaction fee into a base fee and a priority fee.
They start with the byte 0x02 and include fields such as maxPriorityFeePerGas and
maxFeePerGas. Type 2 transactions are now the default due to their flexibility and
efficiency, especially favored during periods of high network congestion for their
ability to help users manage transaction fees more predictably. The TransactionType
value for these transactions is 0x2.

Created by Nandakishore 76
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

GENERAL BLOCHCHAIN KNOWLEDGE


Storage

What is blockchain storage?


Blockchain storage is a way of saving data in a decentralized network, which utilizes the
unused hard disk space of users across the world to store files. The decentralized
infrastructure is an alternative to centralized cloud storage and can solve many problems
found in a centralized system.

How blockchain storage works


Blockchain relies on distributed ledger technology (DLT). The DLT acts as a decentralized
database of information about transactions between various parties. Operations fill the
DLT in chronological order and are stored in the ledger as a series of blocks. An
interconnected chain is formed between blocks with each one referring to the block before
it, thus creating a blockchain.

In blockchain storage, files are first broken apart in a process called sharding. Each shard is
copied to prevent loss of data should an error occur during transmission. The files are also
encrypted with a private key that makes it impossible for it to be viewed by other nodes in
the network.
The replicated shards are distributed among decentralized nodes all over the world. The
interactions are recorded in the blockchain ledger, allowing the system to confirm and
synchronize the transactions across the nodes in the blockchain. Blockchain storage is
designed to save these interactions forever and the data can never be changed.

Diagram showing how blockchain storage works.In blockchain storage, files are broken into
shards and encrypted.

Created by Nandakishore 77
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchain storage vs. cloud storage


• Blockchain storage is a potentially cheaper, more secure and more reliable
alternative to centralized cloud storage.

• Providers of centralized cloud storage prevent data loss by making copies of the
data and storing it in different data centers. The large amount of data that is
duplicated in this process can create excessive amounts of surplus information.
Also, cloud storage requires enterprise-grade hardware for its data centers. These
factors can make centralized data storage significantly more expensive than
blockchain storage.

• By taking advantage of the empty space on users’ devices across the world,
blockchain storage can cut up to 90% of the cost of centralized cloud storage,
proponents claim. Individuals and businesses can profit by renting out the unused
space on their hard disks for others to use.

Advantages of blockchain storage


In addition to the advantages explained above, having data stored across dozens of
individual nodes also gives blockchain storage security benefits. Encrypting the files and
distributing them across the decentralized network makes it harder for hackers to access
the data. There is no central entity controlling access to files or possessing the keys needed
to decrypt the files. The private keys are controlled entirely by the user, making it
theoretically impossible for a third party to access the files. Sharding also promotes
security and privacy.

Blockchain storage could also allow faster and more customizable storage systems
because users are able to manipulate settings, such as the speed of retrieval and
redundancy.

Current blockchain storage projects


BitTorrent, Filecoin, Sia and Storj are among the decentralized storage networks using
blockchain.

BitTorrent’s decentralized storage network is based on its file-sharing protocol (BTFS) and
Tron’s decentralized blockchain platform. The network lets storage “renters” pay “hosts” for
their excess capacity.

Created by Nandakishore 78
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The Filecoin distributed cloud storage network uses blockchain and the InterPlanetary File
System (IPFS) to let users purchase storage from providers on the network. IPFS is a peer-
to-peer (P2P) hypermedia distribution system designed to provide a decentralized method
for storing and sharing files. Nodes within the IPFS network form a distributed file system
that can be accessed in many ways, including the Linux-based FUSE interface and HTTP
(Hypertext Transfer Protocol). Local files can be added to the IPFS network and made
available to the world.

Sia is a decentralized storage marketplace built on open source software developed by the
SIA Foundation. The platform lets renters enter contracts with hosts that offer their excess
storage.

Storj, based on the Ethereum blockchain platform, aims to provide private, secure and
efficient P2P-based cloud storage. The Storj platform uses sharding and end-to-end
encryption (E2EE) to store and protect data.

BitTorrent, Filecoin, Sia and Storj provide their own cryptocurrencies (BTT, Siacoin, STORJ
token and FIL) in an attempt to create a market for buying and selling decentralized storage
and encouraging its use. The major obstacle that organizations launching blockchain
storage projects will face is scalability.

Continue Reading About blockchain storage


• 7 decentralized data storage networks compared
• Blockchain lets brands track watches from cradle to grave
• How blockchain storage could benefit the enterprise
• Blockchain terminology: 7 key blockchain storage terms

Decentralized Storage

Unlike a centralized server operated by a single company or organization, decentralized


storage systems consist of a peer-to-peer network of user-operators who hold a portion of
the overall data, creating a resilient file storage sharing system. These can be in a
blockchain-based application or any peer-to-peer-based network.

Ethereum itself can be used as a decentralized storage system, and it is when it comes to
code storage in all the smart contracts. However, when it comes to large amounts of data,
that isn’t what Ethereum was designed for. The chain is steadily growing, but at the time of
writing, the Ethereum chain is around 500GB – 1TB (depending on the client(opens in a new

Created by Nandakishore 79
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

tab)), and every node on the network needs to be able to store all of the data. If the chain
were to expand to large amounts of data (say 5TBs) it wouldn’t be feasible for all nodes to
continue to run. Also, the cost of deploying this much data to Mainnet would be
prohibitively expensive due to gas fees.

Due to these constraints, we need a different chain or methodology to store large amounts
of data in a decentralized way.

When looking at decentralized storage (dStorage) options, there are a few things a user
must keep in mind.

• Persistence mechanism / incentive structure


• Data retention enforcement
• Decentrality
• Consensus
Persistence mechanism / incentive structure
Blockchain-based

For a piece of data to persist forever, we need to use a persistence mechanism. For
example, on Ethereum, the persistence mechanism is that the whole chain needs to be
accounted for when running a node. New pieces of data get tacked onto the end of the
chain, and it continues to grow – requiring every node to replicate all the embedded data.

This is known as blockchain-based persistence.

The issue with blockchain-based persistence is that the chain could get far too big to
upkeep and store all the data feasibly (e.g. many sources(opens in a new tab) estimate the
Internet to require over 40 Zetabytes of storage capacity).

The blockchain must also have some type of incentive structure. For blockchain-based
persistence, there is a payment made to the validator. When the data is added to the chain,
the validators are paid to add the data on.

Platforms with blockchain-based persistence:


• Note- open in a new tab Is means it is link to related to the topics
Ethereum
Arweave(opens in a new tab)

Created by Nandakishore 80
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Contract-based
Contract-based persistence has the intuition that data cannot be replicated by every node
and stored forever, and instead must be upkept with contract agreements. These are
agreements made with multiple nodes that have promised to hold a piece of data for a
period of time. They must be refunded or renewed whenever they run out to keep the data
persisted.

In most cases, instead of storing all data on-chain, the hash of where the data is located on
a chain gets stored. This way, the entire chain doesn’t need to scale to keep all of the data.

Platforms with contract-based persistence:

• Filecoin(opens in a new tab)


• Skynet(opens in a new tab)
• Storj(opens in a new tab)
• Züs(opens in a new tab)
• Crust Network(opens in a new tab)
• Swarm(opens in a new tab)
• 4EVERLAND(opens in a new tab)
Additional considerations
IPFS is a distributed system for storing and accessing files, websites, applications, and
data. It doesn’t have a built-in incentive scheme, but can instead be used with any of the
contract-based incentive solutions above for longer-term persistence. Another way to
persist data on IPFS is to work with a pinning service, which will “pin” your data for you. You
can even run your own IPFS node and contribute to the network to persist your and/or
other's data for free!

• IPFS(opens in a new tab)


• Pinata(opens in a new tab) (IPFS pinning service)
• Web3.storage(opens in a new tab) (IPFS/Filecoin pinning service)
• Infura(opens in a new tab) (IPFS pinning service)
• IPFS Scan(opens in a new tab) (IPFS pinning explorer)
• 4EVERLAND(opens in a new tab)(IPFS pinning service)
• Filebase(opens in a new tab) (IPFS Pinning Service)
• Spheron Network(opens in a new tab) (IPFS/Filecoin pinning service)
SWARM is a decentralized data storage and distribution technology with a storage incentive
system and a storage rent price oracle.

Created by Nandakishore 81
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Data retention
In order to retain data, systems must have some sort of mechanism to make sure data is
retained.

Challenge mechanism
One of the most popular ways to make sure data is retained, is to use some type of
cryptographic challenge that is issued to the nodes to make sure they still have the data. A
simple one is looking at Arweave’s proof-of-access. They issue a challenge to the nodes to
see if they have the data at both the most recent block and a random block in the past. If
the node can’t come up with the answer, they are penalized.

Types of dStorage with a challenge mechanism:


• Züs
• Skynet
• Arweave
• Filecoin
• Crust Network
• 4EVERLAND
Decentrality
There aren’t great tools to measure the level of decentralization of platforms, but in general,
you’ll want to use tools that don’t have some form of KYC to provide evidence they are not
centralized.
Decentralized tools without KYC:
• Skynet
• Arweave
• Filecoin
• IPFS
• Ethereum
• Crust Network
• 4EVERLAND
Consensus
Most of these tools have their own version of a consensus mechanism but generally they
are based on either proof-of-work (PoW) or proof-of-stake (PoS).
Proof-of-work based:
• Skynet
• Arweave

Created by Nandakishore 82
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Proof-of-stake based:
• Ethereum
• Filecoin
• Züs
• Crust Network
Related tools
IPFS – InterPlanetary File System is a decentralized storage and file referencing
system for Ethereum.
• Ipfs.io(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Storj DCS – Secure, private, and S3-compatible decentralized cloud object storage for
developers.
• Storj.io(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Skynet – Skynet is a decentralized PoW chain dedicated to a decentralized web.
• Skynet.net(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Filecoin – Filecoin was created from the same team behind IPFS. It is an incentive
layer on top of the IPFS ideals.
• Filecoin.io(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Arweave – Arweave is a dStorage platform for storing data.
• Arweave.org(opens in a new tab)
• Documentation(opens in a new tab)
• Arweave(opens in a new tab)
Züs – Züs is a proof-of-stake dStorage platform with sharding and blobbers.
• Zus.network(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Crust Network – Crust is a dStorage platform on top of the IPFS.
• Crust.network(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)

Created by Nandakishore 83
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Swarm – A distributed storage platform and content distribution service for the
Ethereum web3 stack.
• EthSwarm.org(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
OrbitDB – A decentralized peer to peer database on top of IPFS.
• OrbitDB.org(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Aleph.im – Decentralized cloud project (database, file storage, computing and DID). A
unique blend of offchain and onchain peer-to-peer technology. IPFS and multi-chain
compatibility.
• Aleph.im(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Ceramic – User-controlled IPFS database storage for data-rich and engaging
applications.
• Ceramic.network(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Filebase – S3-compatible decentralized storage and geo-redundant IPFS pinning
service. All files uploaded to IPFS through Filebase are automatically pinned to the
Filebase infrastructure with 3x replication across the globe.
• Filebase.com(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
4EVERLAND – A Web 3.0 cloud computing platform that integrates storage, compute
and networking core capabilities, is S3 compatible and provides synchronous data
storage on decentralized storage networks such as IPFS and Arweave.
• 4everland.org(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Kaleido – A blockchain-as-a-service platform with click-button IPFS Nodes
• Kaleido(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)

Created by Nandakishore 84
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Spheron Network – Spheron is a platform-as-a-service (PaaS) designed for dApps


looking to launch their applications on decentralized infra with best performance. It
provides compute, decentralized storage, CDN & web hosting out of the box.
• Spheron.network(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Further reading
• What Is Decentralized Storage?(opens in a new tab) – CoinMarketCap
• Busting Five Common Myths about Decentralized Storage(opens in a new tab) –
Storj
Related topics
• Development frameworks ( important)
DEVELOPMENT FRAMEWORK

• Dapp Development Frameworks


Introduction to frameworks

Building a full-fledged dapp requires different pieces of technology. Software frameworks


include many of the needed features or provide easy plugin systems to pick the tools you
desire.

Frameworks come with a lot of out-of-the-box functionality, like:

• Features to spin up a local blockchain instance.


• Utilities to compile and test your smart contracts.
• Client development add-ons to build your user-facing application within the same
project/repository.
• Configuration to connect to Ethereum networks and deploy contracts, whether to a
locally running instance, or one of Ethereum’s public networks.
• Decentralized app distribution – integrations with storage options like IPFS.
Prerequisites
Before diving into frameworks, we recommend you first read through our introduction to
dapps and the Ethereum stack.
Available frameworks

Foundry – Foundry is a blazing fast, portable and modular toolkit for Ethereum
application development

Created by Nandakishore 85
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Install Foundry(opens in a new tab)


• Foundry book(opens in a new tab)
• Foundry community chat on Telegram(opens in a new tab)
• Awesome Foundry(opens in a new tab)
Hardhat – Ethereum development environment for professionals.
• Hardhat.org(opens in a new tab)
• GitHub(opens in a new tab)
Ape – The smart contract development tool for Pythonistas, Data Scientists, and
Security Professionals.
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Web3j – A platform for developing blockchain applications on the JVM.
• Homepage(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Ethers-kt – Async, high-performance Kotlin/Java/Android library for EVM-based
blockchains.
• GitHub(opens in a new tab)
• Examples(opens in a new tab)
• Discord(opens in a new tab)
Create Eth App – Create Ethereum-powered apps with one command. Comes with a
wide offering of UI frameworks and DeFi templates to choose from.
• GitHub(opens in a new tab)
• Templates(opens in a new tab)
Scaffold-Eth – Ethers.js + Hardhat + React components and hooks for web3:
everything you need to get started building decentralized applications powered by
smart contracts.
• GitHub(opens in a new tab)
Tenderly – Web3 development platform that enables blockchain developers to build,
test, debug, monitor, and operate smart contracts and improve dapp UX.
• Website(opens in a new tab)
• Documentation(opens in a new tab)
The Graph – The Graph for querying blockchain data efficiently.
• Website(opens in a new tab)
• Tutorial
Alchemy – Ethereum Development Platform.

Created by Nandakishore 86
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Alchemy.com(opens in a new tab)


• GitHub(opens in a new tab)
• Discord(opens in a new tab)
NodeReal – Ethereum Development Platform.
• Nodereal.io(opens in a new tab)
• GitHub(opens in a new tab)
• Discord(opens in a new tab)
Thirdweb SDK – Build web3 applications that can interact with your smart contracts
using our powerful SDKs and CLI.
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
Chainstack – Web3 (Ethereum and otherwise) Development Platform.
• Chainstack.com(opens in a new tab)
• GitHub(opens in a new tab)
• Discord(opens in a new tab)
Crossmint – Enterprise-grade web3 development platform, that allows you to build
NFT applications on all major chains EVM Chains(and others).
• Website(opens in a new tab)
• Documentation(opens in a new tab)
• Discord(opens in a new tab)
Brownie – Python-based development environment and testing framework.
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
• Brownie is currently unmaintained
OpenZeppelin SDK – The Ultimate Smart Contract Toolkit: A suite of tools to help you
develop, compile, upgrade, deploy and interact with smart contracts.
• OpenZeppelin SDK(opens in a new tab)
• GitHub(opens in a new tab)
• Community Forum(opens in a new tab)
• OpenZeppelin SDK development has ended
Catapulta – Multi-chain smart contracts deployment tool, automate verifications in
block explorers, keep track deployed smart contracts and share deployment reports,
plug-n-play for Foundry and Hardhat projects.
• Website(opens in a new tab)
• Documentation(opens in a new tab)
• Github(opens in a new tab)

Created by Nandakishore 87
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Covalent – Enriched blockchain APIs for 200+ Chains.


• Covalenthq.com(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
• Discord(opens in a new tab)
Wake – All-in-one Python framework for contracts testing, fuzzing, deployment,
vulnerability scanning and code navigation.
• Homepage(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
• VS Code Extension(opens in a new tab)
Veramo – Open source, modular and agnostic framework that makes it easy for
decentralized application developers to build decentralized identities and verifiable
credentials into their applications.
• Homepage(opens in a new tab)
• Documentation(opens in a new tab)
• GitHub(opens in a new tab)
• Discord(opens in a new tab)
• NPM Package(opens in a new tab)

HOW IPFS WORKS

• What is IPFS?
• IPFS and the problems it solves
• How IPFS works
• Subsystems overview
• How IPFS represents and addresses data
• How content routing works in IPFS
• How IPFS transfers data
• Further reading

What is IPFS
IPFS is a modular suite of protocols for organizing and transferring data, designed from the
ground up with the principles of content addressing and peer-to-peer networking. Because
IPFS is open-source, there are multiple implementations of IPFS. While IPFS has more than
one use case, its main use case is for publishing data (files, directories, websites, etc.) in a
decentralised fashion.

Created by Nandakishore 88
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This guide is part 1 of a 3-part introduction to the basic concepts of IPFS. The second part,
IPFS and the problems it solves, covers the problems with the internet and current
protocols like HTTP that IPFS solves.

Defining IPFS
The term IPFS can refer to multiple concepts:
• An implementation of IPFS protocol specifications (opens new window), such as
Kubo. Learn more about the principles that define an IPFS implementation.
• A decentralized network composed of IPFS nodes that is open and participatory.
• A modular suite of protocols and standards for organizing and transferring content-
addressed data.
What IPFS isn’t
While IPFS shares similarities with, and is often used in architectures with the systems
described below, IPFS is not:
• A storage provider: While there are storage providers built with IPFS support
(typically known as pinning services), IPFS itself is a protocol, not a provider.
• A cloud service provider: IPFS can be deployed on and complement cloud
infrastructure, but it in of itself is not a cloud service provider.
Further reading
• For an overview of the problems that IPFS solves, see part 2 of a 3-part introduction
to the basic concepts of IPFS, IPFS and the problems it solves.
• Looking for a deeper dive on IPFS compared to other similar technologies? See the
IPFS Comparisons page.

IPFS and the problems it solves


IPFS seeks to address problems with the current web and existing data representation /
routing / transfer protocols like HTTP including:
• Verifiability
• Resilience
• Centralization
• Performance
• Link rot
• Data sovereignty and ownership
• Off-chain storage
• Local-first software
• Vendor lock-in

Created by Nandakishore 89
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In this guide, you’ll learn about each of the problems that IPFS solves.

This guide is part 2 of a 3-part introduction to the basic concepts of IPFS. The third part,
How IPFS Works, covers the different subsystems that IPFS is composed of and how each
one functions.

Verifiability
IPFS uses cryptographic hashes to verify the authenticity and integrity of files, making it
difficult for malicious actors to tamper with or delete files.

Resilience
IPFS has no single point of failure, and users do not need to trust each other. In other
words, the failure of a single or even multiple nodes in the network does not affect the
functioning of the entire network, and an IPFS node can fetch data from the network as
long as at least one other node in the network has that data, regardless of its location.

Centralization
IPFS is an open, distributed and participatory network that reduces data silos from
centralized servers, making IPFS more resilient than traditional systems. No single entity or
person controls, manages or owns IPFS; rather, it is a community-maintained project with
multiple implementations of the protocol, multiple tools and apps leveraging that protocol,
and multiple users and organizations contributing to its design and development.

Performance
IPFS provides faster access to data by enabling it to be replicated to and retrieved from
multiple locations, and allowing users to access data from the nearest location using
content addressing instead of location-based addressing. In other words, because data
can be addressed based on its contents, a node on the network can fetch that data from
any other node in the network that has the data; thus, performance issues like latency are
reduced.

Link rot
IPFS eliminates the problem of link rot by allowing data to be addressed by its content,
rather than by its location. So, in other words, content in IPFS is still reachable regardless of
its location, and does not depend on specific servers being available.

Data sovereignty

Created by Nandakishore 90
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

IPFS protects data sovereignty by enabling users to store and access data directly on a
decentralized network of nodes, rather than centralized, third-party servers. This eliminates
the need for intermediaries to control and manage data, giving users full control and
ownership over their data.

Off-chain storage
IPFS enables verifiable off-chain storage by creating a link between blockchain state and
content-addressed published to IPFS. This works by storing a Content Identifier (CID)
(explained in How IPFS works) in a smart contract.

Local-first software
IPFS benefits local-first software by providing a performant, decentralized, peer-to-peer
data addressing, routing, and transfer protocol that prioritizes data storage and processing
on individual devices. With IPFS, data can be stored, verified and processed locally, and
then synchronized and shared with other IPFS nodes when a network connection is
available.

Vendor lock-in
IPFS prevents vendor lock-in , as users have sovereignty over their data and infrastructure.
This is enabled by content-addressing, which decouples the data from a single location or
infrastructure provider. Unlike traditional cloud vendors, IPFS enables you to change data
storage locations without changing things like APIs and data management. In addition,
because IPFS is open-source, community-maintained and modular, users are not obligated
to use a particular subsystem (described in How IPFS works). Instead, users can customize
IPFS for their preferred technologies, needs and values.

3. How IPFS works


In this conceptual guide, you’ll learn about the major subsystems that IPFS is composed
of, and how they work. The three key responsibilities of the IPFS subsystems are:
• Representing and addressing data
• Routing data
• Transferring data
While these are the key responsibilities, IPFS’s functionality spans beyond these three.
Data in IPFS is addressed by its contents (content addressing), rather than a location, such
as an IP address (location addressing).

Created by Nandakishore 91
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This guide is part 3 of a 3-part introduction to the basic concepts of IPFS. The first part,
What IPFS is and isn’t, defines IPFS, while the second part, IPFS and the problems it solves,
covers the problems with the internet and current protocols like HTTP that IPFS solves.
4. Subsystems overview
All IPFS subsystems, ordered by purpose, are listed below, with links to the major
subsystems discussed in this guide.
Purpose Subsystem
Representing and organizing the data CIDs, IPLD, UnixFS, MFS, DAG-CBOR,
DAG-JSON, CAR files
Content routing, linking between CID and Kademlia DHT, Delegated routing over
IP addresses HTTP, Bitswap, mDNS
Transferring data Bitswap, HTTP Gateways, Sneakernet,
Graphsync, more in development
Addressing for data and peers Multiformats
Bridging between IPFS and HTTP IPFS Gateways, Pinning API Spec
Peer-to-peer connectivity libp2p (TCP, QUIC, WebRTC, WebTransport)
Mutability and dynamic naming IPNS (Interplanetary Naming System),
DNSLink
5. How IPFS represents and addresses data
IPFS represents data as content-addressed blocks, and operates on those data blocks
using the following subsystems:
• Content Identifier (CID)
• InterPlanetary Linked Data (IPLD)
• Content Addressable aRchive (CAR) files
Content Identifier (CID)
In IPFS, data is chunked into blocks, which are assigned a unique identifier called a
Content Identifier (CID). In general, the CID is computed by combining the hash of the data
with its codec. The codec is generated using Multiformats.
CIDs are unique to the data from which they were computed, which provides IPFS with the
following benefits:
• Data can be fetched based on its content, rather than its location.
• The CID of the data received can be computed and compared to the CID requested,
to verify that the data is what was requested.
Learn more Learn more about the concepts behind CIDs described here with the the CID
deep dive.

InterPlanetary Linked Data (IPLD)


IPFS uses InterPlanetary Linked Data (IPLD) to work with CIDs and content-addressed data.
IPFS uses IPLD to represent relationships between content-addressed data, such as file

Created by Nandakishore 92
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

directories and other hierarchical structures, using a Directed Acyclic Graph (DAG) called a
Merkle DAG. Using IPLD for the general functionality, IPFS is able provide a more tailored,
specific mechanism for representing and addressing files, directories, and their symlinks,
called UnixFS. With UnixFS, IPFS can chunk and link data too big to fit in a single block, and
use the chunked representation to store and manage the data.

IPLD provides IPFS with the following benefits:

• The ability to represent and work with arbitrary data, whether that data is standard
files and directories, linked data, a Merkle DAG, or another data type.
• Base functionality to structure, serialize, traverse and link content-addressed data,
which can be leveraged by abstractions like UnixFS for more specific use cases.
• Interoperable protocols.
• Easy upgradeability.
• Backwards compatibility.

Content Addressable aRchive (CAR) files


IPFS uses Content Addressable aRchive (CAR) files to store and transfer a serialized
archive of IPLD content-addressed data. CAR files are similar to TAR files, in that they that
are designed for storing collections of content addressed data.

How content routing works in IPFS


Content routing refers to the way in which IPFS determines where to find a given CID on the
network; specifically, which network peers are providing the CIDs you are requesting. In
other words, a node cannot simply find data in the network with a CID alone; it requires
information about the IP addresses and ports of its peers on the network. To route content,
IPFS uses the following subsystems:
• Kademlia Distributed Hash Table (DHT)
• Bitswap
• mDNS
• Delegated routing over HTTP
Kademlia Distributed Hash Table (DHT)
IPFS uses Kademlia, a Distributed Hash Table (DHT) designed for decentralized peer-to-
peer networks. Kademlia helps you find peers in the IPFS network storing the data you are
seeking. The Kademlia DHT can be thought of as a large table distributed across many
nodes that stores information about which peers (IPs) have which data (CIDs). Kademlia

Created by Nandakishore 93
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

provides a highly efficient, self-organizing system that withstands node churn. Kademlia
uses libp2p to establish connectivity.

Bitswap (for content routing)


IPFS nodes use Bitswap, a message-based, peer-to-peer network protocol for the transfer
of data, that is also used for routing data. With Bitswap, an IPFS node can ask any of the
peers that it is connected to if they have any of the CIDs that node is looking for, all without
traversing the Kademlia DHT. Peers also store wantlists, so that if a peer receives the
requested data at a later time, it can then send it to the node that originally requested. Like
Kademlia, Bitswap uses libp2p to establish connectivity.

Delegated routing over HTTP


Delegated content routing is a mechanism for IPFS implementations to use for offloading
content routing to another process/server using an HTTP API. For example, if an IPFS node
does not implement the DHT, a delegated router can search the DHT for peers on its behalf.
The main benefit of delegated routing is that nodes are not required to implement routing
functionality themselves if they do not have the computing resources to do so, or wish to
build an IPFS system with a custom backend for routing. So, delegated routing over HTTPS
provides IPFS nodes with a standard interface that allows more flexibility in terms of how
content routing works.

mDNS
To quickly and efficiently discover peers in local networks, IPFS uses Multicast Domain
Name System (mDNS), a type of DNS protocol that resolves human-readable internet
domain names to IP names without the use of a name server.

The use of mDNS enables quick and efficient discovery of IPFS nodes in local networks
without any coordination, e.g., without internet connectivity or access to bootstrap nodes.

How IPFS transfers data


In addition to routing data, nodes in the IPFS network must efficiently distribute and deliver
the content addressed data, taking into account that there are some nodes in the network
who already have a copy of the data, and other nodes who do not have a copy of the data,
but want one. To handle the transfer of data, IPFS uses the following subsystems:
• Bitswap
• IPFS HTTP Gateways
• Sneakernet

Created by Nandakishore 94
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Bitswap (for data transfer)


As discussed in How content routing works in IPFS, IPFS nodes use Bitswap, a message-
based, peer-to-peer network protocol for both content routing and the transfer of data.
With Bitswap, any peers that an IPFS node is connected to can transfer requested blocks
directly to that node without needing to traverse the DHT. Peers also store wantlists, so that
if a peer receives requested data at a later time, it can then transfer it to the node that
originally requested.

IPFS HTTP Gateways


HTTP Gateways allow applications that do not support or implement all IPFS subsystems
to fetch data from the IPFS network using an HTTP interface. In its simplest form, a gateway
is an IPFS Node that also exposes an HTTP Gateway API (opens new window).

Sneakernet
For use cases where transfer of data over a network connection is not an option, IPFS
supports the use of sneakernet to transfer content-addressed data between IPFS nodes.
Using IPFS, CAR files (discussed in How IPFS represents and addresses data) can be
transferred between two network drives without any network connectivity. Because of IPFS,
the data is verifiable and will have the same CID on both sides of the air gap.

Further reading
• Are you looking for a deep dive into the design, architecture and theory of IPFS? See
the original IPFS whitepaper.
• Dive deeper into the related concepts of immutability, hashing, content-addressing
and CIDs.
• Learn about IPFS pinning, along with the differences between persistence,
permanence, and pinning.
• Understand privacy and encryption in IPFS.
• Learn more about IPFS nodes, including the different types.

Ideas and theory. (sub part of ipfs)


• The lifecycle of data in IPFS
• Hashing
• Immutability
• Persistence
• Privacy and encryption
• Nodes

Created by Nandakishore 95
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The lifecycle of data in IPFS


o Content-addressable representation
o Pinning
o Retrieval
o Deleting

1. Content-addressable representation
The file is transformed into a content-addressable representation using a CID. The basic
idea is that this representation makes files and directories content-addressable via CIDs by
chunking files into smaller blocks, calculating their hashes, and constructing a Merkle
DAG.

2. Pinning
In this stage, the blocks of the CID are saved on an IPFS node (or pinning service) and made
retrievable to the network. Simply saving the CID on the node does not mean the CID is
retrievable, so pinning must be used. Pinning allows the node to advertise that it has the
CID, and provide it to the network.

Advertising: In this step, a CID is made discoverable to the IPFS network by advertising a
record linking the CID and the server’s IP address to the DHT. Advertising is a continuous
process that repeats typically every 12 hours. The term publishing is also commonly used
to refer to this step.

Providing: The content-addressable representation of the CID is persisted on one of


web3.storage’s IPFS nodes (servers running an IPFS node) and made publicly available to
the IPFS network.

3. Retrieval
In this stage, an IPFS node fetches the blocks of the CID and constructs the Merkle DAG.
This usually involves several steps:

Content routing: The IPFS node finds other IPFS nodes providing the CIDs you are
requesting. Content routing is facilitated by either the DHT, asking already connected peers
over Bitswap, or making an HTTP call to a delegated routing (opens new window)server like
the network indexer (opens new window). The term content discovery is also commonly
used to refer to this step.

Created by Nandakishore 96
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Block fetching: An IPFS node fetches the blocks of the Merkle DAG (of the file or folder)
from providers.

Verification: The IPFS node verifies the blocks fetched by hashing them and ensuring that
the resulting hash is correct. Note that this type of retrieval is trustless; that is, blocks can
come from any node in the network.

Local access: Once all blocks are present, the Merkle DAG can be constructed, making
the file or directory underlying the CID successfully replicated and accessible.

4. Deleting
At this point, the blocks associated with a CID are deleted from a node. Deletion is always
a local operation. If a CID has been replicated to other nodes, it will continue to be
available on the IPFS network.

Hashing
Cryptographic hashes are functions that take some arbitrary input and return a fixed-length
value. The particular value depends on the given hash algorithm in use, such as SHA-1
(opens new window)(used by git), SHA-256 (opens new window), or BLAKE2 (opens new
window), but a given hash algorithm always returns the same value for a given input. Have
a look at Wikipedia’s full list of hash functions (opens new window)for more.

As an example, the input:


Hello world
Would be represented by SHA-1 as:
0x7B502C3A1F48C8609AE212CDFB639DEE39673F5E
However, the exact same input generates the following output using SHA-256:
0x64EC88CA00B268E5BA1A35678A1B5316D212F4F366B2477232534A8AECA37F3C
Notice that the second hash is longer than the first one. This is because SHA-1 creates a
160-bit hash, while SHA-256 creates a 256-bit hash. The prepended 0x indicates that the
following hash is represented as a hexadecimal number.

Hashes can be represented in different bases (base2, base16, base32, etc.). In fact, IPFS
uses that as part of its content identifiers and supports multiple base representations at
the same time, using the Multibase (opens new window)protocol.
For example, the SHA-256 hash of “Hello world” from above can be represented as base 32
as:

Created by Nandakishore 97
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Mtwirsqawjuoloq2gvtyug2tc3jbf5htm2zeo4rsknfiv3fdp46a
TIP

If you’re interested in how cryptographic hashes fit into how IPFS works with files in
general, check out this video from IPFS Camp 2019! Core Course: How IPFS Deals With
Files(opens new window)

Important hash characteristics


Cryptographic hashes come with several important characteristics:

• Deterministic – the same input message always returns exactly the same output
hash
• Uncorrelated – a small change in the message should generate a completely
different hash
• Unique – it’s infeasible to generate the same hash from two different messages
• One-way – it’s infeasible to guess or calculate the input message from its hash
These features also mean we can use a cryptographic hash to identify any piece of data:
the hash is unique to the data we calculated it from and it’s not too long so sending it
around the network doesn’t take up a lot of resource. A hash is a fixed length, so the SHA-
256 hash of a one-gigabyte video file is still only 32 bytes.

That’s critical for a distributed system like IPFS, where we want to be able to store and
retrieve data from many places. A computer running IPFS can ask all the peers it’s
connected to whether they have a file with a particular hash and, if one of them does, they
send back the whole file. Without a short, unique identifier like a cryptographic hash,
content addressing wouldn’t be possible.

Immutability
An immutable object is an object whose state cannot be altered or modified once created.
Once a file is added to the IPFS network, the content of that file cannot be changed without
altering the content identifier (CID) of the file. This feature is excellent for storing data that
does not need to change. However, when it comes to content that needs to be altered or
updated, immutability becomes a problem. This page discusses how to keep a mutable
state built from immutable building blocks.

A CID is an absolute pointer to content. No matter when we request a CID, the CID value
will always be the same. This is part of the content’s architecture and cannot be changed.

Created by Nandakishore 98
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

To manage immutable files in a mutable system, we need to add another layer that sits on
top of CIDs.

As a basic example, let’s have two blocks of content with the strings hello and world
hashed into two leaf nodes with the CIDs A and B. If we concatenate these two nodes, then
we are given CID C. On top of this root CID, we assign a pointer Pointer.

| Pointer |

+--| C |-+

| A | | B|

“hello” “world”
If we change the content of B to IPFS!, all the upstream paths will change as well. In this
simple example, the only upstream path is C. If we request content from the pointer we get
back new content since the pointer is now pointing at a completely different node. Node B
is not being edited, updated, or otherwise changed. Instead, we are creating a new DAG
where the pointer points to CID E that joins node A and a new node, node D.

| Pointer | --------------+

+--| C |-+ +-- | E | --+

| A | | B| |A | |D |

“hello” “world” “hello” “IPFS!”


Again, node B does not change. It will always refer to the same content, world. Node A also
appears in the new DAG. This does not necessarily mean we copied the memory/buffer

Created by Nandakishore 99
BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

that contained the hello string into our new message; that would imply the location-
addressed paradigm that focuses on the where and not the what. In a content-addressed
system, any time someone writes the string hello it will always have CID A, regardless of
whether we copied the string from a previous location or we wrote it from scratch.

Example
In this example, we have a website that displays two headers called header_1 and
header_2. The content of the headers is supplied from the variables string_1 and string_2.
• #html
<body>
<h1 id=”header_1”></h1>
<h1 id=”header_2”></h1>
</body>
<script>
Let string_1 = ‘hello’
Let string_2 = ‘world’
Document.getElementById(‘header_1’).textContent = string_1
Document.getElementById(‘header_2’).textContent = string_2
</script>
The CID of this website is QmWLdyFMUugMtKZs1xeJCSUKerWd9M627gxjAtp6TLrAgP.
Users can go to example.com/QmWLdyFMUugMtKZs1xeJCSUKerWd9M627gxjAtp6TLrAgP
(opens new window)to view the site. If we change string_2 to IPFS then the CID of the
website changes to Qme1A6ofTweQ1JSfLLdkoehHhpbAAk4Z2hWjyNC7YJF9m5. Now users
can go to example.com/Qme1A6ofTweQ1JSfLLdkoehHhpbAAk4Z2hWjyNC7YJF9m5 (opens
new window).

Having a user visit the site using the CID is cumbersome since the CID will change every
time a variable is updated. So instead, we can use a pointer that maintains the CID of the
page with the latest update. This way, users can go to example.com, and always be
directed to the latest content. This pointer is mutable; it can be updated to reflect the
changes downstream.

| User | -→ | Pointer | -→ | QmWLd… |

In the website example, when we change a variable, the CID of the webpage is different.
The pointer must be updated to redirect users to the latest webpage. What’s important is
that the old CID still exists. Nothing is overwritten. The original CID

Created by Nandakishore 100


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

QmWLdyFMUugMtKZs1xeJCSUKerWd9M627gxjAtp6TLrAgP will always refer to a webpage


with the headers hello and world. What we’re doing is constructing a new DAG.

| User | -→ | Pointer | | QmWLd… |

+ ------→ | Qme1A… |

This process is essentially what the InterPlantery Naming Service (IPNS) does! CIDs can be
difficult to deal with and hard to remember, so IPNS saves users from the cumbersome
task of dealing with CIDs directly. More importantly, CIDs change with the content because
they are the content. Whereas the inbound reference of URLs/pointers stay the same, and
the outbound referral changes:

| User | -→ | docs.ipfs.tech | -→ |
bafybeigsddxhokzs3swgx6mss5i3gm6jqzv5b45e2xybqg7dr3jmsykrku |

Persistence, permanence, and pinning


Understand the concepts behind IPFS pinning, along with the differences between
persistence, permanence, and pinning.

Persistence versus permanence


One goal of IPFS is to preserve humanity’s history by letting users store data while
minimizing the risk of that data being lost or accidentally deleted. This is often referred to
as permanence. But what does permanence actually mean, and why does it matter?

A 2011 study found that the average lifespan of a web page is 100 days (opens new
window)before it’s gone forever. It’s not good enough for the primary medium of our era to
be this fragile. IPFS can keep every version of your file you wish to store, and make it simple
to set up resilient networks for mirroring data.

Nodes on the IPFS network can automatically cache resources they download, and keep
those resources available for other nodes. This system depends on nodes being willing and
able to cache and share resources with the network. Storage is finite, so nodes need to

Created by Nandakishore 101


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

clear out some of their previously cached resources to make room for new resources. This
process is called garbage collection.

To ensure that data persists on IPFS, and is not deleted during garbage collection, data can
be pinned to one or more IPFS nodes. Pinning gives you control over disk space and data
retention. As such, you should use that control to pin any content you wish to keep on IPFS
indefinitely.

Garbage collection
Garbage collection (opens new window)is a form of automatic resource management
widely used in software development. The garbage collector attempts to reclaim memory
occupied by objects that are no longer in use. IPFS uses garbage collection to free disk
space on your IPFS node by deleting data that it thinks is no longer needed.

Pinning in context
An IPFS node can protect data from garbage collection based on different kinds of user
event
• The universal way is by adding a low-level local pin. This works for all data types and
can be done manually, but if you add a file using the CLI command ipfs add, your
IPFS node will automatically pin that file for you.
• When working with files and directories, a better way may be to add them to the
local Mutable File System (MFS). This protects the data from garbage collection in
the same way as local pinning but is somewhat easier to manage.
TIP

If you want to learn more about how pinning fits into the overall lifecycle of data in IPFS,
check out the course from IPFS Camp The Lifecycle of Data in DWeb (opens new window).

Pinning services
To ensure that your important data is retained, you may want to use a pinning service.
These services run lots of IPFS nodes and allow users to pin data on those nodes for a fee.
Some services offer a free storage allowance for new users. Pinning services are handy
when:

You don’t have a lot of disk space, but you want to ensure your data sticks around.
Your computer is a laptop, phone, or tablet that will have intermittent connectivity to the
network. Still, you want to be able to access your data on IPFS from anywhere at any time,
even when the device you added it from is offline.

Created by Nandakishore 102


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

You want a backup that ensures your data is always available from another computer on
the network if you accidentally delete or garbage-collect your data on your own computer.
Some available pinning service providers are:

WARNING
Some of the pinning services listed below are operated by third party companies. There is
no guarantee that these third party companies will continue to maintain their pinning
service. It is strongly recommended that you thoroughly research a pinning service before
using it to host your data.
• 4EVERLAND Bucket(opens new window)
• Filebase(opens new window)
• NFT.Storage(opens new window)
• Pinata(opens new window)
• Scaleway(opens new window)
• Web3.Storage(opens new window)
• See how to work with remote pinning services.

Long-term storage
Storing data using a personal IPFS node is easy, but it can be inconvenient since you have
to manage your own hardware. This problem gave rise to pinning services, paid services
that allow you to upload your data to a remotely hosted IPFS node and retrieve it whenever
you want. However, while paying a pinning service to store data is a convenient
workaround, it still requires someone to bear the cost of storing that data. If that one
sponsor stops paying for that pinning, the content may be lost entirely. While IPFS
guarantees that any content on the network is discoverable, it doesn’t guarantee that any
content is persistently available. This is where Filecoin (opens new window)comes in.

Storing data with Filecoin


Filecoin (opens new window)is a decentralized storage network in which storage providers
rent their storage space to clients. The client and the storage provider agree on how much
data will be stored, for how long, and at what cost. This agreement is called a deal. Once
both parties agree to a deal, the client sends the data to the storage provider, who
periodically verifies that they are correctly storing the data. When the client wants the data
back, they send a request to the storage provider, who initiates the data transfer back to the
client. For more information on how Filecoin works, head over to the official Filecoin
documentation →(opens new window)

Created by Nandakishore 103


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Filecoin provides users with a dependable, long-term storage solution. However, there are
some limitations to consider. The retrieval process is not always as fast as an IPFS pinning
service, and the minimum file size accepted by a Filecoin storage provider can be several
GiB. Also, the process for creating a storage deal may seem complicated to new users who
aren’t familiar with blockchain transactions or simply aren’t comfortable working within a
command line.

IPFS + Filecoin solutions


Fortunately, there is a growing community of tools and service providers that help simplify
the process of making content available over IPFS while also persisting the data via
Filecoin. These solutions make it simple to store data using decentralized protocols by
acting both as IPFS pinning services and Filecoin storage platforms. Combining the two
means that when you upload a file, that file is immediately available for download.
Additionally, combined IPFS + Filecoin solutions will periodically bundle data and create a
deal with a reputable Filecoin storage provider, ensuring that the data is available in long-
term storage. Many solutions include API client libraries for developers to integrate into
their apps and services, as well as web interfaces for quickly managing and inspecting
files.

Privacy and encryption


As a protocol for peer-to-peer data storage and delivery, IPFS is a public network: Nodes
participating in the network store data affiliated with globally consistent content addresses
(CIDs) and advertise that they have those CIDs available for other nodes to use through
publicly viewable distributed hash tables (DHTs). This paradigm is one of IPFS’s core
strengths — at its most basic, it’s essentially a globally distributed “server” of the network’s
total available data, referenceable both by the content itself (those CIDs) and by the
participants (the nodes) who have or want the content.

What this does mean, however, is that IPFS itself isn’t explicitly protecting knowledge about
CIDs and the nodes that provide or retrieve them. This isn’t something unique to the
distributed web; on both the d-web and the legacy web, traffic and other metadata can be
monitored in ways that can infer a lot about a network and its users. Some key details on
this are outlined below, but in short: While IPFS traffic between nodes is encrypted, the
metadata those nodes publish to the DHT is public. Nodes announce a variety of
information essential to the DHT’s function — including their unique node identifiers
(PeerIDs) and the CIDs of data that they’re providing — and because of this, information
about which nodes are retrieving and/or reproviding which CIDs is publicly available.

Created by Nandakishore 104


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

So, why doesn’t the IPFS protocol itself explicitly have a privacy layer built-in? This is in line
with key principles of the protocol’s highly modular design — after all, different uses of IPFS
over its lifetime may call for different approaches to privacy. Explicitly implementing an
approach to privacy within the IPFS core could “box in” future builders due to a lack of
modularity, flexibility, and future-proofing. On the other hand, freeing those building on
IPFS to use the best privacy approach for the situation at hand ensures IPFS is useful to as
many as possible.

If you’re worried about the implications of this, it might be worth taking additional
measures such as disabling reproviding, encrypting sensitive content, or even running a
private IPFS network if that’s appropriate for you.

TIP

While IPFS traffic between nodes is encrypted, the essential metadata that nodes publish
to the DHT — including their unique node identifiers (PeerIDs) and the CIDs of data that
they’re providing — is public. If you’re worried about the implications of this for your
personal use case, it’s worth taking additional measures.

What’s public on IPFS


All traffic on IPFS is public, including the contents of files themselves, unless they’re
encrypted. For purposes of understanding IPFS privacy, this may be easiest to think about
in two halves: content identifiers (CIDs) and IPFS nodes themselves.

Content identifiers
Because IPFS uses content addressing rather than the legacy web’s method of location
addressing, each piece of data stored in the IPFS network gets its own unique content
identifier (CID). Copies of the data associated with that CID can be stored in any number of
locations worldwide on any number of participating IPFS nodes. To make retrieving the data
associated with a particular CID efficient and robust, IPFS uses a distributed hash table
(DHT) to keep track of what’s stored where. When you use IPFS to retrieve a particular CID,
your node queries the DHT to find the closest nodes to you with that item — and by default
also agrees to re-provide that CID to other nodes for a limited time until periodic “garbage
collection” clears your cache of content you haven’t used in a while. You can also “pin”
CIDs that you want to make sure are never garbage-collected — either explicitly using
IPFS’s low-level pin API or implicitly using the Mutable File System (MFS) — which also
means you’re acting as a permanent reprovider of that data.

Created by Nandakishore 105


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This is one of the advantages of IPFS over traditional legacy web hosting. It means retrieving
files — especially popular ones that exist on lots of nodes in the network — can be faster
and more bandwidth-efficient. However, it’s important to note that those DHT queries
happen in public. Because of this, it’s possible that third parties could be monitoring this
traffic to determine what CIDs are being requested, when, and by whom. As IPFS continues
to grow in popularity, it’s more likely that such monitoring will exist.

Node identifiability
The other half of the equation when considering the prospect of IPFS traffic monitoring is
that nodes’ unique identifiers are themselves public. Just like with CIDs, every individual
IPFS node has its own public identifier (known as a PeerID), such as
QmRGgYP1P5bjgapLaShMVhGMSwGN9SfYG3CM2TfhpJ3igE.

While a long string of letters and numbers may not be a “Johnny Appleseed” level of
human-readable specificity, your PeerID is still a long-lived, unique identifier for your node.
Keep in mind that it’s possible to do a DHT lookup on your PeerID and, particularly if your
node is regularly running from the same location (like your home), find your IP address. (It’s
possible to reset your PeerID if necessary, but similarly to changing your user ID on legacy
web apps and services, is likely to involve extra effort.) Additionally, longer-term monitoring
of the public IPFS network could yield information about what CIDs your node is requesting
and/or reproviding and when.

Encryption
There are two types of encryption in a network: transport-encryption and content-
encryption.
• Transport-encryption is used when sending data between two parties. Albert
encrypts a file and sends it to Laika, who then decrypts it once it has been received.
This stops a third party from viewing the data while it is moving from one place to
another.

Created by Nandakishore 106


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Content encryption is used to secure data until someone needs to access it. Albert creates
a spreadsheet for his monthly budget and saves it with a password. When Albert needs to
access it again, he must enter his password to decrypt the file. Without the password,
Laika cannot view the file.

IPFS uses transport-encryption but not content encryption. This means that your data is
secure when being sent from one IPFS node to another. However, anyone can download
and view that data if they have the CID. The lack of content encryption is an intentional
decision. Instead of forcing you to use a particular encryption protocol, you are free to
choose whichever method is best for your project. This modular design keeps IPFS
lightweight and free of vendor lock-in.

Encryption-based projects using IPFS


• Ceramic(opens new window)
• Fission.codes(opens new window)
• Fleek
• Lit Protocol(opens new window)
• OrbitDB(opens new window)
• Peergos(opens new window)
• Textile(opens new window)

Nodes
Participants in the IPFS network are called nodes. A node is an instance of an
implementation IPFS that you run on your local computer (directly or via a browser) to store
files and connect to the IPFS network. They’re the most crucial aspect of IPFS. Without
IPFS nodes, there would be no IPFS Network.

You’re likely to see the term node throughout the IPFS docs, issues, and related code. It’s a
very general term, so its meaning depends on the context. There are three main categories
of nodes: IPFS nodes, data nodes, and libp2p nodes for applications.

Created by Nandakishore 107


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• IPFS Nodes are programs that run on a computer that can exchange data with other
IPFS nodes. They go by several different names, but we refer to them by a different
term, depending on the context:

Node: Use node when you’re referring to an individual point on the network. It’s a very
general term. For example, when you open IPFS Desktop, you establish yourself as a node
with the potential to interact with other nodes. See Configure a node.
Peer: Use peer when you’re talking about the relationship of one node (even your own) to
other nodes. It refers to their relationship as equals, with no central authority, so your node
is a peer to other peers. See Observe peers and Peering with content providers.
Daemon: Use daemon when talking about a node’s activity status. When a node is online
and running in the background, listening for requests for its data, it’s called a daemon. See
Take your node online. Note that an IPFS Helia node in the browser is not generally referred
to as a daemon. However, in the context of this document, we will refer to a Helia instance
acting as a node in the browser as a daemon . For more information, see the Helia
documentation (opens new window).
Instance: Use instance when talking about a library or program, such as a Go or JS version,
running on as an IPFS node at a particular point in time. The peer ID is the same, so it’s still
the same node as far as the IPFS network is concerned. See Kubo and Helia.

• Data nodes, Use data nodes when talking about actual pieces of data on IPFS, such
as DAG nodes, UnixFS nodes, and IPLD nodes. When you add a file with the ipfs add
myfile.txt command, IPFS breaks them up into several nodes that each contain a
chunk of the file and are linked to each other. See Merkle Directed Acyclic Graphs
(DAGs), Unix File System (UnixFS), and stay tuned for InterPlanetary Linked Data
(IPLD) model docs, which is in progress.

Libp2p peer Use libp2p peer when talking about libp2p nodes on which you can build
applications. They’re usually referred to as peers in libp2p, because it provides solutions
for essential peer-to-peer elements like transport, security, peer routing, and content
discovery. See concepts
Types
There are different types of IPFS nodes. And depending on the use-case, a single IPFS node
can serve one of many functions:

• Relay
• Bootstrap
• Delegated Routing

Created by Nandakishore 108


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Relay
If an IPFS node deems itself unreachable by the public internet, IPFS nodes may choose to
use a relay node as a kind of VPN in an attempt to reach the unreachable node.

Features of a relay node


• Implements v2 (opens new window)of the Circuit Relay protocol.
• Can be either Kubo or Helia nodes; however there are standalone implementations
as well:
• Ji-libp2p/circuit-relay(opens new window)
• Go-libp2p-relay-daemon(opens new window)
• They’re used by both Kubo and Helia nodes.
• A Helia node in the browser can’t talk TCP, so a relay can help increase the number
of peers that can be communicated with. A Helia node with browser-supported
transports (opens new window)can talk with a Kubo peer with no overlapping
transports using a relay peer if that relay supports one transport from each other
peer:
• At least one browser-supported transport (appropriate transports are enabled by
default in Helia browser nodes (opens new window))
• At least one Kubo peer supported transport.
• Limitations of relay nodes:
• V2 relays are “limited relays” that are designed to be used for Direct Connection
Upgrade through Relay (opens new window)(aka hole punching).
• See p2p-circuit relay(opens new window)

Bootstrap
Both Kubo and Helia nodes use bootstrap nodes to find peers on the DHT.
Features of a bootstrap node:
All default bootstrap nodes are part of the Amino DHT.
The list of bootstrap nodes a Helia node connects to is controlled by configuring libp2p’s
peerDiscovery option (opens new window).
Limitations of a bootstrap node:
If an IPFS node only has one bootstrap node listed in that configuration and that bootstrap
node goes offline, the IPFS node will lose access to the Amino DHT if it were to restart.
You can configure your peer store in your implementation to cache healthy connectable
peers so that you can connect to them again after a restart, instead of bootstrap nodes.
Issue 8856 in the Kubo repository (opens new window), which addressed this, provides
further information and context

Created by Nandakishore 109


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Delegated Routing
IPFS nodes delegate the content and peer routing tasks to a Delegated Routing V1 HTTP API
(spec (opens new window)).

Delegated routing over HTTP is not a routing system but a general API to offload routing
work. This is useful in browsers and other constrained environments where it’s infeasible to
be a DHT server/client contacting many other peers. More broadly, it enables
experimentation and innovation in content routing while maintaining interoperability.

The HTTP API (opens new window)can used to resolve content, peer, and IPNS name
routing requests.

Support for delegated routing in IPFS implementations


• Someguy (opens new window)is a Delegated Routing V1 server that proxies requests
to the IPFS Amino DHT and the cid.contact Network Indexer (opens new window).
The IPFS Foundation operates a public good delegated routing endpoint backed by
someguy with the URL https://delegated-ipfs.dev/routing/v1.
• The cid.contact Network Indexer (opens new window)also implements the
Delegated Routing V1 HTTP API.
• Helia (opens new window)can be configured to use a delegated routing endpoint.
• Kubo (opens new window)can be configured with multiple delegated routing
endpoints (Kubo as a client (opens new window)), in addition to exposing the
delegated routing endpoint on the gateway (Kubo as a delegated routing server
(opens new window)).
Implementations
IPFS implementations explained
Software, written in any programming language, is considered to be an IPFS
implementation if it adheres to the core principles listed below. However, there are
characteristics that an IPFS implementation may have, but are not strictly required. IPFS
principles are broad by design because, like HTTP, IPFS supports an open-ended set of use
cases and is adaptable to a broad array of operating conditions. Some implementations
are optimized for specific use cases or devices, or use different subsystems to handle
content-addressed data. There are multiple specifications in IPFS for handling content-
addressed data, and not all implementations implement them.

You can see the list of implementations here.

Created by Nandakishore 110


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Core principles
IPFS implementations must:

• Support addressability using Content Identifiers (CIDs).


• Expose operations such as retrieval, provisioning, and indexing, on resources using
CIDs. The operations that an implementation may support are an open-ended, but
this requirement covers any operation which the implementation exposes to other
IPFS implementations.
• Verify that the CIDs it resolves match the resources addressed, at least when the
resources’ bytes are accessible. Implementations may relax this requirement in
controlled environments in which it is possible to ascertain that verification has
happened elsewhere in a trusted part of the system.
Recommended principles
The following principles are not strictly required. However, it is recommended that all IPFS
implementations should do the following, for the reasons described:

• Name all the important resources exposed using CIDs. Consider anything that
another agent might legitimately wish to access as being in scope, and err on the
side of inclusion.
• Expose the logical units of data that structure a resource (e.g. a CBOR document, a
file or directory, a branch of a B-tree search index) using CIDs.
• Support incremental verifiability, notably so that it may process content of arbitrary
sizes.
• Should not rely on any one transport layer. The transport layer cannot dictate or
constrain the way in which CIDs map to
Subsystems and components
• Content Identifiers (CIDs)
• Bitswap
• Distributed Hash Tables (DHT)
• DNSLink
• File systems
• IPFS Gateway
• IPLD (InterPlanetaryLinkedData)(opens new window)
• IPNI (InterPlanetary Network Indexer)
• IPNS (InterPlanetary Name System)
• Libp2p
• Merkle Directed Acyclic Graphs (DAG)

Created by Nandakishore 111


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Mining and incentive models


Mining is the process of adding transaction details to the Blockchain, like sender address,
hash value, etc. The Blockchain contains all the history of the transactions that have taken
place in the past for record purposes and it is stored in such a manner that, it can’t be
manipulated.

An Incentive is basically a reward given to a Blockchain Miner for speeding up the


transactions and making correct decisions while processing the complete transaction
securely.

Consensus mechanisms
The term ‘consensus mechanism’ is often used colloquially to refer to ‘proof-of-stake’,
‘proof-of-work’ or ‘proof-of-authority’ protocols. However, these are just components in
consensus mechanisms that protect against Sybil attacks. Consensus mechanisms are
the complete stack of ideas, protocols and incentives that enable a distributed set of
nodes to agree on the state of a blockchain.

Prerequisites
To better understand this page, we recommend you first read our introduction to Ethereum.

What is consensus?
By consensus, we mean that a general agreement has been reached. Consider a group of
people going to the cinema. If there is no disagreement on a proposed choice of film, then
a consensus is achieved. If there is disagreement, the group must have the means to
decide which film to see. In extreme cases, the group will eventually split.

In regard to the Ethereum blockchain, the process is formalized, and reaching consensus
means that at least 66% of the nodes on the network agree on the global state of the
network.
What is a consensus mechanism?
The term consensus mechanism refers to the entire stack of protocols, incentives and
ideas that allow a network of nodes to agree on the state of a blockchain.

Ethereum uses a proof-of-stake-based consensus mechanism that derives its crypto-


economic security from a set of rewards and penalties applied to capital locked by stakers.
This incentive structure encourages individual stakers to operate honest validators,
punishes those who don’t, and creates an extremely high cost to attack the network.

Created by Nandakishore 112


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Then, there is a protocol that governs how honest validators are selected to propose or
validate blocks, process transactions and vote for their view of the head of the chain. In the
rare situations where multiple blocks are in the same position near the head of the chain,
there is a fork-choice mechanism that selects blocks that make up the ‘heaviest’ chain,
measured by the number of validators that voted for the blocks weighted by their staked
ether balance.

Some concepts are important to consensus that are not explicitly defined in code, such as
the additional security offered by potential out-of-band social coordination as a last line of
defense against attacks on the network.
These components together form the consensus mechanism.

Types of consensus mechanisms


Proof-of-work based
Like Bitcoin, Ethereum once used a proof-of-work (PoW) based consensus protocol.

Block creation
Miners compete to create new blocks filled with processed transactions. The winner
shares the new block with the rest of the network and earns some freshly minted ETH. The
race is won by the computer which is able to solve a math puzzle fastest. This produces the
cryptographic link between the current block and the block that went before. Solving this
puzzle is the work in “proof-of-work”. The canonical chain is then determined by a fork-
choice rule that selects the set of blocks that have had the most work done to mine them.

Security
The network is kept secure by the fact that you’d need 51% of the network’s computing
power to defraud the chain. This would require such huge investments in equipment and
energy; you’re likely to spend more than you’d gain.

Proof-of-stake based
Ethereum now uses a proof-of-stake (PoS) based consensus protocol.

Block creation
Validators create blocks. One validator is randomly selected in each slot to be the block
proposer. Their consensus client requests a bundle of transactions as an ‘execution
payload’ from their paired execution client. They wrap this in consensus data to form a
block, which they send to other nodes on the Ethereum network. This block production is

Created by Nandakishore 113


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

rewarded in ETH. In rare cases when multiple possible blocks exist for a single slot, or
nodes hear about blocks at different times, the fork choice algorithm picks the block that
forms the chain with the greatest weight of attestations (where weight is the number of
validators attesting scaled by their ETH balance).

Security
A proof-of-stake system is secure crypto-economically because an attacker attempting to
take control of the chain must destroy a massive amount of ETH. A system of rewards
incentivizes individual stakers to behave honestly, and penalties disincentivize stakers
from acting maliciously.

Sybil resistance & chain selection


Proof-of-work and proof-of-stake alone are not consensus protocols, but they are often
referred to as such for simplicity. They are actually Sybil resistance mechanisms and block
author selectors; they are a way to decide who is the author of the latest block. Another
important component is the chain selection (aka fork choice) algorithm that enables nodes
to pick one single correct block at the head of the chain in scenarios where multiple blocks
exist in the same position.

Sybil resistance measures how a protocol fares against a Sybil attack. Resistance to this
type of attack is essential for a decentralized blockchain and enables miners and validators
to be rewarded equally based on resources put in. Proof-of-work and proof-of-stake protect
against this by making users expend a lot of energy or put up a lot of collateral. These
protections are an economic deterrent to Sybil attacks.

A chain selection rule Is used to decide which chain is the “correct” chain. Bitcoin uses the
“longest chain” rule, which means that whichever blockchain is the longest will be the one
the rest of the nodes accept as valid and work with. For proof-of-work chains, the longest
chain is determined by the chain’s total cumulative proof-of-work difficulty. Ethereum used
to use the longest chain rule too; however, now that Ethereum runs on proof-of-stake it
adopted an updated fork-choice algorithm that measures the ‘weight’ of the chain. The
weight is the accumulated sum of validator votes, weighted by validator staked-ether
balances.

Ethereum uses a consensus mechanism known as Gasper that combines Casper FFG
proof-of-stake(opens in a new tab) with the GHOST fork-choice rule(opens in a new tab).

Further reading

Created by Nandakishore 114


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• What Is a Blockchain Consensus Algorithm?(opens in a new tab)


• What is Nakamoto Consensus? Complete Beginner’s Guide(opens in a new tab)
• How Does Casper work?(opens in a new tab)
• On the Security and Performance of Proof of Work Blockchains(opens in a new
tab)
• Byzantine fault(opens in a new tab)

Staking Rewards
A Proof of Stake (PoS), (i.e. using in-protocol asset, SOL, to provide secure consensus)
design is outlined here. Solana implements a proof of stake reward/security scheme for
validator nodes in the cluster. The purpose is threefold:
• Align validator incentives with that of the greater cluster through skin-in-the-game
deposits at risk
• Avoid ‘nothing at stake’ fork voting issues by implementing slashing rules aimed at
promoting fork convergence
• Provide an avenue for validator rewards provided as a function of validator
participation in the cluster.
While many of the details of the specific implementation are currently under consideration
and are expected to come into focus through specific modeling studies and parameter
exploration on the Solana testnet, we outline here our current thinking on the main
components of the PoS system. Much of this thinking is based on the current status of
Casper FFG, with optimizations and specific attributes to be modified as is allowed by
Solana’s Proof of History (PoH) blockchain data structure.

General Overview
Solana’s ledger validation design is based on a rotating, stake-weighted selected leader
broadcasting transactions in a PoH data structure to validating nodes. These nodes, upon
receiving the leader’s broadcast, have the opportunity to vote on the current state and PoH
height by signing a transaction into the PoH stream.

To become a Solana validator, one must deposit/lock-up some amount of SOL in a


contract. This SOL will not be accessible for a specific time period. The precise duration of
the staking lockup period has not been determined. However we can consider three
phases of this time for which specific parameters will be necessary:

• Warm-up period: which SOL is deposited and inaccessible to the node, however
PoH transaction validation has not begun. Most likely on the order of days to weeks

Created by Nandakishore 115


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Validation period: a minimum duration for which the deposited SOL will be
inaccessible, at risk of slashing (see slashing rules below) and earning rewards for
the validator participation. Likely duration of months to a year.

• Cool-down period: a duration of time following the submission of a ‘withdrawal’


transaction. During this period validation responsibilities have been removed and
the funds continue to be inaccessible. Accumulated rewards should be delivered at
the end of this period, along with the return of the initial deposit.

Penalties
As discussed in the Economic Design section, annual validator interest rates are to be
specified as a function of total percentage of circulating supply that has been staked. The
cluster rewards validators who are online and actively participating in the validation
process throughout the entirety of their validation period. For validators that go offline/fail
to validate transactions during this period, their annual reward is effectively reduced.

Similarly, we may consider an algorithmic reduction in a validator’s active staked amount in


the case that they are offline. I.e. if a validator is inactive for some amount of time, either
due to a partition or otherwise, the amount of their stake that is considered ‘active’ (eligible
to earn rewards) may be reduced.
This design would be structured to help long-lived partitions to eventually reach finality on
their respective chains as the % of non-voting total stake is reduced over time until a
supermajority can be achieved by the active validators in each partition. Similarly, upon re-
engaging, the ‘active’ amount staked will come back online at some defined rate. Different
rates of stake reduction may be considered depending on the size of the partition/active
set.

Decentralization vs trust
Blockchains, cryptocurrency, smart contracts, and oracles have emerged as new
technologies for coordinating social and economic activities in a more secure, transparent,
and accessible manner. Most importantly, these technologies are revealing the power of
cryptographic guarantees—what we often call cryptographic truth—in restoring users’ trust
in everyday interactions.

What Crypto Is Really About


Table of Contents

Created by Nandakishore 116


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

This is Part 1 of a two-part series on the future of trust. Read Part 2, Cryptographic Truth:
The Future of Trust-Minimized Computing and Record-Keeping, for a walkthrough of the
cryptographic fundamentals that underpin blockchain technology and how Chainlink
oracles extend the reach of cryptographic guarantees to the off-chain world.

The word “trust” is a heavily debated term in the blockchain industry, where engineers
often refer to zero-trust interaction systems, trustless transactions, and other trust-
minimized technologies. Though personal interpretations of its meaning in blockchain both
vary and overlap, trust will always be at the center of understanding what crypto is really
about.

Deriving from the Old Norse word traust, meaning “confidence” and also “shelter,” trust
has historically referred to the amount of belief one has that people and processes will stay
true to their commitments. Trust is foundational to well-functioning societies: high-trust
societies generally have increased economic activity and greater social harmony thanks to
reduced counterparty risk and fairer dispute resolution.

Unfortunately, trust in the institutions responsible for facilitating core social and economic
activities is beginning to break down. For instance, Gallup polls indicate that the U.S.
population’s confidence in many of the country’s major institutions has been declining over
the past 45 years. While the scope of distrust varies across industries and nations, it’s clear
from the current negative sentiment toward established systems that people are searching
for more equitable solutions.

Blockchains, cryptocurrency, smart contracts, and oracles have emerged as new


technologies for coordinating social and economic activities in a more secure, transparent,
and accessible manner. Most importantly, these technologies are revealing the power of
cryptographic guarantees—what we often call cryptographic truth—in restoring users’ trust
in everyday interactions.

Note: We use the word “app” in a broad sense to refer to any interface for interacting with a
company, government, or other users on the same platform, whether it be an application
you download on your phone or a website. Additionally, when explaining blockchains, we
focus on permissionless blockchains (e.g. Ethereum, Bitcoin) given their widespread
adoption as opposed to permissioned blockchains.

Problem: A Breakdown in Societal Trust

Created by Nandakishore 117


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The breakdown of trust in traditional institutions and processes is apparent in many


aspects of modern societies. Listed below are four problems causing distrust, which
directly impact quality of life and economic prosperity.

Centralized Ownership of Data and Processes


One outcome of the way the Internet was originally architected is that applications (apps)
are mostly centralized. A centralized entity typically owns an app’s intellectual property
(IP), controls its backend computing, makes key decisions on its future development, and
profits from any data and revenue generated. This centralization creates an unequal
relationship between users and apps that can easily be abused and fuel distrust.

For example, apps can often unilaterally censor the actions of users. Though such actions
may be justified as clear violations of terms of service agreements such as the removal of
illicit activities, there are many instances where censorship is based on subjective
interpretations of vague policies. This puts into question the platform’s credible
neutrality—no discrimination for or against any specific people—particularly in situations
when the platform’s own financial interests are at stake, external political or social
pressure is applied, or users’ personal opinions don’t directly align with the platform’s own.
Such forces have resulted in polarizing debates as to whether social media, financial
services, content streaming, and various other platforms are justified in censoring or not
censoring certain content.

Political bias in Web2 platforms


“A Pew Research Center survey conducted in June (2020) found that roughly three-quarters
of U.S. adults think it is very (37%) or somewhat (36%) likely that social media sites
intentionally censor political viewpoints that they find objectionable.”
Centralization also leads to power structures where small groups of people largely control
how platform revenue is distributed and the direction of development while users are left
without much say. Though it’s true that owners generally start and manage apps and are to
an extent responsible for their success, it’s also true that users often provide immense
value to apps as content creators. For instance, users give social media platforms value
through the material they generate, which is monetized directly by app developers via
advertising. This undoubtedly makes users question whether or not they are getting fair
compensation and representation.

Users are also becoming more concerned about having to trust apps with their sensitive
data. Since users often have to create accounts to interact with apps, the apps are
responsible for storing users’ personal information. This centralized storage model opens

Created by Nandakishore 118


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

up a single point of attack for hackers that has resulted in numerous data breaches, as was
the case with Equifax, for example. It’s also why apps are able to monetize users’ data
without sharing revenue with users. As many have suggested, “if it’s free, then you’re the
product” is the basis for most Web2 economic models.

Equifax data breach


Equifax, one of the largest consumer credit reporting agencies, leaked the sensitive
personal data of 148 million Americans, including names, home addresses, phone
numbers, dates of birth, social security numbers, and driver’s license numbers.
No Shared Sense of Truth
A further reason for distrust is the fact that participants in a social or economic relationship
don’t always operate with reference to the same source of truth. For instance, there are
many business relationships where all participants maintain their own set of records. Not
only can an honest mistake from a single participant lead to a lengthy reconciliation
process, but it’s possible for parties to intentionally falsify their records in an attempt to
delay the agreement, escape their obligations, or present a false sense of success to their
counterparties.

Look no further than the Wirecard scandal, which saw many financial services companies
take losses when the German company Wirecard was found to be engaging in fraudulent
accounting practices to cover up €1.9 billion in missing funds from its balance sheet.
Similarly, the 2007-2008 financial crisis severely impacted the global financial industry,
largely because of a poor shared understanding regarding its systemic overexposure to
toxic mortgage-backed securities (MBS) and MBS-linked derivatives.

Underpinning this dynamic is the fact that users don’t always understand the legal
relationship they have with an institution. Though the misunderstanding could be
interpreted as the fault of users for not reading terms of service agreements, it’s fair to ask
whether users should be expected to take time to read and understand long contracts with
dense legal jargon that’s purposely vague in order to enable a range of interpretations.
When things are going well, misunderstandings may never manifest. However, when
unexpected events occur, users often learn that their relationship with an institution is not
quite what they thought. Unclear legal relationships are why many traders were blindsided
when they learned Robinhood could halt purchases of the GME stock during a period of
high trade volume, or why Greek citizens were shocked in 2015 when their banks informed
them that they were only allowed to withdraw €60 a day from ATMs.

Created by Nandakishore 119


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The same misunderstanding is often true regarding the relationship users think they have
with social media apps, particularly with regard to how their data is collected and shared
and how the app’s algorithm determines what they see in their news feeds. Algorithms in
particular have fueled distrust because of their opaque nature, with users unable to
understand why some material takes preference while other material is not shown at all.
This lack of clarity naturally leads to users suggesting political bias or undisclosed
influences around the news that’s deemed real and credible and the news that isn’t, further
causing a breakdown of trust.

Lack of Enforcement and Accountability


Disputes are inevitable in certain circumstances, so when they arise it’s critical to resolve
them in a manner that’s generally seen as fair. The challenge, however, is that larger
institutions often have asymmetrical advantages in dispute resolution processes. This is
particularly worrisome in contracts between established institutions and retail users,
where the institution knows they have more leeway to renege on their stated commitments
given that the user doesn’t have the time, capital, or influence to mount a successful
lawsuit. In fact, in some developing countries, the legal system is so unreliable in the face
of powerful influences and bribery that certain economic relationships are simply not
practical.

Mistrust in dispute resolution processes is also subject to a dynamic where an institution


becomes so powerful and integrated within a society that it becomes “too big to fail”—a
phrase used to describe institutions that governments will bail out after they make poor
decisions because their failure presents too much systemic risk. The term was originally
derived from the public bailout of large banking and financial services companies that went
bankrupt due to overexposure to toxic MBS assets during the 2007-2008 financial crisis. It
could be argued that a similar dynamic can be seen today in a seeming lack of
accountability from governments and central banks, as high inflation and increasing
economic inequality takes hold despite their stated goals of controlling inflation and
promoting economic stability.

Inefficient Multi-Step Processes


Through the addition of trusted third parties and manual verification techniques, the risks
of low-trust social and economic relationships can be somewhat offset. However, these
processes involve increased costs, longer wait times, and additional trust assumptions.
One industry subject to such inefficiencies is international remittances, where a $200
dollar transaction in 2020 incurred on average a 6.5% fee and sometimes took more than
24 hours to settle. Technically, remittances could be near-instant given advancements in

Created by Nandakishore 120


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

digital technology, but not all banks trust each other. Thus, payments have to be routed
through several correspondent banks to get to their final destination, incurring fees and
extending the settlement time along the way.

Solution: Blockchain and Oracle-Based Trust Networks


Instead of counterparties having to trust each other or a third party to follow through on
their stated commitments, what if the infrastructure facilitating their interaction could
guarantee fair outcomes? And what if that infrastructure had no central administrator or
owner?

In order to meet these goals, this infrastructure would have to embody two key design
principles: minimally extractive coordination and trust-minimized execution.

• Minimally extractive coordination is when infrastructure facilitates interactions


between users with minimal, non-value additive rent-seeking. Unlike a for-profit
company, the facilitator here has no financial agenda besides connecting users. For
example, a financial marketplace that enables users to buy and sell assets with
minimal transaction fees.
• Trust-minimized execution refers to a process that’s facilitated in a manner where
the probability of it operating correctly is so statistically high that it can almost be
considered guaranteed. In a sense, the user doesn’t have to trust the infrastructure.
Instead, the infrastructure is built to be deterministic, meaning all potential
variables that could influence the process are removed or decreased to the point
where it’s highly unlikely to not execute exactly as written/coded. Some have even
referred to this type of infrastructure as trustless, although one can argue that
nothing is truly trustless.
Blockchains combine these two properties, serving as minimally extractive coordinators
that execute code in a trust-minimized manner. Blockchains provide such properties
because they do not have central administrators, but are decentralized computer networks
that are financially incentivized to maintain an accurate ledger of who owns specific data
and assets on the network. Every time someone creates a new asset, transfers an existing
asset to another user, or stores data on the blockchain, a decentralized network of nodes
must form a consensus around the validity of each interaction before it’s approved. For
instance, if a user wants to send money from one account to another, the blockchain will
verify that the user has enough money to fund the transaction before executing it.

Decentralized consensus and cryptography are combined in blockchains to form the basis
for cryptographic truth—validation of new transactions based on the verification of

Created by Nandakishore 121


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

historical information already stored in the blockchain ledger and deemed true. In this
sense, blockchains are deterministic, since approving new transactions doesn’t require
new or external information.

For a deeper understanding of blockchains, refer to these articles: What is Blockchain


Technology? And Blockchains and Oracles: Similarities, Differences, and Synergies.

• Bank payment vs. blockchain payment


Traditional bank payments have banks serve as trusted custodians in between users while
blockchain payments have blockchains act as trust-minimized non-custodial
intermediaries.
While many recognize blockchains for supporting cryptocurrency-based payment systems,
blockchains enable much greater utility through their support for smart contracts. Smart
contracts are “if x, then y” programs that run on blockchains in a tamper-proof manner.
Developers use one or more smart contracts to create decentralized applications (dApps),
with the smart contracts essentially representing the terms and conditions that users must
abide by when interacting with the dApp. For a deep dive on smart contracts, check out this
article: What Is a Smart Contract?

Oracles are critical to creating advanced dApps. Because of the way blockchains are
secured, they are inherently disconnected from the outside world—akin to a computer
without the Internet. Oracles are supporting infrastructure for blockchains that allow them
to interact with external data and systems. In doing so, oracles enable smart contracts to
use external data to trigger their execution (e.g. sports match results to settle a wager),
send data to external systems for settlement (e.g. payment messages to execute a bank

Created by Nandakishore 122


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

payment), interoperate with smart contracts on other blockchains, and perform


computations not possible or practical to do on a blockchain. In this regard, oracles enable
hybrid smart contracts—combining on-chain code with off-chain code to form a single
application.

Chainlink pioneered decentralized oracle networks (DONs) in order to bring trust-


minimized properties to oracle services and enable competitive marketplaces that
mitigate rent-seeking extraction from oracle providers. The result has been an
explosion in new smart contract use cases enabled by Chainlink DONs, such as in
Decentralized Finance (DeFi), Non-Fungible Tokens (NFTs), Play-to-Earn gaming (P2E),
decentralized insurance, and more

Chainlink decentralized oracle networks connect smart contracts to the real world
Chainlink decentralized oracle networks provide smart contracts on any blockchain with
the ability to bidirectionally interact with any external system or resource in a secure,
reliable, and accurate manner.
The combination of blockchains and oracles provides an end-to-end trust network for
coordinating economic and social activities. Blockchains act as tamper-proof backends for
codifying, tracking, and enforcing digital contracts while oracles enable smart contracts to
accurately verify real-world events, seamlessly interact with legacy systems, and securely
interoperate across blockchains. This model shifts applications and digital contracts from
probabilistic and human-mediated to deterministic and verified through decentralized
consensus.
Future: Societal Trust Restored by the Power of Cryptographic Truth
By applying blockchain and oracle-powered trust networks to the original problems
outlined above, it becomes possible to build a world based on truth, where processes and
people stick to their agreements and records are highly reliable.

Created by Nandakishore 123


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Self-Ownership of Data and Decentralized Ownership of Processes


One of the biggest benefits of blockchain technology is the decentralization of the
apps/institutions responsible for facilitating social or economic activity. Blockchain
technology can create credibly neutral platforms where the ability for platforms to
arbitrarily censor users because of financial, political, or social pressures is largely
removed. Once the terms and conditions are coded into smart contracts and stored on the
blockchain, the relationship between the users and dApps is transparent to all and cannot
be overridden by either party or a central administrator.

Decentralized system design also removes intermediaries as custodians. Instead, the


blockchain is akin to a non-custodial facilitator, where all the data produced by dApps is
publicly viewable and immutable, and the users have direct control of their data/assets via
private keys that only they possess. For instance, anyone can view the entire transaction
history of the Bitcoin ledger and anyone can custody and send their Bitcoin to other users
on the network without a bank.

Additionally, privacy-preserving oracle solutions are emerging, such as Chainlink’s DECO,


which is being built to allow users to prove sensitive information to dApps without revealing
it publicly. For example, a user could prove they live in a certain jurisdiction or that their
bank balance is above a certain amount without revealing their address or exact balance to
the dApp—ultimately removing the responsibility from dApps to store credentials while still
making use of them.

Shared Truth

Created by Nandakishore 124


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchains and dApps are generally open-source technologies where all users have a
shared understanding of the code powering the dApp and the data generated from its
operations. Essentially, the blockchain is a single, public repository of records that are
made equally available to all participants, removing reconciliation disputes and making
transparent any systemic risk. Transactions are also verified through a decentralized
consensus mechanism as opposed to the opinion of a single user or administrator,
meaning the relationship between users and dApps will follow the codified terms.

When extended to verifying external connections, oracles often use a decentralized


network of nodes and numerous data sources to prevent any single point of failure in
verification and execution. For example, Chainlink Price Feeds are DONs that supply real-
time asset prices on blockchains to support Decentralized Finance (DeFi), a collection of
dApps that provide financial services to users such as lending, derivatives, stablecoins,
and more.

Other oracle solutions for generating shared truth include the Ledger of Record proposed
by Balaji Srinivasan, former Coinbase CTO and A16Z General Partner. The Ledger of Record
is a concept that uses oracles to cryptographically sign data on blockchains to prove its
origin, helping establish a verifiable provenance of information. Not only would it help
prevent fake news, deep fakes, and hidden news retractions, but it can be the basis for
reputation systems that track the historical credibility of data sources and analysts.

Consensus-Based and Cryptographically Enforced Commitments


Because blockchains validate transactions on their networks through decentralized
consensus, the asymmetrical advantages held by larger counterparties during disputes are
generally removed. There is no blockchain administrator to bail dApps out or hit redo after a
mistake is made. Instead, blockchains replace human administrators with decentralized

Created by Nandakishore 125


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

networks secured by cryptography and financial incentives to make it extremely difficult to


tamper with the consensus mechanism or alter previously stored data.

While blockchains and dApps can be built in a manner that enables changes, they
generally require social consensus amongst many independent users as opposed to the
unilateral decision-making seen in centralized Apps. This is why many dApps are governed
through decentralized autonomous organizations (DAOs), where users vote on changes. In
fact, many dApps have their own native token, which is used by their DAOs to decide on
proposals via token-weighted votes.

A highly tamper-proof and globally accessible blockchain platform for enforcing digital
contracts vastly reduces counterparty risk. Many blockchains and dApps even take it a step
further by introducing automatically enforced punishments for bad behavior from
participants. For instance, proof-of-stake blockchains can punish validators that act
maliciously by confiscating some of their staked tokens as a form of punishment. dApps
can also hold users’ capital in escrow and distribute it only after verifying certain events,
making it near impossible for the losing side to forgo payment.

Decentralized oracle networks offer similar assurances by generating definitive truth—


where each dApp defines exactly how they want to derive truth from the external world and
what falls outside of those bounds. In this sense, oracles are more flexible in verifying
external events for smart contracts, as some users may trust different data sources while
others may want to pay for more decentralization of the oracle network. No matter how the
users design the oracle mechanism, they must all agree that it’s sufficient to service their
needs. The agreement between the users and oracles can then be made into a Service
Level Agreement (SLA) smart contract to avoid tampering and automatically enforce
rewards/penalties upon completion.

One example of an oracle service that provides definitive truth is Chainlink Verifiable
Random Function (VRF). Chainlink VRF uses oracle technology to generate random
numbers and cryptographic proofs off-chain. It then publishes them on-chain, where the
blockchain uses the cryptographic proof to verify that the random number was not
tampered with by the oracles. NFT and gaming applications use the randomness provided
by Chainlink VRF to perform various on-chain functions, such as picking winners of special
NFT drops and determining the content of loot boxes. Importantly, users are able to
independently verify that the process is fair and unbiased, with even the game
developers/NFT creators not able to influence the randomized outcome.

Created by Nandakishore 126


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Efficient Peer-to-Peer Processes


Not only do blockchains provide higher security, reliability, and accuracy guarantees for
their computations, but they operate in a peer-to-peer manner. By removing intermediaries,
rent-seeking and settlement times can be reduced. This is most evident in Ethereum layer-
2 scalability solutions—networks built on top of Ethereum that are optimized for lower
costs and higher throughput while still deriving their security from the baselayer Ethereum
blockchain. With layer-2 solutions, users can make peer-to-peer payments of any amount
to anyone in the world in a matter of minutes and for less than a standard international wire
fee.
This peer-to-peer quality is also evident in new parametric insurance dApps such as those
created by Arbol and Etherisc, which enable anyone to purchase weather and flight
insurance, with the only requirement being an Internet connection. The smart contract
settles the policy once an oracle network confirms the outcome of the specific insurable
event, e.g. crop insurance settled by the amount of seasonal rainfall in a particular region
or flight insurance determined by whether or not flights are canceled. Once the oracle
report is delivered, the smart contract can instantly release compensation from escrow
without needing any human approvals.

Start Working in the Blockchain Industry


If the innovation timeline of the Internet is any indicator, society has only just scratched the
surface of what’s possible using blockchain and oracle technology. The possibilities are
truly endless, and have the potential to re-establish trust in society’s most foundational
social and economic processes.

If blockchain technology interests you and you want to begin working in the industry, check
out our walkthrough How to Become a Smart Contract Developer to learn how to start
building and explore careers at industry-leading organizations like Chainlink Labs, where
there are a wide range of open technical and non-technical roles.

Created by Nandakishore 127


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

BLOCKCHAIN FORK
Blockchain, a fork is defined variously as:

“What happens when a blockchain diverges into two potential paths forward”,
“A change in protocol”, or
A situation that “occurs when two or more blocks have the same block
height”.[1]: glossary [a]
Forks are related to the fact that different parties need to use common rules to maintain
the history of the blockchain. When parties are not in agreement, alternative chains may
emerge. While most forks are short-lived some are permanent. Short-lived forks are due to
the difficulty of reaching fast consensus in a distributed system. Whereas permanent forks
(in the sense of protocol changes) have been used to add new features to a blockchain,
they can also be used to reverse the effects of hacking such as the case with Ethereum and
Ethereum Classic, or avert catastrophic bugs on a blockchain as was the case with the
bitcoin fork on 6 August 2010.[citation needed] The concept of blockchain technology was
first introduced in 2008 by an unknown person or group of people using the pseudonym
“Satoshi Nakamoto” in a white paper describing the design of a decentralized digital
currency called Bitcoin. Blockchain forks have been widely discussed in the context of the
bitcoin scalability problem.[4][5][6]
Types of forks

Forks can be classified as accidental or intentional. Accidental fork happens when two or
more miners find a block at nearly the same time. The fork is resolved when subsequent
block(s) are added and one of the chains becomes longer than the alternative(s). The
network abandons the blocks that are not in the longest chain (they are called orphaned
blocks).

Intentional forks that modify the rules of a blockchain can be classified as follows:
Source code fork
See also: Fork (software development)
A source code fork or project fork is when developers take a copy of source code from one
cryptocurrency project and start independent development on it, creating a separate and
new piece of blockchain. Such examples are; Litecoin a source code fork of Bitcoin,
Monero fork of Bytecoin and Dogecoin fork of Litecoin.
Hard fork
A hard fork is a change to the blockchain protocol that is not backward compatible and
requires all users to upgrade their software in order to continue participating in the

Created by Nandakishore 128


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

network. In a hard fork, the network splits into two separate versions: one that follows the
new rules and one that follows the old rules.

For example, Ethereum was hard forked in 2016 to “make whole” the investors in The DAO,
which had been hacked by exploiting a vulnerability in its code. In this case, the fork
resulted in a split creating Ethereum and Ethereum Classic chains. In 2014 the Nxt
community was asked to consider a hard fork that would have led to a rollback of the
blockchain records to mitigate the effects of a theft of 50 million NXT from a major
cryptocurrency exchange. The hard fork proposal was rejected, and some of the funds were
recovered after negotiations and ransom payment. Alternatively, to prevent a permanent
split, a majority of nodes using the new software may return to the old rules, as was the
case of bitcoin split on 12 March 2013.[7]

A more recent hard-fork example is of Bitcoin in 2017, which resulted in a split creating
Bitcoin Cash.[8] The network split was mainly due to a disagreement in how to increase the
transactions per second to accommodate for demand.[9]

Soft fork
A soft fork is a backward-compatible change to the blockchain protocol that allows new
rules to be introduced without requiring all users to upgrade their software. In a soft fork, a
majority of the network’s miners implement the new rules and begin following the updated
version of the blockchain. The rest of the network can continue to follow the blockchain,
but they will be unable to validate that new blocks follow the updated rules. Because a soft
fork is backward-compatible, it does not result in the creation of a new blockchain or the
splitting of the network. Instead, it allows the network to gradually transition to the new
rules while still maintaining compatibility with the old rules. [10]

Fork (software development)

“Fork (software)” redirects here. For the operation whereby a process creates a copy of
itself, see fork (system call).
In software engineering, a project fork happens when developers take a copy of source
code from one software package and start independent development on it, creating a
distinct and separate piece of software.[example needed] The term often implies not
merely a development branch, but also a split in the developer community; as such, it is a
form of schism.[1] Grounds for forking are varying user preferences and stagnated or
discontinued development of the original software.

Created by Nandakishore 129


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

A timeline chart showing the evolution of Linux distributions, with each split in the diagram
being called “a fork”
Free and open-source software is that which, by definition, may be forked from the original
development team without prior permission, and without violating copyright law. However,
licensed forks of proprietary software (e.g. Unix) also happen.

Etymology
The word “fork” has been used to mean “to divide in branches, go separate ways” as early
as the 14th century.[2] In the software environment, the word evokes the fork system call,
which causes a running process to split itself into two (almost) identical copies that
(typically) diverge to perform different tasks.[3]

In the context of software development, “fork” was used in the sense of creating a revision
control “branch” by Eric Allman as early as 1980, in the context of Source Code Control
System:[4]

Creating a branch “forks off” a version of the program.

The term was in use on Usenet by 1983 for the process of creating a subgroup to move
topics of discussion to.[5]

“Fork” is not known to have been used in the sense of a community schism during the
origins of Lucid Emacs (now XEmacs) (1991) or the Berkeley Software Distributions (BSDs)
(1993–1994); Russ Nelson used the term “shattering” for this sort of fork in 1993, attributing
it to John Gilmore.[6] However, “fork” was in use in the present sense by 1995 to describe
the XEmacs split,[7] and was an understood usage in the GNU Project by 1996.[8]

Forking of free and open-source software


Free and open-source software may be legally forked without prior approval of those
currently developing, managing, or distributing the software per both The Free Software
Definition and The Open Source Definition:[9]

The freedom to distribute copies of your modified versions to others (freedom 3). By doing
this, you can give the whole community a chance to benefit from your changes. Access to
the source code is a precondition for this.

— The Free Software Definition[10]

Created by Nandakishore 130


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

3. Derived Works: The license must allow modifications and derived works, and must allow
them to be distributed under the same terms as the license of the original software.

— The Open Source Definition[11]


In free software, forks often result from a schism over different goals or personality clashes.
In a fork, both parties assume nearly identical code bases, but typically only the larger
group, or whoever controls the web site, will retain the full original name and the
associated user community. Thus, there is a reputation penalty associated with forking.[9]
The relationship between the different teams can be cordial or very bitter. On the other
hand, a friendly fork or a soft fork is a fork that does not intend to compete, but wants to
eventually merge with the original.

Eric S. Raymond, in his essay Homesteading the Noosphere,[12] stated that “The most
important characteristic of a fork is that it spawns competing projects that cannot later
exchange code, splitting the potential developer community”. He notes in the Jargon
File:[13]

Forking is considered a Bad Thing—not merely because it implies a lot of wasted effort in
the future, but because forks tend to be accompanied by a great deal of strife and acrimony
between the successor groups over issues of legitimacy, succession, and design direction.
There is serious social pressure against forking. As a result, major forks (such as the Gnu-
Emacs/XEmacs split, the fissioning of the 386BSD group into three daughter projects, and
the short-lived GCC/EGCS split) are rare enough that they are remembered individually in
hacker folklore.

• David A. Wheeler notes[9] four possible outcomes of a fork, with examples:

6. The death of the fork. This is by far the most common case. It is easy to declare a
fork, but considerable effort to continue independent development and support.
7. A re-merging of the fork (e.g., egcs becoming “blessed” as the new version of GNU
Compiler Collection.)
8. The death of the original (e.g. the X.Org Server succeeding and XFree86 dying.)
9. Successful branching, typically with differentiation (e.g., OpenBSD and NetBSD.)
Distributed revision control (DVCS) tools have popularised a less emotive use of the term
“fork”, blurring the distinction with “branch”.[14] With a DVCS such as Mercurial or Git, the
normal way to contribute to a project, is to first create a personal branch of the repository,
independent of the main repository, and later seek to have your changes integrated with it.
Sites such as GitHub, Bitbucket and Launchpad provide free DVCS hosting expressly

Created by Nandakishore 131


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

supporting independent branches, such that the technical, social and financial barriers to
forking a source code repository are massively reduced, and GitHub uses “fork” as its term
for this method of contribution to a project.

Forks often restart version numbering from numbers typically used for initial versions of
programs like 0.0.1, 0.1, or 1.0 even if the original software was at another version such as
3.0, 4.0, or 5.0. An exception is sometimes made when the forked software is designed to
be a drop-in replacement for the original project, e.g. MariaDB for MySQL[15] or LibreOffice
for OpenOffice.org.

The BSD licenses permit forks to become proprietary software, and copyleft proponents
say that commercial incentives thus make proprietisation almost inevitable. (Copyleft
licenses can, however, be circumvented via dual-licensing with a proprietary grant in the
form of a Contributor License Agreement.) Examples include macOS (based on the
proprietary NeXTSTEP and the open source FreeBSD), Cedega and CrossOver (proprietary
forks of Wine, though CrossOver tracks Wine and contributes considerably), EnterpriseDB
(a fork of PostgreSQL, adding Oracle compatibility features[16]), Supported PostgreSQL
with their proprietary ESM storage system,[17] and Netezza’s[18] proprietary highly
scalable derivative of PostgreSQL. Some of these vendors contribute back changes to the
community project, while some keep their changes as their own competitive advantages.

Forking proprietary software


In proprietary software, the copyright is usually held by the employing entity, not by the
individual software developers. Proprietary code is thus more commonly forked when the
owner needs to develop two or more versions, such as a windowed version and a
command line version, or versions for differing operating systems, such as a word
processor for IBM PC compatible machines and Macintosh computers. Generally, such
internal forks will concentrate on having the same look, feel, data format, and behavior
between platforms so that a user familiar with one can also be productive or share
documents generated on the other. This is almost always an economic decision to
generate a greater market share and thus pay back the associated extra development costs
created by the fork.

A notable proprietary fork not of this kind is the many varieties of proprietary Unix—almost
all derived from AT&T Unix under license and all called “Unix”, but increasingly mutually
incompatible.[19] See Unix wars.

Cryptocurrency splits

Created by Nandakishore 132


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

A permanent chain split is described as a case when there are two or more permanent
versions of a blockchain sharing the same history up to a certain time, after which the
histories start to differ.[11] Permanent chain splits lead to a situation when two or more
competing cryptocurrencies exist on their respective blockchains.[11]

Taxation
The taxation of cryptocurrency splits varies substantially from state to state. A few
examples include:
Australian Taxation Office (ATO)

The ATO does not classify cryptocurrency splits as taxation events.[11] The ATO classifies
the versions of the blockchain coming from the splits as the “original blockchain” and the
“new blockchain”[clarification needed]. In relation to the cost base, the cryptocurrency on
the original blockchain should be assigned all the original cost base, while the
cryptocurrency on the new blockchain should be assigned cost base zero.[11]

HM Revenue & Customs (HMRC)

The UK HMRC does not classify cryptocurrency splits as taxation events. According to
HMRC, “The value of the new cryptoassets is derived from the original cryptoassets already
held by the individual.” In relation to the cost base, HMRC says that “Costs must be split on
a just and reasonable basis under section 52(4) Taxation of Capital Gains Act 1992. HMRC
does not prescribe any particular apportionment method. HMRC has the power to enquire
into an apportionment method that it believes is not just and reasonable.”[12]

As of September 2021, it is believed that more than 2.3 million people in the UK own a
cryptoasset. As these assets do not physically exist, HMRC has been forced to issue
guidance stating that cryptoassets will follow the residence of the beneficial owner.
Residents in the UK who trade cryptoassets, no matter where these assets are “held”, will
be liable to UK taxes. However, there is a growing belief that this guidance may well be
challenged in the courts. This could impact future HMRC tax income from those not
domiciled in the UK for tax purposes.”[13]

Internal Revenue Service (IRS)


The US Internal Revenue Service (IRS) classifies cryptocurrency splits as “airdrops” and as
taxable events. According to the guidance published by IRS, provided the taxpayer is in
possession of the keys, they are obliged to pay tax for the new cryptocurrency using the fair
market value of the cryptocurrency as their income.

Created by Nandakishore 133


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

List of bitcoin forks


This article needs additional citations for verification. (September 2021)
Bitcoin forks are defined variantly as changes in the protocol of the bitcoin network or as
the situations that occur “when two or more blocks have the same block height”.[1] A fork
influences the validity of the rules. Forks are typically conducted in order to add new
features to a blockchain, to reverse the effects of hacking or catastrophic bugs. Forks
require consensus to be resolved or else a permanent split emerges.

Forks of the client software


The following are forks of the software client for the bitcoin network:
Bitcoin XT
• A fork initiated by Mike Hearn. The current reference implementation for bitcoin
contains a computational bottleneck.[2] The actual fork was preceded by Mike
Hearn publishing a Bitcoin Improvement Proposal (BIP 64) on June 10, 2014, calling
for the addition of “a small P2P protocol extension that performs UTXO lookups
given a set of outpoints.”[src 1] On December 27, 2014 Hearn released version 0.10
of the forked client XT, with the BIP 64 changes.[src 2] It achieved significant
attention within the bitcoin community in mid-2015 amid a contentious debate
among core developers over increasing the block size cap.[3][4]
• On June 22, 2015, Gavin Andresen published BIP 101 calling for an increase in the
maximum block size. The changes would activate a fork allowing eight MB blocks
(doubling in size every two years) once 75% of a stretch of 1,000 mined blocks is
achieved after the beginning of 2016.[src 3] The new maximum transaction rate
under XT would have been 24 transactions per second.[5]
• On August 6, 2015 Andresen’s BIP101 proposal was merged into the XT
codebase.[src 4][src 5] Bip 101 was reverted[src 6] and the 2-MB block size bump of
Bitcoin Classic was applied instead.[citation needed]
• The August 2015 release of XT received widespread media coverage. The Guardian
wrote that “bitcoin is facing civil war”.[3]
• Wired wrote that “Bitcoin XT exposes the extremely social—extremely democratic—
underpinnings of the open source idea, an approach that makes open source so
much more powerful than technology controlled by any one person or
organization.”[6] Developer Adam Back was critical of the 75% activation threshold
being too low and that some of the changes were insecure.[7]
• On August 25, 2017, Bitcoin XT published Release G, which was a Bitcoin Cash
client by default.[src 7] Subsequently, Release H was published, which supported
the November 2017 Bitcoin Cash protocol upgrade, followed by Release I, which
supported the May 2018 Bitcoin Cash protocol upgrade.[citation needed]

Created by Nandakishore 134


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Bitcoin Classic
In its first 8 months, Bitcoin Classic promoted a single increase of the maximum block size
from one megabyte to two megabytes.[8][4] In November 2016 this changed and the
project moved to a solution that moved the limit out of the software rules into the hands of
the miners and nodes.[9]
Bitcoin Unlimited
All three software clients attempt to increase transaction capacity of the network. None
achieved a majority of the hash power.[10][4]

Intended hard forks splitting the cryptocurrency


Hard forks splitting bitcoin (aka “split coins”) are created via changes of the blockchain
rules and sharing a transaction history with bitcoin up to a certain time and date. The first
hard fork splitting bitcoin happened on 1 August 2017, resulting in the creation of Bitcoin
Cash.

The following is a list of notable hard forks splitting bitcoin by date and/or block:

• Bitcoin Cash: Forked at block 478558, 1 August 2017, for each bitcoin (BTC), an
owner got 1 Bitcoin Cash (BCH)
o Bitcoin Satoshi Vision: Forked at block 556766, 15 November 2018, for each Bitcoin
Cash (BCH), an owner got 1 Bitcoin SV (BSV).
o eCash: Forked at block 661648, 15 November 2020, for each Bitcoin Cash (BCH), an
owner got 1,000,000 eCash (XEC).
Bitcoin Gold: Forked at block 491407, 24 October 2017, for each bitcoin (BTC), an owner
got 1 Bitcoin Gold (BTG)
Intended soft forks splitting from a not-most-work block
The fork fixing the value overflow incident was controversial because it was announced
after the exploit was mined. It was assigned CVE-2010-5139.
Intended soft forks splitting from the most-work block
Segwit
Main article: Segwit
Taproot
Taproot is an agreed soft fork in the transaction format. The fork adds support for Schnorr
signatures, and improves functionality of smart contracts and the Lightning Network. The
fork was installed in November 2021.[11] The upgrade adds privacy features.[12][13]
Taproot includes Bitcoin Improvement Proposal numbers BIP340, BIP341, BIP342.[14]

Advantages:

Created by Nandakishore 135


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Complex transactions, such as those requiring multiple signatures or those with


delayed release, are indistinguishable from simple transactions in terms of on-chain
data.[citation needed]
• Reduced transaction costs: The data size of complex Bitcoin transactions is
reduced, which leads to lower transaction fees.[citation needed]
• Support for more complicated conditions for a transaction via Schnorr
signatures.[citation needed]
• Benefits for the Lightning Network: More flexibility, privacy enhancement, lower
costs.[citation needed]
Bitcoin hard forks
• Three hard forks were created by “protocol change” definition:

• July 2010 Chain Fork (addition of OP_NOP functions)


• March 2013 Chain Fork (migration from BerkeleyDB to LevelDB caused a chain
split)[15]
• CVE-2018-17144 (Bitcoin 0.15 allowed double spending certain inputs in the same
block. Not exploited)

What is a fork?
A cryptocurrency blockchain, forking into two different branches
Definition
Cryptocurrencies like Bitcoin and Ethereum are powered by decentralized, open-source
software called a blockchain. A fork happens whenever a community makes a change to
the blockchain’s protocol, or basic set of rules.

Cryptocurrencies like Bitcoin and Ethereum are powered by decentralized, open software
that anyone can contribute to called a blockchain. They’re called blockchains because
they’re literally made up of blocks of data – picture a really long train – that can be traced all
the way back to the first-ever transaction on the network. And because they are open
source, they rely on their communities to maintain and develop their underlying code.
A fork happens whenever a community makes a change to the blockchain’s protocol, or
basic set of rules. When this happens, the chain splits — producing a second blockchain
that shares all of its history with the original, but is headed off in a new direction.
Why is this important?
Most digital currencies have independent development teams responsible for changes and
improvements to the network, much in the same way that changes to internet protocols

Created by Nandakishore 136


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

allow web browsing to become better over time. So sometimes a fork happens to make a
cryptocurrency more secure or add other features.

But it’s also possible for the developers of a new cryptocurrency to use a fork to create
entire new coins and ecosystems.
Why do forks occur?
Just like all software needs upgrades, blockchains are updated for a variety of reasons:
• To add functionality
• To address security risks
• To resolve a disagreement within the community about the cryptocurrency’s
direction
How are forks continuing to change the crypto landscape?
• The Ethereum blockchain is designed to run “smart contracts,” which are chunks of
code that automatically execute a set of predetermined actions when certain
criteria are met. Smart contract applications include everything from games to
logistics tools to DeFi dapps.
• As the platform that runs all these applications, you can think of the Ethereum
blockchain as similar to a computer’s operating system. In that analogy, the various
Ethereum forks – Ethereum, Ethereum Classic, Ethereum 2.0 – are like newer
versions of an operating system that add features or efficiencies the prior versions
might have lacked.
• An older fork might continue as a stable, well-proven platform while a newer fork
might offer developers entirely novel ways of interacting with it. (Older and newer
versions can eventually merge or continue evolving further apart.)
• Think of a soft fork as a ‘software upgrade’ (like when your phone asks you to update
to the latest OS) and a hard fork as an entire new operating system (like Linux and
Mac OS are evolutions of the half-century old UNIX platform)
Hard Fork: What It Is in Blockchain, How It Works, and Why It Happen
What Is a Hard Fork?
A blockchain hard fork is a change in programming that is incompatible with the old
programming. This essentially creates a new blockchain and cryptocurrency. Hard forks
generally require all nodes or users who wish to stay on the new chain to upgrade to the
latest version of the software.

Hard forks may be initiated by developers as part of routine progress or maintenance on a


blockchain. They may also be created by a faction of the crypto community that wants to
take a different direction with the blockchain.

Created by Nandakishore 137


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Key Takeaways
• A hard fork is an event in which a change to a blockchain results in two branches:
one that follows previous protocols and one that follows the new version.
• In a hard fork, holders of tokens in the original blockchain will also be granted
tokens in the new fork, but participants must choose which blockchain to continue
verifying.
• Hard forks are not specific to any single blockchain—it is an event that many have
gone through.
• Hard forks occur for several reasons, such as developer disagreements, required
updates to a blockchain, or someone attempting to make another blockchain and
cryptocurrency they control.
How Hard Forks Work
A hard fork is when a new blockchain version emerges that is incompatible with the original
version. It is not always an adverse event; in fact, many blockchains have undergone hard
forks to implement necessary changes.

Blockchains are basically programs that create and store files of information on a network
of computers and devices. There are usually layers of software completing different tasks,
some methods for the network to reach an agreement on the blockchain’s state, and many
network participants. Each layer’s underlying programming can be changed as needed, but
it has to be accepted by the network’s participants to be adopted.

Developers cannot force changes on a public blockchain that relies on participation. Public
blockchains rely on their participants, so changes must be implemented by them, not
forced upon them. Otherwise, they can refuse to accept the changes and keep their
preferred version.

Because blockchains are essentially programs and scripts, they can be affected by errors,
bugs, network communication problems, hardware failures, or other issues. Blockchains
also rely on a large number of network participants to host versions for security.

When developers publish a change to any of a blockchain’s functions, one of two things
happen: a hard fork or a soft fork. If the change is drastic enough to prevent a participant
running the old version from participating in the blockchain’s processes, the change is
considered to have created a hard fork in the blockchain. Conversely, a change that allows
old and new nodes to run is considered a soft fork.

Created by Nandakishore 138


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In a hard fork event, participants are faced with a choice—they can update their software to
the new version or not upgrade their software and use the old (and now unmaintained)
blockchain.
Reasons for a Hard Fork
There are several reasons or even events that cause developers to implement a hard fork.
For instance, when the hack on the Decentralized Autonomous Organization (DAO)
occurred, the Ethereum blockchain was forked by a nearly unanimous vote.

The fork rolled back transactions that siphoned off tens of millions of dollars worth of
digital currency by an anonymous hacker. The hard fork also helped DAO token holders get
their ether (ETH) funds returned. However, some miners kept mining the old chain, which
was picked up by OTC desks and given a price discovery order book. Poloniex listed this
currency also, and some of the Ethereum community decided to keep this version and
created Ethereum Classic.

What Is the Meaning of Hard Fork?


A hard fork is a change in a blockchain’s programming that creates a new blockchain and
cryptocurrency. Many projects have hard forked but kept their original names and tokens,
with other groups deciding to stay with the original code and change the name.

Is a Hard Fork Good or Bad?


It depends on the circumstances and participants’ views. Some might believe a hard fork is
necessary and good, while others might not.

Why Do Hard Forks Happen?


There are several reasons a hard fork might happen. Code might need adjusting to fix errors
or address a weakness, or a group might want to create their own blockchain and
cryptocurrency.

The Bottom Line


Hard forks are a change in programming that results in a blockchain split. Sometimes, hard
forks are controversial in the community involved in a blockchain; at other times, they are
necessary for a blockchain to progress.

In situations with controversy, participants and users can either upload the updated
blockchain and begin processing it or reject it and use the old chain. This is how several
blockchains and cryptocurrencies, such as Bitcoin Cash and Ethereum Classic, started

Created by Nandakishore 139


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Cryptocurrency
Definition
Cryptocurrencies are digital assets, most often based on blockchain technology.
What Is Cryptocurrency?
A cryptocurrency is a digital or virtual currency secured by cryptography, which makes it
nearly impossible to counterfeit or double-spend. Most cryptocurrencies exist on
decentralized networks using blockchain technology—a distributed ledger enforced by a
disparate network of computers.

A defining feature of cryptocurrencies is that they are generally not issued by any central
authority, rendering them theoretically immune to government interference or
manipulation.
Key Takeaways
• A cryptocurrency is a form of digital asset based on a network that is distributed
across a large number of computers. This decentralized structure allows them to
exist outside the control of governments and central authorities.
• Some experts believe blockchain and related technologies will disrupt many
industries, including finance and law.
• The advantages of cryptocurrencies include cheaper and faster money transfers
and decentralized systems that do not collapse at a single point of failure.
• The disadvantages of cryptocurrencies include their price volatility, high energy
consumption for mining activities, and use in criminal activities.

Understanding Cryptocurrency
Cryptocurrencies are digital or virtual currencies underpinned by cryptographic systems.
They enable secure online payments without the use of third-party intermediaries. “Crypto”
refers to the various encryption algorithms and cryptographic techniques that safeguard
these entries, such as elliptical curve encryption, public-private key pairs, and hashing
functions.

Central to the appeal and functionality of Bitcoin and other cryptocurrencies is blockchain
technology. As its name indicates, a blockchain is essentially a set of connected blocks of
information on an online ledger. Each block contains a set of transactions that have been
independently verified by each validator on a network.

Every new block generated must be verified before being confirmed, making it almost
impossible to forge transaction histories. The contents of the online ledger must be agreed
upon by a network of individual nodes, or computers that maintain the ledger.

Created by Nandakishore 140


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Experts say that blockchain technology can serve multiple industries, supply chains, and
processes such as online voting and crowdfunding. Financial institutions such as JPMorgan
Chase & Co. (JPM) are using blockchain technology to lower transaction costs by
streamlining payment processing.

Types of Cryptocurrency
Many cryptocurrencies were created to facilitate work done on the blockchain they are
built on. For example, Ethereum’s ether was designed to be used as payment for validating
transactions and opening blocks. When the blockchain transitioned to proof-of-stake in
September 2022, ether (ETH) inherited an additional duty as the blockchain’s staking
mechanism.

The XRP Ledger Foundation’s XRP is designed for financial institutions to facilitate
transfers between different geographies.

Because there are so many cryptocurrencies on the market, it’s important to understand
the types. Knowing whether the coin you’re looking at has a purpose can help you decide
whether it is worth investing in—a cryptocurrency with a purpose is likely to be less risky
than one that doesn’t have a use.

Most of the time, when you hear about cryptocurrency types, you hear the coin’s name.
However, coin names differ from coin types. Here are some of the types you’ll find with
some of the names of tokens in that category:
• Utility: XRP and ETH are two examples of utility tokens. They serve specific
functions on their respective blockchains.
• Transactional: Tokens designed to be used as a payment method. Bitcoin is the
most well-known of these.
• Governance: These tokens represent voting or other rights on a blockchain, such as
Uniswap.
• Platform: These tokens support applications built to use a blockchain, such as
Solana.
• Security tokens: Tokens representing ownership of an asset, such as a stock that
has been tokenized (value transferred to the blockchain). MS Token is an example of
a securitized token. If you can find one of these for sale, you can gain partial
ownership of the Millennium Sapphire.

Created by Nandakishore 141


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

If you find a cryptocurrency that doesn’t fall into one of these categories, you’ve found a
new category or something that needs to be investigated to be sure it’s legitimate.

How to Buy Cryptocurrency


If you want to use cryptocurrency to buy products and services, you will need to visit a
cryptocurrency exchange. These are businesses that allow you to buy or sell
cryptocurrencies from other users at the current market price, similar to a stock. After
buying the coins, you will need to transfer them to a digital wallet or use a third-party
service like Coinbase to store your coins.

If you only want to buy cryptocurrency as an investment, you may be able to do so through
your brokerage. For example, Robinhood allows users to invest in bitcoin and other
cryptocurrencies, although you cannot withdraw them from the platform for purchases. In
addition, there are several crypto ETFs that provide exposure to the crypto asset class
without requiring the investors to maintain their own wallets. For instance, as of May 2024,
investors may choose to hold Bitcoin futures ETF shares. The SEC has also approved the
listing and trading of Ether spot shares.
Is Cryptocurrency Legal?
Fiat currencies derive their authority from the government or monetary authorities. For
example, the U.S. dollar is recognized and issued by the government as the official
currency of the United States and is “legal tender.”

But cryptocurrencies are not issued by any public or private entities. Therefore, it has been
difficult to make a case for their legal status in different financial jurisdictions throughout
the world. It doesn’t help matters that cryptocurrencies have primarily functioned outside
most existing financial infrastructure.

In the U.S.
The legal status of cryptocurrencies creates implications for their use in daily transactions
and trading. In June 2019, the Financial Action Task Force (FATF) recommended that wire
transfers of cryptocurrencies should be subject to the requirements of its Travel Rule,
which requires AML compliance.

Although cryptocurrencies are considered a form of money, the Internal Revenue Service
(IRS) treats them as financial assets or property for tax purposes. And, as with most other
investments, if you reap capital gains selling or trading cryptocurrencies, the government
wants a piece of the profits. How exactly the IRS taxes digital assets—either as capital

Created by Nandakishore 142


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

gains or ordinary income—depends on how long the taxpayer held the cryptocurrency and
how they used it.

In the United States in July 2023, courts ruled that cryptocurrencies are considered
securities when purchased by institutional buyers but not by retail investors purchased on
exchanges.

Enthusiasts called it a victory for crypto; however, crypto exchanges are regulated by the
SEC, as are coin offerings or sales to institutional investors. So, crypto is legal in the U.S.,
but regulatory agencies are slowly gaining ground in the industry.

As of June 2024, El Salvador is the only country to accept Bitcoin as legal tender for
monetary transactions.
In the rest of the world, cryptocurrency regulation varies by jurisdiction.

In Asia
Japan’s Payment Services Act defines Bitcoin as legal property. Cryptocurrency exchanges
operating in the country are required to collect information about the customer and details
relating to the wire transfer.

China has banned cryptocurrency exchanges, transactions, and mining within its borders,
but has a Central Bank Digital Currency (CBDC).

India was reported to be formulating a framework for cryptocurrencies, but until it is


enacted, crypto is not yet illegal. Exchanges are free to offer cryptocurrencies.

In Europe
Cryptocurrencies are legal in the European Union. Derivatives and other products that use
cryptocurrencies must qualify as “financial instruments.” In June 2023, the European
Commission’s Markets in Crypto-Assets (MiCA) regulation went into effect. This law sets
safeguards and establishes rules for companies or vendors providing financial services
using cryptocurrencies.

Is Cryptocurrency a Safe Investment?


Cryptocurrencies have attracted a reputation as unstable investments due to high investor
losses from scams, hacks, bugs, and volatility. Although the underlying cryptography and
blockchain are generally secure, the technical complexity of using and storing crypto
assets can be a significant hazard to new users.

Created by Nandakishore 143


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In addition to the market risks associated with speculative assets, cryptocurrency investors
should be aware of the following risks:
• User risk: Unlike traditional finance, there is no way to reverse or cancel a
cryptocurrency transaction after it has already been sent. By some estimates, about
one-fifth of all bitcoins are now inaccessible due to lost passwords or incorrect
sending addresses.
• Regulatory risks: The regulatory status of some cryptocurrencies is still unclear in
many areas, with some governments seeking to regulate them as securities,
currencies, or both. A sudden regulatory crackdown could make it challenging to
sell cryptocurrencies or cause a market-wide price drop.
• Counterparty risks: Many investors and merchants rely on exchanges or other
custodians to store their cryptocurrency. Theft or loss by one of these third parties
could result in losing one’s entire investment.
• Management risks: Due to the lack of coherent regulations, there are few
protections against deceptive or unethical management practices. Many investors
have lost large sums to management teams that failed to deliver a product.
• Programming risks: Many investment and lending platforms use automated smart
contracts to control the movement of user deposits. An investor using one of these
platforms assumes the risk that a bug or exploit in these programs could cause
them to lose their investment.
• Market Manipulation: Market manipulation remains a substantial problem in
cryptocurrency, with influential people, organizations, and exchanges acting
unethically.
• Despite these risks, cryptocurrencies have seen a significant price leap, with the
total market capitalization rising to about $2.4 trillion.
Despite the asset’s speculative nature, some have created substantial fortunes by taking
on the risk of investing in early-stage cryptocurrencies.
Advantages and Disadvantages of Cryptocurrency
Cryptocurrencies were introduced with the intent to revolutionize financial infrastructure.
As with every revolution, however, there are tradeoffs involved. At the current stage of
development for cryptocurrencies, there are many differences between the theoretical i
Advantages
• Removes single points of failure
• Easier to transfer funds between parties
• Removes third parties
• Can be used to generate returns

Created by Nandakishore 144


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Remittances are streamlined


deal of a decentralized system with cryptocurrencies and its practical implementation.

Disadvantages
• Transactions are pseudonymous
• Pseudonymity allows for criminal uses
• Have become highly centralized
• Expensive to participate in a network and earn
• Off-chain security issues
• Prices are very volatile
Advantages Explained
Cryptocurrencies represent a new, decentralized paradigm for money. In this system,
centralized intermediaries, such as banks and monetary institutions, are not necessary to
enforce trust and police transactions between two parties. Thus, a system with
cryptocurrencies eliminates the possibility of a single point of failure—such as a large
financial institution setting off a cascade of global crises, such as the one triggered in 2008
by the failure of large investment banks in the U.S.

Cryptocurrencies promise to make transferring funds directly between two parties easier
without needing a trusted third party like a bank or a credit card company. Such
decentralized transfers are secured by the use of public keys and private keys and different
forms of incentive systems, such as proof of work or proof of stake.

Because they do not use third-party intermediaries, cryptocurrency transfers between two
transacting parties can be faster than standard money transfers. Flash loans in
decentralized finance are an excellent example of such decentralized transfers. These
loans, which are processed without requiring collateral, can be executed within seconds
and are mostly used in trading.

The remittance economy is testing one of cryptocurrency's most prominent use cases.
Cryptocurrencies such as Bitcoin serve as intermediate currencies to streamline money
transfers across borders. Thus, a fiat currency is converted to Bitcoin (or another
cryptocurrency), transferred across borders, and subsequently converted to the
destination fiat currency without third-party involvement.

Disadvantages Explained

Created by Nandakishore 145


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Though they claim to be an anonymous form of transaction, cryptocurrencies are


pseudonymous. They leave a digital trail that agencies like the Federal Bureau of
Investigation (FBI) can follow. This opens up the possibility for governments, authorities,
and others to track financial transactions.

Cryptocurrencies have become a popular tool with criminals for nefarious activities such
as money laundering and illicit purchases. The case of Dread Pirate Roberts, who ran a
marketplace to sell drugs on the dark web, is already well known.
Cryptocurrencies have also become a favorite of hackers who use them for ransomware
activities.

In theory, cryptocurrencies are meant to be decentralized, their wealth distributed between


many parties on a blockchain. Ownership is becoming more concentrated, as witnessed by
companies purchasing and holding them for price appreciation and investment fund
managers buying them to hold in their funds.

One of the conceits of cryptocurrencies is that anyone can mine them using a computer
with an Internet connection. However, mining popular cryptocurrencies requires
considerable energy, sometimes as much energy as entire countries consume. The
expensive energy costs and the unpredictability of mining have concentrated mining
among large firms whose revenues run into billions of dollars.

Only 61 (1%) of the 4,568 Bitcoin blocks opened from May 15, 2024, to June 15, 2024, were
opened by unknown addresses. The other 99% were opened by mining pools.

Though cryptocurrency blockchains are highly secure, off-chain crypto-related key storage
repositories, such as exchanges and wallets, can be hacked. Many cryptocurrency
exchanges and wallets have been hacked over the years, sometimes resulting in the theft
of millions of dollars in coins.

Cryptocurrencies traded in public markets suffer from price volatility, so investments


require accurate price monitoring. For example, Bitcoin has experienced rapid surges and
crashes in its value, climbing to nearly $65,000 in November 2021 before dropping to just
over $20,000 a year and a half later.
Bitcoin prices had roared back by mid-2024. As a result of this vast range of volatility, many
people consider cryptocurrencies a speculative bubble.

• Is Crypto Actually a Good Investment?

Created by Nandakishore 146


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Crypto can be a good investment for someone who enjoys speculating and can financially
tolerate losing everything invested. However, it is not a wise investment for someone
seeking to grow their retirement portfolio or for placing savings into it for growth.

• Is Crypto Real Money?


One definition of money is something that is generally accepted as a medium of exchange,
a measure or store of value, and a unit of account. By this definition, cryptocurrency is real
money.
• How Does Crypto Make You Money?
There are several ways cryptocurrency can make money for you. Decentralized finance
applications let you loan your crypto with interest; you can stake a compatible one on a
blockchain or at certain exchanges for rewards, or you can hold on to it and hope its market
value increases. None of these methods are guaranteed to make money, but many people
have benefitted from them.
• The Bottom Line
Cryptocurrencies are digital assets that are secured by cryptography. As a relatively new
technology, they are highly speculative, and it is important to understand the risks involved
before investing.

Cryptocurrency Basics: Pros, Cons and How It Works


Cryptocurrency (or “crypto”) is a digital currency that can be used to buy goods and
services or traded for a profit. Bitcoin is the most widely used cryptocurrency.

Many, or all, of the products featured on this page are from our advertising partners who
compensate us when you take certain actions on our website or click to take an action on
their website. However, this does not influence our evaluations. Our opinions are our own.
Here is a list of our partners and here’s how we make money.

The investing information provided on this page is for educational purposes only.
NerdWallet, Inc. does not offer advisory or brokerage services, nor does it recommend or
advise investors to buy or sell particular stocks, securities or other investments.
Nerdy takeaways
• Cryptocurrencies are generally used to pay for services or as speculative
investments.
• Cryptocurrencies are powered by a technology known as blockchain.
• Crypto prices are extremely volatile, and the industry is filled with uncertainty.
• There are tax consequences to buying and selling cryptocurrencies.

Created by Nandakishore 147


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Bitcoin is still the dominant cryptocurrency, followed by Ethereum.


In this article we cover:
• Why do people invest in cryptocurrencies?
• Why is Bitcoin popular?
• How does cryptocurrency work, and how are cryptocurrencies created?
• Are cryptocurrencies “financial securities?”
• Cryptocurrency pros and cons
• Crypto legal and tax issues
What is cryptocurrency?
Cryptocurrency (or “crypto”) is a digital currency, such as Bitcoin, that is used as an
alternative payment method or speculative investment. Cryptocurrencies get their name
from the cryptographic techniques that let people spend them securely without the need
for a central government or bank.

Bitcoin was initially developed primarily to be a form of payment that isn’t controlled or
distributed by a central bank. While financial institutions have traditionally been necessary
to verify that a payment has been processed successfully, Bitcoin accomplishes this
securely, without that central authority.

Ethereum uses the same underlying technology as Bitcoin, but instead of strictly peer-to-
peer payments, the cryptocurrency is used to pay for transactions on the Ethereum
network. This network, built on the Ethereum blockchain, enables entire financial
ecosystems to operate without a central authority. To visualize this, think insurance without
the insurance company, or real estate titling without the title company.

Scores of altcoins (broadly defined as any cryptocurrency other than Bitcoin) arose to
capitalize on the various — and at times promising — use cases for blockchain technology.

Why do people invest in cryptocurrencies?


People invest in cryptocurrencies for the same reason anyone invests in anything. They
hope its value will rise, netting them a profit.
If demand for Bitcoin grows, for example, the interplay of supply and demand could push
up its value.
If people began using Bitcoin for payments on a huge scale, demand for Bitcoin would go
up, and in turn, its price in dollars would increase. So, if you’d purchased one Bitcoin before
that increase in demand, you could theoretically sell that one Bitcoin for more U.S. dollars
than you bought it for, making a profit.

Created by Nandakishore 148


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The same principles apply to Ethereum. “Ether” is the cryptocurrency of the Ethereum
blockchain, where developers can build financial apps without the need for a third-party
financial institution. Developers must use Ether to build and run applications on Ethereum,
so theoretically, the more that is built on the Ethereum blockchain, the higher the demand
for Ether.

However, it’s important to note that to some, cryptocurrencies aren’t investments at all.
Bitcoin enthusiasts, for example, hail it as a much-improved monetary system over our
current one and would prefer we spend and accept it as everyday payment. One common
refrain — “one Bitcoin is one Bitcoin” — underscores the view that Bitcoin shouldn’t be
measured in USD, but rather by the value it brings as a new monetary system.

Why is Bitcoin still popular?


Since its inception, Bitcoin has been regularly derided as dead, worthless or a scam, in part
because its price is prone to meteoric rises and dramatic falls. When Bitcoin’s price rose to
$60,000 in 2021 before collapsing to around $17,000 in 2022, many experts and investors
said it wouldn’t recover from this burst.

But it did, hitting a series of record highs in early 2024. Those surges in price could be
partially be attributed to approval by the SEC of spot Bitcoin ETFs in Jan. 2024. This gave
some of the largest asset managers in the world (think Fidelity and BlackRock) a way to
offer their clients exposure to Bitcoin, making it easier for those clients to hold Bitcoin in
accounts such as IRAs and taxable brokerage accounts. (In July 2024, a handful of
Ethereum ETFs were also approved.)

But Bitcoin’s 2024 price rise is also due to other factors. Every four years, something known
as “Bitcoin halving” occurs. The most recent halving occurred in April 2024, cutting the
mining reward from 6.25 to 3.125. The anticipation of fewer Bitcoins entering the market
drives up the price.

What’s more, the surge in interest rates in 2022 that pummeled growth stocks may have
had a similar influence on Bitcoin; investors tend to prefer security over volatility during
times of uncertainty. But as talk of interest rate cuts in 2024 circulates, some investors may
have more appetite for risky assets like Bitcoin, leading them to get back in now.

Created by Nandakishore 149


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

And lastly, there are still Bitcoin enthusiasts who preach that looking at Bitcoin through the
lens of fiat currencies like the U.S. dollar or Great British pound is missing the point entirely,
and that its true value lies in being a new monetary system.

But, if there’s anything about Bitcoin that appears to be predictable, it’s that it will continue
to be volatile. In the relative short-term, both camps are likely right: Bitcoin will rise and
Bitcoin will fall. But at the moment, it appears the Bitcoin bulls are winning out.

How does cryptocurrency work?


Cryptocurrencies are supported by a technology known as blockchain, which maintains a
tamper-resistant record of transactions and keeps track of who owns what. The use of
blockchains addressed a problem faced by previous efforts to create purely digital
currencies: preventing people from making copies of their holdings and attempting to
spend it twice

Individual units of cryptocurrencies can be referred to as coins or tokens, depending on


how they are used. Some are intended to be units of exchange for goods and services,
others are stores of value, and some can be used to participate in specific software
programs such as games and financial products.

How are cryptocurrencies created?


One common way cryptocurrencies are created is through a process known as mining,
which is used by Bitcoin. Bitcoin mining can be an energy-intensive process in which
computers solve complex puzzles in order to verify the authenticity of transactions on the
network. As a reward, the owners of those computers can receive newly created
cryptocurrency. Other cryptocurrencies use different methods to create and distribute
tokens, and many have a significantly lighter environmental impact.

• » Learn more: How Bitcoin mining works

Why are there so many kinds of cryptocurrency?


It’s important to remember that Bitcoin is different from cryptocurrency in general. While
Bitcoin is the first and most valuable cryptocurrency, the market is large.
There are more than two million different cryptocurrencies in existence, according to
CoinMarketCap.com, a market research website

. And while some cryptocurrencies have total market valuations in the hundreds of billions
of dollars, others are obscure and essentially worthless.

Created by Nandakishore 150


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

If you’re thinking about getting into cryptocurrency, it can be helpful to start with one that is
commonly traded and relatively well-established in the market. These coins typically have
the largest market capitalizations.

Thoughtfully selecting your cryptocurrency, however, is no guarantee of success in such a


volatile space. Sometimes, an issue in the deeply interconnected crypto industry can spill
out and have broad implications on asset values.

For instance, in November of 2022 the market took a major hit as the cryptocurrency
exchange FTX struggled to deal with liquidity issues amid a spike in withdrawals. As the
fallout spread, cryptocurrencies both large and small saw their values plummet.

Are cryptocurrencies financial securities, like stocks?


Whether or not cryptocurrency is a security is a bit of a gray area right now. To back up a
little, generally, a “security” in finance is anything that represents a value and can be
traded. Stocks are securities because they represent ownership in a public company.
Bonds are securities because they represent a debt owed to the bondholder. And both of
these securities can be traded on public markets.

Regulators have increasingly signaled that cryptocurrencies should be regulated similarly


to other securities, such as stocks and bonds. However, with the June 2024 Loper Bright
Enterprises v. Raimondo Supreme Court ruling, that may change — Congress may have to
clearly define crypto regulation through law making rather than allowing the SEC to enforce
rules based on its interpretation. That could have major implications for the asset class in
the future.

Pros and cons of cryptocurrency


Cryptocurrency inspires passionate opinions across the spectrum of investors. Here are a
few reasons that some people believe it is a transformational technology, while others
worry it’s a fad.
Cryptocurrency pros
Some supporters like the fact that cryptocurrency removes central banks from managing
the money supply since over time these banks tend to reduce the value of money via
inflation.

In communities that have been underserved by the traditional financial system, some
people see cryptocurrencies as a promising foothold. Pew Research Center data from 2021

Created by Nandakishore 151


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

found that Asian, Black and Hispanic people “are more likely than White adults to say they
have ever invested in, traded or used a cryptocurrency
Other advocates like the blockchain technology behind cryptocurrencies, because it’s a
decentralized processing and recording system and can be more secure than traditional
payment systems.

Some cryptocurrencies offer their owners the opportunity to earn passive income through
a process called staking. Crypto staking involves using your cryptocurrencies to help verify
transactions on a blockchain protocol. Though staking has its risks, it can allow you to grow
your crypto holdings without buying more.

Cryptocurrency cons
Many cryptocurrency projects are untested, and blockchain technology in general has yet
to gain wide adoption. If the underlying idea behind cryptocurrency does not reach its
potential, long-term investors may never see the returns they hoped for.

For shorter-term crypto investors, there are other risks. Its prices tend to change rapidly,
and while that means that many people have made money quickly by buying in at the right
time, many others have lost money by doing so just before a crypto crash.

Those wild shifts in value may also cut against the basic ideas behind the projects that
cryptocurrencies were created to support. For example, people may be less likely to use
Bitcoin as a payment system if they are not sure what it will be worth the next day.

The environmental impact of Bitcoin and other projects that use similar mining protocols is
significant. A comparison by the University of Cambridge, for instance, said worldwide
Bitcoin mining consumes more than twice as much power as all U.S. residential lighting

Governments around the world have not yet fully reckoned with how to handle
cryptocurrency, so regulatory changes and crackdowns have the potential to affect the
market in unpredictable ways.

Cryptocurrency legal and tax issues


There’s no question that cryptocurrencies are legal in the U.S., though China has
essentially banned their use, and ultimately whether they’re legal depends on each
individual country.

Created by Nandakishore 152


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The question of whether cryptocurrencies are legally allowed, however, is only one part of
the legal question. Other things to consider include how crypto is taxed and what you can
buy with cryptocurrency.

Legal tender: You might call them cryptocurrencies, but they differ from traditional
currencies in one important way: there’s no requirement in most places that they be
accepted as “legal tender.” The U.S. dollar, by contrast, must be accepted for “all debts,
public and private.” Countries around the world are taking various approaches to
cryptocurrency. For now, in the U.S., what you can buy with cryptocurrency depends on the
preferences of the seller.

Crypto taxes: Again, the term “currency” is a bit of a red herring when it comes to taxes in
the U.S. Cryptocurrencies are taxed as property, rather than currency. That means that
when you sell them, you’ll pay tax on the capital gains, or the difference between the price
of the purchase and sale. And if you’re given crypto as payment — or as a reward for an
activity such as mining — you’ll be taxed on the value at the time you received them.

Your decision: Is cryptocurrency a good investment?


Cryptocurrency is a relatively risky investment, no matter which way you slice it. Generally
speaking, high-risk investments should make up a small part of your overall portfolio — one
common guideline is no more than 10%. You may want to look first to shore up your
retirement savings, pay off debt or invest in less-volatile funds made up of stocks and
bonds.

There are other ways to manage risk within your crypto portfolio, such as by diversifying the
range of cryptocurrencies that you buy. Crypto assets may rise and fall at different rates,
and over different time periods, so by investing in several different products you can
insulate yourself — to some degree — from losses in one of your holdings.

Perhaps the most important thing when investing in anything is to do your homework. This
is particularly important when it comes to cryptocurrencies, which are often linked to a
specific technological product that is being developed or rolled out. When you buy a stock,
it is linked to a company that is subject to well-defined financial reporting requirements,
which can give you a sense of its prospects.

With cryptocurrencies, on the other hand, discerning which projects are viable can be
more challenging. If you have a financial advisor who is familiar with cryptocurrency, it may
be worth asking for input.

Created by Nandakishore 153


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

For beginning investors, it can also be worthwhile to examine how widely a cryptocurrency
is being used. Most reputable crypto projects have publicly available metrics showing data
such as how many transactions are being carried out on their platforms. If use of a
cryptocurrency is growing, that may be a sign that it is establishing itself in the market.
Cryptocurrencies also generally make “white papers” available to explain how they’ll work
and how they intend to distribute tokens.
What Is a Crypto Wallet? A Beginner’s Guide

Key Takeaways:
• Contrary to popular belief, crypto wallets do not physically hold cryptocurrencies
like the wallet in someone’s pocket.
• Crypto wallets store the public and private keys required to buy cryptocurrencies
and provide digital signatures that authorise each transaction.
• There are several types of crypto wallets, including physical devices, software, and
even paper.
• Determining which crypto wallet is best depends entirely on individual trading
needs.
What Is a Crypto Wallet?
Cryptocurrency wallets store users’ public and private keys while providing an easy-to-use
interface to manage crypto balances. They also support cryptocurrency transfers through
the blockchain. Some wallets even allow users to perform certain actions with their crypto
assets, such as buying and selling or interacting with decentralised applications (dapps).

It is important to remember that cryptocurrency transactions do not represent a ‘sending’


of crypto tokens from a person’s mobile phone to someone else’s mobile phone. When
sending tokens, a user’s private key signs the transaction and broadcasts it to the
blockchain network. The network then includes the transaction to reflect the updated
balance in both the sender’s and recipient’s address.
So, the term ‘wallet’ is somewhat of a misnomer, as crypto wallets don’t actually store
cryptocurrency in the same way physical wallets hold cash. Instead, they read the public
ledger to show the balances in a user’s addresses, as well as hold the private keys that
enable the user to make transactions.
Not Sure What a Public or Private Key Is?
A key is a long string of random, unpredictable characters. While a public key is like a bank
account number and can be shared widely, the private key is like a bank account
passwordor PIN and should be kept secret. In public key cryptography, every public key is

Created by Nandakishore 154


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

paired with one corresponding private key. Together, they are used to encrypt and decrypt
data.

Why a Crypto Wallet Is Needed for Storing Crypto Assets


A user’s cryptocurrency is only as safe as the method they use to store it. While crypto can
technically be stored directly on an exchange, it is not advisable to do so unless in small
amounts or with the intention of trading frequently.
For larger amounts, it’s recommended that a user withdraws the majority to a crypto wallet,
whether that be a hot wallet or a cold one. This way, they retain ownership of their private
keys and have full power and control over their own finances.
How Do Cryptocurrency Wallets Work?
As mentioned earlier, a crypto wallet doesn’t technically hold a user’s coins. Instead, it
holds the key to their coins, which are stored on public blockchain networks.
In order to perform various transactions, a user needs to verify their wallet address via a
private key that comes in a set of specific codes. The speed and security often depend on
the kind of wallet a user has.
Different Types of Crypto Wallets
• There are two main types of cryptocurrency wallets: software-based hot wallets and
physical cold wallets. Read on to learn about the different types of crypto wallets,
and which may be a best fit.
Hot Wallets and Cold Wallets — What’s the Difference?

Created by Nandakishore 155


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Hot Wallets
The main difference between hot and cold wallets is whether they are connected to the
internet. Hot wallets are connected to the internet, while cold wallets are kept offline.
This means that funds stored in hot wallets are more accessible and, therefore, easier for
hackers to gain access to.
Examples of hot wallets include:
• Web-based wallets
• Mobile wallets
• Desktop wallets
• Software wallets
In hot wallets, private keys are stored and encrypted on the app itself, which is kept online.
Using a hot wallet can be risky since computer networks have hidden vulnerabilities that
can be targeted by hackers or malware programmes to break into the system. Keeping large
amounts of cryptocurrency in a hot wallet is a fundamentally poor security practise, but the
risks can be mitigated by using a hot wallet with stronger encryption, or by using devices
that store private keys in a secure enclave.

There are different reasons why a market participant might want their cryptocurrency
holdings to be either connected to or disconnected from the internet. Because of this, it’s
not uncommon for cryptocurrency holders to have multiple cryptocurrency wallets,
including both hot and cold ones.
Cold Wallets
As introduced at the beginning of this section, a cold wallet is entirely offline. While not as
convenient as hot wallets, cold wallets are far more secure. An example of a physical
medium used for cold storage is a piece of paper or an engraved piece of metal.
Examples of cold wallets include:
• Paper wallets
• Hardware wallets
What Is a Paper Wallet?
A paper wallet is a physical location where the private and public keys are written down or
printed. In many ways, this is safer than keeping funds in a hot wallet, since remote hackers
have no way of accessing these keys, which are kept safe from phishing attacks. On the
other hand, it opens up the potential risk of the piece of paper getting destroyed or lost,
which may result in irrecoverable funds.
What Is a Hardware Wallet?
A hardware wallet is an external accessory (usually a USB or Bluetooth device) that stores a
user’s keys; a user can only sign a transaction by pushing a physical button on the device,
which malicious actors cannot control.

Created by Nandakishore 156


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The best practise to store cryptocurrency assets that do not require instant access is
offline in a cold wallet. However, users should note this also means that securing their
assets is entirely their own responsibility — it is up to them to ensure they don’t lose the
hardware wallet, or have it stolen.
Tip: For increased security, separate the public and private keys, keep them offline, and
store the physical wallet in a safe deposit box.
Hot Wallets vs Cold Wallets: Which Are Better?
While both methods of storage have benefits and drawbacks, the option depends on a
user’s preference. For example:
• For day-to-day trading, accessibility is of paramount importance, meaning that a hot
wallet may be worth researching.
• However, for those considering storing a large amount of crypto assets and who
value security over convenience, then consider researching a cold wallet.
Custodial and Non-Custodial Crypto Wallets
In addition to those mentioned above, wallets can be further separated into custodial and
non-custodial types.

Custodial Wallets
Most web-based crypto wallets, also known as hosted wallets, tend to be custodial
wallets. Typically offered on cryptocurrency exchanges, these wallets are known for their
convenience and ease of usage, and are especially popular with newcomers, as well as
experienced day traders.
The main difference between custodial wallets and the types mentioned above is that
users are no longer in full control of their tokens, and the private keys required to sign for
transactions are held only by the exchange.

Created by Nandakishore 157


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The implication here is that users must trust the service provider to securely store
their tokens and implement strong security measures to prevent unauthorised access.
These measures include two-factor authentication (2FA), email confirmation, and
biometric authentication, such as facial recognition or fingerprint verification. Many
exchanges will not allow a user to make transactions until these security measures are
properly set up.

Crypto exchanges and custodial wallet providers usually also take further steps to ensure
the safety of users’ tokens. For example, a portion of the funds is generally transferred to
the company’s cold wallet, safe from online attackers.

Crypto.com has taken many measures to ensure the protection of customer funds. After
rigorous security audits by a team of cybersecurity and compliance experts,
Crypto.com is the first crypto company in the world to have obtained ISO/IEC
27701:2019, ISO22301:2019, ISO27001:2013, and PCI:DSS 3.2.1, Level 1 compliance,
and independently assessed at Tier 4, the highest level for both NIST Cybersecurity
and Privacy Frameworks, as well as Service Organization Control (SOC) 2 compliance.
Additionally, the company has in place a total of US$150 million for insurance protection of
customer funds.
Non-Custodial Wallets
Non-custodial wallets, on the other hand, allow a user to retain full control of their funds,
since the private key is stored locally with the user.

When starting a non-custodial wallet, the user is asked to write down and safely store a list
of 12 randomly generated words, known as a ‘recovery’, ‘seed’, or ‘mnemonic’ phrase. From
this phrase, the user’s public and private keys can be generated. This acts as a backup or
recovery mechanism in case the user loses access to their device.

Anyone with the seed phrase is able to gain full control of the funds held in that wallet. In a
case scenario where the seed phrase is lost, the user also loses access to their funds. So it
is imperative to keep the mnemonic phrase in a secure location, and to not store a digital
copy of it anywhere. Do not print it out at a public printer or take a picture of it.

Note that hardware wallets are inherently non-custodial, since private keys are stored on
the device itself. There are also software-based non-custodial wallets, such as the
Crypto.com DeFi Wallet. The common theme is that the private keys and the funds are fully
in the user’s control. As the popular saying within the crypto community goes, ‘not your
keys, not your coins!’.

Created by Nandakishore 158


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

On the flip side, this means that users must be in charge of their own security with regard to
the storage of passwords and seed phrases. If any of these are lost, recovery can be
difficult or impossible because they are typically not stored on any third-party server.
Custodial vs Non-Custodial Wallets: Which Are Better?
• Custodial and non-custodial wallets have various pros and cons that make them
suitable for different types of users. Ultimately, it all comes down to personal
choice.
• For those prone to losing passwords and devices, then it makes sense to use a
custodial wallet, since an exchange or custodian is likely to have better security
practices and backup options. That’s why it’s a popular option for beginners who
have little to no experience trading crypto. Further, transaction fees with a custodial
wallet tend to be cheaper or even free.
For those who prefer to retain full control over their own funds, consider a non-custodial
wallet.
For more on the differences between custodial and non-custodial wallets, see our
University article Custodial vs Non-Custodial Wallets.
For Additional Security, Consider Multi-Signature Wallets
Multi-signature wallets — or multisig wallets — require two or more private key signatures
to authorise transactions. This solution is useful for a number of use cases:
• An individual using a multisig wallet can prevent losing access to the entire wallet in
a case scenario where one key is lost. For example, if a user loses one key, there will
still be two other keys able to sign transactions.
• Multisig wallets can prevent the misuse of funds and fraud, which makes them a
good option for hedge funds, exchanges, and corporations. Since each authorised
person has one key, and a sign-off requires the majority of keys, it becomes
impossible for any individual to unilaterally make unauthorised transactions.
Any of the wallet types described above — hot wallets, cold wallets, hardware wallets, etc.
— have multisig versions.
NFT Wallets
An NFT wallet is a secure place that stores non-fungible tokens (NFTs). For NFT wallets,
there are two main choices: hardware wallets or software-based wallets.
What to Look for in an NFT Wallet
The right NFT wallet depends on a variety of factors, including a user’s level of experience
and security needs, as well as the types of tokens they plan on storing. Below are things to
consider when choosing an NFT wallet:
Compatibility with NFT marketplaces — Users need a crypto wallet that can integrate
with the NFT marketplaces they want to buy from.

Created by Nandakishore 159


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Strong security — Includes two-factor authentication (2FA), email confirmation, or


biometric authentication.
User-friendly interface — A good NFT wallet should boast a streamlined user experience
and be easy to set up.
Accessibility on multiple devices — Most NFT wallets are available via web extensions or
as mobile/desktop applications. For enhanced convenience, look for a wallet that’s
available on multiple devices that can also synchronise transactions in real time.
Cross-chain compatibility — Most wallets support Ethereum-based tokens; however, for
those who want to mint, buy, and sell tokens on other networks, a crypto wallet with cross-
chain compatibility is needed.
For a popular all-in-one hardware wallet, consider the Crypto.com DeFi Wallet, widely
regarded as one of the most trusted and secure wallets to store NFTs — and voted the best
NFT wallet 2024 by TradingPlatforms.
More About Crypto.com DeFi Wallet
The Crypto.com DeFi Wallet is non-custodial, which means that users retain full control of
their private keys and assets. Available on Android and iOS, DeFi Wallet allows users to
manage 700-plus tokens across 30-plus blockchains and send crypto to anyone at their
preferred confirmation speed and network fee. Additionally, users can buy crypto directly
through their credit or debit card with Crypto.com Pay.

The dedicated wallet supports NFTs on Ethereum, Cronos, and Crypto.org Chain, and
enables users to easily view top collections using the NFT Spotlight feature. Users can also
use the wallet to potentially earn passive income by locking up cryptocurrencies like CRO,
USDC, and DOT. Crypto.com users can also manage their NFTs within the Crypto.com App.
Conclusion
When it comes to crypto wallets, there is no perfect solution. Each type of wallet has
different strengths, purposes, and trade-offs. It’s up to the user to weigh what works best
for them:

• For those with a high-risk tolerance who want to make regular, quick online
payments, the convenience of a hot wallet, like the Crypto.com App, could suit best.
• For those a little more risk-averse who intend to hold their coins long term, then a
secure offline device, like hardware wallets, might make the most sense.
• The final choice remains in the user’s hands, with the non-custodial Crypto.com
DeFi Wallet one of many secure options.
As storing large quantities of cryptocurrency in a single wallet is quite risky, a combination
of cold and hot wallets is usually ideal and can help strike the right balance between
convenience and security.

Created by Nandakishore 160


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Due Diligence and Do Your Own Research


All examples listed in this article are for informational purposes only. You should not
construe any such information or other material as legal, tax, investment, financial,
cybersecurity, or other advice. Nothing contained herein shall constitute a solicitation,
recommendation, endorsement, or offer by Crypto.com to invest, buy, or sell any coins,
tokens, or other crypto assets. Returns on the buying and selling of crypto assets may be
subject to tax, including capital gains tax, in your jurisdiction. Any descriptions of
Crypto.com products or features are merely for illustrative purposes and do not constitute
an endorsement, invitation, or solicitation.

Past performance is not a guarantee or predictor of future performance. The value of crypto
assets can increase or decrease, and you could lose all or a substantial amount of your
purchase price. When assessing a crypto asset, it’s essential for you to do your research
and due diligence to make the best possible judgement, as any purchases shall be your
sole responsibility.
What Is a Cryptocurrency Wallet?
A crypto wallet is an application that functions as a wallet for your cryptocurrency. It is
called a wallet because it is used similarly to a wallet you put cash and cards in. Instead of
holding these physical items, it stores the passkeys you use to sign for your cryptocurrency
transactions and provides the interface that lets you access your crypto.

Modern cryptocurrency wallets make the blockchain accessible to everyone. When


cryptocurrency was first introduced, sending cryptocurrency was a manual task that
required entering long keys. Today, the software does most of it for you.
The first wallet was that of Bitcoin’s developer, Satoshi Nakamoto. The second wallet
belonged to Hal Finney, who corresponded with Nakamoto and reportedly was the first to
run the Bitcoin client software wallet. Nakamoto sent him 10 bitcoins as a test, and the
cryptocurrency craze began.
Key Takeaways:
• A cryptocurrency wallet is a device or program that stores your cryptocurrency keys
and allows you to access your coins.
• Wallets contain an address and the private keys needed to sign cryptocurrency
transactions. Anyone who knows the private key can control the coins associated
with that address.
• There are several different types of wallets, each with its own features and levels of
security.
• Many cryptocurrency wallets can be used to store keys for different
cryptocurrencies

Created by Nandakishore 161


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Understanding Cryptocurrency Wallets


Cryptocurrency wallets are software applications on computers or mobile devices such as
phones or tablets. They use an internet connection to access the blockchain network for
the cryptocurrency you’re using.

Cryptocurrencies are not “stored” anywhere—they are bits of data in a database, scattered
all over it; the wallet finds all of the bits associated with your public address and sums up
the amount for you in the app’s interface.

Sending and receiving cryptocurrency is very easy using these applications. You can send
or receive cryptocurrency from your wallet using various methods. Typically, you enter the
recipient’s wallet address, choose an amount to send, sign the transaction using your
private key, add an amount to pay the transaction fee, and send it.
• Many wallets have integrated QR codes and near-field scanner technology that
allows you to scan a code, select an amount, enter your key, select the transaction
fee, and click send.
Receiving is even easier—the sender enters your address and goes through the same
routine. You accept the payment, and the transaction is done.
Cryptocurrency Wallet Types
There are two main types of wallets: custodial and noncustodial. Custodial wallets (also
called online wallets) are hosted by a third party that stores your keys for you. This could be
a company that provides enterprise-level data security systems businesses use to preserve
and secure data. Some cryptocurrency exchanges offer custodial wallets for their
customers. Noncustodial wallets are wallets in which you take responsibility for securing
your keys. This is the type that most cryptocurrency wallets on devices are.

There are two subcategories of wallets: hot and cold. A hot wallet has a connection to the
internet or to a device that has a connection, and a cold wallet has no connection. Lastly,
there are three subcategories of wallets—software, hardware, and paper. Each of these
types is considered either a hot or cold wallet.

So, you can have a noncustodial software hot wallet, a noncustodial hardware cold or hot
wallet, or a custodial hardware cold wallet. These are the most common types, but you
may also encounter other combinations.
Some wallets may be best for storing and managing your cryptocurrency, such as one of
Investopedia’s best Bitcoin wallets. Research all crypto wallet options before deciding
which is best for you.

Created by Nandakishore 162


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Software Wallets
Software wallets include applications for desktops and mobile devices. These wallets are
installed on a desktop or laptop computer and can access your cryptocurrency, make
transactions, display your balance, and much more. Some software wallets also include
additional functionality, such as exchange integration if you’re using a wallet designed by a
cryptocurrency exchange.

Many mobile wallets can facilitate quick payments in physical stores through near-field
communication (NFC) or by scanning a QR code. Mobile wallets tend to be compatible with
iOS or Android devices. Trezor, Electrum, and Mycelium are examples of wallets that you
can use. Software wallets are generally hot wallets.
Warning:You use private keys to access your cryptocurrency. It’s important to control
access to your private keys, because anyone who has them can access your coins.
Hardware Wallets
Hardware wallets are the most popular type of wallet because you can store your private
keys and remove them from your device. These devices might resemble a USB drive, and
modern hardware wallets have several features.

You can make a cryptocurrency transaction on your computer or device by plugging in the
hardware wallet. Most of them can sign cryptocurrency transactions automatically without
requiring you to enter the key, circumventing a hacker’s ability to log your keypresses or
record your screen.

These devices often cost between $100 to $200. Ledger and Trezor are both well-known
hardware wallets. Hardware wallets are generally considered cold wallets because they
don’t have an active connection until they are plugged in.
Some new hardware wallets come with the ability to connect to your device through
Bluetooth. Use these with caution because Bluetooth is a wireless signal that can be
accessed by unwanted parties when it is turned on.
Paper Wallets
Early crypto users would write or type their keys on paper, which they called paper wallets.
These evolved to include the keys and QR codes so wallets on mobile devices could scan
them. However, paper wallets are easily damaged or lost, so many crypto owners do not
use them anymore.

However, there is nothing wrong with using a paper wallet if you take measures to store it
properly in a safe or deposit box and check on it once in a while to ensure it hasn’t
deteriorated.

Created by Nandakishore 163


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Crypto Wallet Security


Wallet safety is essential, as cryptocurrencies are high-value targets for hackers. Some
safeguards include encrypting the wallet with a strong password, using two-factor
authentication for exchanges, and storing any large amounts you have offline.
There have been many cases of malware disguised as wallets, so it is advisable to research
carefully before deciding which one to use.
Seed Words
Most modern wallets generate a twelve-word mnemonic seed phrase. An example phrase
could be “airport bedroom impression sample reception protection road shirt…” which
seems random but is created and linked to your keys by your wallet. You can use the phrase
to restore the wallet if the device is lost or damaged. These words should be carefully
stored in a safe place because anyone who finds them will be able to access your
cryptocurrency.
Cryptocurrency Exchanges
Cryptocurrency exchanges have started offering custodial key storage for their users.
However, you should use this service cautiously. Cryptocurrency exchanges are highly
prized targets for cybercriminals.

Additionally, if the cryptocurrency exchange goes out of business, there may be no


guarantees that you’ll get your cryptocurrency back. For example, Coinbase, a popular
exchange, announced in its quarterly report to the Securities and Exchange Commission in
May 2022that.
• because custodially held crypto assets may be considered to be the property of a
bankruptcy estate, in the event of a bankruptcy, the crypto assets we hold in
custody on behalf of our customers could be subject to bankruptcy proceedings
and such customers could be treated as our general unsecured creditors.
General unsecured creditors are lower in priority on the list of creditors in a bankruptcy
proceeding. Therefore, if there are not enough assets to liquidate and meet financial
requirements for higher priority creditors, it is possible to lose your crypto assets if your
custodial wallet company declares bankruptcy.

The best cryptocurrency key security measures involve removing your keys from your
wallet, placing them in a form of cold storage, and securing them in a vault, safe, or deposit
box. The more steps it takes for you to access your cryptocurrency keys, the harder it is for
a criminal to access them. This way, you ensure you don’t lose your keys. It also ensures
that someone you have entrusted with your keys doesn’t lose them or deny you access to
them.

Created by Nandakishore 164


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Which Crypto Wallet Is Best?


There are various wallets you can choose from with many options. It’s best to read as many
reviews as possible to find one that fits your needs while ensuring your keys are secure.
What Is Best Security Wallet for Crypto?
The safest crypto wallet has no connection on its own or to a device with internet access. It
also should not deny you access to your crypto because a custodian has financial issues.
Many so-called “safe” wallets have wireless connection technology that determined
cybercriminals can access.
What Is a Crypto Wallet for Beginners?
Crypto wallets store your private crypto keys and provide access to the blockchain or
crypto-related services.
The Bottom Line
Cryptocurrency wallets are an important part of your cryptocurrency toolbox. Various types
are available, so it’s best to research and find the one that meets your needs and provides a
high level of security to protect your digital assets.

The comments, opinions, and analyses expressed on Investopedia are for informational
purposes only. Read our warranty and liability disclaimer for more info.

Cryptography

Cryptography, or cryptology (from Ancient Greek: κρυπτός, romanized: kryptós “hidden,


secret”; and γράφειν graphein, “to write”, or -λογία -logia, “study”, respectively[1]), is
the practice and study of techniques for secure communication in the presence of
adversarial behavior.[2] More generally, cryptography is about constructing and analyzing
protocols that prevent third parties or the public from reading private messages.[3] Modern
cryptography exists at the intersection of the disciplines of mathematics, computer
science, information security, electrical engineering, digital signal processing, physics, and
others.[4] Core concepts related to information security (data confidentiality, data integrity,
authentication, and non-repudiation) are also central to cryptography.[5] Practical
applications of cryptography include electronic commerce, chip-based payment cards,
digital currencies, computer passwords, and military communications.

Lorenz cipher machine, used in World War II to encrypt communications of the German
High Command.
Cryptography prior to the modern age was effectively synonymous with encryption,
converting readable information (plaintext) to unintelligible nonsense text (ciphertext),
which can only be read by reversing the process (decryption). The sender of an encrypted

Created by Nandakishore 165


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

(coded) message shares the decryption (decoding) technique only with the intended
recipients to preclude access from adversaries. The cryptography literature often uses the
names “Alice” (or “A”) for the sender, “Bob” (or “B”) for the intended recipient, and “Eve” (or
“E”) for the eavesdropping adversary.[6] Since the development of rotor cipher machines in
World War I and the advent of computers in World War II, cryptography methods have
become increasingly complex and their applications more varied.

Modern cryptography is heavily based on mathematical theory and computer science


practice; cryptographic algorithms are designed around computational hardness
assumptions, making such algorithms hard to break in actual practice by any adversary.
While it is theoretically possible to break into a well-designed system, it is infeasible in
actual practice to do so. Such schemes, if well designed, are therefore termed
“computationally secure”. Theoretical advances (e.g., improvements in integer
factorization algorithms) and faster computing technology require these designs to be
continually reevaluated and, if necessary, adapted. Information-theoretically secure
schemes that provably cannot be broken even with unlimited computing power, such as
the one-time pad, are much more difficult to use in practice than the best theoretically
breakable but computationally secure schemes.

The growth of cryptographic technology has raised a number of legal issues in the
Information Age. Cryptography’s potential for use as a tool for espionage and sedition has
led many governments to classify it as a weapon and to limit or even prohibit its use and
export.[7] In some jurisdictions where the use of cryptography is legal, laws permit
investigators to compel the disclosure of encryption keys for documents relevant to an
investigation.[8][9] Cryptography also plays a major role in digital rights management and
copyright infringement disputes with regard to digital media.[10]

Terminology

Diagram showing shift three alphabetic cypher D becomes A and E becomes B

Created by Nandakishore 166


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Alphabet shift ciphers are believed to have been used by Julius Caesar over 2,000 years
ago.[6] This is an example with k = 3. In other words, the letters in the alphabet are shifted
three in one direction to encrypt and three in the other direction to decrypt.
The first use of the term “cryptograph” (as opposed to “cryptogram”) dates back to the 19 th
century—originating from “The Gold-Bug”, a story by Edgar Allan Poe.[11][12]

Until modern times, cryptography referred almost exclusively to “encryption”, which is the
process of converting ordinary information (called plaintext) into an unintelligible form
(called ciphertext).[13] Decryption is the reverse, in other words, moving from the
unintelligible ciphertext back to plaintext. A cipher (or cypher) is a pair of algorithms that
carry out the encryption and the reversing decryption. The detailed operation of a cipher is
controlled both by the algorithm and, in each instance, by a “key”. The key is a secret
(ideally known only to the communicants), usually a string of characters (ideally short so it
can be remembered by the user), which is needed to decrypt the ciphertext. In formal
mathematical terms, a “cryptosystem” is the ordered list of elements of finite possible
plaintexts, finite possible cyphertexts, finite possible keys, and the encryption and
decryption algorithms that correspond to each key. Keys are important both formally and in
actual practice, as ciphers without variable keys can be trivially broken with only the
knowledge of the cipher used and are therefore useless (or even counter-productive) for
most purposes. Historically, ciphers were often used directly for encryption or decryption
without additional procedures such as authentication or integrity checks.

There are two main types of cryptosystems: symmetric and asymmetric. In symmetric
systems, the only ones known until the 1970s, the same secret key encrypts and decrypts a
message. Data manipulation in symmetric systems is significantly faster than in
asymmetric systems. Asymmetric systems use a “public key” to encrypt a message and a
related “private key” to decrypt it. The advantage of asymmetric systems is that the public
key can be freely published, allowing parties to establish secure communication without
having a shared secret key. In practice, asymmetric systems are used to first exchange a
secret key, and then secure communication proceeds via a more efficient symmetric
system using that key.[14] Examples of asymmetric systems include Diffie–Hellman key
exchange, RSA (Rivest–Shamir–Adleman), ECC (Elliptic Curve Cryptography), and Post-
quantum cryptography. Secure symmetric algorithms include the commonly used AES
(Advanced Encryption Standard) which replaced the older DES (Data Encryption
Standard).[15] Insecure symmetric algorithms include children’s language tangling
schemes such as Pig Latin or other cant, and all historical cryptographic schemes,
however seriously intended, prior to the invention of the one-time pad early in the 20th
century.

Created by Nandakishore 167


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In colloquial use, the term “code” is often used to mean any method of encryption or
concealment of meaning. However, in cryptography, code has a more specific meaning:
the replacement of a unit of plaintext (i.e., a meaningful word or phrase) with a code word
(for example, “wallaby” replaces “attack at dawn”). A cypher, in contrast, is a scheme for
changing or substituting an element below such a level (a letter, a syllable, or a pair of
letters, etc.) to produce a cyphertext.

Cryptanalysis is the term used for the study of methods for obtaining the meaning of
encrypted information without access to the key normally required to do so; i.e., it is the
study of how to “crack” encryption algorithms or their implementations.

Some use the terms “cryptography” and “cryptology” interchangeably in English,[16] while
others (including US military practice generally) use “cryptography” to refer specifically to
the use and practice of cryptographic techniques and “cryptology” to refer to the combined
study of cryptography and cryptanalysis.[17][18] English is more flexible than several other
languages in which “cryptology” (done by cryptologists) is always used in the second sense
above. RFC 2828 advises that steganography is sometimes included in cryptology.[19]

The study of characteristics of languages that have some application in cryptography or


cryptology (e.g. frequency data, letter combinations, universal patterns, etc.) is called
cryptolinguistics. Cryptolingusitics is especially used in military intelligence applications
for deciphering foreign communications.

History
• Main article: History of cryptography
Before the modern era, cryptography focused on message confidentiality (i.e.,
encryption)—conversion of messages from a comprehensible form into an
incomprehensible one and back again at the other end, rendering it unreadable by
interceptors or eavesdroppers without secret knowledge (namely the key needed for
decryption of that message). Encryption attempted to ensure secrecy in communications,
such as those of spies, military leaders, and diplomats. In recent decades, the field has
expanded beyond confidentiality concerns to include techniques for message integrity
checking, sender/receiver identity authentication, digital signatures, interactive proofs and
secure computation, among others.

Classic cryptography
Skytala stick with strip of paper wound around in spiral

Created by Nandakishore 168


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Reconstructed ancient Greek scytale, an early cipher device


The main classical cipher types are transposition ciphers, which rearrange the order of
letters in a message (e.g., ‘hello world’ becomes ‘ehlol owrdl’ in a trivially simple
rearrangement scheme), and substitution ciphers, which systematically replace letters or
groups of letters with other letters or groups of letters (e.g., ‘fly at once’ becomes ‘gmz bu
podf’ by replacing each letter with the one following it in the Latin alphabet).[22] Simple
versions of either have never offered much confidentiality from enterprising opponents. An
early substitution cipher was the Caesar cipher, in which each letter in the plaintext was
replaced by a letter some fixed number of positions further down the alphabet. Suetonius
reports that Julius Caesar used it with a shift of three to communicate with his generals.
Atbash is an example of an early Hebrew cipher. The earliest known use of cryptography is
some carved ciphertext on stone in Egypt (c. 1900 BCE), but this may have been done for
the amusement of literate observers rather than as a way of concealing information.

The Greeks of Classical times are said to have known of ciphers (e.g., the scytale
transposition cipher claimed to have been used by the Spartan military).[23]
Steganography (i.e., hiding even the existence of a message so as to keep it confidential)
was also first developed in ancient times. An early example, from Herodotus, was a
message tattooed on a slave’s shaved head and concealed under the regrown hair.[13]
Other steganography methods involve ‘hiding in plain sight,’ such as using a music cipher to
disguise an encrypted message within a regular piece of sheet music. More modern
examples of steganography include the use of invisible ink, microdots, and digital
watermarks to conceal information.

In India, the 2000-year-old Kamasutra of Vātsyāyana speaks of two different kinds of


ciphers called Kautiliyam and Mulavediya. In the Kautiliyam, the cipher letter substitutions
are based on phonetic relations, such as vowels becoming consonants. In the Mulavediya,
the cipher alphabet consists of pairing letters and using the reciprocal ones.[13]

In Sassanid Persia, there were two secret scripts, according to the Muslim author Ibn al-
Nadim: the šāh-dabīrīya (literally “King’s script”) which was used for official
correspondence, and the rāz-saharīya which was used to communicate secret messages
with other countries.[24]

David Kahn notes in The Codebreakers that modern cryptology originated among the
Arabs, the first people to systematically document cryptanalytic methods.[25] Al-Khalil
(717–786) wrote the Book of Cryptographic Messages, which contains the first use of

Created by Nandakishore 169


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

permutations and combinations to list all possible Arabic words with and without
vowels.[26]

Arabic text of a book by Al-Kindi


First page of a book by Al-Kindi which discusses encryption of messages
Ciphertexts produced by a classical cipher (and some modern ciphers) will reveal
statistical information about the plaintext, and that information can often be used to break
the cipher. After the discovery of frequency analysis, nearly all such ciphers could be
broken by an informed attacker. Such classical ciphers still enjoy popularity today, though
mostly as puzzles (see cryptogram). The Arab mathematician and polymath Al-Kindi wrote
a book on cryptography entitled Risalah fi Istikhraj al-Mu’amma (Manuscript for the
Deciphering Cryptographic Messages), which described the first known use of frequency
analysis cryptanalysis techniques.[27][28]

Book sized metal machine with large dial left page and nineteen small dials right page
16th-century book-shaped French cipher machine, with arms of Henri II of France
Manuscript from Gabriel de Luetz d’Aramon in bound volume
Enciphered letter from Gabriel de Luetz d’Aramon, French Ambassador to the Ottoman
Empire, after 1546, with partial decipherment
Language letter frequencies may offer little help for some extended historical encryption
techniques such as homophonic cipher that tend to flatten the frequency distribution. For
those ciphers, language letter group (or n-gram) frequencies may provide an attack.

Essentially all ciphers remained vulnerable to cryptanalysis using the frequency analysis
technique until the development of the polyalphabetic cipher, most clearly by Leon
Battista Alberti around the year 1467, though there is some indication that it was already
known to Al-Kindi.[28] Alberti’s innovation was to use different ciphers (i.e., substitution
alphabets) for various parts of a message (perhaps for each successive plaintext letter at
the limit). He also invented what was probably the first automatic cipher device, a wheel
that implemented a partial realization of his invention. In the Vigenère cipher, a
polyalphabetic cipher, encryption uses a key word, which controls letter substitution
depending on which letter of the key word is used. In the mid-19th century Charles Babbage
showed that the Vigenère cipher was vulnerable to Kasiski examination, but this was first
published about ten years later by Friedrich Kasiski.[29]

Although frequency analysis can be a powerful and general technique against many
ciphers, encryption has still often been effective in practice, as many a would-be
cryptanalyst was unaware of the technique. Breaking a message without using frequency

Created by Nandakishore 170


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

analysis essentially required knowledge of the cipher used and perhaps of the key involved,
thus making espionage, bribery, burglary, defection, etc., more attractive approaches to the
cryptanalytically uninformed. It was finally explicitly recognized in the 19th century that
secrecy of a cipher’s algorithm is not a sensible nor practical safeguard of message
security; in fact, it was further realized that any adequate cryptographic scheme (including
ciphers) should remain secure even if the adversary fully understands the cipher algorithm
itself. Security of the key used should alone be sufficient for a good cipher to maintain
confidentiality under an attack. This fundamental principle was first explicitly stated in
1883 by Auguste Kerckhoffs and is generally called Kerckhoffs’s Principle; alternatively and
more bluntly, it was restated by Claude Shannon, the inventor of information theory and the
fundamentals of theoretical cryptography, as Shannon’s Maxim—‘the enemy knows the
system’.

Different physical devices and aids have been used to assist with ciphers. One of the
earliest may have been the scytale of ancient Greece, a rod supposedly used by the
Spartans as an aid for a transposition cipher. In medieval times, other aids were invented
such as the cipher grille, which was also used for a kind of steganography. With the
invention of polyalphabetic ciphers came more sophisticated aids such as Alberti’s own
cipher disk, Johannes Trithemius’ tabula recta scheme, and Thomas Jefferson’s wheel
cypher (not publicly known, and reinvented independently by Bazeries around 1900). Many
mechanical encryption/decryption devices were invented early in the 20 th century, and
several patented, among them rotor machines—famously including the Enigma machine
used by the German government and military from the late 1920s and during World War
II.[30] The ciphers implemented by better quality examples of these machine designs
brought about a substantial increase in cryptanalytic difficulty after WWI.[31]

Early computer-era cryptography


Cryptanalysis of the new mechanical ciphering devices proved to be both difficult and
laborious. In the United Kingdom, cryptanalytic efforts at Bletchley Park during WWII
spurred the development of more efficient means for carrying out repetitive tasks, such as
military code breaking (decryption). This culminated in the development of the Colossus,
the world’s first fully electronic, digital, programmable computer, which assisted in the
decryption of ciphers generated by the German Army’s Lorenz SZ40/42 machine.

Extensive open academic research into cryptography is relatively recent, beginning in the
mid-1970s. In the early 1970s IBM personnel designed the Data Encryption Standard (DES)
algorithm that became the first federal government cryptography standard in the United
States.[32] In 1976 Whitfield Diffie and Martin Hellman published the Diffie–Hellman key

Created by Nandakishore 171


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

exchange algorithm.[33] In 1977 the RSA algorithm was published in Martin Gardner’s
Scientific American column.[34] Since then, cryptography has become a widely used tool
in communications, computer networks, and computer security generally.

Some modern cryptographic techniques can only keep their keys secret if certain
mathematical problems are intractable, such as the integer factorization or the discrete
logarithm problems, so there are deep connections with abstract mathematics. There are
very few cryptosystems that are proven to be unconditionally secure. The one-time pad is
one, and was proven to be so by Claude Shannon. There are a few important algorithms
that have been proven secure under certain assumptions. For example, the infeasibility of
factoring extremely large integers is the basis for believing that RSA is secure, and some
other systems, but even so, proof of unbreakability is unavailable since the underlying
mathematical problem remains open. In practice, these are widely used, and are believed
unbreakable in practice by most competent observers. There are systems similar to RSA,
such as one by Michael O. Rabin that are provably secure provided factoring n = pq is
impossible; it is quite unusable in practice. The discrete logarithm problem is the basis for
believing some other cryptosystems are secure, and again, there are related, less practical
systems that are provably secure relative to the solvability or insolvability discrete log
problem.[35]

As well as being aware of cryptographic history, cryptographic algorithm and system


designers must also sensibly consider probable future developments while working on
their designs. For instance, continuous improvements in computer processing power have
increased the scope of brute-force attacks, so when specifying key lengths, the required
key lengths are similarly advancing.[36] The potential impact of quantum computing are
already being considered by some cryptographic system designers developing post-
quantum cryptography.[when?] The announced imminence of small implementations of
these machines may be making the need for preemptive caution rather more than merely
speculative.[5]

Modern cryptography
Prior to the early 20th century, cryptography was mainly concerned with linguistic and
lexicographic patterns. Since then cryptography has broadened in scope,

Just as the development of digital computers and electronics helped in cryptanalysis, it


made possible much more complex ciphers. Furthermore, computers allowed for the
encryption of any kind of data representable in any binary format, unlike classical ciphers
which only encrypted written language texts; this was new and significant. Computer use

Created by Nandakishore 172


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

has thus supplanted linguistic cryptography, both for cipher design and cryptanalysis.
Many computer ciphers can be characterized by their operation on binary bit sequences
(sometimes in groups or blocks), unlike classical and mechanical schemes, which
generally manipulate traditional characters (i.e., letters and digits) directly. However,
computers have also assisted cryptanalysis, which has compensated to some extent for
increased cipher complexity. Nonetheless, good modern ciphers have stayed ahead of
cryptanalysis; it is typically the case that use of a quality cipher is very efficient (i.e., fast
and requiring few resources, such as memory or CPU capability), while breaking it requires
an effort many orders of magnitude larger, and vastly larger than that required for any
classical cipher, making cryptanalysis so inefficient and impractical as to be effectively
impossible.
Symmetric-key cryptography

• Main article: Symmetric-key algorithm


Symmetric-key algorithms[a] are algorithms for cryptography that use the same
cryptographic keys for both the encryption of plaintext and the decryption of ciphertext.
The keys may be identical, or there may be a simple transformation to go between the two
keys.[1] The keys, in practice, represent a shared secret between two or more parties that
can be used to maintain a private information link.[2]
The requirement that both parties have access to the secret key is one of the main
drawbacks of symmetric-key encryption, in comparison to public-key encryption (also
known as asymmetric-key encryption).[3][4] However, symmetric-key encryption
algorithms are usually better for bulk encryption. With exception of the one-time pad they
have a smaller key size, which means less storage space and faster transmission. Due to
this, asymmetric-key encryption is often used to exchange the secret key for symmetric-key
encryption.[5][6][7]

Created by Nandakishore 173


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Symmetric-key encryption: the same key is used for both encryption and decryption
Types
Symmetric-key encryption can use either stream ciphers or block ciphers.[8]

Stream ciphers encrypt the digits (typically bytes), or letters (in substitution ciphers) of a
message one at a time. An example is ChaCha20. Substitution ciphers are well-known
ciphers, but can be easily decrypted using a frequency table.[9]
Block ciphers take a number of bits and encrypt them in a single unit, padding the plaintext
to achieve a multiple of the block size. The Advanced Encryption Standard (AES) algorithm,
approved by NIST in December 2001, uses 128-bit blocks.

Implementations
Examples of popular symmetric-key algorithms include Twofish, Serpent, AES (Rijndael),
Camellia, Salsa20, ChaCha20, Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack,
Safer, and IDEA.[10]

Use as a cryptographic primitive


Symmetric ciphers are commonly used to achieve other cryptographic primitives than just
encryption.[citation needed]

Encrypting a message does not guarantee that it will remain unchanged while encrypted.
Hence, often a message authentication code is added to a ciphertext to ensure that
changes to the ciphertext will be noted by the receiver. Message authentication codes can
be constructed from an AEAD cipher (e.g. AES-GCM).
However, symmetric ciphers cannot be used for non-repudiation purposes except by
involving additional parties.[11] See the ISO/IEC 13888-2 standard.

Created by Nandakishore 174


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Another application is to build hash functions from block ciphers. See one-way
compression function for descriptions of several such methods.

Construction of symmetric ciphers


• Main article: Feistel cipher
Many modern block ciphers are based on a construction proposed by Horst Feistel.
Feistel’s construction makes it possible to build invertible functions from other functions
that are themselves not invertible.[citation needed]

Security of symmetric ciphers


Symmetric ciphers have historically been susceptible to known-plaintext attacks, chosen-
plaintext attacks, differential cryptanalysis and linear cryptanalysis. Careful construction
of the functions for each round can greatly reduce the chances of a successful
attack.[citation needed] It is also possible to increase the key length or the rounds in the
encryption process to better protect against attack. This, however, tends to increase the
processing power and decrease the speed at which the process runs due to the amount of
operations the system needs to do.[12]

Most modern symmetric-key algorithms appear to be resistant to the threat of post-


quantum cryptography.[13] Quantum computers would exponentially increase the speed
at which these ciphers can be decoded; notably, Grover’s algorithm would take the square-
root of the time traditionally required for a brute-force attack, although these vulnerabilities
can be compensated for by doubling key length.[14] For example, a 128 bit AES cipher
would not be secure against such an attack as it would reduce the time required to test all
possible iterations from over 10 quintillion years to about six months. By contrast, it would
still take a quantum computer the same amount of time to decode a 256 bit AES cipher as
it would a conventional computer to decode a 128 bit AES cipher.[15] For this reason, AES-
256 is believed to be “quantum resistant”.[16][17]

Key management
Main article: Key Management Interoperability Protocol
Key establishment
Main article: key establishment
Symmetric-key algorithms require both the sender and the recipient of a message to have
the same secret key. All early cryptographic systems required either the sender or the
recipient to somehow receive a copy of that secret key over a physically secure channel.
Nearly all modern cryptographic systems still use symmetric-key algorithms internally to
encrypt the bulk of the messages, but they eliminate the need for a physically secure

Created by Nandakishore 175


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

channel by using Diffie–Hellman key exchange or some other public-key protocol to


securely come to agreement on a fresh new secret key for each session/conversation
(forward secrecy).

Key generation
• Main article: key generation
When used with asymmetric ciphers for key transfer, pseudorandom key generators are
nearly always used to generate the symmetric cipher session keys. However, lack of
randomness in those generators or in their initialization vectors is disastrous and has led to
cryptanalytic breaks in the past. Therefore, it is essential that an implementation use a
source of high entropy for its initialization.[18][19][20]

Reciprocal cipher
This section needs additional citations for verification. (December 2015)
A reciprocal cipher is a cipher where, just as one enters the plaintext into the cryptography
system to get the ciphertext, one could enter the ciphertext into the same place in the
system to get the plaintext. A reciprocal cipher is also sometimes referred as self-
reciprocal cipher.[21][22]

Practically all mechanical cipher machines implement a reciprocal cipher, a mathematical


involution on each typed-in letter. Instead of designing two kinds of machines, one for
encrypting and one for decrypting, all the machines can be identical and can be set up
(keyed) the same way.[23]
Examples of reciprocal ciphers include:
• Atbash
• Beaufort cipher[24]
• Enigma machine[25]
• Marie Antoinette and Axel von Fersen communicated with a self-reciprocal
cipher.[26]
• The Porta polyalphabetic cipher is self-reciprocal.[27]
• Purple cipher[28]
• RC4
• ROT13
• XOR cipher
• Vatsyayana cipher
The majority of all modern ciphers can be classified as either a stream cipher, most of
which use a reciprocal XOR cipher combiner, or a block cipher, most of which use a Feistel

Created by Nandakishore 176


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

cipher or Lai–Massey scheme with a reciprocal transformation in each round.[citation


needed]

The Data Encryption Standard (DES) and the Advanced Encryption Standard (AES) are
block cipher designs that have been designated cryptography standards by the US
government (though DES’s designation was finally withdrawn after the AES was
adopted).[38] Despite its deprecation as an official standard, DES (especially its still-
approved and much more secure triple-DES variant) remains quite popular; it is used
across a wide range of applications, from ATM encryption[39] to e-mail privacy[40] and
secure remote access.[41] Many other block ciphers have been designed and released,
with considerable variation in quality. Many, even some designed by capable practitioners,
have been thoroughly broken, such as FEAL.[5][42]
Stream ciphers, in contrast to the ‘block’ type, create an arbitrarily long stream of key
material, which is combined with the plaintext bit-by-bit or character-by-character,
somewhat like the one-time pad. In a stream cipher, the output stream is created based on
a hidden internal state that changes as the cipher operates. That internal state is initially
set up using the secret key material. RC4 is a widely used stream cipher.[5] Block ciphers
can be used as stream ciphers by generating blocks of a keystream (in place of a
Pseudorandom number generator) and applying an XOR operation to each bit of the
plaintext with each bit of the keystream.[43]
Message authentication codes (MACs) are much like cryptographic hash functions,
except that a secret key can be used to authenticate the hash value upon receipt;[5][44]
this additional complication blocks an attack scheme against bare digest algorithms, and
so has been thought worth the effort. Cryptographic hash functions are a third type of
cryptographic algorithm. They take a message of any length as input, and output a short,
fixed-length hash, which can be used in (for example) a digital signature. For good hash
functions, an attacker cannot find two messages that produce the same hash. MD4 is a
long-used hash function that is now broken; MD5, a strengthened variant of MD4, is also

Created by Nandakishore 177


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

widely used but broken in practice. The US National Security Agency developed the Secure
Hash Algorithm series of MD5-like hash functions: SHA-0 was a flawed algorithm that the
agency withdrew; SHA-1 is widely deployed and more secure than MD5, but
Cryptanalysts have identified attacks against it; the SHA-2 family improves on SHA-1, but is
vulnerable to clashes as of 2011; and the US standards authority thought it “prudent” from
a security perspective to develop a new standard to “significantly improve the robustness
of NIST’s overall hash algorithm toolkit.”[45] Thus, a hash function design competition was
meant to select a new U.S. national standard, to be called SHA-3, by 2012. The competition
ended on October 2, 2012, when the NIST announced that Keccak would be the new SHA-3
hash algorithm.[46] Unlike block and stream ciphers that are invertible, cryptographic hash
functions produce a hashed output that cannot be used to retrieve the original input data.
Cryptographic hash functions are used to verify the authenticity of data retrieved from an
untrusted source or to add a layer of security
Public-key cryptography

• Main article: Public-key cryptography


Diagram of Public-key cryptography showing public key and private key
Public-key cryptography, where different keys are used for encryption and decryption.
Symmetric-key cryptosystems use the same key for encryption and decryption of a
message, although a message or group of messages can have a different key than others. A
significant disadvantage of symmetric ciphers is the key management necessary to use
them securely. Each distinct pair of communicating parties must, ideally, share a different
key, and perhaps for each ciphertext exchanged as well. The number of keys required
increases as the square of the number of network members, which very quickly requires
complex key management schemes to keep them all consistent and secret.

In a groundbreaking 1976 paper, Whitfield Diffie and Martin Hellman proposed the notion of
public-key (also, more generally, called asymmetric key) cryptography in which two
different but mathematically related keys are used—a public key and a private key.[47] A
public key system is so constructed that calculation of one key (the ‘private key’) is

Created by Nandakishore 178


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

computationally infeasible from the other (the ‘public key’), even though they are
necessarily related. Instead, both keys are generated secretly, as an interrelated pair.[48]
The historian ”avid Kahn described public-key cryptography as “the most revolutionary new
concept in the field since polyalphabetic substitution emerged in the Renaissance”.[49]

In public-key cryptosystems, the public key may be freely distributed, while its paired
private key must remain secret. In a public-key encryption system, the public key is used
for encryption, while the private or secret key is used for decryption. While Diffie and
Hellman could not find such a system, they showed that public-key cryptography was
indeed possible by presenting the Diffie–Hellman key exchange protocol, a solution that is
now widely used in secure communications to allow two parties to secretly agree on a
shared encryption key.[33] The X.509 standard defines the most commonly used format for
public key certificates.[50]
Diffie and Hellman’s publication sparked widespread academic efforts in finding a
practical public-key encryption system. This race was finally won in 1978 by Ronald Rivest,
Adi Shamir, and Len Adleman, whose solution has since become known as the RSA
algorithm.[51]

The Diffie–Hellman and RSA algorithms, in addition to being the first publicly known
examples of high-quality public-key algorithms, have been among the most widely used.
Other asymmetric-key algorithms include the Cramer–Shoup cryptosystem, ElGamal
encryption, and various elliptic curve techniques.
Document published in 1997 by the Government Communications Headquarters (GCHQ),
a British intelligence organization, revealed that cryptographers at GCHQ had anticipated
several academic developments.[52] Reportedly, around 1970, James H. Ellis had
conceived the principles of asymmetric key cryptography. In 1973, Clifford Cocks invented
a solution that was very similar in design rationale to RSA.[52][53] In 1974, Malcolm J.
Williamson is claimed to have developed the Diffie–Hellman key exchange.[54]

Created by Nandakishore 179


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In this example the message is only signed and not encrypted. 1) Alice signs a message
with her private key. 2) Bob can verify that Alice sent the message and that the message has
not been modified.
Public-key cryptography is also used for implementing digital signature schemes. A digital
signature is reminiscent of an ordinary signature; they both have the characteristic of being
easy for a user to produce, but difficult for anyone else to forge. Digital signatures can also
be permanently tied to the content of the message being signed; they cannot then be
‘moved’ from one document to another, for any attempt will be detectable. In digital
signature schemes, there are two algorithms: one for signing, in which a secret key is used
to process the message (or a hash of the message, or both), and one for verification, in
which the matching public key is used with the message to check the validity of the
signature. RSA and DSA are two of the most popular digital signature schemes. Digital
signatures are central to the operation of public key infrastructures and many network
security schemes (e.g., SSL/TLS, many VPNs, etc.).[42]

Public-key algorithms are most often based on the computational complexity of “hard”
problems, often from number theory. For example, the hardness of RSA is related to the
integer factorization problem, while Diffie–Hellman and DSA are related to the discrete
logarithm problem. The security of elliptic curve cryptography is based on number
theoretic problems involving elliptic curves. Because of the difficulty of the underlying
problems, most public-key algorithms involve operations such as modular multiplication
and exponentiation, which are much more computationally expensive than the techniques
used in most block ciphers, especially with typical key sizes. As a result, public-key
cryptosystems are commonly hybrid cryptosystems, in which a fast high-quality
symmetric-key encryption algorithm is used for the message itself, while the relevant
symmetric key is sent with the message, but encrypted using a public-key algorithm.
Similarly, hybrid signature schemes are often used, in which a cryptographic hash function
is computed, and only the resulting hash Is digitally signed.[5]

Cryptographic hash functions


Cryptographic hash functions are functions that take a variable-length input and return a
fixed-length output, which can be used in, for example, a digital signature. For a hash
function to be secure, it must be difficult to compute two inputs that hash to the same
value (collision resistance) and to compute an input that hashes to a given output
(preimage resistance). MD4 is a long-used hash function that is now broken; MD5, a
strengthened variant of MD4, is also widely used but broken in practice. The US National

Created by Nandakishore 180


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Security Agency developed the Secure Hash Algorithm series of MD5-like hash functions:
SHA-0 was a flawed algorithm that the agency withdrew; SHA-1 is widely deployed and
more secure than MD5, but cryptanalysts have identified attacks against it; the SHA-2
family improves on SHA-1, but is vulnerable to clashes as of 2011; and the US standards
authority thought it “prudent” from a security perspective to develop a new standard to
“significantly improve the robustness of NIST’s overall hash algorithm toolkit.”[45] Thus, a
hash function design competition was meant to select a new U.S. national standard, to be
called SHA-3, by 2012. The competition ended on October 2, 2012, when the NIST
announced that Keccak would be the new SHA-3 hash algorithm.[46] Unlike block and
stream ciphers that are invertible, cryptographic hash functions produce a hashed output
that cannot be used to retrieve the original input data. Cryptographic hash functions are
used to verify the authenticity of data retrieved from an untrusted source or to add a layer
of security.

Cryptanalysis
• Main article: Cryptanalysis
Enigma machine typewriter keypad over many rotors in a wood box
Variants of the Enigma machine, used by Germany’s military and civil authorities from the
late 1920s through World War II, implemented a complex electro-mechanical
polyalphabetic cipher. Breaking and reading of the Enigma cipher at Poland’s Cipher
Bureau, for 7 years before the war, and subsequent decryption at Bletchley Park, was
important to Allied victory.[13]
The goal of cryptanalysis is to find some weakness or insecurity in a cryptographic scheme,
thus permitting its subversion or evasion.

It is a common misconception that every encryption method can be broken. In connection


with his WWII work at Bell Labs, Claude Shannon proved that the one-time pad cipher is
unbreakable, provided the key material is truly random, never reused, kept secret from all
possible attackers, and of equal or greater length than the message.[55] Most ciphers,
apart from the one-time pad, can be broken with enough computational effort by brute
force attack, but the amount of effort needed may be exponentially dependent on the key
size, as compared to the effort needed to make use of the cipher. In such cases, effective
security could be achieved if it is proven that the effort required (i.e., “work factor”, in
Shannon’s terms) is beyond the ability of any adversary. This means it must be shown that
no efficient method (as opposed to the time-consuming brute force method) can be found
to break the cipher. Since no such proof has been found to date, the one-time-pad remains
the only theoretically unbreakable cipher. Although well-implemented one-time-pad
encryption cannot be broken, traffic analysis is still possible.

Created by Nandakishore 181


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

There are a wide variety of cryptanalytic attacks, and they can be classified in any of several
ways. A common distinction turns on what Eve (an attacker) knows and what capabilities
are available. In a ciphertext-only attack, Eve has access only to the ciphertext (good
modern cryptosystems are usually effectively immune to ciphertext-only attacks). In a
known-plaintext attack, Eve has access to a ciphertext and its corresponding plaintext (or
to many such pairs). In a chosen-plaintext attack, Eve may choose a plaintext and learn its
corresponding ciphertext (perhaps many times); an example is gardening, used by the
British during WWII. In a chosen-ciphertext attack, Eve may be able to choose ciphertexts
and learn their corresponding plaintexts.[5] Finally in a man-in-the-middle attack Eve gets
in between Alice (the sender) and Bob (the recipient), accesses and modifies the traffic and
then forward it to the recipient.[56] Also important, often overwhelmingly so, are mistakes
(generally in the design or use of one of the protocols involved).

Cryptanalysis of symmetric-key ciphers typically involves looking for attacks against the
block ciphers or stream ciphers that are more efficient than any attack that could be
against a perfect cipher. For example, a simple brute force attack against DES requires one
known plaintext and 255 decryptions, trying approximately half of the possible keys, to
reach a point at which chances are better than even that the key sought will have been
found. But this may not be enough assurance; a linear cryptanalysis attack against DES
requires 243 known plaintexts (with their corresponding ciphertexts) and approximately
243 DES operations.[57] This is a considerable improvement over brute force attacks.

Public-key algorithms are based on the computational difficulty of various problems. The
most famous of these are the difficulty of integer factorization of semiprimes and the
difficulty of calculating discrete logarithms, both of which are not yet proven to be solvable
in polynomial time (P) using only a classical Turing-complete computer. Much public-key
cryptanalysis concerns designing algorithms in P that can solve these problems, or using
other technologies, such as quantum computers. For instance, the best-known algorithms
for solving the elliptic curve-based version of discrete logarithm are much more time-
consuming than the best-known algorithms for factoring, at least for problems of more or
less equivalent size. Thus, to achieve an equivalent strength of encryption, techniques that
depend upon the difficulty of factoring large composite numbers, such as the RSA
cryptosystem, require larger keys than elliptic curve techniques. For this reason, public-key
cryptosystems based on elliptic curves have become popular since their invention in the
mid-1990s.

Created by Nandakishore 182


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

While pure cryptanalysis uses weaknesses in the algorithms themselves, other attacks on
cryptosystems are based on actual use of the algorithms in real devices, and are called
side-channel attacks. If a cryptanalyst has access to, for example, the amount of time the
device took to encrypt a number of plaintexts or report an error in a password or PIN
character, they may be able to use a timing attack to break a cipher that is otherwise
resistant to analysis. An attacker might also study the pattern and length of messages to
derive valuable information; this is known as traffic analysis[58] and can be quite useful to
an alert adversary. Poor administration of a cryptosystem, such as permitting too short
keys, will make any system vulnerable, regardless of other virtues. Social engineering and
other attacks against humans (e.g., bribery, extortion, blackmail, espionage, rubber-hose
cryptanalysis or torture) are usually employed due to being more cost-effective and
feasible to perform in a reasonable amount of time compared to pure cryptanalysis by a
high margin.
Cryptographic primitives
Much of the theoretical work in cryptography concerns cryptographic primitives—
algorithms with basic cryptographic properties—and their relationship to other
cryptographic problems. More complicated cryptographic tools are then built from these
basic primitives. These primitives provide fundamental properties, which are used to
develop more complex tools called cryptosystems or cryptographic protocols, which
guarantee one or more high-level security properties. Note, however, that the distinction
between cryptographic primitives and cryptosystems, is quite arbitrary; for example, the
RSA algorithm is sometimes considered a cryptosystem, and sometimes a primitive.
Typical examples of cryptographic primitives include pseudorandom functions, one-way
functions, etc.
Cryptosystems
• Main article: List of cryptosystems
One or more cryptographic primitives are often used to develop a more complex algorithm,
called a cryptographic system, or cryptosystem. Cryptosystems (e.g., El-Gamal encryption)
are designed to provide particular functionality (e.g., public key encryption) while
guaranteeing certain security properties (e.g., chosen-plaintext attack (CPA) security in the
random oracle model). Cryptosystems use the properties of the underlying cryptographic
primitives to support the system’s security properties. As the distinction between
primitives and cryptosystems is somewhat arbitrary, a sophisticated cryptosystem can be
derived from a combination of several more primitive cryptosystems. In many cases, the
cryptosystem’s structure involves back and forth communication among two or more
parties in space (e.g., between the sender of a secure message and its receiver) or across
time (e.g., cryptographically protected backup data). Such cryptosystems are sometimes
called cryptographic protocols.

Created by Nandakishore 183


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Some widely known cryptosystems include RSA, Schnorr signature, ElGamal encryption,
and Pretty Good Privacy (PGP). More complex cryptosystems include electronic cash[59]
systems, signcryption systems, etc. Some more ‘theoretical’[clarification needed]
cryptosystems include interactive proof systems,[60] (like zero-knowledge proofs)[61] and
systems for secret sharing.[62][63
Lightweight cryptography
Lightweight cryptography (LWC) concerns cryptographic algorithms developed for a strictly
constrained environment. The growth of Internet of Things (IoT) has spiked research into the
development of lightweight algorithms that are better suited for the environment. An IoT
environment requires strict constraints on power consumption, processing power, and
security.[64] Algorithms such as PRESENT, AES, and SPECK are examples of the many LWC
algorithms that have been developed to achieve the standard set by the National Institute
of Standards and Technology.[
Applications
This section needs expansion. You can help by adding to it. (December 2021)
Main category: Applications of cryptography
Cryptography is widely used on the internet to help protect user-data and prevent
eavesdropping. To ensure secrecy during transmission, many systems use private key
cryptography to protect transmitted information. With public-key systems, one can
maintain secrecy without a master key or a large number of keys.[66] But, some algorithms
like BitLocker and VeraCrypt are generally not private-public key cryptography. For
example, Veracrypt uses a password hash to generate the single private key. However, it
can be configured to run in public-private key systems. The C++ opensource encryption
library OpenSSL provides free and opensource encryption software and tools. The most
commonly used encryption cipher suit is AES,[67] as it has hardware acceleration for all
x86 based processors that has AES-NI. A close contender is ChaCha20-Poly1305, which is
a stream cipher, however it is commonly used for mobile devices as they are ARM based
which does not feature AES-NI instruction set extension.
Cybersecurity
Cryptography can be used to secure communications by encrypting them. Websites use
encryption via HTTPS.[68] “End-to-end” encryption, where only sender and receiver can
read messages, is implemented for email in Pretty Good Privacy and for secure messaging
in general in WhatsApp, Signal and Telegram.[68]

Operating systems use encryption to keep passwords secret, conceal parts of the system,
and ensure that software updates are truly from the system maker.[68] Instead of storing
plaintext passwords, computer systems store hashes thereof; then, when a user logs in,

Created by Nandakishore 184


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

the system passes the given password through a cryptographic hash function and
compares it to the hashed value on file. In this manner, neither the system nor an attacker
has at any point access to the password in plaintext.[68]

Encryption is sometimes used to encrypt one’s entire drive. For example, University College
London has implemented BitLocker (a program by Microsoft) to render drive data opaque
without users logging in.[68]
Cryptocurrencies and cryptoeconomics
Cryptographic techniques enable cryptocurrency technologies, such as distributed ledger
technologies (e.g., blockchains), which finance cryptoeconomics applications such as
decentralized finance (DeFi). Key cryptographic techniques that enable cryptocurrencies
and cryptoeconomics include, but are not limited to: cryptographic keys, cryptographic
hash function, asymmetric (public key) encryption, Multi-Factor Authentication (MFA), End-
to-End Encryption (E2EE), and Zero Knowledge Proofs (ZKP).
Legal issues
• See also: Cryptography laws in different nations
Prohibitions
Cryptography has long been of interest to intelligence gathering and law enforcement
agencies.[9] Secret communications may be criminal or even treasonous.[citation needed]
Because of its facilitation of privacy, and the diminution of privacy attendant on its
prohibition, cryptography is also of considerable interest to civil rights supporters.
Accordingly, there has been a history of controversial legal issues surrounding
cryptography, especially since the advent of inexpensive computers has made widespread
access to high-quality cryptography possible.

In some countries, even the domestic use of cryptography is, or has been, restricted. Until
1999, France significantly restricted the use of cryptography domestically, though it has
since relaxed many of these rules. In China and Iran, a license is still required to use
cryptography.[7] Many countries have tight restrictions on the use of cryptography. Among
the more restrictive are laws in Belarus, Kazakhstan, Mongolia, Pakistan, Singapore,
Tunisia, and Vietnam.[69]

In the United States, cryptography is legal for domestic use, but there has been much
conflict over legal issues related to cryptography.[9] One particularly important issue has
been the export of cryptography and cryptographic software and hardware. Probably
because of the importance of cryptanalysis in World War II and an expectation that
cryptography would continue to be important for national security, many Western
governments have, at some point, strictly regulated export of cryptography. After World War

Created by Nandakishore 185


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

II, it was illegal in the US to sell or distribute encryption technology overseas; in fact,
encryption was designated as auxiliary military equipment and put on the United States
Munitions List.[70] Until the development of the personal computer, asymmetric key
algorithms (i.e., public key techniques), and the Internet, this was not especially
problematic. However, as the Internet grew and computers became more widely available,
high-quality encryption techniques became well known around the globe.
Export controls
Main article: Export of cryptography
In the 1990s, there were several challenges to US export regulation of cryptography. After
the source code for Philip Zimmermann’s Pretty Good Privacy (PGP) encryption program
found its way onto the Internet in June 1991, a complaint by RSA Security (then called RSA
Data Security, Inc.) resulted in a lengthy criminal investigation of Zimmermann by the US
Customs Service and the FBI, though no charges were ever filed.[71][72] Daniel J.
Bernstein, then a graduate student at UC Berkeley, brought a lawsuit against the US
government challenging some aspects of the restrictions based on free speech grounds.
The 1995 case Bernstein v. United States ultimately resulted in a 1999 decision that printed
source code for cryptographic algorithms and systems was protected as free speech by the
United States Constitution.[73]

In 1996, thirty-nine countries signed the Wassenaar Arrangement, an arms control treaty
that deals with the export of arms and “dual-use” technologies such as cryptography. The
treaty stipulated that the use of cryptography with short key-lengths (56-bit for symmetric
encryption, 512-bit for RSA) would no longer be export-controlled.[74] Cryptography
exports from the US became less strictly regulated as a consequence of a major relaxation
in 2000;[75] there are no longer very many restrictions on key sizes in US-exported mass-
market software. Since this relaxation in US export restrictions, and because most
personal computers connected to the Internet include US-sourced web browsers such as
Firefox or Internet Explorer, almost every Internet user worldwide has potential access to
quality cryptography via their browsers (e.g., via Transport Layer Security). The Mozilla
Thunderbird and Microsoft Outlook E-mail client programs similarly can transmit and
receive emails via TLS, and can send and receive email encrypted with S/MIME. Many
Internet users do not realize that their basic application software contains such extensive
cryptosystems. These browsers and email programs are so ubiquitous that even
governments whose intent is to regulate civilian use of cryptography generally do not find it
practical to do much to control distribution or use of cryptography of this quality, so even
when such laws are in force, actual enforcement is often effectively impossible.[citation
needed]

Created by Nandakishore 186


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

NSA involvement

NSA headquarters in Fort Meade, Maryland


See also: Clipper chip
Another contentious issue connected to cryptography in the United States is the influence
of the National Security Agency on cipher development and policy.[9] The NSA was
involved with the design of DES during its development at IBM and its consideration by the
National Bureau of Standards as a possible Federal Standard for cryptography.[76] DES
was designed to be resistant to differential cryptanalysis,[77] a powerful and general
cryptanalytic technique known to the NSA and IBM, that became publicly known only when
it was rediscovered in the late 1980s.[78] According to Steven Levy, IBM discovered
differential cryptanalysis,[72] but kept the technique secret at the NSA’s request. The
technique became publicly known only when Biham and Shamir re-discovered and
announced it some years later. The entire affair illustrates the difficulty of determining what
resources and knowledge an attacker might actually have.

Another instance of the NSA’s involvement was the 1993 Clipper chip affair, an encryption
microchip intended to be part of the Capstone cryptography-control initiative. Clipper was
widely criticized by cryptographers for two reasons. The cipher algorithm (called Skipjack)
was then classified (declassified in 1998, long after the Clipper initiative lapsed). The
classified cipher caused concerns that the NSA had deliberately made the cipher weak to
assist its intelligence efforts. The whole initiative was also criticized based on its violation
of Kerckhoffs’s Principle, as the scheme included a special escrow key held by the
government for use by law enforcement (i.e. wiretapping).[72]
Digital rights management
Main article: Digital rights management
Cryptography is central to digital rights management (DRM), a group of techniques for
technologically controlling use of copyrighted material, being widely implemented and
deployed at the behest of some copyright holders. In 1998, U.S. President Bill Clinton
signed the Digital Millennium Copyright Act (DMCA), which criminalized all production,
dissemination, and use of certain cryptanalytic techniques and technology (now known or
later discovered); specifically, those that could be used to circumvent DRM technological
schemes.[79] This had a noticeable impact on the cryptography research community since
an argument can be made that any cryptanalytic research violated the DMCA. Similar
statutes have since been enacted in several countries and regions, including the
implementation in the EU Copyright Directive. Similar restrictions are called for by treaties
signed by World Intellectual Property Organization member-states.

Created by Nandakishore 187


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The United States Department of Ju”tice’and FBI have not enforced the DMCA as rigorously
as had been feared by some, but the law, nonetheless, remains a controversial one. Niels
Ferguson, a well-respected cryptography researcher, has publicly stated that he will not
release some of his research into an Intel security design for fear of prosecution under the
DMCA.[80] Cryptologist Bruce Schneier has argued that the DMCA encourages vendor
lock-in, while inhibiting actual measures toward cyber-security.[81] Both Alan Cox
(longtime Linux kernel developer) and Edward Felten (and some of his students at
Princeton) have encountered problems related to the Act. Dmitry Sklyarov was arrested
during a visit to the US from Russia, and jailed for five months pending trial for alleged
violations of the DMCA arising from work he had done in Russia, where the work was legal.
In 2007, the cryptographic keys responsible for Blu-ray and HD DVD content scrambling
were discovered and released onto the Internet. In both cases, the Motion Picture
Association of America sent out numerous DMCA takedown notices, and there was a
massive Internet backlash[10] triggered by the perceived impact of such notices on fair use
and free speech.
Forced disclosure of encryption keys
• Main article: Key disclosure law
In the United Kingdom, the Regulation of Investigatory Powers Act gives UK police the
powers to force suspects to decrypt files or hand over passwords that protect encryption
keys. Failure to comply is an offense in its own right, punishable on conviction by a two-
year jail sentence or up to five years in cases involving national security.[8] Successful
prosecutions have occurred under the Act; the first, in 2009,[82] resulted in a term of 13
months’ imprisonment.[83] Similar forced disclosure laws in Australia, Finland, France,
and India compel individual suspects under investigation to hand over encryption keys or
passwords during a criminal investigation.

In the United States, the federal criminal case of United States v. Fricosu addressed
whether a search warrant can compel a person to reveal an encryption passphrase or
password.[84] The Electronic Frontier Foundation (EFF) argued that this is a violation of the
protection from self-incrimination given by the Fifth Amendment.[85] In 2012, the court
ruled that under the All Writs Act, the defendant was required to produce an unencrypted
hard drive for the court.[86]

In many jurisdictions, the legal status of forced disclosure remains unclear.

The 2016 FBI–Apple encryption dispute concerns the ability of courts in the United States
to compel manufacturers’ assistance in unlocking cell phones whose contents are
cryptographically protected.

Created by Nandakishore 188


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

As a potential counter-measure to forced disclosure some cryptographic software


supports plausible deniability, where the encrypted data is indistinguishable from unused
random data (for example such as that of a drive which has been securely wiped).
See also
• Collision attack
• Comparison of cryptography libraries
• Cryptovirology – Securing and encrypting virology
• Crypto Wars – Attempts to limit access to strong cryptography
• Encyclopedia of Cryptography and Security – Book by Technische Universiteit
Eindhoven
• Global surveillance – Mass surveillance across national borders
• Indistinguishability obfuscation – Type of cryptographic software obfuscation
• Information theory – Scientific study of digital information
• Outline of cryptography
• List of cryptographers
• List of multiple discoveries
• List of unsolved problems in computer science – List of unsolved computational
problems
• Pre-shared key – Method to set encryption keys
• Secure cryptoprocessor
• Strong cryptography – Term applied to cryptographic systems that are highly
resistant to cryptanalysis
• Syllabical and Steganographical Table – Eighteenth-century work believed to be the
first cryptography chart – first cryptography chart
• World Wide Web Consortium’s Web Cryptography API – World Wide Web
Consortium cryptography standard

What is cryptography?
Table of Contents
• What is the difference between symmetric and asymmetric cryptography?
• What problems does cryptography solve?
• What are the principles?
• What to read next
Definition
Cryptography provides for secure communication in the presence of malicious third-
parties—known as adversaries. Encryption uses an algorithm and a key to transform an

Created by Nandakishore 189


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

input (i.e., plaintext) into an encrypted output (i.e., ciphertext). A given algorithm will always
transform the same plaintext into the same ciphertext if the same key is used. Algorithms
are considered secure if an attacker cannot determine any properties of the plaintext or
key, given the ciphertext. An attacker should not be able to determine anything about a key
given a large number of plaintext/ciphertext combinations which used the key.

What is the difference between symmetric and asymmetric cryptography?


With symmetric cryptography, the same key is used for both encryption and decryption. A
sender and a recipient must already have a shared key that is known to both. Key
distribution is a tricky problem and was the impetus for developing asymmetric
cryptography.

With asymmetric crypto, two different keys are used for encryption and decryption. Every
user in an asymmetric cryptosystem has both a public key and a private key. The private key
is kept secret at all times, but the public key may be freely distributed.

Data encrypted with a public key may only be decrypted with the corresponding private key.
So, sending a message to John requires encrypting that message with John’s public key.
Only John can decrypt the message, as only John has his private key. Any data encrypted
with a private key can only be decrypted with the corresponding public key. Similarly, Jane
could digitally sign a message with her private key, and anyone with Jane’s public key could
decrypt the signed message and verify that it was in fact Jane who sent it.

Symmetric is generally very fast and ideal for encrypting large amounts of data (e.g., an
entire disk partition or database). Asymmetric is much slower and can only encrypt pieces
of data that are smaller than the key size (typically 2048 bits or smaller). Thus, asymmetric
crypto is generally used to encrypt symmetric encryption keys which are then used to
encrypt much larger blocks of data. For digital signatures, asymmetric crypto is generally
used to encrypt the hashes of messages rather than entire messages.

A cryptosystem provides for managing cryptographic keys including generation, exchange,


storage, use, revocation, and replacement of the keys.

Understand the internal and external security risks your AppSec program needs to address.

Identify and address weaknesses in your software design and deployment


Understand the internal and external security risks your AppSec program needs to address.
Learn more

Created by Nandakishore 190


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

What problems does cryptography solve?


A secure system should provide several assurances such as confidentiality, integrity, and
availability of data as well as authenticity and non-repudiation. When used correctly,
crypto helps to provide these assurances. Cryptography can ensure the confidentiality and
integrity of both data in transit as well as data at rest. It can also authenticate senders and
recipients to one another and protect against repudiation.

Software systems often have multiple endpoints, typically multiple clients, and one or
more back-end servers. These client/server communications take place over networks that
cannot be trusted. Communication occurs over open, public networks such as the
Internet, or private networks which may be compromised by external attackers or
malicious insiders.

It can protect communications that traverse untrusted networks. There are two main types
of attacks that an adversary may attempt to carry out on a network. Passive attacks involve
an attacker simply listening on a network segment and attempting to read sensitive
information as it travels. Passive attacks may be online (in which an attacker reads traffic in
real-time) or offline (in which an attacker simply captures traffic in real-time and views it
later—perhaps after spending some time decrypting it). Active attacks involve an attacker
impersonating a client or server, intercepting communications in transit, and viewing
and/or modifying the contents before passing them on to their intended destination (or
dropping them entirely).

The confidentiality and Integrity protections offered by cryptographic protocols such as


SSL/TLS can protect communications from malicious eavesdropping and tampering.
Authenticity protections provide assurance that users are actually communicating with the
systems as intended. For example, are you sending your online banking password to your
bank or someone else?

It can also be used to protect data at rest. ”ata on a removable disk or in a database can be
encrypted to prevent disclosure of sensitive data should the physical media be lost or
stolen. In addition, it can also provide integrity protection of data at rest to detect malicious
tampering.

What are the principles?


The most important principle to keep in mind is that you should never attempt to design
your own cryptosystem. The world’s most brilliant cryptographers (including Phil
Zimmerman and Ron Rivest) routinely create cryptosystems with serious security flaws in

Created by Nandakishore 191


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

them. In order for a cryptosystem to be deemed “secure,” it must face intense scrutiny from
the security community. Never rely on security through obscurity, or the fact that attackers
may not have knowledge of your system. Remember that malicious insiders and
determined attackers will attempt to attack your system.

The only things that should be “secret” when it comes to a secure cryptosystem are the
keys themselves. Be sure to take appropriate steps to protect any keys that your systems
use. Never store encryption keys in clear text along with the data that they protect. This is
akin to locking your front door and placing the key under the doormat. It is the first place an
attacker will look. Here are three common methods for protecting keys (from least secure
to most secure):

1. Store keys in a filesystem and protect them with strong access control lists (ACLs).
Remember to adhere to the principal of least privilege.
2. Encrypt your data encryption keys (DEKs) with a second key encrypting key (KEK).
The KEK should be generated using password-based encryption (PBE). A password
known to a minimal number of administrators can be used to generate a key using
an algorithm such as bcrypt, scrypt, or PBKDF2 and used to bootstrap the
cryptosystem. This removes the need to ever store the key unencrypted anywhere.
3. A hardware security module (HSM) Is a tamper-resistant hardware appliance that
can be used to store keys securely. Code can make API calls to an HSM to provide
keys when needed or to perform decryption of data on the HSM itself.
Make sure that you only use algorithms, key strengths, and modes of operation that
conform to industry best practices. Advanced encryption standard (AES) (with 128, 192, or
256-bit keys) is the standard for symmetric encryption. RSA and elliptical curve
cryptography (ECC) with at least 2048-bit keys are the standard for asymmetric encryption.
Be sure to avoid insecure modes of operation such as AES in Electronic Codebook (ECB)
mode or RSA with no padding.

• Blockchain interoperability
The concept of “blockchain interoperability” refers to the ability of different blockchain
networks to exchange and leverage data between one another and to move unique types of
digital assets between the networks’ respective blockchains.

Cross-Chain Interoperability: What it Means for Blockchain


Blockchain interoperability allows data and value to be transferred across different
networks. It has become an increasingly important feature of Web3.

Created by Nandakishore 192


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Summary
The concept of “blockchain interoperability” refers to the ability of different blockchain networks to
exchange and leverage data between one another and to move unique types of digital assets between the
networks’ respective blockchains. In an interoperable system, once disparate blockchain networks and
assets can easily plug into and be combined with one another. This network interoperability may allow for
the creation of powerful new products and services that leverage the benefits of multiple blockchain
networks simultaneously.

Benefits of Blockchain Interoperability


While there already exist impressive and diverse blockchain ecosystems contained within
individual networks like Ethereum, Polkadot, and Solana, the ability of such different
networks to interact meaningfully with one another — referred to as interoperability — is
expected to enable a wide range of blockchain-enabled products and services. More
specifically:

Customizable Web3 services: The ability of blockchain protocols and applications to mix
and match different “lego pieces” is key to creating entirely new Web3 instruments and
platforms that aren’t possible with legacy industries and business models of the Web2
era. Many experts argue that interoperable smart contracts could supercharge industries
like healthcare, law, or real estate, for instance by allowing important business information
to be sent back and forth between private networks and public networks in a customizable
and controllable manner. Blockchain interoperability may also eventually enable multi-
token transactions and multi-token wallet systems, which would greatly streamline the
crypto user experience.

A more decentralized ecosystem: While pure decentralization within Individual


blockchain networks is a top priority for many blockchain projects, the ability to establish
network interoperability across multiple blockchains presents an even more advanced

Created by Nandakishore 193


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

embodiment of blockchain technology’s promise to decentralize systems and economies.


Instead of having one blockchain like Ethereum processing all the transactions for
thousands of decentralized applications (dApps), there could one day be thousands of
application-specific blockchains that communicate with one another through a
decentralized main hub.

Enhanced cross-industry collaboration: Blockchain technology has a wide range of


industry-specific use cases, but ultimately the primary benefits come down to data
transparency and verifiability, smart contract execution, and decentralized consensus.
Once blockchains used by different organizations and industries are able to interact with
one another, independent markets and business applications that were previously
considered entirely separate will be able to more easily transfer data and value. This
means organizations and communities that wouldn’t typically interact with one another
would be able to exchange information, leverage each other’s strengths, and cultivate
innovation more effortlessly and effectively.

How Is Blockchain Interoperability Achieved?


Most existing Layer-1 blockchains lack built-in features that support cross-chain
interoperability. However, there are a variety of tools today that are increasing the level of
interoperability between blockchain networks:

Sidechains: A type of Layer-2 platform, sidechains are separate blockchain networks that
are compatible with a single mainchain. Each sidechain has its own consensus
mechanism, security parameters, and tokens. These sidechains generally have their own
specific use cases that are distributed accordingly in order to improve the overall
ecosystem’s processing efficiency and self-sovereignty. Several major crypto projects
such as Polkadot and Cosmos were designed from the ground up to be comprehensive
cross-chain infrastructure solutions, with the ultimate goal being to establish an
interoperable “network of networks.”

Oracles: Within the context of blockchain technology, oracles bridge the information gap
between on-chain and off-chain environments. Decentralized oracle services like
Chainlink and API3 play a crucial role in feeding off-chain data to blockchain-enabled
smart contracts and contribute to blockchain interoperability by ensuring that different
ecosystems are referring to a common source of truth.

Created by Nandakishore 194


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Bridges and swaps: Cross-chain bridges enable a digital asset owned by a party to be
locked on one chain while an identical asset is “minted” on another chain and sent to an
address owned by the original owner. In contrast, atomic swaps enable users to exchange
tokens from different blockchain networks in a decentralized manner. Both are
automatically enabled through the use of smart contracts and play a central role in
facilitating seamless cross-chain value transfers.

Blockchain Interoperability : Why Is Cross Chain


Technology Important?
Number of blockchain projects is on the rise in part because developers are
thinking outside the box as they try to leverage the technology’s capabilities.
The increase also comes on acknowledgment that no perfect solution will be
able to address all blockchain needs at once.

A perfect example is the IOTA blockchain that seeks to enhance payments on


the Internet of Things. VeChain, on the other hand, shares similar capabilities
but with the aim of strengthening supply chain management on the
blockchain. Stellar blockchain, on the other hand, seeks to make it easy for
people to come up with a global payment network for solving low latency
issues in remote areas.

Amidst the proliferation of blockchain projects, one thing stands out. All
blockchains as well as ledgers and DAGs perform a different set of
transactions and handle different amounts of data processing. It is also
becoming increasingly clear that there are different networks and
blockchains designed for specific labor unions, religions, community
organizations as well as government departments.

The rapid development of blockchain Is set to give rise to many different kinds
of chains. One such technology that is becoming increasingly evident is
Cross Chain Technology.

Created by Nandakishore 195


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchain Interoperability: What is Cross Chain Technology?


Cross Chain, technology is increasingly becoming a hot topic of discussion
seen as the ultimate solution for enhancing interoperability between
blockchains. In Layman terms, a Cross-chain Technology is an emerging
technology that seeks to allow transmission of value and information
between different blockchain networks.

Increased usage of established networks like Ripple, Bitcoin, and Ethereum


while a good thing has given rise to many issues key among them being
economical and technical scaling limitations. As discussed above most
blockchain networks operate on isolated ecosystems as they address they try
to resolve a unique set of needs.

The fact that the chains operate in isolation has mostly made it impossible for
people to enjoy the full benefits the ledger technology. The inability of
different blockchains to communicate with one another has made it
impossible for people to enjoy the full benefits of blockchain technology.
Cross chain, technology seeks to solve all these issues, by enabling
interoperability between blockchains thus making it easy for them to
communicate with one another and share information.

Cross Blockchain Compatibility


Cross-chain, protocol ensures interoperability between blockchains, thus
enabling the exchange of value as well as information between various
networks. Complimented with the benefits of public decentralized chains,
such protocols should lay the foundation for blockchain mass adoption and
use

Cross blockchain compatibility, allows different blockchains to communicate


with one another without the help of intermediaries. What this means is that
blockchains sharing similar networks will be able to transfer value between
each other.

Created by Nandakishore 196


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

While in use in a business ecosystem, businesses will no longer have to


contend only with clients on a network the business as built on. Instead,
companies will be able to transact with clients from other compatible
blockchains. The entire process will take place without any downtime or
expensive transaction fees. Just as is the case with the Internet of value,
cross blockchain compatibility will accord blockchain networks an effective
means of value transmission.
Importance of Blockchain Interoperability
The success of blockchain technology will come down to how different blockchain
networks can interact and integrate. For that reason, interoperability between
blockchains is the concept by which different blockchains communicate with one
another all in the effort of enabling smooth sharing of information.

Interoperability is essentially the ability to see and access information across various
blockchain systems. For example, should a person send data to another blockchain,
the recipient should be able to read it, comprehend and react with little effort?
However, that is not possible, at the moment, as it is impossible to share information
between says Bitcoin and Ethereum blockchains.

Cross Chain, technology seeks to solve all this by enhancing interoperability between
blockchains. Emerging projects are slowly buying the idea as they attempt to come
up with platforms that can communicate with one another without the need of a
third party.

Blockchain interoperability should go a long way in getting rid of intermediaries or


third parties, synonymous with centralized systems. The ability of different
decentralized networks to communicate with one another without any
intermediaries should thus go a long way in giving rise to fully decentralized systems.

Blockchain Interoperability Projects


Given the ever-growing need to enhance the connection between various
blockchain networks, many developers are already working on optimal
solutions. The number of blockchain interoperability projects is on the rise as
a result as developers look to accelerate blockchain mass adoption.

Created by Nandakishore 197


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Below are some of the top projects, looking to enhance blockchain


interoperability.

• Polkadot blockchain
Polkadot blockchain is a high-profile multi-chain technology taking
blockchain interoperability to another level. A brainchild of Gavid Wood, one
of the founders of Ethereum, Polkadot seeks to enhance the transfer of smart
contract data through various blockchains.

Polkadot consists of multiple parachains that differ in characteristics. In


Polkadot blockchain, transactions can be spread over a wide area given the
number of chains in the network. All this is done while ensuring high levels of
security on dealings.

Polkadot Blockchain interoperability project seeks to ensure a seamless


connection between private chains, public networks, oracles as well as
permission less interface. The developers behind the blockchain
interoperability solutions want to enable an internet where independent
blockchain solutions will be able to exchange information via a Polkadot relay
chain.
The fundamental tenets of the blockchain interoperability solutions are
scalability as well as governance.
Excited to know the diffrence between public and private blockchain,
Checkout detailed guide on Public Vs Private Blockchain: Key Differences

• Blocknet
Developers behind Blocknet are currently working on creating a decentralized
exchange all in the effort of enhancing interchange communication.

Blockchain is also implementing blockchain interoperability strategies that


can change the way we see blockchain at the moment.What Blocknet intends
to do is decentralize all the four components all in the effort of creating the

Created by Nandakishore 198


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

first Decentralized exchange. The project backers are also working on


optimizing the cross-chain platform to serve as infrastructure.

• Aion Online
Aion online is another high profile Blockchain interoperability project that
seeks to address unresolved questions around scalability and interoperability
in blockchain networks. Developers are planning to position Aion as the
standard protocol used by various blockchains. The end game is to enhance
the creation of efficient and decentralized systems.

The developrs have already come up with a federated blockchain network


that makes it possible to integrate disparate blockchain systems in multi-tier
hub.
• Wanchain
Wanchain casts itself as the world’s first online blockchain interoperable
blockchain solution, with secure multi-party computing. More so, the
blockchain interoperability solution seeks to rebuild finance by housing all
digital assets on one blockchain.

They are introducing one of the unique blockchain interoperability strategies


at the moment.
The blockchain interoperability project ensures cross-chain capabilities by
leveraging the latest research in cryptographic theories. It also relies on a
proprietary protocol that allows interconnection of private, public and
consortium chains. The interconnection makes it easy to transfer digital
assets between two different blockchains.

Based on Ethereum, Wanchain blockchain also enables the deployment of


smart contracts. All these aspects make it a compelling blockchain solution
for delivering distributed applications that require easy access to different
blockchains. Privacy on the blockchain is enhanced by the use of Ring
signatures as well as one-time stealth addresses.

Created by Nandakishore 199


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

▪ Cosmos Blockchain
Cosmos blockchain is the most underrated blockchain interoperability project. The
blockchain project is in the race to become the hub of many projects. The developers
have since released a software development kit that they say will address scalability
and interoperability issues in blockchain projects.
Cosmos blockchain architecture consists of several independent blockchains called
Zones, attached to a central blockchain dubbed as the Hub. Tendermint Core that
enables high-performance as well as consistent and secure PBFT-like consensus
engine, powers each Zone in this case.

The cosmos Hub connects blockchain projects to enhance interoperability via the
Inter-Blockchain communication protocol.

Because of the interconnection, people can send tokens from one zone to another
in real time and securely, without engaging the services of a third party. Cosmos
blockchain can connect different zones from public to private project thanks to the
IBC connection.

Blockchain Interoperability in Healthcare: The Benefits


Inability to share and act on data in the healthcare system is a high-profile issue that
has crippled service delivery in the sector for years. Private, public and government
sectors have tried to solve the problem for years, but to no avail.
Currently, the healthcare sector relies on centralized server systems for the transfer
of vast troves of data between institutions. The downside of this system is that it
increases security risks, given that there is no one with control over data while in
transit.

Interoperability is a big issue in the healthcare sector as studies show that 86% of
providers in the industry are not able to share critical health care information with
ease. While most vendors have implemented interoperability solutions, most of
them work exclusively within a given ecosystem. It is often expensive to come up with
a solution that would ensure the smooth transfer of healthcare data within the entire
sector.

That’s why they need to focus on better blockchain interoperability strategies in


order to get rid of all healthcare related issues.

Amidst the challenges that healthcare continues to face in the race to achieve
ubiquitous interoperability, blockchain is slowly emerging as the technology that
could help alleviate the pain points.

Created by Nandakishore 200


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Ownership of Data

Data control has always been a big issue in the healthcare sector. However, with
blockchain interoperability, healthcare players could soon be able to maintain
control over their data. The digital ledger technology boasts of one of the highest
levels of security that would reduce cases of unintended data sharing as well as fears
of incorrect modifications. Blockchain allows the implementation of immutable keys
with read/write access logs

• Enhanced Security with Encryption

Currently, only 35% to 40% of healthcare data is encrypted. However, with the use of
blockchain interoperability solutions, all data could come encrypted by default. A
standard of encryption by default is the ultimate solution that will help mitigate risks
stemming from data breaches.

• Enhanced Efficiency and Transparency

Blockchain interoperability in the health care sector also has the potential to reduce
overhead and enhance efficiency. The use of smart contracts should go a long way
in eliminating the need for intermediaries. The result should be automatic processes
that act on relevant information across different players.

Current Scenario of Blockchain Interoperability in Healthcare

The most significant headwind in the interoperability between blockchains in the


healthcare sector pertains to governance. Such solutions will only see limited traction
should the industry fail to come to a consensus on governance structures.

Players in the whole sector need to agree on governance structures, focusing on


interoperability standards. While there is some progress in this front, it could take
some time. Additionally, sector players will also have to evaluate various blockchain
based healthcare platforms to see which one addresses their needs.

Vendors such as PakitDok as well as Change Healthcare and Gem have made
impressive strides in building out Blockchain interoperability solutions for the sector.

Blockchain Interoperability Challenges and Probable Solutions


The biggest challenges to blockchain interoperability are the fact that there
are many blockchain systems, which do not speak the same language. For
starters, many complex platforms in use come with varying levels of smart

Created by Nandakishore 201


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

contract use. Transaction scheme, as well as consensus models in these


projects, also differ a great deal, for any form of interconnection to happen.

To overcome some of the underlying issues crippling blockchain


interoperability, then there is a need to turn to a technology that enables
universal communication between various blockchains. More so, the use of
open protocols, as well as Multi Chain Frameworks, are touted as possible
solutions to blockchain interoperability issues.
• Open Protocols to Enhance Blockchain Interoperability
We think this is one of the best solutions for the interoperability issues. The
use of open Protocols should go a long way in enabling standardized
pathways through which various blockchains can communicate with one
another with ease. Such protocols provide the universal language for
blockchains that enhance communication.

A perfect example of an Open Protocol for blockchain interoperability is the


Atomic Swap. Acting as decentralized escrow cross chain, Atomic Swap
makes it possible to exchange value between two varying blockchains such
as 1BTC for 1ETH. The whole transaction takes place without the use of an
exchange or an intermediary. Interledger is another example of cross chain
blockchain that utilizes atomic swap protocol.

Use of Multi-Chain Frameworks


Multi-Chain frameworks on the other hand act as open environments through
which blockchains plug into. Unlike Open Protocols, they are more
complicated. However, they help facilitate open communication and transfer
of both value and data between different blockchains.

With Multi Chain Frameworks, blockchains can plug and become part of a
standardized ecosystem to be able to share information. It is for this reason
that most of the time they are called the Internet of blockchains as they offer

Created by Nandakishore 202


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

unique and promising capabilities when it comes to blockchain


interoperability.
Bottom Line
Cross chain technology and blockchain interoperability are essential aspects
of blockchain technology as discussed above. The two concepts are poised
to not only widen the scope of cryptocurrency use but also accelerate
blockchain adoption.

Cross chain, technology on its own has the potential to address scalability
issues that have crippled blockchain ecosystem for years. So, it’s a massive
boost for blockchain if it can finally pull of interoperability.
Top 10 Blockchain platforms include IBM Blockchain, Tron, Stellar, NEO,
Corda, Ethereum, MultiChain, EOS, Hyperledger Fabric, OpenChain,
Quorum, and NEM.

Blockchain Interoperability – Understanding


Cross-Chain Technology
In this blog, we will take you through an in-depth analysis of cross-chain technology
as a concept and what it means for blockchain interoperability. Apart from this, we
will also take a look at various aspects that relate to cross-chain technology and what
it holds for the future!
As we know, blockchain works on a decentralized ecosystem that depends on
a distributed ledger system. However, one downside that the current blockchain
system suffers from is that it is not a cumulative platform. Different blockchain
networks operate in isolation which does not allow them to communicate with each
other.
However, with the rise in emerging platforms, cross-chain technology is one such
innovation that can address these issues and bring the required solutions.
Before we proceed with the discussion, let us first understand the conceptual
meaning of cross-chain as technology and several other dimensions that relate to it.

Created by Nandakishore 203


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

What is cross-chain technology?


As far as the need for enhancing interoperability between blockchains is concerned, cross-
chain technology is one of the most effective solutions to facilitate the same. It is an
emerging technology that facilitates the transfer of value and data between two or more
blockchains networks.
The rapid increase in applications of some of the most common networks including Bitcoin
Ethereum and Solana has led to the emergence of several key issues. While these networks
enable a user to trade their tokens on the blockchain, there are several underlying
economical and technical limitations while scaling up. As a result of these constraints, the
users are usually not able to get the full benefits of technology because these chains
operate separately. However, the introduction of cross-chain technology solves these
problems by facilitating blockchain interoperability and enabling users to communicate
and share data.
The cross-chain protocol facilitates interoperability between different blockchain networks
and enables the exchange of data between several networks. Through cross-chain protocol,
users can communicate without the involvement of intermediaries. Consequently,
blockchains that share similar networks can transfer value and data between each other.
Following are several main features of the cross-
chain technology –
• Cross-chain technology works on the principle of atomicity.
• It enables proper consistency between several interconnected
blockchains.
• It enables the distribution of networks across various platforms.
Why is cross-chain technology so important?
Now that we have learned about the functional meaning of cross-chain technology, let us
now understand why it is so important. The importance of cross-chain technology lies in
the fact that it enables the user to share data and trade tokens without necessarily using
any intermediary. This infrastructure facilitates blockchain interoperability, allows two
or multiple blockchains to elevate their efficiencies, trade-off decentralization, and
security.

Created by Nandakishore 204


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

It is also essential as it improves chain efficiency, reduces segmentation, and allows the
users to communicate across multiple blockchains more freely. Therefore, cross-chain
technology holds immense potential in enabling blockchain interoperability that can solve
many issues and remove multiple constraints on blockchain and other networks.
How does cross-chain technology work?
Since no defined approach can be equally applied for all networks, it differs from network
to network. Every network uses a different system on blockchain interoperability to
enable transactions without applying third-party integrations. Here are some of the most
common and widely known approaches to isolated transactions across various chains –
Atomic Swaps
These are exchange facilitators that enable two different parties to trade their tokens on
multiple blockchains. This type of mechanism does not involve the requirement for a
centralized third party to facilitate the trades. Instead, it allows the user to directly trade
their tokens on a peer-to-peer basis. This mechanism either finalizes the entire processor
or does not initiate it in the first place. For instance, two parties can decide to keep a 1-hour
restriction for the atomic swap. In this case, the original owners will receive their deposited
tokens once the duration of 1 hour gets over even though not all the conditions are met.
Although it may not be easy for a new user, a professional blockchain developer would
find it easy to go with.

Relays
Relays enable blockchain networks to keep a check on the transactions and events taking
place on other chains. They work on a chain-to-chain basis without the involvement of
distributed nodes facilitating a single contract to act as a central client of other nodes on
multiple chains. In this way, it can verify the entire history of transactions and specific
central headers on demand. However, the relay approach requires a lot of expenditure to
operate and take care of the security of operation.
Apart from these two methods, there are various other approaches that cross-chain
technology follows to function. Merged consensus is one of the approaches that enable two-
way blockchain interoperability between several networks. On the other hand, a specific
group of verified parties also come together to check the events of the chains.

Created by Nandakishore 205


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

What are the benefits of cross-chain technology?


While cross-chain mechanism significantly helps in bringing blockchain interoperability,
there are several underlying benefits of it.
Here are some significant benefits that cross-chain technology offers –
Connecting two independent blockchain networks –
One of the best advantages of cross-chain technology is that it enables effective
communication and a strong connection between two different blockchain networks. Since
it is usually used to initiate asset transfer and token swaps, there is no scope for blockchain
incompatibility. In addition to this, it also allows the user to transfer information such as
assets, transaction receipts, and virtual contracts.
Better scalability –
Cross-chain technology facilitates better scalability than current mechanisms on blockchain
due to their limited interoperability. Because this technology helps the users to interact
with different blockchain networks, it is now possible to leverage the speed concerning
multiple blockchains that ultimately enhance scalability.
Enhanced flow of data and transfer of tokens –
As per the current mechanism, a user needs to send instructions from the source chain.
Once the validator receives these instructions, the relayers convey the instructions to the
destination chain. However, with cross-chain technology, the transaction is verified right
after its completion and arrives at the destination change only once the verification is
completed. In this way, it streamlines the entire process and makes the exchange and
transfer of data seamless.
If you also wish to trade in cryptocurrencies on the blockchain, it can take up
any blockchain classes online to learn the basics.
Discouraging monopolization by large entities –
Cross-chain technology also helps in creating stability in the market by discouraging
monopolization by large corporations. For instance, Bitcoin and Ethereum are the leading
names in the world of cryptocurrencies that occupy more than 70% of the total market
share. As a result of this dominance, there is no space left for new players in the market
that can experiment with their strategies and make a spot in the existing competition.

Created by Nandakishore 206


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Cross-chain technology can help in such scenarios as it builds an ecosystem where the
transaction processes will concentrate on all networks equally. The focus will not be only
on a few major blockchain networks but on other networks as well. Hence, cross-chain
technology can create a fair scenario by facilitating a balanced approach to state how
crypto players participate in the marketplace.
How does cross-chain technology help achieve
blockchain interoperability?
Although cross-chain technology is immensely helpful in combating the existing challenges
on blockchain networks, how does it exactly help in achieving blockchain interoperability
as a whole?
As we know, the success of blockchain technology largely depends on the networks that
can be integrated into it. Interaction is also another indispensable factor that decides the
usability of blockchain networks. Due to this reason, it is essential to put a system in place
that can enable communication between different blockchains and facilitate the smooth
sharing of data. This is where the role of cross-chain technologies comes into place.
It attempts to solve the challenges involved by enhancing communication and
interoperability between blockchain networks. There are several emerging cross-chain
projects working on the same idea and acting as a platform enabling communication
between different blocks in networks without involving an intermediary or third party.
Various other platforms provide blockchain certification that any user can access upon
completing the assigned course.
As a concept that brings solutions to all these constraints and restrictions currently existing
on the blockchain, interoperability has a long way to go in getting rid of intermediaries and
third parties that are similar to centralized systems. As of now, there is no single wallet
system in place that can enable a user to store and transfer the tokens and share data
across various blockchains. Such a constraint becomes a huge issue in the long run as it
hinders the user from initiating the transfer of data and trading tokens with proper
security.
Because it enables the user to get the benefits of a decentralized network and communicate
with one another without any constant, cross-chain technology plays a key role in bringing

Created by Nandakishore 207


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

these solutions together. Hence, cross-chain technology is the ultimate solution to


achieving interoperability in blockchain and achieving even more transparency and
efficiency in blockchain networks.
Future of cross-chain technology
As an emerging mechanism, cross-chain technology has a long way to go in
facilitating blockchain interoperability. On the other hand, it is also important for
blockchain to spread its application to several industries. But due to the prevailing
challenges and constraints, it may not be an easy way to go. Blockchain must bring
interoperability on its platform and adoption in various segments that do not currently
exist on its platform. In addition to this, the need for interoperability through crossing
technology is not just limited to the safe transaction of tokens but also requires the safe and
secure transfer of confidential data.
Cross-chain technologies are still in the evolving phase but they can play a huge role in
accelerating blockchain interoperability. It has huge potential in emerging as a viable
mechanism to encourage better interoperability solutions in the future. Moreover, it is also
essential for various corporate entities and retail investors that actively participate
on blockchain platforms to trade in tokens.
Since these businesses do not just deal in products and services but the transactions also
involve sharing of confidential data and value. As a result, it is essential to put a system in
place that can enable more transparency and secure systems for transactions on the
blockchain without involving any intermediary. Also, if you wonder how to learn
blockchain, you can refer to various sources that provide related information. Cross-chain
technology is not just the need of today but also a hope for a better future!
Challenges to this new tech
However, there are still several challenges that cross-chain technology may fail to
address. For instance, the existing mechanism does not preserve the history of non-
fungible tokens as they are a part of transactions taking place on blockchains only between
different platforms. Finalizing transactions and addressing the current challenges of
blockchain technology is another concern that may not receive any resolution.

Created by Nandakishore 208


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In addition to this, several classes of industries may doubt the benefits that cross-chain
technology offers concerning congestion and online attacks. It may lead to replication of
benefits that blockchain currently offers that include low cost, resistance to censorship, and
high security. Concerning these challenges, cross-chain technology will need to take these
use cases under consideration and facilitate a more efficient system for resource sharing
and data transfer. Also, if you are a business owner interested in learning about these
technologies, make sure to refer to the best blockchain training for your training.
Final Takeaway
Blockchain interoperability and crossing technologies are two indispensable aspects
of blockchain technology as a whole. Upon integrating the two concepts, we can discover
the widening scope of cryptocurrency and its world but also promote the concept of
blockchain adoption. The main reason why the importance of cross-chain technology is
stressed so much is that it has great potential to deal with the current challenges. From the
scalability issues to the dire need for transparency on blockchain networks, cross-chain
technology can bring in several solutions to address the underlying challenges in the
blockchain ecosystem. Hence, it would not be wrong to say that cross-chain technology is a
budding future revolution!

BLOCKCHAINS
Blockchain systems vary considerably in their design, particularly with regard
to the consensus mechanisms used to perform the essential task of verifying
network data.
Types of Blockchains: PoW, PoS, and Private
Not all blockchains are created equal; their diverse consensus mechanisms
have unique implications for accessibility, security, and sustainability.
Blockchain systems vary considerably in their design, particularly with regard
to the consensus mechanisms used to perform the essential task of verifying
network data. The most common consensus mechanisms are Proof of Work
(PoW), Proof of Stake (PoS), and methods used by private and consortium
blockchains. Each design has different implications for the underlying
blockchain’s security, accessibility, and sustainability.

Created by Nandakishore 209


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Blockchain Types
While blockchain might appear to many as a monolithic technology, there is a great deal of variation
Blockchain Types
While blockchain might appear to many as a monolithic technology, there is a great deal of variation
between how different blockchain networks function. One foundational differentiator is the type of
consensus mechanism that each blockchain uses. A consensus mechanism is the process through which
a distributed network reaches an agreement about information on the network — for example, whether
transactions are valid and in what order they occur. The consensus mechanism also plays a key role in
securing the blockchain network from malicious actors like hackers.
Most public blockchain networks today use processes referred to as Proof of Work (PoW) or Proof of
Stake (PoS) to provide consensus, while private — or “permissioned” — blockchains and Distributed
Ledger Technologies (DLTs) can be structured in various ways to prioritize speed, security, and
scalability. Here, we take a look at the most common blockchain consensus mechanisms to get a better
overall understanding of the different implementations:

Proof-of-Work Blockchains
The PoW consensus mechanism is among the most widely utilized methods
in blockchain, and was popularized first by Bitcoin. The defining components
of PoW systems are miners and the electricity they expend to make the
calculations that verify bitcoin (BTC) transactions. Miners operate computer
hardware to run network nodes that employ computational power to
algorithmically solve mathematical puzzles called proofs of work. The miner
who solves the puzzle first confirms the most recent block of transactions on
the blockchain. The successful miner then broadcasts the new block to all
other nodes, which in turn confirm its accuracy and add that block to their
copy of the blockchain, building a verifiable record of data for the whole
network. This verification process represents consensus. Only once this data
is confirmed can a new block be added to the network. Miners receive newly
minted cryptocurrency, the block reward, (in the case of Bitcoin, they receive
BTC) for being the first to validate a new block of data and add it to the PoW
blockchain.

Proof-of-Work blockchains aim to produce blocks at consistent intervals —


Bitcoin, for example, generates one block about every ten minutes. PoW
networks are limited in terms of their speed and scale because the process
for proving work is so energy intensive. Moreover, PoW networks are coded to

Created by Nandakishore 210


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

be more or less difficult relative to the amount of computational power on the


network. You may think of computational power as simply competition —
more computational power equals more competition, which equals harder
proofs of work. But despite their limitations of speed and scalability, PoW
blockchains have historically provided better security, while maintaining
meaningful decentralization. Because PoW systems are distributed, it is
extremely expensive for a malicious actor to take over the blockchain by
controlling the majority of computing power on the network. The hardware,
electricity, and computational costs are typically too high to surmount.

However, the same features that make PoW blockchains secure also make
the barriers to participating in the network as a node high. Operating a mining
rig and paying for the associated hardware and electricity costs is too
expensive for the average user, and mining on many major networks has been
monopolized by large-scale mining operators that have amassed influence in
network governance.

Another drawback of PoW networks is that they are energy intensive and thus
environmentally damaging. The computational power needed to solve proofs
of work requires an immense amount of electricity. For example, in 2021 the
Bitcoin network had the same annual carbon footprint as the nation of New
Zealand and used as much electricity as Chile. Tech development in the
blockchain industry has focused significantly on remediating the
environmental drawbacks of crypto mining, and a number of alternative
solutions have emerged.
Proof-of-Stake Blockchains
Proof of Stake is the second most popular consensus mechanism and solves
many of the disadvantages found on Proof-of-Work blockchains like lack of
speed, poor scalability, inefficient energy consumption, and high barrier to
entry. Examples of current industry-leading PoS blockchains include
Polkadot, Avalanche, and Cardano. Ethereum, which was originally designed

Created by Nandakishore 211


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

as a PoW blockchain, is in the process of transitioning to a PoS blockchain


called Ethereum 2.0.

Instead of miners validating transactions, PoS blockchains simply have


validators. Validators are network node operators that validate data, similarly
to PoW systems, but there is no energy-intensive computational process to
earn the right to validate. Instead of working to solve proofs of work,
validators “stake” some of the blockchain’s native tokens to become eligible
for selection as a validator node. The prospective validator will essentially
stake crypto tokens native to the blockchain to serve as collateral. When it
comes time to validate the data held in a transaction block on a PoS
blockchain, the system randomly selects a validator to confirm the data.
While random to an extent, certain variables can make it more likely for a
validator to be chosen, including the number of tokens a validator has
staked. When the block is confirmed, that validator is typically rewarded with
network transaction fees, and the process begins with a new block.

Proof-of-Stake blockchains keep the network secure and validators honest by


requiring validators to stake their tokens. If validators act maliciously or
incompetently, they lose their stake and access to the network through a
process called “slashing.” This incentive structure ensures that validators
have more to gain through lawful operation than by breaking the rules. There
are many different variations on how this general process works.

Since validators on PoS blockchains do not have to invest in expensive


hardware and high electricity costs, the barrier to entry to PoS blockchains for
validators is arguably lower. However, if you wish to become a validator, you
still must have a sufficient amount of crypto to stake. This amount varies
between blockchains, but can reach into the thousands of dollars worth of
tokens. PoS blockchains have also been criticized as plutocratic, because the
amount of influence validators have over the network is often proportional to
the size of their stake.

Created by Nandakishore 212


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In terms of sustainability, PoS blockchains are arguably better for the


environment than PoW networks because they consume significantly less
electricity. Proponents argue, therefore, that there should be a focus on
employing PoS consensus mechanisms in future blockchain projects.

Delegated Proof of Stake (or DPoS) is a popular evolution of the Proof of Stake
concept, whereby users of the network elect delegates to validate the next
block. Delegates can also be called witnesses or block producers. Using
DPoS, you vote for delegates by pooling your tokens into a staking pool and
linking those to a particular delegate. Proponents say DPoS is a more
decentralized and egalitarian process for achieving consensus than Proof of
Stake alone.
Private and Consortium Blockchains
Blockchain types that use PoW and PoS consensus mechanisms are typically
public and decentralized. However two other categories of blockchain exist
— consortium blockchains and private blockchains. A private blockchain is a
blockchain controlled by a centralized entity which determines who can
interact with the blockchain, verify transactions, and who can view the
information recorded on the blockchain. A consortium blockchain is a
distributed ledger controlled by several entities, each of which operates a
network node, participates in consensus, and has permissions to view
certain types of data. Given the lack of decentralization in these networks,
this type of blockchain technology is often referred to as Distributed Ledger
Technology or DLT.

Private and consortium blockchains are typically used by enterprises that


aim to employ blockchain architecture, but want to ensure specific
information remains private, for either regulatory or competitive reasons.

Public blockchains like Bitcoin and Ethereum are censorship-resistant and


offer broad ecosystems for the development of apps and platforms.

Created by Nandakishore 213


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Consortium blockchains, however, may offer faster transaction processing


times and are easier to modify, but are walled gardens with limited usage
outside of the private consortium.

ConsenSys’ Quorum (which was formerly owned by JPMorgan Chase) is a


private, permissioned version of the Ethereum network designed to facilitate
interbank information sharing. Consortium blockchains are currently under
development in a variety of industries including the insurance industry, the
food distribution industry, the financial services industry, and are even being
used to prototype central bank digital currencies (CBDCs) around the globe.

Not all blockchains are made equal, and the various consensus mechanisms
have different implications for accessibility, security, and sustainability.
Likewise, not all blockchain types are equally well suited for every use case.
Though public blockchains are secure and censorship-resistant, for example,
they are not well-suited for enterprises due to their transparency. While PoW
has been the standard consensus mechanism since the launch of Bitcoin in
2009, PoS, DPoS, and DLT are rapidly gaining traction in the world of
blockchain.

Overview of a Solana Cluster


A Solana cluster is a set of validators working together to serve client
transactions and maintain the integrity of the ledger. Many clusters may
coexist. When two clusters share a common genesis block, they attempt to
converge. Otherwise, they simply ignore the existence of the other.
Transactions sent to the wrong one are quietly rejected. In this section, we’ll
discuss how a cluster is created, how nodes join the cluster, how they share
the ledger, how they ensure the ledger is replicated, and how they cope with
buggy and malicious nodes.
Creating a Cluster
Before starting any validators, one first needs to create a genesis config. The
config references two public keys, a mint and a bootstrap validator. The

Created by Nandakishore 214


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

validator holding the bootstrap validator’s private key is responsible for


appending the first entries to the ledger. It initializes its internal state with the
mint’s account. That account will hold the number of native tokens defined
by the genesis config. The second validator then contacts the bootstrap
validator to register as a validator. Additional validators then register with any
registered member of the cluster.

A validator receives all entries from the leader and submits votes confirming
those entries are valid. After voting, the validator is expected to store those
entries. Once the validator observes a sufficient number of copies exist, it
deletes its copy.

Joining a Cluster
Validators enter the cluster via registration messages sent to its control
plane. The control plane is implemented using a gossip protocol, meaning
that a node may register with any existing node, and expect its registration to
propagate to all nodes in the cluster. The time it takes for all nodes to
synchronize is proportional to the square of the number of nodes
participating in the cluster. Algorithmically, that’s considered very slow, but in
exchange for that time, a node is assured that it eventually has all the same
information as every other node, and that information cannot be censored by
any one node.

Sending Transactions to a Cluster


Clients send transactions to any validator’s Transaction Processing Unit (TPU)
port. If the node is in the validator role, it forwards the transaction to the
designated leader. If in the leader role, the node bundles incoming
transactions, timestamps them creating an entry, and pushes them onto the
cluster’s data plane. Once on the data plane, the transactions are validated
by validator nodes, effectively appending them to the ledger.

Confirming Transactions

Created by Nandakishore 215


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

A Solana cluster is capable of subsecond confirmation for thousands of


nodes with plans to scale up to hundreds of thousands of nodes.
Confirmation times are expected to increase only with the logarithm of the
number of validators, where the logarithm’s base is very high. If the base is
one thousand, for example, it means that for the first thousand nodes,
confirmation will be the duration of three network hops plus the time it takes
the slowest validator of a supermajority to vote. For the next million nodes,
confirmation increases by only one network hop.

Solana defines confirmation as the duration of time from when the leader
timestamps a new entry to the moment when it recognizes a supermajority of
ledger votes.
Scalable confirmation can be achieved using the following combination of
techniques:
Timestamp transactions with a VDF sample and sign the timestamps.
Split the transactions into batches, send each to separate nodes and have
each node share its batch with its peers.
Repeat the previous step recursively until all nodes have all batches.
Solana rotates leaders at fixed intervals, called slots. Each leader may only
produce entries during its allotted slot. The leader therefore timestamps
transactions so that validators may lookup the public key of the designated
leader. The leader then signs the timestamp so that a validator may verify the
signature, proving the signer is owner of the designated leader’s public key.

Next, transactions are broken into batches so that a node can send
transactions to multiple parties without making multiple copies. If, for
example, the leader needed to send 60 transactions to 6 nodes, it would
break that collection of 60 into batches of 10 transactions and send one to
each node. This allows the leader to put 60 transactions on the wire, not 60
transactions for each node. Each node then shares its batch with its peers.
Once the node has collected all 6 batches, it reconstructs the original set of
60 transactions.

Created by Nandakishore 216


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

A batch of transactions can only be split so many times before It is so small


that header information becomes the primary consumer of network
bandwidth. At the time of this writing (December, 2021), the approach is
scaling well up to about 1,250 validators. To scale up to hundreds of
thousands of validators, each node can apply the same technique as the
leader node to another set of nodes of equal size. We call the technique
Turbine Block Propagation.
https://docs.anza.xyz/operations/best-practices/security
Visit the website for anza about the validation,RPC nodes,solana and
monitor, security and practice.
What is Solana, and how does it work?
Solana’s ambitious design aims to solve the blockchain trilemma; however, it
still suffers from various drawbacks such as its vulnerability to centralization.
What is Solana?
Solana is a highly functional open source project that implements a new,
permissionless and high-speed layer-1 blockchain.

Created in 2017 by Anatoly Yakovenko, a former executive at Qualcomm,


Solana aims to scale throughput beyond what is typically achieved by popular
blockchains while keeping costs low. Solana implements an innovative hybrid
consensus model that combines a unique proof-of-history (PoH) algorithm
with the lightning-fast synchronization engine, which is a version of proof-of-
stake (PoS). Because of this, the Solana network can theoretically process
over 710,000 transactions per second (TPS) without any scaling solutions
needed.

Solana’s third-generation blockchain architecture is designed to facilitate


smart contracts and decentralized application (DApp) creation. The project
supports an array of decentralized finance (DeFi) platforms as well as
nonfungible token (NFT) marketplaces.

Created by Nandakishore 217


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Solana blockchain was rolled out during the 2017 initial coin offering (ICO)
boom. The project’s internal testnet was released in 2018, followed by
multiple testnet phases leading to the eventual official launch of the main
network in 2020.

What makes Solana unique?


Solana’s ambitious design aims to solve the blockchain trilemma, a concept
proposed by Ethereum creator Vitalik Buterin, in its unique way. This trilemma
describes a set of three major challenges that developers face when building
blockchains: decentralization, security and scalability.

It is widely believed that blockchains are built in such a way that forces
developers to sacrifice one of the aspects in favor of the other two, as they
can only provide two of the three benefits at any given time.

The Solana blockchain platform has proposed a hybrid consensus


mechanism that compromises on decentralization to maximize speed. The
innovative combination of PoS and PoH makes Solana a unique project in the
blockchain industry.

Generally, blockchains have greater scalability, depending on the number of


transactions per second they can support, the more and better they scale. In
decentralized blockchains, however, time discrepancies and higher
throughput slow them down, meaning that more nodes verifying transactions
and timestamps take more time.

In a nutshell, Solana’s design solves this problem by having one leader node
chosen based on the PoS mechanism that sequences messages between
nodes. Thus, the Solana network benefits, reducing workload that results in
increased throughput even without a centralized and exact time source.

Created by Nandakishore 218


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Also, Solana creates a chain of transactions by hashing the output of one


transaction and using it as the input of the next transaction. This history of
transactions gives a name to Solana’s main consensus mechanism: PoH, a
concept that allows for greater scalability of the protocol which, in turn,
boosts usability
How does Solana work?
The core component of the Solana protocol is proof-of-history, a sequence of
computations that provides a digital record that confirms that an event has
occurred on the network at any point in time. It can be presented as a
cryptographic clock that gives a timestamp to every transaction on the
network, along with a data structure that can be a simple addition of it.

PoH relies on PoS using the Tower Byzantine fault tolerance (BFT) algorithm, an
optimized version of the practical Byzantine fault tolerance (pBFT) protocol. Solana
uses it to reach a consensus. The Tower BFT keeps the network secure and running
and acts as an additional tool to validate transactions.

Moreover, PoH can be considered as a high-frequency Verifiable Delay Function


(VDF), a triple function (setup, evaluation, verification) to produce unique and
reliable output. VDF maintains order in the network by proving that block
producers have waited enough time for the network to move forward.

Solana uses a 256-bit secure hash algorithm (SHA-256), a set of proprietary


cryptographic functions that output a 256-bit value. The network periodically
samples the number and SHA-256 hashes, providing real-time data according to the
set of hashes included on central processing units.

Solana validators can use this sequence of hashes to record a specific piece of data
that was created prior to the generation of a specific hash index. The timestamp for
transactions is created after this particular piece of data is inserted. To achieve
claimed huge numbers of TPS and block creation time, all nodes on the network
must have cryptographic clocks to keep track of events rather than waiting for
other validators to verify transactions

The Solana (SOL) token


Solana’s cryptocurrency is SOL$145.00. It is Solana’s native and utility token
that provides a means of transferring value as well as blockchain security

Created by Nandakishore 219


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

through staking. SOL was launched in March 2020 and has strived to become
one of the top 10 cryptocurrencies entering the space by means of total
market capitalization.

SOL token operation scheme is similar to that used in the Ethereum


blockchain. Even though they function similarly, Solana token holders stake
the token in order to validate transactions through the PoS consensus
mechanism. Furthermore, the Solana token is used to receive rewards and
pay transaction fees while also SOL enabling users to participate in
governance.
Answering the question of how many Solana coins are there, there will be
more than 500 million tokens released in circulation with the current total
supply of Solana exceeding 511 million tokens — Solana’s circulating supply
is just over half that. Around 60% of SOL tokens are controlled by Solana’s
founders and the Solana Foundation, with only 38% reserved for the
community.

If you would like to know where to buy Solana, SOL tokens can be purchased
on most exchanges. The top cryptocurrency exchanges for trading in Solana
are Binance, Coinbase, KuCoin, Huobi, FTX and others.

Created by Nandakishore 220


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Solana vs. Ethereum


Solana has received a lot of accolades for its speed and performance and has
even been cited as a legitimate competitor of crypto industry leaders such as
Ethereum.
So, how is Solana different from Ethereum and can it be considered as a
potential Ethereum killer?
In terms of processing speed, Solana is able to challenge the dominant smart
contract platform, as it is supposedly capable of reaching a speed of over
50,000 TPS. Solana uses different consensus algorithms to avoid slow
transaction confirmation. This feature makes Solana one of the fastest
blockchains in the industry to compete with other industries outside of the
crypto space.

Created by Nandakishore 221


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Compared to this enormous number, the current low scalable Ethereum


proof-of-work model can only handle 15 TPS. Thus, Solana is thousands of
times faster than Ethereum. Another Solana advantage is the network’s
extreme cost-effectiveness, as the project implements new tokenomics for
lower fees.
Related: What is Web 3.0: A beginner’s guide to the decentralized internet
of the future
Also, it is worth noting that Solana’s blockchain, while implementing one of
the variations of PoS, is more eco-friendly and sustainable. This is in contrast
with Ethereum, whose current PoW model requires the use of tremendous
computational power.

However, everyone in the crypto community is looking forward to the


Ethereum upgrade to PoS. A new kind of Ethereum, which is being diligently
developed, will consist of an execution layer (previously known as Ethereum
1.0) and a consensus layer (previously Ethereum 2.0). It could greatly increase
throughput, improve scalability, lower transaction fees and stop
unsustainable power consumption.

The downsides of Solana


If you’re still wondering if Solana is a good investment and whether you should
buy it, the answer is still up to you. Despite the visible advantages, Solana has
its demerits like any existing crypto project.

First and foremost, although the Solana blockchain can compete with high-
end blockchain projects, it is still vulnerable to centralization, as there are not
many blockchain validators. Anyone on the network can become a Solana
validator but doing so is still difficult because it requires a lot of computing
resources.

Along with this, the protocol still labels itself as a beta version of the mainnet,
which does not negate the possible presence of bugs and errorsDespite these

Created by Nandakishore 222


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

issues, Solana is still one of the biggest ecosystems in the crypto industry and
seems to be on the right growth path.
Solana is a high-performance blockchain platform designed for building
decentralized applications (dApps) and scalable blockchain solutions
with fast transaction processing and low fees. It utilizes a unique
consensus mechanism called Proof of History (PoH) and parallel
transaction processing for achieving high throughput and performance in
decentralized networks. Readers can explore Solana’s architecture,
features, and developer tools for building and deploying dApps, leveraging
its scalability and low-latency transaction processing for various
blockchain use cases, such as decentralized finance (DeFi), NFTs, and
gaming.
The Open Network
TON is a fully decentralized layer-1 blockchain designed by Telegram to
onboard billions of users. It boasts ultra-fast transactions, tiny fees, easy-to-
use apps, and is environmentally friendly.
The Open Network (TON) is a decentralized and open internet platform
comprising several components. These include TON Blockchain, TON DNS,
TON Storage, TON Sites, and TON Proxy. TON Blockchain is the core protocol
connecting TON’s underlying infrastructure to form the greater TON
Ecosystem.

TON focuses on achieving widespread cross-chain interoperability while


operating within a highly scalable and secure framework. It aims to process
millions of transactions per second and eventually reach hundreds of millions
of users.

TON Blockchain, designed as a distributed supercomputer, serves as the


heart of TON. It aims to provide various products and services that contribute
to developing the decentralized vision for the new internet.

Created by Nandakishore 223


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

To understand the true vision for the decentralized internet and how TON
contributes to this inevitability, consider taking a deep dive.
Blockchain basics with TON
This course introduces blockchain basics, focusing on practical skills in the
TON ecosystem. You will understand how blockchain functions and its diverse
applications. You will also acquire crucial TON-related skills, including wallet
setup, crypto asset management, and creation. The course will also equip you
with critical knowledge about cryptocurrency threats and fraud and give
practical tips on protecting your crypto assets.
TON Blockchain development
TON Blockchain Course is a comprehensive TON Blockchain guide. The
course is designed for developers who want to learn how to create smart
contracts and decentralized applications (dApps) on the TON Blockchain.

It consists of 9 modules and covers the basics of the TON Blockchain, the
FunC programming language, and the TON Virtual Machine (TVM).
New to blockchain
If you’re new to blockchain and don’t understand what makes the technology
so revolutionary — consider taking a deep dive into these important
resources:
• What is Blockchain? What is a Smart Contract? What is Gas?
• How a Blockchain Can Help You on a Deserted Island
• [YouTube] Crypto Networks and Why They Matter
Migration from Ethereum
For those familiar with Ethereum development, we suggest introductory
articles to help you understand what sets TON apart in this regard:
• The Difference of Blockchains
• Six unique aspects of TON Blockchain that will surprise Solidity
developers
• It’s time to try something new: Asynchronous smart contracts
https://docs.ton.org/v3/guidelines/get-started-with-ton

Created by Nandakishore 224


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Get started with TON


Discover the speed, reliability, and core principles of asynchronous thinking
by building your first application on the TON blockchain — from scratch.

What you will learn


In this step-by-step guide, you’ll learn how to create and interact with the TON
blockchain applications using JavaScript. While it’s possible to figure it out
independently, this path offers a faster, smoother experience — especially if
you’re starting.
Here’s what you’ll do:
• Create your TON wallet using Tonkeeper.
• Use a Testnet faucet to top up your wallet with test tokens.
• Learn key smart contract concepts like addresses and cells.
• Interact with the TON blockchain using the TypeScript SDK and an API
provider.
• Compile and send your first transaction using the NFT Miner console
app.
You’re about to mine your first NFT rocket achievement! As one of the first
TON explorers, you’ll complete a Proof-of-work smart contract and unlock a
hidden reward for your wallet. Let’s dive in:
Our goal for today is to mine an NFT! This achievement will stay with you
forever.
Finally, you can mine this NFT achievement even in the Mainnet. (it costs only
0,05 TON!).
Video tutorial
For a smoother walkthrough, check out this carefully crafted video tutorial by
Vladimir Alefman.
Mining on TON Blockchain
Today, we are going to teach our prospective builders how to mine on TON
Blockchain. This experience helps you understand the significance of mining
and why Bitcoin mining helped revolutionize the industry.

Created by Nandakishore 225


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Although the proof-of-work giver smart contract framework, which defined the
initial mining process that laid the foundation for TON, was completed at
launch, the last TON was mined in June 2022 to conclude TON’s proof-of-work
(PoW) token distribution mechanism. That said, with our recent transition to
proof-of-stake (PoS), the era of staking on TON has just begun.

Dive deeper into our economic model and mining on TON


Now, let’s focus on the first steps to becoming a TON Developer and learn
how to mine an NFT on TON! Below is an example of what we’re aiming to
create.

If we stay focused on the task at hand, we can create a miner in about half an
hour.

Getting started
To get started, all developers will make use of the following components:
Wallet: You need a non-custodial wallet to store an NFT in Testnet mode.
Repository: We’ll use a ready-made template designed specifically for you.
Developer Environment: Developers need to determine whether they want to
mine in a local or cloud environment.
Download and create a wallet
First, you need a non-custodial wallet to receive and store your TON. For this
guide, we are using Tonkeeper. You need to enable Testnet mode within the
wallet to receive Testnet TON coins. These tokens will be used later to send a
final minting transaction to the smart contract
Info
With a non-custodial wallet, the user owns the wallet and holds the private
key themselves.
To download and create a TON wallet, follow these simple steps:
• Install the Tonkeeper app on your smartphone. It can be downloaded
here.
• Next, you need to enable test mode within Tonkeeper.

Created by Nandakishore 226


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Project setup
We use a boilerplate to simplify your life and skip routine low-level tasks.

Please use the ton-onboarding-challenge template to create your project by


clicking the “Use this template” button and selecting the “Create a new
repository” tab as shown below:
After completing this step, you’ll have access to a highly performant
repository that can serve as your miner’s core. Congratulations!
Development environments
The next step is to choose which developer environment best suits your
needs, experience level, and overall skill set. As you can see, this process can
be carried out using either a cloud-based or local environment. Developing on
the cloud is often considered simpler and easier to get started. Below, we’ll
outline the steps required for both approaches.
Tip
Ensure you have opened the repository in your GitHub profile generated from
the template in the previous step.

Created by Nandakishore 227


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Local and cloud development environments


• Using a Javascript IDE can be challenging for users unfamiliar with it,
especially if your computer and tooling systems are not configured for
this purpose.
• However, if you’re familiar with NodeJS and Git and know how to work
with npm, you may find it more comfortable to use a local environment.
Cloud codespaces
If you choose the cloud development environment, it’s easy to get started by
first selecting the Code tab and then by clicking on the Create codespace on
master button within the GitHub repository shown below:

After completing this step, GitHub will create a special cloud workspace that
allows you to access the VSCode Online IDE (Visual Studio Code Online
Integrated Development Environment).
Once access is granted (the codespace typically starts in about 30 seconds),
you have everything required to begin without installing Git, Node.js, or other
developer tools.
Local development environments
To set up a local development environment, you require access to these three
essential tools:
Git: Git is an essential tool for every developer working with repositories. It
can be downloaded here.

Created by Nandakishore 228


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

NodeJS: Node.js is the JavaScript and TypeScript runtime environment


typically used for application development on TON. It can be downloaded
here.
JavaScript IDE. JavaScript IDE’s are typically used for development within
local development environments. An example of this case is Visual Studio
Code (VSCode).
To get started, you need to clone your GitHub repository boilerplate and open
the correct repository in your Integrated Development Environment (IDE).
Running scripts
In this guide, you’ll need to run TypeScript scripts. All commands, such as
running scripts or installing modules, are executed through the command line,
which is located in the IDE’s Terminal workspace, which is typically found at
the bottom of the IDE.
For example, in the Cloud Codespaces, you should open the Terminal
workspace if it is not already open:

Created by Nandakishore 229


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Enter commands in this window and execute them with Enter:

The terminal is also available as a separate application. Please choose the


appropriate version based on your IDE and OS.
Great! After these steps, you’re ready to get deeper into TON Blockchain
secrets.
Connect to TON
Okay, what do you need to connect to TON Blockchain?
• Smart contract address as a point of destination. We aim to mine an
NFT from the proof-of-work smart contract, so we need an address to
determine the current mining complexity.
• API provider to make requests to TON Blockchain. TON has multiple API
types for different purposes. We will use the testnet version of
toncenter.com API.
• JavaScript SDK: a JavaScript SDK (recall that an SDK is a Software
Development Kit) is needed to parse the smart contract address used
and prepare it to create an API request. To better understand TON
addresses and why they need to be parsed to carry out this process,
please see this resource to understand why we should parse it. To carry
out this procedure, we use @ton/ton.

Created by Nandakishore 230


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

In the next section, we describe how users send their initial requests to TON
Blockchain using the TON Center API and @ton/ton to receive data from the
PoW smart contract.

Smart contract addresses


For the miner to work correctly, we need to add two different smart contract
address types. These include:
Wallet address: a wallet address is required for the miner to receive their
mining reward (in this case, we must use the Tonkeeper Testnet mode).
Collection address: a collection address is required to act as a smart
contract to correctly mine an NFT (to carry out this process, copy the NFT
collection address under the TON onboarding challenge collection name from
the Getgems website).
Next, we open the ./scripts/mine.ts file in your miner and create a mine()
function composed of initial constants as follows:
./scripts/mine.ts

import {Address} from '@ton/ton';

const walletAddress = Address.parse('YOUR_WALLET_ADDRESS');


const collectionAddress = Address.parse('COLLECTION_ADDRESS');

async function mine () {

mine();

Using the async mine() function


Later, when creating a TON NFT Miner, several requests will be executed to the
public API to relay responses to the correct code string in exchange for the
desired instructions. Leveraging the async/await function dramatically
improves code simplicity.

Address parsing:On TON, smart contract addresses come in different forms


that employ numerous flag types. In this context specifically, we use the user-

Created by Nandakishore 231


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

friendly address form. If you are curious to learn more about the different
smart contract address types, feel free to check out this additional resource in
our documentation.

For the miner to work correctly, we need to add two different smart contract
address types. These include:

The Address.parse() method located in the @ton/ton SDK allows the


developer to create an address object to convert addresses from one form to
another in a simplified manner.
Connect to an API provider
In this step, we’ll connect with TON via TON Center, which is hosted on the
toncenter.com API provider, using specific commands in the script.
The simplest way to do it is by specifying the Testnet endpoint
https://testnet.toncenter.com/api/v2/jsonRPC.

Created by Nandakishore 232


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

We add client and endpoint in the ./scripts/mine.ts script using TonClient and
Testnet TON Center endpoint https://testnet.toncenter.com/api/v2/jsonRPC:
CODE
./scripts/mine.ts

import {Address, TonClient} from "@ton/ton"

// ... previous code

// specify endpoint for Testnet


const endpoint = "https://testnet.toncenter.com/api/v2/jsonRPC"

// initialize ton library


const client = new TonClient({ endpoint });

What to do in production?
Using an RPC node provider or running your own ton-http-api instance is
better for that. Read more at the TON Center API page.
Receiving mining data from TON Blockchain
Finally, the next step in the process is to retrieve specific mining data from
TON Blockchain.
By consulting the README file needed to complete the TON onboarding
challenge, the latest TON mining data is obtained by running the
get_mining_data method. Once initiated, the result will be as follows:
As a result, we should receive an array with these fields:
(
int pow_complexity,
int last_success,
int seed,
int target_delta,
int min_cpl,
int max_cpl
)
Running smart contract get methods on TON:Using @ton/ton is possible to
run the client.runMethod(SMART_CONTRACT_ADDRESS, METHOD) function.
Running this code will result in the following console output:
CODE

Created by Nandakishore 233


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

./scripts/mine.ts

// ... previous code

const miningData = await client.runMethod(collectionAddress,


'get_mining_data');

console.log(miningData.stack);

Furthermore, to run the script, it is necessary to enter the following


command in the terminal:

npm run start:script

TIP:To avoid unexpected issues, ensure you have finalized all previous steps,
including inputting contract addresses.

Good! As long as the above processes are executed correctly, a successful


connection to the API will be achieved, and the necessary data will be
displayed in the console. The correct console output should be initiated as
follows:

TupleReader {
Items: [
{
Type: ‘int’,
Value:
72370055773322622139731865630429942408293740416025352524660990
00494570602496n
},
{ type: ‘int’, value: 1730818693n },
{ type: ‘int’, value: 281644526620911853868912633959724884177n },
{ type: ‘int’, value: 30n },
{ type: ‘int’, value: 171n },
{ type: ‘int’, value: 252n }
]}

Created by Nandakishore 234


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

The output above shows data on executing a process with a collection of


numerical (int) values. The current focus is to convert this numerical output
into a more practical format.

We need to convert the hex output to something useful.

GAS PARAMETERS ON TON


Warning: Though this information is highly complex and not necessary for this
tutorial if you’re interested in understanding the complex technical aspects of
TON, consider using these resources:
• To better understand how TON Virtual Machine (TVM) operates and how
TON processes transactions, check out TVM overview section.
• Secondly, if you want to learn more about how transaction and gas fees
work on TON, consider diving into this section of our documentation.
• Finally, to better understand the exact gas values needed to carry out
TVM instructions, see this section of our documentation.
• Now, let’s return to the tutorial!

Numerical mining data in a user-friendly format


In the section above, we discuss numerical (int) values needed to receive
mining data. Before processing, further received data must be converted into
a more easily understandable and usable format.

As it is clear when examining the given output, numbers can be substantial.


We will use bigint (the big number implementation in JavaScript) to deal with
them. BigInt works with large numbers that are more significant than the
maximum number integer values. Let’s use this example to get a better idea of
the Mining Data required for this process:

Created by Nandakishore 235


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

./scripts/mine.ts

// ... previous code

const { stack } = miningData;

const complexity = stack.readBigNumber();


const lastSuccess = stack.readBigNumber();
const seed = stack.readBigNumber();
const targetDelta = stack.readBigNumber();
const minCpl = stack.readBigNumber();
const maxCpl = stack.readBigNumber();

console.log({ complexity, lastSuccess, seed, targetDelta, minCpl, maxCpl });

As shown above, the different components

As shown above, the different components of miningData use stack-based


numbers for different parameters, which will be introduced in the section
below. To achieve the desired value outcome, we used the
stack.readBigNumber() function to read a bigint from the stack.
After this process is complete, we may print values to the console. Try to run
the script again by running the command:

npm run start:script

Here is an example output:

{
complexity:
7237005577332262213973186563042994240829374041602535252466099000494570602496n
,
lastSuccess: 1730818693n,
seed: 281644526620911853868912633959724884177n,
targetDelta: 30n,
minCpl: 171n,
maxCpl: 252n
}

Created by Nandakishore 236


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Let’s cover the Mining Data command that translates different data
parameters when programming mining data into TON Blockchain. These
include:
• Complexity is the most important number for miners. It’s a Proof-of-
Work complexity for the values. You’re successful if the final hash is less
than complexity.
• lastSuccess is a unix timestamp date and time representation that
keeps track of the last mining transaction on TON. Each time the
last_success metric changes, it’s necessary to rerun the miner because
the seed also changes during this process.
• Seed denotes a unique value a smart contract generates to calculate
the desired hash. To better understand this process and learn more
about how the seed changes and why, look at the project files folder
using the ctx_seed keyword (Ctrl+F with the keyword ctx_seed).
• targetDelta, minCpl and maxCpl won’t be used in our tutorial. But you
can always read more about how they are used in smart contracts to
calculate proof-of-work complexity in the source files of the collection
in your project.
Now that we understand the parameters discussed above, we have the
values(complexity, lastSuccess, seed) that we will use in our NFT Miner in the
next chapter.
Prepare an NFT miner
Hey, you’re doing a great job!

After connecting to TON and retrieving the necessary mining data from the
blockchain to create an NFT miner, let’s focus on the next steps in this
process to achieve our goal.

In this chapter, you will prepare a mining message and calculate a hash of the
message. After that, you will find a hash that’s less(<) than the complexity we
got from the smart contract.
That is what a miner is! Simple, isn’t it?

Created by Nandakishore 237


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Preparing mining messages


First, we must prepare a mining message by ensuring the correct parameters
to ensure this process’s validity and data integrity.

Thankfully, the README file allows us to retrieve the correct guidelines to


achieve this goal. As you can see, the above README file comprises a table
with specific fields and cell types (titled “Layout of proof of work cell’) to help
achieve our desired result.
What are cells?
Cells are data storage structures on TON that fulfill numerous purposes,
including increasing network scalability and smart contract transaction
speeds. We won’t get into specifics here, but if you’re interested in
understanding the complexity of cells and how they work, consider diving into
this section of our documentation.
Fortunately, all the data structures used in this tutorial are already written in
TypeScript. Use the MineMessageParams object from NftGiver.data.ts to build
a transaction with Queries:
./scripts/mine.ts

import { unixNow } from '../lib/utils';


import { MineMessageParams, Queries } from '../wrappers/NftGiver';

// ... previous code

const mineParams: MineMessageParams = {


expire: unixNow() + 300, // 5 min is enough to make a transaction
mintTo: walletAddress, // your wallet
data1: 0n, // temp variable to increment in the miner
seed // unique seed from get_mining_data
};

let msg = Queries.mine(mineParams); // transaction builder

Probably you have a question: where are the op and data2 from the table?
• In the table, the numerical value of data1 must equal that of data2. To
omit the filling of the data2 value, the transaction builder performs a
low-level process (see Queries.mine() sources).

Created by Nandakishore 238


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Because the op classification is always constant, it is already


implemented in transaction builder Queries and in OpCodes. You can
find the opcode by going to the source code of the mine() method.
Tip
Though it may be interesting to check out the source code
(../wrappers/NftGiver.ts), but it is unnecessary.

Creating TON NFT miners


Now that we have completed the process to prepare messages for our TON
miner, let’s jump into the initial process to create a miner. First, let’s consider
this line of code:

Let msg = Queries.mine(mineParams);

Above, we compiled a msg value. The idea of mining is to find a hash


msg.hash() that will be less than complexity from the last received
get_mining_data(). We can increment data1 as many times as we need.
The pure miner will continue to run indefinitely if msg.hash() is bigger than
complexity (message hash is larger than PoW mining complexity).
Here is an example of the code running as it relates to BigInt in TypeScript:
/scripts/mine.ts

let msg = Queries.mine(mineParams);

const bufferToBigint = (buffer: Buffer) => BigInt('0x' +


buffer.toString('hex'));

while (bufferToBigint(msg.hash()) > complexity) {


mineParams.expire = unixNow() + 300;
mineParams.data1 += 1n;
msg = Queries.mine(mineParams);
}

console.log('Yoo-hoo, you found something!');

We convert the hash from the msg.hash() to bigint with the bufferToBigint()
function. This is done to use this hash in comparison with complexity

Created by Nandakishore 239


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Though the miner will work properly after completing the above steps, it will
have a visually unappealing appearance (try npm run start:script). Therefore,
we must address this issue. Let’s jump in.

Improving TON miner appearance


We want to make the miner look sexy now! How do we do it?
To achieve our goal, we’ll add these commands:

./scripts/mine.ts

let msg = Queries.mine(mineParams); // transaction builder


let progress = 0;

const bufferToBigint = (buffer: Buffer) => BigInt('0x' +


buffer.toString('hex'));

while (bufferToBigint(msg.hash()) > complexity) {


console.clear()
console.log(`Mining started: please, wait for 30-60 seconds to mine your
NFT!`)
console.log()
console.log(`⛏ Mined ${progress} hashes! Last: `,
bufferToBigint(msg.hash()))

mineParams.expire = unixNow() + 300;


mineParams.data1 += 1n;
msg = Queries.mine(mineParams);
}

console.log()
console.log('💎 Mission completed: msg_hash less than pow_complexity
found!');
console.log()
console.log('msg_hash: ', bufferToBigint(msg.hash()))
console.log('pow_complexity: ', complexity)
console.log('msg_hash < pow_complexity: ', bufferToBigint(msg.hash()) <
complexity);

return msg;

Just check it out! Let’s execute the command:

npm run start:script

Created by Nandakishore 240


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

After executing these commands correctly, we’ll have a visually appealing NFT
miner. In the next section, we’ll focus on connecting a wallet to the miner to
create a payment channel that accepts and receives transactions from TON
Blockchain.

Prepare a transaction
Next, we’ll outline the steps to compile a message and send it to the
blockchain with your Tonkeeper wallet. The upcoming steps will guide you in
completing the process of mining an NFT on TON.

Top up wallet balance via the token faucet


We need to acquire some TON Testnet tokens to proceed to the next step. This
can be achieved using the Testnet faucet found here.

Leverage Blueprint transaction opportunities


To ensure that the NFT mining process is carried out correctly and that the
user can store their NFT properly, we will use Blueprint to simultaneously
interact with TON Blockchain and the Tonkeeper wallet.

To achieve this goal, we’ll use the standard run() function to run to the
creation of the transaction and send it:
./scripts/mine.ts

Created by Nandakishore 241


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

import { toNano } from '@ton/ton';


import { NetworkProvider } from '@ton/blueprint';

async function mine() {


// code from previous steps
}

export async function run(provider: NetworkProvider) {


// Do not forget to return `msg` from `mine()` function
const msg = await mine();

await provider.sender().send({
to: collectionAddress,
value: toNano(0.05),
body: msg
});
}

Let’s run the above script to send transaction:

npm start

Note that we use npm start instead of npm run start:script. This is because
we need to leverage the advantages of the blueprint (under the
hood, blueprint run is called).

After running this command, answer the questions as shown below to


connect your Tonkeeper wallet:

? Which network do you want to use?


> testnet
? Which wallet are you using?
> TON Connect compatible mobile wallet (example: Tonkeeper)
? Choose your wallet (Use arrow keys)
> Tonkeeper

Scan the QR code shown in the terminal with your Tonkeeper wallet to
establish a connection; no transaction has been sent yet. Once connected,
confirm the transaction in Tonkeeper.

Do you sense the experience in the air? That's you on your way to becoming a
TON developer.

Created by Nandakishore 242


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Mine NFT with a wallet


There are two main ways to mine an NFT on TON:

• Simple: NFT Testnet Mining


• Genuine: NFT Mainnet Mining

Simple: NFT Testnet mining

Below are the steps needed to initiate your first Testnet transaction to mine
your NFT:

1. Activate Testnet mode within your Tonkeeper wallet


2. Input our Testnet wallet address from Tonkeeper into
the walletAddress variable in the ./scripts/mine.ts.
3. Input address of the NFT collection from
Testnet into collectionAddress variable in the ./scripts/mine.ts.

Mine a Testnet NFT rocket

To successfully mine an NFT rocket on Testnet, it is necessary to follow these


steps:

1. Open the Tonkeeper wallet on your phone (it should hold some newly
received TON Testnet tokens).
2. Select scan mode in the wallet to scan the QR code.
3. Run your miner to acquire the correct hash (this process takes between
30 and 60 seconds).
4. Follow the steps in the Blueprint dialogue.
5. Scan the generated QR code from the miner.
6. Confirm the transaction in your Tonkeeper wallet.

Created by Nandakishore 243


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Genuine: NFT Mainnet mining

Hey! For those who wish to mine an NFT on TON Mainnet, these instructions
should be followed:

1. You have activated Mainnet mode in your Tonkeeper (it should hold at
least 0.1 TON).
2. Input our Mainnet wallet address from Tonkeeper into
the walletAddress variable in the ./scripts/mine.ts
3. Input address of the NFT collection from the
Mainnet into collectionAddress variable in the ./scripts/mine.ts
4. Replace endpoint to the Mainnet:

./scripts/mine.ts
// specify endpoint for Mainnet
const endpoint = "https://toncenter.com/api/v2/jsonRPC"

Mine a Mainnet NFT rocket

As we outlined in the Testnet NFT rocket mining process, to successfully


mine an NFT rocket on the Mainnet, it is necessary to follow these steps:

1. Open the Tonkeeper wallet on your phone (remember, it should hold


some TON tokens).
2. Select scan mode in the wallet to scan the QR code.
3. Run your miner to acquire the correct hash (this process takes between
30 and 60 seconds).
4. Follow the steps in the Blueprint dialogue.
5. Scan the generated QR code from the miner.
6. Confirm the transaction in your Tonkeeper wallet.

What’s next?
First, take a rest! You did a big task! You are a TON developer now. But it’s only
the beginning of the long way.

Created by Nandakishore 244


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

See also
After finishing the TON onboarding challenge, where we successfully mined
an NFT, consider taking a look at some of these materials that detail different
portions of TON’s Ecosystem:
• What is blockchain? What is a smart contract? What is gas?
• TON Hello World: Step-by-step guide for writing your first smart contract
• Develop Smart Contracts: Introduction
• [YouTube] Ton Dev Study – FunC & Blueprint
• How to work with wallet smart contracts
• FunC Journey: Part 1
• Bot for sales of dumplings
• Mint Your first Jetton
• Step by step NFT collection minting
• How to run TON Site

Getting started
Welcome to the TON Quick start guide! This guide will give you a starting point for further
research into TON concepts and basic practical experience in developing applications with TON
Ecosystem.

Prerequisites
• Basic programming knowledge.
• Around 30 minutes of your time.

Note: We will provide a short explanation of core concepts during the guide, but if
you prefer a more theoretical approach, you can check out the core concepts of TON
Blockchain first.

What you'll learn


• Understand the key principles of TON Blockchain, including messages, smart
contracts, and addresses.

Created by Nandakishore 245


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Interact with TON Ecosystem, including wallets and blockchain explorers.


• Interact with TON Blockchain, such as reading from and writing data.
• Set up a development environment using the SDK for smart contract development.
• Start writing smart contracts using the FunC, Tolk, and Tact programming languages
in TON.

Concept of smart contract


You can think of smart contracts in TON as programs running on the blockchain, following the
well-known behavioral concept of the actor model.

INFO

In contrast to some other blockchains, where you can call other contract codes synchronously, a
smart contract in TON is a standalone entity that communicates with other smart contracts on an
equal basis by sending asynchronous messages between them.

Each processing of a message by the receiving smart contract is considered a transaction,


resulting in the following actions:

• Sending further messages.


• Changing internal data or even the code of the smart contract itself.
• Changing its balance.

The available interfaces of a smart contract are:

• Receiving internal messages from another smart contract.


• Receiving external messages from outside the blockchain.
• Receiving get methods requests from outside the blockchain.

In contrast to internal and external messages, get methods are not considered a transaction.
They are special functions of the smart contract that cannot change the contract's internal state or
perform any other action except querying specific data from the contract's state.

INFO

Contrary to what might seem intuitive, invoking get methods from other contracts is not
possible.

Created by Nandakishore 246


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Interacting with TON Ecosystem


Before we start our journey to becoming TON developers, we should become advanced users of
TON! Let's create your own wallet, send a few transactions, and see how our actions are
reflected on the blockchain using explorers.

Step 1: create a new wallet using an app

The simplest way to create a wallet is to visit https://ton.org/wallets and choose one of the wallet
apps from the list. They are all pretty similar, so let's choose Tonkeeper. Go ahead, install it, and
run it.

Step 2: Mainnet and Testnet

In TON, there are two different networks called Mainnet and Testnet, each with distinct roles:

• Mainnet is the primary network where actual transactions take place, carrying real
economic value as they involve real cryptocurrency.
• Testnet is a testing version of TON Blockchain designed for development and testing
purposes. It's a risk-free zone for developers to test without financial implications.
It's mainly used for development, testing smart contracts, and trying new features.

Getting funds

Transactions in TON always require some amount of funds, as executing a smart contract code
requires a fee payment. TON basic transactions are very cheap—about 1 cent per transaction.
Getting the equivalent of $5 worth of Toncoin will be enough for hundreds of them. Here’s how
you can get them:

• For Mainnet, you can get Toncoins by simply pressing the buy button in the user
interface or asking someone to send them to your address. You can copy the address
from the wallet app, which is usually located near your balance.

INFO
Don't worry, sharing your address is totally safe, unless you don't want it to be associated with
you.

Created by Nandakishore 247


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• For the Testnet version, you can request funds from the Testgiver Ton
Bot completely for free! After a short wait, you will receive 2 Toncoins that will
appear in your wallet app.

Step 3: creating Testnet wallet

If you decide to use the Testnet version, you can do so by following the guide below.

Generating a mnemonic

To create your first Testnet wallet in Tonkeeper, you should obtain a mnemonic using the button
below. Do not forget to save this phrase!

Your mnemonic:
property grant mechanic blade involve column midnight distance achieve fat duty grunt
merge early price math taxi shield taxi choose found involve boss announce

Regenerate mnemonic

Creating wallet

To create Testnet wallet, click Wallet -> Add Wallet -> TestnetAccount. Then, import the seed
phrase generated in the previous step.

Created by Nandakishore 248


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Step 4: exploring TON Blockchain

Congratulations! We’ve created our first wallet and received some funds in it. Now, let's take a
look at how our actions are reflected in the blockchain. We can do this by using
various explorers.

An explorer is a tool that allows you to query data from the chain, investigate TON smart
contracts, and view transactions. For our examples, we are going to use Tonviewer.

TIP

Note that when using the Testnet, you should manually change the explorer mode to
the Testnet version. Don't forget that these are different networks that do not share any
transactions or smart contracts. Therefore, your Testnet wallet will not be visible
in Mainnet mode and vice versa.

Let's take a look at our newly created wallet using the explorer: copy your wallet address from
the app and insert it into the search bar of the explorer like this:

Address state

First, let's examine the common address state of our smart contract:

• Nonexisting: If you haven't received funds to your address yet, you will see the
default state for any address that has not been used before and, therefore, has no
data.

Created by Nandakishore 249


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Uninit: Stands for an address that has some metadata, such as funds, but hasn't
been initialized by deployed smart contract code or data.

INFO

This might seem unintuitive: why is your wallet in the uninit state when you’ve already created
it? There is a small difference between the wallet app and the wallet smart contract:

• The wallet app is your off-chain client for the wallet smart contract.
• The wallet smart contract is the contract itself. Since its deployment requires some
fees, most wallet apps don’t actually deploy the wallet smart contract until you
receive funds on your address and try to make your first transaction.

Created by Nandakishore 250


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

• Active: This is the state of a deployed smart contract with a positive balance. To
deploy our wallet, let's send the first transaction to someone special—ourselves—
and see how it looks on the blockchain. Enter the send menu in your wallet app and
transfer some funds to your own address that you’ve copied before. In the explorer,
our contract should start looking something like this:

INFO

There is also a fourth state called frozen, which stands for a smart contract with a storage
charge that exceeds its balance. In this state, the smart contract cannot perform any operations.

And here we are — our wallet contract is deployed and ready to use. Let's examine the provided
user interface:

Metadata section

• Address: Your account's unique ID (e.g., QQB...1g6VdFEg).


• Balance: Current TON amount.
• Type: Contract version (e.g., wallet_v5r1 – detected automatically by code).
• State: Address state. It may be nonexisting, uninit, active, or frozen.

Created by Nandakishore 251


BLOCKCHAIN DEVELOPER FULL ROADMAP(theory)

Navigation tabs

• History/Transactions: Displays recent activity (e.g., received funds, contract


deployments).
• Code: Shows raw smart contract code compiled from FunC/Tact/Tolk.
• Methods: Allows execution of get methods to retrieve persistent contract data.

Next steps
• Now that you’ve tried the wallet app, take a moment to explore further: create
another wallet account, try sending some TON between them, and observe how the
transactions appear in the explorer.

Next part is continuing with TVM AND


EVM’S based .

Created by Nandakishore 252

You might also like