Skip to main content

Blockchains Explained Simply

Introduction
Blockchain is a decentralized database or a distributed ledger that holds transactions. A blockchain is typically distributed over a peer to peer network where each node in the network hold identical real-time copy of their ledger.


A block in a blockchain is similar to a page in a ledger. It may represent a transaction/contract/certificate of ownership/state of authenticity/proof. Each block in the blockchain is linked to the hash of the previous block. Once a block is chained it cannot be modified or removed from the chain.


There can be two ways to corroborate the accuracy of the ledger.
  • Permissioned (where participants that contribute are preselected)
  • Unpermissioned (where anyone can contribute)


Unpermissioned ledger


Anyone can contribute to the ledger. In bitcoin, the actors can contribute through a process called mining. This means that no single person has control over any transaction.


Permissioned ledger


When a new record is added, the integrity is check by a limited consensus process carried out by a limited number of preselected actors. This process creates a digital signature which is seen by all parties, thereby making it highly verifiable.


Characteristics of a blockchain


  • No single point of failure
Since the ledger is distributed and since everyone has their own copy, it is impossible to lose the data at once like in a traditional database.


  • Transparency
It is really difficult to make changes or corrupt data in the blockchain as changing one would change the hash and will thus affect the entire chain. Even if the data is changed of one ledger, it is impossible to make the identical change across all copies simultaneously. Simply, it will impossible to make a change in the blockchain without the entire network noticing.
  • Auditable
Each transaction is perfectly recorded. Therefore it is easy to trace back at anytime.


  • Fraud Resistant
Even if a trusted validator makes a false record, it is easy to trace since it is signed with their digital signature.


Blockchains in supply chain management


Blockchains technology has a great impact on supply chain management since it ensures people have got what they’ve paid for. They can just scan a RFID tag or a barcode of a particular product and view the entire history of transactions from raw material gathering to the destination store.


The blockchains used in supply chain management are permissioned and distributed. This explains that anyone has access to their own copy of the ledger but only preselected actors has control on a blockchain, usually known as a Consortium. They are considered partially decentralized. This means that it requires great trust in the validators and operators.


Use cases of Blockchains 

  Walmart


Walmart is testing IBM’s Hyperledger project, which is an open source blockchain technology platform for plug-and-play components such as smart contracts, consensus etc. to track consumer goods. They believe that it will overcome the delays and errors, resulting in more streamlined and efficient supply chain management.


They have identified that the biggest challenge will be setting up technology for farmers, field workers, and others to collect data and insert to the blockchain. Innovative data entry tools running on smartphones, with backends in the cloud, are expected to allow them to input data, making it accessible within minutes rather than days, thereby increasing supply chain efficiency, identifying bottlenecks and reducing food wastage.


The pilot project was initiated to track and trace pork in China and further extended towards U.S. produce.


Provenance

Provenance is a company in UK that empowers people to change the global economy. They have carried out a pilot project on using blockchain technology for tracing yellowfin and skipjack tuna fish in Indonesia from their origin to the customer.

CargoChain


CargoChain is a block chain based solution for international trade which is still under development.


The problems it is trying to address are,
  • Large amount of duplicate paperwork is required for the current international trade practices.
  • Multiple copies are used to verify authenticity. ( eg: Bill of Lading)
  • These physical documents should be shipped between exporter and importer.
  • Inefficiency / time delay to ship documents.
  • Loss of documents.


They propose a simple document Chain of Custody for trade documents that will ensure secure transmission of documents without delay and fraud-resistant, an automated payment release for producing documents required, built in penalties for delays etc.  


Everledger


Everledger uses blockchains to track individual diamonds, from mine to consumer. Recently they’ve been announced as the first company to trace fine wine using blockchain technology as well.


Limitations

  • Transaction censorship. If enough of the validators (51%) collude maliciously, they can prevent a particular transaction from being confirmed in the blockchain, leaving it permanently in limbo.
  • Biased conflict resolution. If two transactions conflict, the validator who creates the next block decides which transaction is confirmed on the blockchain, causing the other to be rejected. The fair choice would be the transaction that was seen first, but validators can choose based on other factors without revealing this.
Because of these problems, when deploying a blockchain-based database, you need to have a clear idea of who your validators are and why you trust them, collectively if not alone. Thus, this solution is considered partially decentralized.
  • Migration. It can be challenging to migrate from the traditional supply chain management to a fully digital solution.
  • Time. Extra time is required to generate cryptographically safe blocks. And also, transactions are passed between nodes on a best effort basis. Therefore, we cannot predict the time taken for data to be added to the blockchain. As a work around for this, there can be a centralized verification service.
  • Scalability. Potentially lengthy chains need to be routinely transmitted and processed.

Comments

Popular posts from this blog

Fixing 'java RMI - ConnectException: Operation timed out' in WSO2 Enterprise Integrator 6.4

If you ever come across the below exception when running WSO2 Enterprise Integrator 6.4, here is the fix. This error occurs when you have multiple IP addresses from different networks configured in your etc/hosts as below. 10.xxx.x.xxx localhost 192.xxx.x.xxx localhost So simply, removing the unnecessary one and leaving the one of the network that you are currently connected to should resolve this issue. 10.xxx.x.xxx localhost

Student Information System - Java (SLIIT - ST2 PROJECT)

Student Information System (Github Project) This system is developed in Java and mySQL as a group project by me and 3 other members during a period of 1 month. The system allows the administrator to,  enroll students to the system  update enroll information  add/update course and degree program details  generate reports  create exams and edit relevant information  calculate gpa of the relevant exam  assign lecturers to courses  add lecturers/update details Lecturers to,  assign course grades  view their feedback  generate reports  view student / course / degree program details Students to,  view their profile  view their grading information  give feedback to lecturers   view lecturer / course / degree program details and other features. Below are some interfaces of the project. (Splash Screen) (Login) (Admin View) (Student Re...

SIMPLE BLACKJACK GAME IN JAVA (CONSOLE)

import java.util.Scanner; class BlackJack{     public static void main(String[] args)      {         int player_random1 = 100;         int player_random2 = 100;         while(player_random1 >= 12 || player_random2 >= 12  || player_random1 < 3 || player_random2 <3)         {             player_random1 = (int)(Math.random()*100);             player_random2 = (int)(Math.random()*100);         }                  int player_total = player_random1 + player_random2;                  System.out.println("You get a "+player_random1+" and a "+player_random2);         System.out.println("Your total is "+player_total); if(player_total==21)  ...