Block chain (database)

From Wikipedia, the free encyclopedia
 distributed_database

A block chain or blockchain is a distributed database that maintains a continuously growing list of data records hardened against tampering and revision, even by its operators. The client programs running any one such distributed database form a blockchain network.

The initial and most widely known application of blockchain technology is the public ledger of transactions for the software application Bitcoin, which has been the inspiration for new implementations which may or may not be similar in function or design to the Bitcoin protocol.

image-4

Other distinguishing characteristics of blockchains include various means to achieve consensus across their networks, such as proof of work, proof of stake, as well as controlling write permissions to the blockchain through the use of cryptographic digital signatures.

Etymology

The block chain consists of blocks that hold timestamped batches of recent valid transactions. Each block includes the hash of the prior block, linking the blocks together. The linked blocks form a chain, with each additional block reinforcing those before it, thus giving the database type its name. The original definition was written by Satoshi Nakamoto and found in the original source code of bitcoin.

Model

A block chain implementation consists of two kinds of records: transactions and blocks.

bitcoin-blockchain-recreation

Transactions

Transactions are the content to be stored in the block chain. Transactions are created by participants using the system. In the case of cryptocurrencies, a transaction is created any time a bitcoin owner sends cryptocurrency to another.

System users create transactions that are passed from node to node on a best-effort basis. The system implementing the block chain defines a valid transaction. In cryptocurrency applications, a valid transaction must be digitally signed, spend one or more unspent outputs of previous transactions, and the sum of transaction outputs must not exceed the sum of inputs.

Blocks

Blocks record and confirm when and in what sequence transactions enter and are logged in the block chain. Blocks are created by users known as “miners” who use specialized software or equipment designed specifically to create blocks.

In a cryptocurrency system, miners are incentivized to create blocks to collect two types of rewards: a pre-defined per-block award, and fees offered within the transactions themselves, payable to any miner who successfully confirms the transaction.

Decentralisation

Every node in a decentralized cryptocurrency system has at least a partial copy of the block chain. This avoids the need to have a centralized database. Transactions of the form payer X sends Y currency to payee Z are broadcast to this network using software applications. Network nodes can validate transactions, add them to their copy and then broadcast these ledger additions to other nodes.

Cryptocurrencies use various timestamping schemes, such as proof-of-work, to avoid the need for a trusted third party to timestamp transactions. This prevents users from double-spending their coins. Whereas a conventional ledger records the transfers of actual bills or promissory notes that exist apart from it, the block chain is the only place that cryptocurrency can be said to exist, in the form of unspent outputs of transactions.

Permissioned blockchains, by contrast, use pre-approved validator nodes to administer a blockchain network.

Advantages

The core advantages of the block chain architecture include the following:

  • The ability for independent nodes to converge on a consensus of the latest version of a large data set such as a ledger, even when the nodes are run anonymously, have poor interconnectivity and have operators who are dishonest or malicious (see Sybil attack).
  • The ability for any well-connected node to determine, with reasonable certainty, whether a transaction does or does not exist in the data set (see consistency).
  • The ability for any node that creates a transaction to, after a confirmation period, determine with a reasonable level of certainty whether the transaction is valid, able to take place and become final (i.e., that no conflicting transactions were confirmed into the block chain elsewhere that would invalidate the transaction, such as the same currency units “double-spent” somewhere else).
  • A prohibitively high cost to attempt to rewrite or alter transaction history.
  • Automated conflict resolution that ensures that conflicting transactions (such as two or more attempts to spend the same balance in different places) never become part of the confirmed data set.

Debates on classification

An ongoing debate disputes whether a private system with verifiers tasked and authorized (permissioned) by a central authority, should still be considered a block chain.

Proponents of permissioned or private chains argue that the term “blockchain” is rightly applied to any data structure which batches data into blocks which are timestamped. Depending on the type of blockchain data structure involved, proponents classify these blockchains serve as a distributed version of multiversion concurrency control (MVCC) in databases (in the case of Bitcoin-derived UTXO-based systems) or finite-state machine automata (in the case of Ethereum-derived account based systems). Systems such as these are commonly described as “blockchains” and increasingly seen in commercial use among financial institutions, systems integrators and technology providers alike.

Opponents say that the permissioned systems look like traditional corporate databases, not supporting decentralized verification of the data.

Newer designs

Newer designs are based on bitcoin conceptually, but differ in the code and/or cryptographic primitives used to implement them, and the applications they are designed to solve. These designs add functionality above and beyond the functionality bitcoin block chain supports; they can provide solutions including other digital currencies, target performance, anonymity, storage and applications such as smart contracts.

smartflakes05

Trusted timestamp

The bitcoin block chain can be used as a trusted timestamp for arbitrary messages. Third party application services store messages directly in the block chain, allowing anyone who has the block chain to read the message. Bitcoin Core developer Mike Hearn among others discouraged embedding large messages in the bitcoin block chain, criticizing it as “bloat“.

Other applications store a hash value in the block chain, recording data existence and confirming data integrity without revealing data and without bloating the block chain. This information can be used to implement “colored coins” or side chains to support functionality such as smart contracts.

Other uses

Cooperative storage cloud solutions sometimes employ block chain technology to regulate exchange of data or actual payments for storage space.

Wikipedia –