In today’s yacht industry, there are many challenges that yacht owners and buyers face. Corda could help with the risks involved in buying and selling yachts.
Buying and selling yachts without Corda
- Distrusting parties involved in a transaction (which leads to the risk of getting scammed)
- Lack of backward traceability (to get proof of who built the yacht, who owned it, renovations, etc.)
- High international payment fees (due to third-party involvement – e.g. yacht brokers, banks, etc.)
- Inability to ensure that transactions are private (to protect the yacht owners/buyers)
What if I told you – it doesn’t have to be this way?
Until recently, there was no technology that could solve all these problems at once. The use of public blockchains could be a compelling solution for these concerns, but the lack of privacy has been a sticky point.
What is Corda?
R3’s Corda is the world’s first private distributed ledger technology (DLT) platform designed to work with today’s financial services industry.
“A distributed ledger is a database of facts that’s replicated, shared, and synchronized across multiple participants on a network. Corda does not have a central store of data. Each node maintains its own database of facts–things it knows to be true based on its interactions.”
Corda Key Concepts – Ledger
Luckily for us, as Corda was initially designed to tackle the most complex challenges in regulated financial markets, it can also be applied to many use cases outside of the finance industry.
To explore how we can use Corda to diminish the problems faced by today’s yacht owners and buyers, I’ve built a sample superyacht CorDapp.
This CorDapp aims to solve the problems linked to transactions between distrusting parties, the lack of backward traceability, unnecessary transaction fees, and privacy concerns, by automating and managing the creation, issuance, and purchase of yachts on the ledger.
What value does Corda bring to yacht owners and buyers?
Save time and money
As there will not be any centralized party who deals with the payments, the yacht buyer can pay the yacht owner directly. This eliminates any unnecessary transaction fees and the time required to process the transactions will be reduced significantly.
Lower chance of getting scammed
In today’s yacht industry, many transactions are based on yacht owners and buyers having trust in one another. The yacht owner might claim to be a celebrity in the film industry. But as an interested yacht buyer, how can you trust this statement without meeting them in person?
Corda was built to allow mutually distrusting parties to collaborate and transact with one another. Each party must be tied to a legal entity and granted access by the Doorman to join the network.
Yacht owners and buyers will therefore not need to know or have trust in each other but instead can use trust technology to help carry out these transactions.
Prevent double-spending
The notary service provides uniqueness consensus in Corda, by ensuring each transaction contains only unique input states. This means the same yacht can’t be sold to multiple parties at the same time. In the same sense, the fiat currency tokens used to purchase the yacht can’t be used to purchase another asset simultaneously – preventing double-spending. Transactions must achieve validity consensus and uniqueness consensus to be committed to the ledger.
Privacy for parties involved
There may be occurrences when yacht owners and buyers want to keep a low profile when carrying out yacht purchases. Heightened privacy protects the identity of all the parties involved in a transaction. In Corda, nodes communicate point-to-point, and information is shared on a need-to-know basis. All communication between nodes is also encrypted using TLS (Transport-Layer Security). Consequently, only the parties who are involved in a particular transaction will be aware of it.
Easy Back tracing
Naturally, parties may want to confirm the legitimacy of the yacht.
Where was the yacht manufactured? Who is the Yacht Issuer? Who owned the yacht previously? Have there been renovations done to the yacht? How much was the yacht sold for previously?
Depending on how the developer chooses to implement the CorDapp, this is all data that can be added onto the ledger to facilitate backtracking.
Sample Superyacht CorDapp walkthrough
For the following section, I will share a quick walkthrough of the sample. If you’d like to get a more in-depth understanding of how the code works, please jump to the “Interested in exploring the code?” section below.
In this example, there are 4 main parties involved:
Step 1: Create and Issue Fiat Currency Token
The Bank initiates the IssueFiatCurrencyFlow to issue Fiat Currency Tokens to the Yacht Buyer (Party B). IssueFiatCurrencyFlow uses Corda’s Tokens SDK to quickly and easily create tokens that can be issued, moved, and redeemed on the ledger.
Step 2: Create and Issue Yacht State
The Yacht Issuer initiates the CreateAndIssueYachtStateFlow to create and issue a Yacht State to the Yacht Owner (Party A). A Yacht State represents a physical yacht and contains vital information about that yacht (to be determined by the developer). In this example, I chose to include the Yacht Owner, yacht name, type, length, builder name, year of build, price (amount, currency), and whether it is for sale.
There are certain contract rules governing the evolution (creation, issuance, and purchase) of Yacht State defined in the Yacht Contract. E.g., a Yacht State cannot be sold if “for sale” is false.
Step 3: Purchase Yacht State
The Yacht Owner (Party A) initiates the PurchaseYachtFlow to sell the yacht to the Yacht Buyer (Party B) in exchange for a certain amount of Fiat Currency Tokens. The price of the yacht is sent from the Yacht Owner to the Yacht Buyer in this flow. The flow also queries the respective vaults of the parties to find the corresponding Yacht State and Fiat Currency Tokens. If both parties agree to participate in the transaction and they have sufficient funds/assets to complete the transaction, signatures will be gathered from the parties involved in the transaction, and the transaction will be notarized and recorded in the ledger. However, if either party does not have sufficient funds/assets to complete the transaction, the transaction will not be notarized and recorded in the ledger.
Interested in exploring the code?
Take a look at the sample superyacht CorDapp and follow the instructions in the README.md file to see how the CorDapp works. You will be able to see how the states, contracts, and flows intertwine to make the superyacht CorDapp work.
What else do you think Corda can be used for?
Let us know by sharing in the comments below.
Sources:
- https://www.r3.com/products/corda/
- https://docs.r3.com/en/platform/corda/4.9/community/key-concepts-ecosystem.html
- https://docs.r3.com/en/platform/corda/4.9/community/token-sdk-introduction.html
- https://github.com/ja9-look/superyacht-cordapp