Technical Description Of Blockchain
The first blockchain that was built using the principles described by its originator Satoshi Nakamoto in his famous white paper—Bitcoin: A Peer-to-Peer Electronic Cash System.
Bitcoin (the cryptocurrency)
The digital token on the Bitcoin blockchain that is mined and used as a cryptocurrency. Bitcoin has demonstrated that using a blockchain anyone can exchange digital currencies without a central clearinghouse and without disclosing their identities. Since 2009 when it was launched, Bitcoin has become one of the largest payment systems in the world.
Public-Private Key Encryption
In the early days of the internet, sending private messages was difficult. To send an encrypted message, it would be scrambled using key (also called cipher), and then decoded by the recipient using the same key. The key had to be agreed upon before exchanging the messages, and had to be separately communicated to the recipient before the message itself. Hence if a key were compromised, the encryption stood defeated.
Public-private key encryption overcame this problem by eliminating the need for a shared key, but by using a pair of keys—a widely disseminated public key and a private key. The party sending the message can encrypt it using the receiver’s public key, which can then only be decrypted by the receiver using the private key.
In 1978, a team of cryptographers in MIT developed the RSA algorithm to create a mathematically linked set of public and private keys generated by multiplying together two large prime numbers, since while multiplying them is easy, it is exceptionally difficult to prime factorize the result in reverse. The RSA algorithm enabled people to broadcast their public keys widely, knowing that it would be nearly impossible to uncover the underlying private keys. This then further led to the development of the concept of digital signatures.
Bitcoin relies on public-private key cryptography for people to create their Bitcoin accounts under a digital alias without seeking anyone’s permission. Having created an account, people can then send Bitcoins to anyone in the world by executing and signing digitally a transaction with a private key. Members (or nodes) of the network then verify that the transaction is valid and update the balances of the corresponding Bitcoin accounts by recording them in the blockchain using the Bitcoin protocol—a free and open source software.
A hash function takes an input value (any data like numbers, files, etc) and creates an output value deterministic of the input value. For any x input value, you will always receive the same y=f(x) output value whenever the hash function f is run. In this way, every input has a determined output. For example, the hash function MD5 (a commonly used function for validating data integrity) creates a 32 character hexadecimal output from any input data:
MD5(”hello world”) = 5eb63bbbe01eeed093cb22bb8f5acdc3
Hash functions are generally irreversible (one-way), which means you can’t figure out the input if you only know the output – unless you try every possible input (called a brute-force attack). Hash functions are often used for proving that something is the same as something else, without revealing the information beforehand.
In case of a blockchain, every new block added to the blockchain database, contains a hash (cryptographic hash) of the previous block, which makes it tamper-resistant. This is because changing any particular transaction in the blockchain database would change the hash of the block being tampered with, which would cascade to all the subsequent blocks added in the blockchain.
A node can be a computer or some other network device like a printer which has a unique network address to permit exchange of data. Hence the nodes can create, receive, store or send data along the network routes.
P2P implies that there is no central point in the system or network, all nodes act in conjunction with each other to collectively achieve the output. In other words each node can act as a server for the others to allow sharing of data without the need for a central server. All peers are equally privileged.
The core of a block’s header is a unique fingerprint or hash of all the transactions contained in that block, along with a timestamp and a hash of the previous block.
Sets of transactions are grouped together into blocks which are then linked together in a sequential time stamped chain using the information in the respective block headers. The entire chain of blocks is then referred to as the blockchain. In the case of the Bitcoin blockchain, each block stores information about transfers of Bitcoin from one member to another.
Protocol (or Protocol Layer)
The protocol is that set of special rules that nodes in a blockchain network use when they transmit or receive information and by which consensus is maintained across the network. A similar example would be the TCP/IP protocol which forms the backbone of communication on the internet itself.
Proof of Work (PoW)
A Proof of Work algorithm (PoW) is how new Blocks are created or mined on the blockchain. The goal of PoW is to discover a number which is the solution to a mathematical problem. The number must be computationally difficult to find but easy to verify by anyone on the network. This is the core idea behind Proof of Work.
In the case of the Bitcoin blockchain, while generating a hash for any given block need not be challenging, the Bitcoin protocol purposefully makes this task difficult by requiring that a block’s hash begin with a specified number of leading zeroes, which constitutes the PoW. Any computer trying to generate a valid hash must run through repeated calculations to meet the protocol’s stringent requirements.
Ultimately, the Bitcoin protocol creates what can be regarded as a “state transition system”. Every ten minutes, the Bitcoin network updates its “state”, calculating the balances of all existing Bitcoin accounts. The PoW consensus algorithm serves as a “state transition function” that takes the current state of the Bitcoin network and updates it with a new set of Bitcoin transactions. Even though Bitcoin lacks a central clearinghouse, users gain assurance that the balance of every Bitcoin account is accurate at any given time. The protocol enables trusted peer-to-peer transactions between people who do not know and hence may not trust, one another. This is why blockchain technology is called a trustless system.
The nodes which carry out the intensive PoW computations and solve the mathematical puzzle required for them to generate the hash needed to add a new block on the blockchain are usually referred to as Miners. The Bitcoin protocol adjusts the difficulty of the mathematical puzzle depending on the number of miners on the Bitcoin network participating in the PoW game to ensure that a new block gets added approximately every ten minutes. The more the number of miners, the harder it becomes to generate a valid hash with an appropriate number of leading zeroes.
Having arrived at a valid hash, the miner then broadcasts the same to the rest of the network, which re-verify it using a simple calculation at their end, and then adds the block to their local blockchain copies.
Consensus Mechanism and Soft Forks
The Bitcoin protocol incorporates a consensus mechanism that helps members of the network agree on whether a Bitcoin transaction is valid and should be recorded in the blockchain and who owns what amount of Bitcoins at any given point in time. Occasionally, the Bitcoin network soft forks or splits into multiple copies when different portions of the network append a different block to the blockchain. This could happen for different reasons, for example, when an updated version of the client running the Bitcoin network is released, and a number of nodes connected to the network fail to update their software.
When the Bitcoin blockchain soft forks, the database structure turns into a tree rather than a linear chain. To ensure that the network converges towards the same branch of the tree, the Bitcoin protocol implements a fork rule stipulating that in case of a fork, miners should always pick the longest chain — that is, the branch with the most confirmed blocks as measured by computational power required to validate these blocks. This rule enables the Bitcoin protocol to preserve consensus throughout the network. If a majority of the network agrees on a particular chain of transactions, that chain is presumed valid.
Bitcoin holders thus trust that at any given time, those controlling a majority of the computational power supporting the Bitcoin network are acting in accordance with the protocol’s rules, verifying transactions and recording new blocks to the longest chain.
Tokens - Incentives for Mining
To compensate for the cost of engaging in Bitcoin mining, the Bitcoin protocol implements an incentivisation scheme to encourage people to maintain the Bitcoin chain. Every time a miner generates a valid hash for a new block of transactions, the Bitcoin network will credit the miner’s account with a specific amount of a digital native token or Bitcoin—known as block reward—along with transaction fees. Miners on the Bitcoin network thus have an economic incentive to validate transactions and engage in the PoW guessing game.
Because the Bitcoin protocol is only programmed to allocate 21 million Bitcoins, the block reward program progressively decreases over time —halving once every approximately four years from its launch in January 2009 until approximately 2140. Tokens such as Bitcoins thus represent digital assets that have ownership and are transferable.
In general, tokens are digital assets that can be owned and transferred. They can be native tokens of a blockchain like Bitcoins and ether, or tokens of blockchains forked from Bitcoin or Etheruem or others (BitCash, Monrero), or tokens created on a new protocol implemented on top of existing blockchains like Bitcoin and Ethereum (Augur, Gnosis).