I am learning ethreum dapps development and have developed some dapps. I was thinking about supply chain dapp which i think , is very good application of blockchain as it ensures all the history of a product is stored immutability in blockchain, But how do we ensure the integrity of data coming from supply chain participants to get stored in blockchain?

for instance in a particular supply chain, every product has to go through a quality check, how we be sure that the person responsible for that don't put fake data results in chain?

I know it is a very broad question. But I am very curious about to know as I would like to create supply chain dapp.

thanks in advance.

2 Answers 2


Yes, it is a very broad question, so this will be a broad answer.

I have lost track of the number of individuals I have encountered who have conceptually mixed up blockchain's "proof" with magical powers that extend into the off-chain world of inputs.

This is sometimes called the "onboarding problem" and most applications have it in one form or another.

The blockchain is internally consistent. The outside world, not so much. It can help to think about proving what can be proven and not erroneously thinking everything is proven. For example.

Alice sends 1 ETH to Bob.

Have we proven Alice sent 1 ETH to Bob? Not exactly. We have proven that someone with knowledge of Alice's private key signed a transaction. Subtle difference. We will never know if it was Alice, but the chain will be internally consistent.

As you design systems, you will find yourself spending a great deal of time concentrating on the onboarding problem and considering what, exactly, has been proved.

You have many tools to choose from. You can use access control and systems of authority. Think about governance models, approval processes and whitelists (etc.) enforced by smart contracts.

For example, the blockchain does not prove that unit X passed QA. It can prove that someone with knowledge of a certain inspector's signing key said it did. The "inspector" can be human, a machine, or even another contract.

You can use financial incentives and game-theoretic designs to encourage truthful behaviour in a more decentralized fashion. These tend not to provide proof that no one is lying. Rather, they extract a high price for misbehaviour and make it possible to reason about the cost.

Hope it helps.


Interesting question, and I agree with the previous respondent that it's a broad question, and would involve some kind of reputation network and staking, such that people who report false information are penalized by losing their stake, and "truth" is reached by majority vote either by participants or some trusted judges (often called "validators" in Proof-of-Stake schemes).

Ethereum is not the only or best-suited blockchain for supply chain operations, (e.g. Ava by Emin Gun Sirer is designed for this purpose) https://coinnewspress.com/prof-emin-gun-sirer-of-cornell-university-launches-ava-blockchain/)

The way Ethereum currently tracks resources are * ERC20 tokens (like currency or shares of stock): these assign a number to every user, most of which is zero, that represents your balance in that currency or equity in an organization. * ERC721 tokens (like art): these can be tracked independently but there are usually only a few thousand or less than a million of these being generated, like CryptoKitties and collectibles.

If you track commodities, such as potentially millions of bales of hay or marijuana crop, etc., each one of which must have its own trail of provenance, this would quickly overwhelm the network, and be of limited interest to most users. I would propose a scheme that keeps most of this information offchain, or on a private network like JP Morgan's Quorum, that is periodically or only committed to the Ethereum main chain (or a POA sidechain) at the end.

Here's a rough sketch of the idea * A farmer plants some seeds. There's a separate side chain forked for each batch / field. Webcams or drones flying overhead take photos to verify the crop is going. Users, customers, investors, mechanical turk workers, or other interested parties could be given the ability to randomly request flyby's or live feeds during different times of day to verify that the image is not getting faked. * It's harvest time, so now the photos / events that get recorded on the sidechain are that of the harvesting act, being weighed and packaged, being shipped to a market or a port, being on a tanker in the middle of the ocean, being unloaded at a second port, being stored in a retail warehouse, sitting on a shelf at your grocery store / weed dispensary, and finally getting scanned at a checkout point-of-sale device when a customer buys the finished product (possibly with their favorite crypto wallet). At any of those points above, a unique hash or zero-knowledge proof representing the end of the sidechain could get committed to the Ethereum main chain, potentially with votes from trusted validators who stake their ETH or their reputations.

The unique hash would uniquely identify a large number of files, that could be GBs of images stores on IPFS or Google Photos or some other trusted store, allowing other people to verify the provenance of the goods, and possibly contest them as fakes using some digital jurisdiction like Aragon Courts. If a validator claims that coffee beans arrived at their destination port, but a grocery store claims they never received the shipment, that validator gets dinged as untrustworthy. If they receive too many dings, perhaps the farmer or the shipping company decide to revoke the validator's ability to represent their brand, and choose a new validator.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.