IOTA offers a way to store data in an immutable way and can therefore be used to establish trust and transparency in a logistics network with multiple participants. Especially when there is no dominating partner, this fact becomes more and more important. In this article we present a proof-of-concept implementation for a real-world use case, based on IOTA Masked Authenticated Messaging (MAM).
The main characteristics of a supply chain is that there are handover points, where a good is given from one to another participant. And it’s not only the good which is transferred but also the ownership and risk. Therefore, data about the current and past ownership is important to answer questions, such as “Who is responsible for a damage of the goods?” or “Is the seller of the product the rightful owner?” or “Who was the first owner respectively manufacturer, so that the true origin of the product can be identified?”.
Besides the ownership question, there are additional points of interest when it comes to supply chains. To better address these points, it is also common to speak about “value chains”. While at the beginning of the supply chain there are only raw materials, these materials are combined in every further step and processed until they become a final good. Thus, value is added through every step of every partner in the supply chain. So next to ownership data, it is important to get additional information about the processing and production. The data should reflect the actions like certain production steps, machine parameters and times and so on to give background information about the good delivered.
To illustrate the importance of the described data, the example of a quality error can be given. A simple example is a broken axis of a car. It is not only of interest who manufactured the axis, but also where the failure occurred. When base materials like steel are used in production, there will always be batch numbers to track back material issues. So, the whole production of axis based on this batch can be called-back, when the steel is identified as being the origin of the quality issue.
Therefore, a perfect supply chain documentation should identify every production step and crucial parameters or material inputs to trace back quality issues and numerous other questions.
Supply Chain Example
To transform the given requirements into an IOTA based supply chain documentation, an appropriate real-life example was used. The example is in the domain of construction of flood protection barriers. The process is made up of a geotextile manufacturer, a middleman/ retailer and the construction company which finally builds up the barrier.
The rather short supply chain offers all the described characteristics of supply chain data. Also, there are multiple participants involved, making a trusted data storage worthwhile. An illustration of the supply chain can be found in figure 3.
In the example a manufacturer is producing different geotextiles. These textiles are used to reinforce flood barriers, such as dikes. The examined supply chain focuses on the geotextile “AC-Tex R401” which is produced by the manufacturer. To produce the textile certain batches of synthetics are used as input materials. Also, the production line used to process the textile is of interest (see also figure 2). While two production lines are processing the textile, one could have a failure which leads to an unusable textile.
A middleman, like a retailer, is collecting the geotextiles from the manufacturer and eventually sells them to the construction company. At every handover, consisting of a “selling” and a “buying” step, a time stamp should be taken.
The construction company is processing the geotextile in its machines. The machines take the textile and install them into the dike structure. Time and position of the installation can be automatically inserted into the supply chain data by the machine.
What makes this supply chain case so interesting is the requirement given by flood protection authorities in Germany: Every textile installed into a structure like a dike or e.g. a waste disposal site must be traceable. Traceable in terms of location, textile manufacturer and textile ID. With this basis information a quality issue uncovered in a production line of a manufacturer can be traced back to the place of installation and vice versa.
Projecting the Supply Chain on IOTA MAM
MAM is a second layer data communication protocol of IOTA which adds functionality to emit and access encrypted data streams which are known as channels. The knowledge of an IOTA private key represents the ownership of all things associated with the public key in the IOTA ecosystem. These can be IOTA coins which are balanced to an address or a MAM channel with data.
To trace back information to one user and line them up in the right order is usually impossible in the IOTA environment, as public keys or addresses are changed constantly. To solve this, MAM offers a linked-list within the IOTA structure to establish a feed of information from one user. Each of these MAM channels has a root that marks the entry of the linked-list.
Still an interaction with the “outside world” is needed to associate a root with a real-world entity in the supply chain. As a solution we suggest to verify a single MAM root for every supply chain participant. This root could e.g. be published on a web site which is acknowledged by all partners. It would say “Manufacturer XYZ” owns the “root xyz”. Through this verification a trustworthy entry point, a link to the manufacturer’s products and so on can be set.
A product moving down a supply chain has different owners over time. To map this process, every participant needs a MAM channel to publish data at the time he owns the product. With every handover of the product (selling & buying ownership) the channels of the current and next owner need to be linked to each other.
The specific process would be like this: A manufacturer opens a new cannel for each specific product in production. This new channel is bidirectional linked to the verified channel of the manufacturer. Now information about the product and its production can be added to the new channel. When it comes to a handover of the physical product to the middleman (/retailer), the virtual product must also be handed over to the channel of the middleman. On this way a “meta-channel” of the product is been created as a linked list over the channels, owned by multiple individuals.
Every handover has to be implemented as an interaction of two individuals and their channels. In the chosen example above: the manufacturer and the middleman. While transferring the product the middleman has first to create a new channel. Secondly the root of this channel has to be transferred to the current owner, which is the manufacturer. This can simply be done with a scan of a QR / NFC in presence of the real products. The manufacturer as the current owner is verifying the physical transfer of the product by publishing the link to the channel of the middleman in his own channel. This will be the last message in the channel of the manufacturer. From now on the middleman can post messages in his own channel.
To establish trust in the whole chain of linked MAM channels, one has to proof that the start was published by a verified manufacturer. Like described before, the first root can fulfill this function. The “meta-channel” of the specific product can therefore be confirmed by the link to the verified basic channel of the manufacturer (see figure 5). This way every process participant can reconfirm, that the product bought has a trusted history.
To support the described process, machine data within production as well as transport and end use construction data of the geotextile can be published in a product-specific meta channel.
An app was developed to support the processes along the supply chain. The app simplifies the “complicated” processes described above within the IOTA MAM, so that an end user can simply use the App without deep IT knowledge.
In detail, the app manages the handovers of the products (create MAM channel, write and read MAM data) using the MAM js library (mam.web.min.js). All necessary meta data is stored on the mobile phone (IOTA private key, verified root of manufacturers, …). Supply chain data is directly published on the IOTA tangle without the need of any additional server, while a proof-of-work is calculated on the mobile phone.
The start-screen of the app can be seen in the picture below (figure 7). The main functions for a product handover are the “buy” and “sell” buttons, which are located in the middle.
On “My Portfolio” all products currently owned by the holder of the mobile phone (respectively private key holder) can be seen. Also, the list of all trusted manufacturers is available.
By clicking on a product all data stored in MAM since the begin of the supply chain can be seen (right side of figure 7). In the example shown it is the geotextile “AC-Tex R401” of the manufacturer “Wolotex”. Also, information of the production line and the production batch can be found scrolling down.
For the tryout the IOTA devnet was used. By completing the transfer of the good from one participant of the supply chain to another, the virtual good is transferred to the account (wallet) of the new owner (figure 8).
We are currently working on an alternative to the QR code in the geotextiles to prevent fraud were the data is stored into the tangle and thus increase security. NFC-Chips will be integrated directly into the geotextile which makes it harder to replace them.
Another point to mention is that IOTA is working on the MAM successor called MAM2. It offers the option of multiple messages on one iota address. For example, each message on the index channel uses the same public key of the manufacturer. This would simplify the described process of verifying a product.
The described project was created under an open source license and is available under the following GitHub link: