The strength of blockchain comes from it decentralised nature; it is able to streamline, protect, and order, operational processes and activities, then enable the anonymous exchange of digital assets. The ‘operations on digital assets’ happen using ‘wallets’. These can be core wallets (requiring the full blockchain to be downloaded to your computer) or lightweight wallets (that store the blockchain on their servers and broadcast all transactions to the network). In either case, a wallet is capable of holding private keys that actually allow the digital asset exchange.
Importantly, there are several different types of blockchain implementation that differ in application and the access rights it has to manipulate the database or ledger (if the blockchain contains financial transactions).
- Public blockchain: This is where anyone can read the blockchain, anyone can send transactions to it (and see them included if valid), and anyone can participate in the consensus process.
- Consortium blockchain: This where the consensus process is controlled by a pre-selected set of nodes. For example, one might imagine a consortium of 3 entities, Node A, Node B and a Regulator Node, where all 3 nodes must sign every block in order to prove them valid. Read rights are either public for anyone to view or restricted to just the selected participants.
- Private blockchain: This is where write rights are kept centralised to one organisation. Read rights may be made public or restricted to any arbitrary extent the organisation deems necessary.
Other Types of Blockchain
It is a given that blockchain represents a distributed digital ledger. However, there are other implementations that actually avoid chaining blocks together. For example -
- Directed Acyclic Graph: This is where transactions are chained together instead of blocks.
- Permission-Based Ledger: This ledger works without chaining transactions or blocks! Ledger manipulations are permitted only by trusted authorities.
- Payment Channels: Micropayments are settled off-chain in specific payment channels, once that are accumulated, they are then presented to the blockchain.
The consensus within a blockchain helps decide whether or not a transaction will be added to the blockchain. There are two ways that a blockchain can reach the necessary consensus required. Proof of work is the most strict approach and requires cryptographic computations. Another approach is more simple and vague, and uses proofs to achieve a higher number of transactions per second. These might rate from 6 to 100 000 depending on the consensus algorithm. This number is also determined by the size of the block. The bigger the block size, the higher the transaction output, however, this can lead to other issues such as network congestion, longer block propagations over the network, higher convergence-rate to a consensus or double spending )see below) — all of which can result in security vulnerabilities.
“Smart contracts” installed on the blockchain are a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of an agreement. In addition, every contract is secured by cryptography to keep the parties intact. This technique permits the building of decentralised applications on top of the main blockchain and the use of their own tokens. To ensure the correct processing of smart contracts, the automated programs are deployed on top of the blockchain among participating nodes of the platform. Smart contracts are comprised of:
- Subject of the contract: The automated program must have access to goods or services under the contract and be able to lock and unlock them automatically.
- Digital signatures: All the participants initiate an agreement by signing the contract with their private keys.
- Contract terms: Terms of a smart contract can take the form of an exact sequence of operations. All participants must sign these terms.
- Decentralised platform: The smart contract is run on blockchain virtual machines and it can be programmed via multiple languages.
Blockchain Attack Types
Finally, the blockchain is designed to sustain against particular attacks. The most common types are -
- Hard Forks attack: An attack when one party is able to hijack the main chain.
- 51% attack: An attack when a majority of votes is in the hand of one party only.
- Double Spending attack: An attack when a transaction is duplicated and the token is spent twice.
- Sybil attack: An attack when one node acquires several identities.
- Denial of Service attack: An attack when nodes are unable to connect with each other.