Introduction To Blockchain

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Introduction to blockchain

There are various definitions of blockchain; it depends on how you look at it. If you look at it from a business
perspective it can be defined in that context, if you look at it from a technical perspective one can define it
in view of that.

Blockchain at its core is a peer-to-peer distributed ledger that is cryptographically secure, append-only,
immutable (extremely hard to change), and updateable only via consensus or agreement among peers.

Blockchain can be thought of as a layer of a distributed peer-to-peer network running on top of the Internet,
as can be seen below in the diagram. It is analogous to SMTP, HTTP, or FTP running on top of TCP/IP. This is
shown in the following diagram:

The network view of a blockchain

From a business point of view a blockchain can be defined as a platform whereby peers can exchange values
using transactions without the need for a central trusted arbitrator. This is a powerful concept and once
readers understand it they will realize the tsunamic potential of blockchain technology. This allows
blockchain to be a decentralized consensus mechanism where no single authority is in charge of the
database.

A block is simply a selection of transactions bundled together in order to organize them logically. It is made
up of transactions and its size is variable depending on the type and design of the blockchain in use. A
reference to a previous block is also included in the block unless it's a genesis block. A genesis block is the
first block in the blockchain that was hardcoded at the time the blockchain was started. The structure of a
block is also dependent on the type and design of a blockchain, but generally there are a few attributes that
are essential to the functionality of a block, such as the block header, pointers to previous blocks, the time
stamp, nonce, transaction counter, transactions, and other attributes.

This is shown in a simple block diagram as follows. This is a general depiction of a block; specific block
structures relative to their blockchain technologies will be discussed later in the book with more in-depth
technical details:
The structure of a block

Various technical definitions of blockchains

Blockchain is a decentralized consensus mechanism. In a blockchain, all peers eventually come to an


agreement regarding the state of a transaction.

Blockchain is a distributed shared ledger. Blockchain can be considered a shared ledger of


transactions. The transaction are ordered and grouped into blocks. Currently, the real-world model
is based on private databases that each organization maintains whereas the distributed ledger can
serve as a single source of truth for all member organizations that are using the blockchain.

Blockchain is a data structure; it is basically a linked list that uses hash pointers instead of normal
pointers. Hash pointers are used to point to the previous block.

The structure of a generic blockchain can be visualized with the help of the following diagram:

Generic structure of a blockchain

Generic elements of a blockchain


In this section, the generic elements of blockchain are presented. More precise elements will be discussed in
the context of their respective blockchains in later chapters, for example, the Ethereum blockchain.

Addresses
Addresses are unique identifiers that are used in a transaction on the blockchain to denote senders and
recipients. An address is usually a public key or derived from a public key. While addresses can be reused by
the same user, addresses themselves are unique. In practice, however, a single user may not use the same
address again and generate a new one for each transaction. This newly generated address will be unique.
Bitcoin is in fact a pseudonymous system. End users are usually not directly identifiable but some research in
de-anonymizing bitcoin users have shown that users can be identified successfully. As a good practice it is
suggested that users generate a new address for each transaction in order to avoid linking transactions to
the common owner, thus avoiding identification.

Transaction
A transaction is the fundamental unit of a blockchain. A transaction represents a transfer of value from one
address to another.

Block
A block is composed of multiple transactions and some other elements such as the previous block hash (hash
pointer), timestamp, and nonce.

Peer-to-peer network
As the name implies, this is a network topology whereby all peers can communicate with each other and
send and receive messages.

Scripting or programming language


This element performs various operations on a transaction. Transaction scripts are predefined sets of
commands for nodes to transfer tokens from one address to another and perform various other functions.
Turing complete programming language is a desirable feature of blockchains; however, the security of such
languages is a key question and an area of important and ongoing research.

Virtual machine
This is an extension of a transaction script. A virtual machine allows Turing complete code to be run on a
blockchain (as smart contracts) whereas a transaction script can be limited in its operation. Virtual machines
are not available on all blockchains; however, various blockchains use virtual machines to run programs, for
example Ethereum Virtual Machine (EVM EVM) and Chain Virtual Machine (CVM CVM).

State machine
A blockchain can be viewed as a state transition mechanism whereby a state is modified from its initial form
to the next and eventually to a final form as a result of a transaction execution and validation process by
nodes.

Nodes
A node in a blockchain network performs various functions depending on the role it takes. A node can
propose and validate transactions and perform mining to facilitate consensus and secure the blockchain.
This is done by following a consensus protocol. (Most commonly this is PoW.) Nodes can also perform other
functions such as simple payment verification (lightweight nodes), validators, and many others functions
depending on the type of the blockchain used and the role assigned to the node.

Smart contracts
These programs run on top of the blockchain and encapsulate the business logic to be executed when
certain conditions are met. The smart contract feature is not available in all blockchains but is now
becoming a very desirable feature due to the flexibility and power it provides to the blockchain applications.

Features of a blockchain
A blockchain performs various functions. These are described below in detail.

Distributed consensus
Distributed consensus is the major underpinning of a blockchain. This enables a blockchain to present a
single version of truth that is agreed upon by all parties without the requirement of a central authority.

Transaction verification
Any transactions posted from nodes on the blockchain are verified based on a predetermined set of rules
and only valid transactions are selected for inclusion in a block.

Platforms for smart contracts


A blockchain is a platform where programs can run that execute business logic on behalf of the users. As
explained earlier, not all blockchains have a mechanism to execute smart contracts; however, this is now a
very desirable feature.
Transferring value between peers
Blockchain enables the transfer of value between its users via tokens. Tokens can be thought of as a carrier
of value.

