On-Chain vs. Off-Chain data
The basic design principle of using blockchain in real systems is that only the minimum amount of data should be recorded on the chain.
The previous episode was about how decentralized systems are different from distributed systems. While decentralized systems are more secure, they are also slower. This episode is about how we can use blockchain technology in a way that it still makes sense for real-world use-cases while being slow.
Let’s take an example of a supply chain solution — we have a manufacturer, a warehouse, and a retailer. These are different entities participating in a process and generally not trusting each other. They share data with each other about various stages of the product life-cycle and supply chain by posting data in each other’s systems.
Sometimes there are delays or disruptions in the supply chain because of data reconciliation of this data being shared bu various entities. Blockchain can solve these data reconciliation and validation issues by providing the decentralization and immutability characteristics. But blockchain is also slow. So, how do we use it?
In real-world use-cases, blockchain is generally used as a verification layer on top of the existing systems. For example, in this particular supply chain scenario, if we use blockchain, we will add it as a data verification layer on top of these systems sharing data among various entities. Each of these entities will then post some light-weight representation of their data (eg: cryptographic hash) on the blockchain so that it can easily be verified at a later stage.
The basic design principle of using blockchain in real systems is that only the minimum amount of data needed to find an agreement among participating entities must be recorded on the chain. Everything else must stay off-chain in normal database systems. This way, while still being slow, blockchains can be used in a smarter way to solve real problems.