Blockchain is a type of distributed ledger technology made up of digitally recorded data in packages called blocks which are linked together in chronological order. A distributed ledger is a replicated, shared, and synchronized digital data structure spread across a network, the participants (or 'nodes') of which could be in multiple sites, countries, and/or institutions.
One of the major differences between blockchain and most cloud computing environments is that blockchain systems do not rely on a single provider of storage or computing resources. Each user of the blockchain uses his or her computing resources on a peer-to-peer basis.
Moreover, each user has a complete copy of the distributed ledger (or blockchain) on his or her own computer.
The 'truth' of the ledger (and hence the blockchain) is maintained by consensus algorithm, essentially a means through which nodes agree on the content of the ledger. Once blocks are verified by a majority of the network (this verification is carried out by parties known as 'miners') and added to the ledger they are very difficult to change without the alteration of all subsequent blocks and agreement of the majority of the network.
Each node on the network (generally) contains a complete copy of the entire ledger (or blockchain), from the first block created — the genesis block — to the most recent one added. Some other nodes will have just the part of the blockchain that they are using (partial node).
There is no single model for blockchain systems. Unlike the Internet, blockchain has no single set of standards, meaning that the technology can be deployed in an almost infinite variety of configurations.
Non-permissioned vs. permissioned blockchains
On non-permissioned blockchain networks, there is complete transparency of transactions and in principle, anyone is able to join the network, participate and validate transactions. In contrast, on permissioned blockchains, access is moderated by an administrator who will determine the level of access and what permissions the user will be given.
Sidechains and off-chains
There have recently been some experiments made on public blockchains by introducing ‘off-chain’ mechanisms to store information separately on another accessed controller system.
Some of these solutions only store hashed personal data on the blockchain and this assists in protecting the data. The hashed data is accompanied by a link to an off-chain database. That database can be set up to restrict access to the full transaction details and personal data to authorised parties only.
However, storing information ‘off chain’ also negates a number of the advantages of using blockchain. The blockchain can no longer be a single, shared source of truth and in most cases both counterparties will be required to maintain their own records.
Unlike off-chain systems, which generally store certain information on a separate traditional network, a ‘sidechain’ is a parallel blockchain that sits alongside the primary blockchain, serving multiple users and (in general) persisting permanently.
Sidechains are independent. If they fail or are hacked, they will not compromise other chains, and so damage will be limited within that chain. This has allowed participants to use sidechains to experiment with pre-release versions of blockchain technologies and different permissions and encryption methods.