From Wikipedia, the free encyclopedia
For other uses, see Block chain (disambiguation).
A blockchain is a distributed ledger with growing lists of records (blocks) that are
securely linked together via cryptographic hashes.[1][2][3][4] Each block contains a cryptographic hash
of
the previous block, a timestamp, and transaction data (generally represented as a Merkle tree, where
data
nodes are represented by leaves). Since each block contains information about the previous block, they
effectively form a chain (compare linked list data structure), with each additional block linking to the
ones before it. Consequently, blockchain transactions are irreversible in that, once they are recorded,
the
data in any given block cannot be altered retroactively without altering all
subsequent blocks.
Blockchains are typically managed by a peer-to-peer (P2P) computer network for use as a public
distributed ledger, where nodes collectively adhere to a consensus algorithm protocol to add and validate
new
transaction blocks. Although blockchain records are not unalterable, since blockchain forks are possible,
blockchains may be considered secure by design and exemplify a distributed computing system with high
Byzantine
fault tolerance.[5]
A blockchain was created by a person (or group of people) using the name (or pseudonym) Satoshi Nakamoto in
2008
to serve as the public distributed ledger for bitcoin cryptocurrency transactions, based on previous work by
Stuart Haber, W. Scott Stornetta, and Dave Bayer.[6] The implementation of the blockchain within bitcoin
made it
the first digital currency to solve the double-spending problem without the need of a trusted authority or
central server. The bitcoin design has inspired other applications[3][2] and blockchains that are readable
by
the public and are widely used by cryptocurrencies. The blockchain may be considered a type of payment
rail.[7]
Private blockchains have been proposed for business use. Computerworld called the marketing of such
privatized
blockchains without a proper security model "snake oil";[8] however, others have argued that permissioned
blockchains, if carefully designed, may be more decentralized and therefore more secure in practice than
permissionless ones.[4][9]
History
Cryptographer David Chaum first proposed a blockchain-like protocol in his 1982 dissertation
"Computer Systems Established, Maintained, and Trusted by Mutually Suspicious Groups."[10] Further work
on a
cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott
Stornetta.[4][11] They wanted to implement a system wherein document timestamps could not be tampered
with.
In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees into the design, which improved its
efficiency by allowing several document certificates to be collected into one block.[4][12] Under their
company Surety, their document certificate hashes have been published in The New York Times every week
since
1995.[13]
The first decentralized blockchain was conceptualized by a person (or group of people) known as Satoshi
Nakamoto in 2008. Nakamoto improved the design in an important way using a Hashcash-like method to
timestamp
blocks without requiring them to be signed by a trusted party and introducing a difficulty parameter to
stabilize the rate at which blocks are added to the chain.[4] The design was implemented the following
year
by Nakamoto as a core component of the cryptocurrency bitcoin, where it serves as the public ledger for
all
transactions on the network.[3]
In August 2014, the bitcoin blockchain file size, containing records of all transactions that have
occurred
on the network, reached 20 GB (gigabytes).[14] In January 2015, the size had grown to almost 30 GB, and
from
January 2016 to January 2017, the bitcoin blockchain grew from 50 GB to 100 GB in size. The ledger size
had
exceeded 200 GB by early 2020.
The words block and chain were used separately in Satoshi Nakamoto's original paper, but were eventually
popularized as a single word, blockchain, by 2016.[16]
According to Accenture, an application of the diffusion of innovations theory suggests that blockchains
attained a 13.5% adoption rate within financial services in 2016, therefore reaching the early adopters'
phase.[17] Industry trade groups joined to create the Global Blockchain Forum in 2016, an initiative of
the
Chamber of Digital Commerce.
In May 2018, Gartner found that only 1% of CIOs indicated any kind of blockchain adoption within their
organisations, and only 8% of CIOs were in the short-term "planning or [looking at] active
experimentation
with blockchain".[18] For the year 2019 Gartner reported 5% of CIOs believed blockchain technology was a
'game-changer' for their business.[19]
Structure and design
A blockchain is a decentralized, distributed, and often public, digital ledger consisting of records
called
blocks that are used to record transactions across many computers so that any involved block cannot be
altered retroactively, without the alteration of all subsequent blocks.[3][20]
This allows the participants to verify and audit transactions independently and relatively
inexpensively.[21] A blockchain database is managed autonomously using a peer-to-peer network and a
distributed timestamping server. They are authenticated by mass collaboration powered by collective
self-interests.[22]
Such a design facilitates robust workflow where participants' uncertainty regarding data security is
marginal. The use of a blockchain removes the characteristic of infinite reproducibility from a digital
asset. It confirms that each unit of value was transferred only once, solving the long-standing problem
of
double-spending. A blockchain has been described as a value-exchange protocol.[23]
A blockchain can maintain title rights because, when properly set up to detail the exchange agreement,
it
provides a record that compels offer and acceptance.[citation needed]
Logically, a blockchain can be seen as consisting of several layers:[24]
- Infrastructure
- networking(node discovery,information propagation[25]and verification)
- consensus(proof of work,poor of stake)
- deta(blocks,transactions)
- application(smart contracts/decentralized application,if applicable)
Blocks
Blocks hold batches of valid transactions that are hashed and encoded into a Merkle tree.[3] Each block
includes the cryptographic hash of the prior block in the blockchain, linking the two. The linked blocks
form a chain.[3] This iterative process confirms the integrity of the previous block, all the way back
to
the initial block, which is known as the genesis block (Block 0).[26][27] To assure the integrity of a
block
and the data contained in it, the block is usually digitally signed.[28]
Sometimes separate blocks can be produced concurrently, creating a temporary fork. In addition to a
secure
hash-based history, any blockchain has a specified algorithm for scoring different versions of the
history
so that one with a higher score can be selected over others. Blocks not selected for inclusion in the
chain
are called orphan blocks.[27] Peers supporting the database have different versions of the history from
time
to time. They keep only the highest-scoring version of the database known to them. Whenever a peer
receives
a higher-scoring version (usually the old version with a single new block added) they extend or
overwrite
their own database and retransmit the improvement to their peers. There is never an absolute guarantee
that
any particular entry will remain in the best version of history forever. Blockchains are typically built
to
add the score of new blocks onto old blocks and are given incentives to extend with new blocks rather
than
overwrite old blocks. Therefore, the probability of an entry becoming superseded decreases
exponentially[29]
as more blocks are built on top of it, eventually becoming very low.[3][30]: ch. 08 [31] For example,
bitcoin uses a proof-of-work system, where the chain with the most cumulative proof-of-work is
considered
the valid one by the network. There are a number of methods that can be used to demonstrate a sufficient
level of computation. Within a blockchain the computation is carried out redundantly rather than in the
traditional segregated and parallel manner.[32]
Block time
The block time is the average time it takes for the network to generate one extra block in the
blockchain. By
the time of block completion, the included data becomes verifiable. In cryptocurrency, this is
practically
when the transaction takes place, so a shorter block time means faster transactions. The block time for
Ethereum is set to between 14 and 15 seconds, while for bitcoin it is on average 10
minutes.[33]