TradeCloud: Blockchain-Enabled Commodities Trading Innovation
21 Oct 2021
TradeCloud had set out to reimagine the commodities trading industry through a high-performance, cloud-based commodities trading communications platform that would change the way producers, traders, and consumers communicate and connect them in an unprecedented way.
Companies in the Commodities Trading industry put extensive efforts into managing contracts for their services, which involve numerous people, steps, and revisions. To take the platform to the next level, company executives made the decision to incorporate smart contracts blockchain technology through R3’s Corda distributed ledger platform.
In order to enable TradeCloud platform users to secure their contracts with enterprise blockchain technology and at the same time prevent information leakage through the blockchain network and bypass the slow and cumbersome process of getting to consensus of traditional blockchain technologies, we made the decision to use R3’s Corda Private Enterprise distributed ledger platform. Along with the centralized backend and web application it was decided to develop a Corda application (CordApp) which would provide API to the centralized backend in order to send each and every contract created in the Tradecloud platform (or any changes to these contracts) to the Corda network, where this information would be validated and shared with other Corda nodes in the network on need to know bases.
Let’s imagine a situation where Alice, Bob and James are users of the TradeCloud platform, where Alice is selling something to Bob and James has a shipping company that can transfer the goods sold by Alice to Bob. All of them have their own Corda nodes, which are essentially machines they have control over (in the most primitive scenario, it can be a PC running in their room).
First of all, Alice and Bob need to have a buy/sell contract which would probably contain confidential information that only they need to know. So, when Alice sends the contract for selling over to Bob, that contract will be automatically sent to Alice’s node, which will validate it and send it to Bob’s node. The contract will then be validated here as well and sent to the Notary node which will perform additional checks. If all of those 3 parties confirm that contract was OK, then Alice’s and Bob’s nodes will save their local copy of the contract. When Bob accepts the contract, the same process will repeat and a new record will be made in both of their nodes on top of the initial contract. At this point, James’s node does not contain any information about the contract. Once Alice decides to ship the goods and wants to invite James to the scene, she will then need to share some (but not all) information from the contract with James and start to negotiate a new contract with James related to the shipment process. This is why the platform was designed to allow the sharing of only some fields of data with other parties and have other fields hidden from them. The same process of verification, notarization and storing of information in nodes of related parties happens here as well as with every transaction done in the TCW platform. It’s important to note that no information is being deleted or changed in users’ nodes. The Corda platform allows only the addition of data and not its modification or deletion, which results in a clear audit path for of the users’ data.
While in an ideal world all companies dealing in the TCW platform would have their own nodes, in reality, this might pose an entry barrier for some users to purchase and maintain a machine to host the TCW Cordapp and act as their own node. To overcome this problem, a decision was made to create programmatic division of a node to sub-nodes, which would be hosted in a special node maintained by TradeCloud – the TC Shared Node. These sub-nodes will mimic the actions performed by a real node and store the data just as a real node would, but all the data will be stored inside this node and will not be owned directly by the user company. This will allow the user company to start using the platform without having to maintain their own node while at the same time reaping the benefits of the Blockchain solution offered by TradeCloud. Whenever a user company is ready to have their own node, a procedure is developed to move all of their data to their own node and from that point on address all the transaction related to that company directly to their own node.
The current TradeCloud Corda Network has the following structure: the Doorman Node (to verify and “welcome” new nodes wishing to be added to the network), the Notary Node (to notarize all the transactions to prevent double spent), the TC Shared Node (to host the sub-nodes of companies that don’t have their own nodes) and any number of client nodes which will be added per request.
When TradeCloud first approached Volo, we already had over ten years of experience in designing high-performance platforms and enterprise-grade systems. However, TradeCloud was looking for more than just a software partner that was proficient in developing complex solutions. They wanted to partner with a team that would understand and share their vision for the company’s future and they found Volo to be a true match.