Generating cryptocurrency
This is an optional feature depending on the type of blockchain used. A blockchain can generate
cryptocurrency as an incentive to its miners who validate the transactions and spend resources in order to
secure the blockchain.

Smart property
For the first time it is possible to link a digital or physical asset to the blockchain in an irrevocable manner,
such that it cannot be claimed by anyone else; you are in full control of your asset and it cannot be double
spent or double owned. Compare it with a digital music file, for example, which can be copied many times
without any control; on a blockchain, however, if you own it no one else can claim it unless you decide to
transfer it to someone. This feature has far-reaching implications especially in Digital Rights
Management (DRM
DRM) and electronic cash systems where double spend detection is a key requirement. The
double spend problem was first solved in bitcoin.

Provider of security
Blockchain is based on proven cryptographic technology that ensures the integrity and availability of data.
Generally, confidentiality is not provided due to the requirements of transparency. This has become a main
barrier for its adaptability by financial institutions and other industries that need privacy and confidentiality
of transactions. As such it is being researched very actively and there is already some good progress made.
It could be argued that in many situations confidentiality is not really needed and transparency is preferred
instead. For example, in bitcoin confidentiality is not really required; however, it is desirable in some
scenarios. Research in this area is very ripe and already major progress has been made towards providing
confidentiality and privacy on blockchain. A more recent example is Zcash, which will be discussed in more
detail in later chapters. Other security services such as nonrepudiation and authentication are also provided
by blockchain as all actions are secured by using private keys and digital signatures.

Immutability
This is another key feature of blockchain: records once added onto the blockchain are immutable. There is
the possibility of rolling back the changes but this is considered almost impossible to do as it will require an
una"ordable amount of computing resources. For example, in much desirable case of bitcoin if a malicious
user wants to alter the previous blocks then it would require computing the PoW again for all those blocks
that have already been added to the blockchain. This di#culty makes the records on a blockchain
practically immutable.

Uniqueness
This feature of blockchain ensures that every transaction is unique and has not been spent already. This is
especially relevant in cryptocurrencies where much desirable detection and avoidance of double spending
are a key requirement.

Smart contracts
Blockchain provides a platform to run smart contracts. These are automated autonomous programs that
reside on the blockchain and encapsulate business logic and code in order to execute a required function
when certain conditions are met. This is indeed a revolutionary feature of blockchain as it allows flexibility,
programmability, and much desirable control of actions that users of blockchain need to perform according
to their specific business requirements.

Applications of blockchain technology


Blockchain technology has a multitude of applications in various sectors including but not limited to finance,
government, media, law, and arts. More light will be shed on these aspects in Chapter 9, Hyperledger where
practical use cases will be discussed in detail for various industries. It is su#cient to say for now that almost
all industries have already realized the potential and promise of blockchain and have already embarked, or
soon will embark, on the journey to benefit from the blockchain technology.
In the following section, a general scheme of creating blocks is discussed. This is presented here to give
readers a general idea of how blocks are generated and what the relationship is between transactions
and blocks.

How blockchains accumulate blocks

1. A node starts a transaction by signing it with its private key.

2. The transaction is propagated (flooded) by using much desirable Gossip protocol to peers, which
validates the transaction based on pre-set criteria. Usually, more than one node is required to
validate the transactions.

3. Once the transaction is validated, it is included in a block, which is then propagated on to the
network. At this point, the transaction is considered confirmed.

4. The newly created block now becomes part of the ledger and the next block links itself
cryptographically back to this block. This link is a hash pointer. At this stage, the transaction gets its
second confirmation and the block gets its first.

5. Transactions are then reconfirmed every time a new block is created. Usually, six confirmations in the
bitcoin network are required to consider the transaction final.

Steps 4 and 5 can be considered non-compulsory as the transaction itself is finalized in step 3; however,
block confirmation and further transaction reconfirmations, if required, are then carried out in steps 4 and 5.

Tiers of blockchain technology


In this section, various tiers of blockchain technology are discussed. It is envisaged that, due to the rapid
development and progress made in blockchain technology, many applications will evolve over time. Some
have already been realized while some can be envisioned for the future based on the current rate of
advancement in the blockchain technology.

First, the three levels discussed below were originally described by Melanie Swan in her book Blockchain,
Blueprint for a New Economy as tiers of blockchain categorized on the basis of applications in each
category. In addition to this, Tier X or Generation X is discussed later. This is what the author thinks will
become a reality when the blockchain technology becomes advanced enough.

Blockchain 1.0
This was introduced with the invention of bitcoin and is basically used for cryptocurrencies. Also, as bitcoin
was the first implementation of cryptocurrencies it makes sense to categorize Generation 1 of blockchain
technology to only include cryptographic currencies. All alternative coins and bitcoin fall into this category.
This includes core applications such as payments and applications.

Blockchain 2.0
Generation 2.0 blockchains are used by financial services and contracts are introduced in this generation.
This includes various financial assets, for example derivatives, options, swaps, and bonds. Applications that
are beyond currency, finance, and markets are included at this tier.

Blockchain 3.0
Generation 3 blockchains are used to implement applications beyond the financial services industry and are
used in more general-purpose industries such as government, health, media, the arts, and justice.

Generation X (Blockchain X)
This is a vision of blockchain singularity where one day we will have a public blockchain service available
that anyone can use just like the Google search engine. It will provide services in all realms of society. This is
a public open distributed ledger with general-purpose rational agents (Machina Economicus) running on
blockchain, making decisions and interacting with other intelligent autonomous agents on behalf of humans
and regulated by code instead of law or paper contracts. This will be elaborated in detail in Chapter 13,
Current Landscape and What's Next.

You might also like