I have been publishing Blockchain perspectives over the past couple of years and rarely come across the real details on what it takes to implement a Blockchain solution. Nailing down the solution architecture is “where the rubber hits the road” in preparing an enterprise to gear up for blockchain implementation. Initially thought of offering a detailed technical architecture diagram which can easily lead to misinterpretations. Hence getting focused on describing a “Blockchain Reference Solution Architecture (BRSA)” in this blog post.
I would envision the following 6 foundation layers of BRSA and narrate it with a CPG use case for implementing Blockchain for “Diamond” product class.
1) User Interface: Any solution starts with a user-friendly UX. In our use case, let us say consumers walk into a jewelry store with an intent to buy a diamond for his fiancee. The consumer is”digital-aware” and carrying a mobile and an app on it that is designed to the diamond supply chain to gain the confidence of purchase. Henceforth one of the key features of the mobile app is a read-only application in the first place and will therefore not require any log-in. The consumer then is able to scan a barcode, RFID sensor, QR-code or for that matter invoke computer vision and access the information related to a particular product (in this case diamond) that may involve multiple the steps in the supply chain and tracking the source etc.
2) Data/File Storage: The next solution component is designing file storage. Typically the information stored in blockchain includes contract verification, hashes, and identification of who has added this information. In our example of diamond products, if a miner at source takes a photo of diamond drawing/marking at the source and add it to the blockchain. How this data could be stored on the blockchain, is a critical solution element and the following are 3 possibilities for storing that photo,
- Upload to the blockchain and make it transparent to all the nodes in the blockchain, but this requires the blockchain to store a significant amount of information.
- Upload photo to a separate database but accessed by the blockchain. Access can be restricted or open for everyone who interacts with the blockchain.
- Store in a database that is owned or controlled by an administrator to upload the photo, but it is not possible to access through the blockchain. Only the creator of the file/photo decides who they want to share their data with.
Hence deciding a right data storage mechanism is a critical component of the BRSA component.
3) Blockchain Platform: Choosing the blockchain platform is the next step in the solution design. As mentioned above, the blockchain platform verifies files, contracts, and stores transactions. Platform options include public, private or a hybrid. Platform selection for diamond use case is primarily driven by transaction costs to a least and transaction capacity near real time. The public blockchains platforms include Bitcoin and Ethereum etc. If not the transaction costs, Bitcoin is not considered in this case due to a very low transaction rate. Even if the transaction cost in Ethereum is significantly lower, transaction capacity is still limited. Both transaction costs and transaction capacity be a restriction in a price/service sensitive CPG products. One way to handle this is to go for second layer solutions as they get matured. On the other hand, private blockchain can be most attractive, but only trusted partners are allowed to validate transactions and blocks. The validated and recorded content of the blockchain may or may not be published to the public. The platform selection is really a trade-off
4) Application / Smart Contract: The application or smart contract is another key element of the solution. The most well-known blockchain solution for applications is Ethereum, where the contracts are called as distributed applications (dApps). The applications are run on the blockchain by all nodes, they are distributed. In some other cases the contracts are not run on the blockchain – they are confirmed in the blockchain, and their verifications are embedded in the blockchain but the entire application is not run by the blockchain network. For generating a diamond smart contract, the diamond store must upload the GIA certificate for each stone to be listed. Tracking can be enabled for a single diamond of high value or for a basket of diamonds. The blockchain solution can be designed for distributors listing their diamonds, or for peer-to-peer sales. The transactions here can be virtual but in our case, it is physical in store, and a secure completion of the purchase could trigger the delisting of the smart contract. Many technology providers want their applications to be possible to run on different blockchains and this is much easier if the application is not run by the blockchain. This could potentially be an option for our use case.
5) The ID and authorization: The key CPG actors who are going to authorize the different steps in the process have to be identified and some sort of ID solution is required to be built into the overall architecture. In our use case, either diamond distributor can handle the ID-creation and directory within the blockchain system, or rather create the ID-system and let the private administrators of the system be responsible for the ID-solution. The system then creates the private and public keys of the participants and may use extra security such as IP-addresses to control for the authority of the actors. A simple barcode-based unique ID can incorporate complex data science models to create a unique signature for either a rough or a polished diamonds.
6) Asset Registry: In diamond CPG industry there exists many organizations and authorities that can have an interest in labeling the products with their certificates. Hence in our use case, there should exist a public authority to assign a code to keep track of the diamond and their production. After creating the signature as described in the previous step, diamond can forever be verified against it to prevent fraud of any kind. The amount produced or sold by the diamond maker etc. will then get a code in the blockchain and lives on immutable.
All the above components collectively build a robust solution architecture as depicted in the diagram above for implementing the Blockchain solution for Diamond CPG supply chains.