There is no shortage of hype around how the blockchain can help the IoT and the supply chain. Yet, there are very few real-world and practical examples of how this can work.
Thanks to our work for the Blockchain Research Institute over the past year we had the chance to deep-dive into the subject with our labs team and look at the opportunities and challenges. This allows us to take a pragmatic and reasonable approach to introducing Distributed Ledger Technologies (DLT) into our products. Our 2018 agenda is packed with innovations in this space, and we are happy to report on the first integration here: building on the PoC we launched last year, we now make it possible for our customers to use the benefits of a public blockchain (e.g., Ethereum or Bitcoin) in conjunction with EVRYTHNG to verify supply chain transactions!
It’s all about trust!
The specific problem this solves is simple: it helps fix trust issues! As an example, consider the state of affairs in consumers’ trust around product provenance. It should be no big surprise that a number of data manipulation scandals around provenance have made consumers increasingly critical. Do you really trust your product is organic? How can you be sure its country of origin was not changed?
This is where public blockchains can help as they have one pretty important feature: they are immutable and publicly auditable. Meaning that the data you put on a public blockchain is available to everyone and cannot be modified by anyone, you included! To be 100% accurate, it could be modified, but this would pretty quickly be detected by the decentralized network and discarded.
Similarly, this system can help fix the lack of trust between the partners within a supply chain, leading to better transparency.
Don’t be naive: beware of the blockchain.
Great, so why don’t we put all supply chain transactions on a public blockchain? Well, here’s the bad news: blockchains alone won’t save the supply chain. Quite on the contrary, naively implemented blockchains are arguably the worst performing, most expensive, and least sustainable supply chain databases ever.
Implementing a supply chain information system with a blockchain where every transaction in the supply chain leads to a transaction on a blockchain is simply not going to work beyond a prototype: it would not be able to support the scale of any significant brand.
Without going into too much detail (our full research project with the BRI on the subject will be made public on May 22 2018) it is impractical to store large amounts of transactions with large amounts of associated data on a public blockchain primarily because the throughput of public blockchains is small: in the order of 50-1000 transactions per minute. Compare this to the 5 billion GS1 barcode scans in a day or the spikes of 1.5 million transactions per minute EVRYTHNG currently manages, and you quickly understand the issue. Beyond scalability, an important concern is the energy consumption of blockchain transactions as well as their cost. All these problems are being researched and worked on (see for example discussions on validation algorithms). However, because the benefits and security of blockchains are actually linked to these slow transaction processing times, solutions are not trivial.
As a consequence, blockchain based solutions for the supply chain (and generally the IoT) today only really make sense as extensions of centralized supply chain information systems.
In short: store most transactions and most of the data in a high-availability centralized platform but replicate some transactions in public blockchain when needed and valuable.
Figure 1: This shows the building blocks of an Active Digital Identity™ associated with a unique product item on the EVRYTHNG platform, extending the standard Web Thing Model to support blockchain constructs for certain transactions.
How does it work?
Our solution is based on a protocol called Chainpoint. Basically, Chainpoint provides two things: first, it provides a more optimized way of linking transactions to a public blockchain by allowing us to batch them. In short, instead of sending one transaction for each supply chain operation you wish to verify, it allows us to batch thousands of them in a single transaction on the blockchain.
Figure 2: Chainpoint protocol – source: https://chainpoint.org/
Second, it verifies the integrity and existence of data without relying on a trusted third-party. In other words it implements what we need: a system that can leverage a public blockchain to validate EVRYTHNG-stored supply chain transactions.
Our current integration relies on an implementation of the Chainpoint protocol provided by a decentralized platform, Tierion, combined with a new service that can be deployed in the powerful EVRYTHNG Reactor, our customizable rules engine.
Barry the Smart Bear
The system is being piloted by a number of EVRYTHNG’s customers. It will also be used to power the provenance data of Barry the Bear, a demo we presented at the GS1 Global Forum to showcase our new product support for the web-enablement of GS1 identifiers. Barry the Bear is a teddy bear with an EVRYTHNG Active Digital Identity (ADI), offering a lot of powerful features.
Web application for Barry the Bear, providing provenance data verified by blockchain transactions.
One of these features is verified provenance data. All the steps in the manufacturing and supply chain of the bears have been recorded using EPCIS transactions in the EVRYTHNG platform. Two of these steps were selected to be validated on the Bitcoin or Ethereum blockchain as well. Because these blockchains are public and immutable, the blockchain validation process ensures that the provenance data was not tampered with or altered after being recorded in the EVRYTHNG platform.
Implementing this was as simple as enabling our open source Reactor integration of the Chainpoint protocol.
Figure 3: Reactor script for Chainpoint integration
This extension script fits in 100 lines of code and basically ensures that each EVRYTHNG Action (i.e., step in the supply chain) that uses a special parameter gets hashed and transmitted to the blockchain. The resulting blockchain transactions IDs (hashes) are then received by the EVRYTHNG platform via the Reactor script and the corresponding blockchain verification Actions created. From then on they can be audited on the blockchain, and verifiers can attest that the Action data was not modified.
Figure 4: The EVRYTHNG dashboard showing blockchain verification Action for several steps in the supply chain
Note for the tech-savvy readers: the transactions are not directly transmitted to the blockchain but first aggregated into a Merkle Tree whose root is then sent to the Bitcoin or Ethereum blockchain. This is done at the top of the hour via the Tierion service using the Chainpoint protocol.
Figure 5: Blockchain transaction (root of the Merkle tree) for one of the teddy bears. See it on the blockchain for yourself: https://blockexplorer.com/tx/f256da7cd4e1f85941593aaffb8e9163edd8ec3de478a07e3cac2dfb945d81ef
Want to get started with blockchain validations?
We are very excited to offer our customers the ability to integrate a blockchain validation process for supply chain transactions in a small number of steps. If you are interested in trying this for your use cases, check our detailed technical tutorial or contact us for more information. We are eager to hear more about your blockchain supported use cases!