Fake and counterfeit medications kill tens of thousands of people around the world each year, with profits funding other criminal activities.
While this has always been a hot topic, the COVID-19 vaccine has really put it in the spotlight: imagine the first batches of vaccines arriving after being compromised, tampered with or not kept cool throughout their journey. How would that affect global trust in a COVID-19 vaccine?
COVID-19 has revealed the crucial role of the supply-chain within the global economy. In addition to security, speed and flexibility are now more critical than ever.
Within the context of COVID-19, effective data sharing and transparency are the way forward to improve collaboration within the supply chain. If you want to be fast while mitigating risks, you need to be a team-player. You cannot afford to wait a week to release your data, even towards a competitor.
During Odyssey we worked in an on-chain Provenance registry based in the W3C Provenance specifications. The W3C worked for providing a generic and standard able to track the information about entities, activities and people involved producing data or things.
Our motivation here is to provide a unique source of truth for all the parties involved during the cargo process. This is gonna be based in a Smart Contract and will include:
The complete provenance record during the whole cargo life-cycle. This will provide a complete lineage of the goods during the cargo flow, since the manufacturing until the final delivery.
The digital signatures of all the parties involved. To avoid the goods tampering, during the handover of the goods between parties the signatures of the parties involved are collected. In the same provenance record the solution is gonna keep these digital signatures identifying the entities involved.
The integrity fingerprint of the digital assets involved. Any physical good going through the cargo flow has associated multiple digital files and metadata. This can include manufacturing details, product specifications, quality controls, etc. We are gonna record the fingerprint of these digital assets to flag if any of them are changed afterward.
In this solution, digital signatures are required for each step in the supply chain process. It makes possible to identify if an unexpected actor is taking the cargo and at what point happened.
We make available an on-chain Provenance record as a unique source of truth. This provides a complete lineage of the cargo.
Existing and independent Supply Chain Management (SCM) software components used by the different entities participating in the supply chain process, can be plugged to the network without modifications, and make information available to specific users.
Notifying the customs office upfront, we can facilitate the process of goods going through it
Transparency, the complete transactions record is kept in unique and decentralized place where everybody involved (having the right permissions) can get access to relevant information generated during the supply chain process
It allows an automatic way of sharing digital assets and metadata related with the cargo (like quality control checks, receipts, customs clearance documents, etc.)
Analytics and federated learning across all the parties data
During the Odyssey demo we want show how the multiple parties participating in the air cargo flow can use a common backbone to track and manage the provenance record of the cargo.
This brings the benefits described above.
KLM receives the House Way Bill from the Freight Forwarder (i.e. DHL) and scans the shipment's QR code
A digital copy of the House Way Bill is received upon scanning [assumption]
The Codes for Pharmaceutical, COVID (COV), Temperature Control (assumed) and HS Code for Vaccine and are flagged
The recipient is prompted to "Analyze Shipment Temperature?"
Selections to prompt are "Yes" and "No"
If "No" is selected, KLM takes receipt and signs transfer handshake
If "Yes" is selected, the following takes place:
KLM makes a request to Merck for access to their temperature unit data to determine if the temperature rose above X (KLM sets value) during any period prior to handoff
KLM access request is made to Merck
Payment for data access is made
KLM query (shipment ID, temperature threshold value) is sent to run on Merck data set
Query is run by Merck against temperature dataset
Based on query result, "Pass" or "Failed" response is returned to KLM (i.e. no source data is returned)
A prompt is displayed asking "Accept Shipment?"
Two option buttons are "Yes" and "No"
If "Yes" is selected, KLM takes receipt and signs transfer handshake
If "No" is selected, the package is returned to the freight forwarder
The flow of the demo using the Customs Agent user is:
We open the application as a Customs Agent user
We show the user home page with all the goods needing clearance by the user and the in transit state
The Customs Agent wants to know who the Consigner is for a package so he presses the "Request Consigner Info" button
The Consigner, in this case MSD, gets a push notification that Customs is requesting additional information
The Consigner can select the "Accept Request" button, or the "Deny Request" button
If the Consigner selects "Accept", their infomation is signed and pushed the Customs Agent
If the Consigner selects "Deny", a "Request Denied" message is pushed to the Customs Agent
A response is received by the Customs Agent from the Consigner
The Customs Agent wants to know who the Consignee is for a package so he presses the "Request Consignee Info" button
The Consignee, in this case John Doe, gets a push notification that Customs is requesting additional information
The Consignee can select the "Accept Request" button, or the "Deny Request" button
If the Consignee selects "Accept", their infomation is signed and pushed the Customs Agent
If the Consignee selects "Deny", a "Request Denied" message is pushed to the Customs Agent
A response is received by the Customs Agent from the Consigner
The Customs Agent can then scroll down to two buttons: "Pre-Clear Shipment" or "Deny Pre-Clearance"
The Customs Agent selects either "Pre-Clear Shipment" or "Deny Pre-Clearance"
If "Pre-Clear Shipment" is selected, both the Consigner and the Consignee get a push notification that shipment has been pre-cleared by customs
If "Deny Pre-Clearance" is selected, both the Consigner and the Consignee get a push notification that shipment failed pre-clearance and additional information is required
The Customs Agent gets a notification that KLM is ready with a shipment and information about the shipment
The Customs Agent scrolls down to two buttons, one that says "Shipment Cleared" and what that says "Request Additional Information"
If the shipment matches a shipment that has been pre-cleared, the user selects the "Shipment Cleared" button
If the shipment does not match a shipment that has been pre-cleared, the user can request the Consigner and Consignee information (see same flow above)
The user selects either "Approve Shipment" or "Deny Shipment"
If "Approve Shipment" is selected, the Consignee, the Consigner and KLM get push notifications that shipment has been "Approved for Shipping" by customs
If "Deny Shipment" is selected, the Consignee, the Consigner and KLM get a push notification that shipment failed clearance and additional information is required
Since the handover seems to be the most important part of the supply chain it is important to go through some of the failure scenarios that can happen during the handover and detail how our solution behaves in this case. The users of this solution don't want just to see an ❌ but we want to also know what was the reason for the handover to fail.
Imagine the case where a handover fails between MSD and DHL. Which side is at fault? Maybe DHL presented wrong identity credentials during the handover and MSD decied to cancel the handover. Or maybe DHL after looking at the metadata associated with the cargo found problems and decided to cancel the handover.
In this section we detail some failed handover scenario. We will focus on two actors, with MSD trying to handover cargo the DHL.