stacksgov / grants-program

Welcome to the Stacks Foundation Grant Program. Community members interested in submitting a grant proposal may do so by opening an issue in this repository and filling out the grant application.
141 stars 36 forks source link

TARAL: Bringing real-world financial assets and yield to DeFi on Stacks #208

Closed vl5613 closed 2 years ago

vl5613 commented 2 years ago

https://taraldefi.github.io/

Short Deck/Intro

https://app.pitch.com/app/presentation/319f13c5-661b-4c07-8e6a-f4f6cb8d6f86/87dc9b45-eabd-4b24-9520-c0e7e059466a

Background

What problems do you aim to solve?

Ultimately, we are building a platform that enables "farmers" to generate stable yield from high-quality trade finance loans, protocol participants to gain upside in the insurance protocol, and buyers and sellers of international goods to securely release payment on delivery and utilise short duration loans for their inventory financing. For the scope of this grant, we will be focusing specifically on delivering smart contracts and a basic UI that demonstrates demonstrates the ability for buyers and sellers to confirm their purchase and capture the transaction data in an NFT that will act as collateral for lenders.

The international payments market between international suppliers and buyers of goods is fraught with risks of non-payment. Letter of Credit transactions are used to intermediate between parties and to provide a level of assurance to counter-parties that delivery will take place before funds are released by buyers. Banks are currently the centralised parties of trust for these transactions, leveraging their reputation in ensuring security and trust. The global Letter of Credit market is $2.8 trillion per year and the uncovered international "open book" market is ca. $8 trillion per year.

Taral will solve this by allowing buyers and sellers to transact directly with one another -- at a lower cost, better user experience, and higher speeds.

Project Overview

What solution are you providing?

Letter of credit products are often costly and present issues when managing this in a smaller environment. Fundamentally, we find that these costs are prohibitive and can cost as much as 5-8% for a letter of credit for smaller transactions.

This can be resolved with smart contracts. By ensuring that funds are only released when the party has shipped the goods or when the buyer has confirmed that the goods have been received, we can demonstrate a way of maintaining custody of the funds bringing security to both parties.

Two additional pools of liquidity will be created. One will be a pool that will cater to providing insurance against defaults and the other a liquidity pool for providing cashflow and loans to the involved parties.

Investors will have the opportunity to lock up funds and earn a set return based on the return generated from the insurance premium charged for the individual transaction between buyer and seller.

The liquidity pool will allow investors to either select the individual loans that they want to finance (30/60/90 day duration). These will have a varying yield based on the collateral supplied and the individual risk in the transaction.

Why is this project beneficial for the Stacks community? How does it serve the mission of a user-owned internet?

By collateralising real-word financial assets (supply chain finance) on chain, we help to move the world further towards a user owned internet and drive real-world, daily, business transactions on DeFi. Given the team's background in the cross-border trade finance space, this marks the beginning of bringing a diverse range of high-quality, real-world assets to Stacks.

These assets are traditionally stable-yield assets reflecting the ethos of the Stacks community that has grown around a stable, proven, and highly-secure protocol.

After the recent launch of Arkadiko bringing with it the ability to mint USDA, Taral brings a real-world application for stablecoins. By allowing trade finance loans to be bridged to the Stacks ecosystem, this project will be beneficial for DeFi users, opening up a channel to real-world assets and diversifying the range of assets available.

Reputable asset originators are able to source credit lines for high-quality financial assets, starting with import/export working capital financing.

As Taral will not be acting as a custodian of the funds, Taral will create a DAO that will allow for protocol participants to contribute to the governance of the protocol.

Why Stacks?

Stacks is built on Bitcoin, one of the most established and well known cryptocurrency protocols. By building on Stacks and therefore on Bitcoin, we are building on a secure, well established protocol, with a small attack surface. This does not necessarily guarantee the security of the protocol, but it does lend a great deal of credible, proven support from the start. Other systems are yet to develop the track record and some are still open to attacks. Without opining on the quality of the code and the method of attack used, the unfortunate attack on the Poly Network is an example of where vulnerabilities can be exploited by hackers to steal funds huge amounts of funds. The size and potential volume of the trade finance market means security of the funds is paramount for institutional money to enter the space.

Team

Doru:

Vincent:

Additional Community Developer:

Risks

What dependencies or obstacles do you anticipate?

What contingency plans do you have in place?

All estimations below are in hours and are primarily covering the time for smart contracts and web application development. A small hourly allocation per user story has been included for design (1-5 hours depending on complexity of the user story). The Taral team is, of course, happy to be paid in STX.

We are keen to hear from other community members with capacity and an interest in helping bring real-world assets to Stacks.

Milestone 1: $13,350

Final deliverable: UI and smart contracts that allows users to submit and agree on their purchase order as an NFT.

User Story ID Description Estimation
1 I need to be able to submit the details of my purchase order 140
2 I need to be able to view and sign or disapprove the purchase contract 19
7 I need to be able to input and approve purchase terms agreed with importer 29
19 I need to have a web boilerplate 34
14 I need to be able to see and review the underlying asset into which I am providing liquidity 45

Milestone 2: $6,250

Final deliverable: UI and smart contract that allow users to determine the payment and shipping terms, as well as show proof of delivery and add to the NFT.

User Story ID Description Estimation
3 I need to be able to select the payment terms (when payment should be released & over which duration I would like to repay the outstanding amount) 13
5 I need to be able to confirm receipt of shipment of goods and thereby release remaining agreed funds to exporter 53
9 I need to be able to upload proof of delivery/shipment of goods 59
stx-grant-bot[bot] commented 2 years ago

Thanks for submitting a grant proposal. Our team will review your submission and get back to you.

jennymith commented 2 years ago

Hi @vl5613, thanks for this submission! In reviewing this, a few questions came up, but the main thing that the grants committee was trying to understand is how you can make this usable for the average Stacks user.

You mention transactions for international shipments of goods--is this applicable to your everyday Stacks community member? Or, is the idea that you already have a network of partners on the supply chain front, and Stacks users would be contributing to the liquidity pools backing these partners' short-term loans?

Would the smart contracts you're developing be applicable in other contexts outside of these large, international transactions?

vl5613 commented 2 years ago

Hi @jennymith, thanks for the questions and happy to clarify!

Stacks Community vs Supply chain network:

Stacks users would be contributing liquidity to the pools (lending & insurance). The latter would carry more risk and would carry more risk/return potential due to sharing in the underlying success of the protocol (Gross Written Premiums - Amount Paid out for claims). We’ve already spoken to eCommerce sellers in EU importing from Asia with $2-6m in revenue that are interested.

That isn’t to say that the everyday Stacks community wouldn’t be able to benefit from the liquidity provided, particularly if they for example have an eCommerce business and source and ship their products from other countries - e.g. are resident in EU and import from India.

Broader applications of smart contracts:

Though we’re starting with trade finance, at it’s core we’re collateralising off-chain financial loans on chain as NFTs that can be financed and risk of loan default can be underwritten by a separate risk pool. This could therefore be applied to (non-exhaustive): aggregating larger loan portfolio (replacing traditional Special Purpose Vehicles), pre-financing salaries, or lending against real estate (mortgages).

In short, the contracts with some additional customisation, would be applicable in other contexts/industries/for other applications.

jennymith commented 2 years ago

@vl5613 What would happen if the eCommerce sellers you're speaking to decide not to participate? What would the liquidity pools be used for then? It seems risky to aggregate community funds in a pool before getting any commitments from official borrowers.

jcnelson commented 2 years ago

Also, there doesn't seem to be any sort of fraud risk mitigation here. Suppose I take out an insurance policy on something that is actually worthless, and then "accidentally" lose it to claim the insurance money. How is this prevented?

vl5613 commented 2 years ago

Hi both thanks for your questions!

@jennymith demand for the financing is a risk, however, given that we see demand for other competitor solutions this will be more a question of addressing price and UX for the clients. Community lending pools won't involve locking initially. Initially, the best solution will be to lock on a case-by-case transaction basis -- as and when transactions become available. Stacks community members that participate in the token sale will be able to lock TAL tokens in the insurance pool. Locking in the insurance pool will open up a few weeks before we begin working with eCommerce sellers. This will ensure that the time delta between locking and first transactions is concrete.

@jcnelson This is a relevant question that I think quite a few community members will have. It's important to discern here that the insurance policy isn't a "catch all". It pays out in the eventuality that the importer defaults on the repayment, effectively re-imbursing the lenders against the majority of their losses. I won't break down the individual steps here, however, in order for this fraud to take place, this would involve multi-party collusion from the importer and exporter, the shipping agents/shipping companies and suppliers further up the supply chain in some cases. Definitely not impossible but also not easy either. By having many points of reference we make it very difficult for fraud to take place.

Finally, it's worth noting, that we're not re-inventing the financing concepts here. This model takes place with trillions of dollars worth of trade annually -- we are however improving the infrastructure upon which these transactions take place.

jcnelson commented 2 years ago

I won't break down the individual steps here, however, in order for this fraud to take place, this would involve multi-party collusion from the importer and exporter, the shipping agents/shipping companies and suppliers further up the supply chain in some cases. Definitely not impossible but also not easy either. By having many points of reference we make it very difficult for fraud to take place.

The communication complexity between the points of reference is no substitute for fraud protection. If I were to abuse this system, it sounds like it's sufficient to just set up shell companies that I controlled that acted as sybil participants in each step of the shipment. I'd have an LLC for the importer, an LLC for the exporter, an LLC for the shipping agent, an LLC for the shipping company, etc. I'd also set up an LLC to advertise to unsuspecting users to deposit their STX into an insurance pool that I can tap for my fake shipments. If the cost of setting up these shell companies is lower than the insurance payout for "accidentally" screwing up the shipment, then it doesn't really matter what the communication complexity is -- since I control the shipment end-to-end, I can make the shipment "accident" look plausible and make a profit from the insurance payout. Even if setting up these sybil actors is costly, the volatility of the crypto market combined with a seeming lack of controls for setting the maximum payout would make it so I could always cover this cost.

Finally, it's worth noting, that we're not re-inventing the financing concepts here. This model takes place with trillions of dollars worth of trade annually -- we are however improving the infrastructure upon which these transactions take place.

The difference is that the industry today seems to have a lot more safeguards for investors. Like, if I were to try the above scheme today, I'd get caught, the state prosecutor would get a court order to pierce the corporate veil to discover that I'd been behind all of these seemingly distinct companies, I'd be tried and convicted in court for fraud, I'd be put in jail, and the court would seize my ill-gotten gains (and possibly any future income I make) to make investors whole. In this system you're proposing, there does not seem to be any sort of safeguards. Also, it's relatively straightforward to launder stolen cryptocurrency.


EDIT: Sorry if this all sounds highly skeptical, but I've seen this play out before as a scam. I can't help but notice the following two red flags:

vl5613 commented 2 years ago

The communication complexity between the points of reference is no substitute for fraud protection. If I were to abuse this system, it sounds like it's sufficient to just set up shell companies that I controlled that acted as sybil participants in each step of the shipment. I'd have an LLC for the importer, an LLC for the exporter, an LLC for the shipping agent, an LLC for the shipping company, etc. I'd also set up an LLC to advertise to unsuspecting users to deposit their STX into an insurance pool that I can tap for my fake shipments. If the cost of setting up these shell companies is lower than the insurance payout for "accidentally" screwing up the shipment, then it doesn't really matter what the communication complexity is -- since I control the shipment end-to-end, I can make the shipment "accident" look plausible and make a profit from the insurance payout. Even if setting up these sybil actors is costly, the volatility of the crypto market combined with a seeming lack of controls for setting the maximum payout would make it so I could always cover this cost.

Just to clarify, the insurance doesn’t cover against shipping accidents. This is insurance for payment default to the benefit of the lenders. The defaulted party is still on the hook for repayment of the debt. It doesn’t simply go away should the insurance pay out. In most cases, the debtor will not be aware of the insurance policy. Furthermore, while sybil attacks are a very real threat - here they would require coercion of individuals. If we see that companies are controlled or owned by related officers then this is a red flag for not disbursing funds or approving the transaction. Furthermore, we intend to work with reputed partners in the near term to ensure high credit quality and low probability of default and fraud risk.

You have only provided a minimal description of how you intend to deal with the risks of building all this out on a blockchain, and that description is "use companies we trust." Like, who are these people, and why should we trust them? How do we know they're not sybils, like how I described above? What happens when fraud does occur? What concrete steps are you taking to prevent it from happening, or barring that, to mitigate the fall-out?

As per Stacks feedback, in the interest of maintaining a certain level of conciseness within this grant application, we have not documented the full extent of our thoughts and views on how to maintain the security of the protocol. I personally have built and overseen KYC and compliance processes that have been approved by organisations regulated by the German financial regulatory authority (BaFin) in the past. One example of mitigating the possibility of a sybil attack is by verifying and checking the interconnectedness of an individual node (LLC) and checking the established history of an individual node. I.e. freshly founded LLCs/[limited liability companies] without a track record won’t be able to participate. In a future growth scenario where breadth of access to Taral is increased, positively incentivised protocol participants (TAL holders --> DAO participants) can check and validate information, as well as requiring real-world collateral / on-chain collateral.

The difference is that the industry today seems to have a lot more safeguards for investors. Like, if I were to try the above scheme today, I'd get caught, I'd be tried and convicted in court, and I'd be put in jail, and the investors would be made at least partially whole when the court seizes my ill-gotten assets (or garnishes any future income I make). In this system you're proposing, there does not seem to be any sort of safeguards. Also, it's relatively straightforward to launder stolen cryptocurrency.

If you were to try the above with Taral (please don’t :)), you could very much be pursued by the law for some combination of embezzlement, fraud and theft charges. Every set up of an LLC leaves a very real trail pointing to the fraudulent party (barring some extensive social coercion -- but then TradFi is also susceptible to this). Furthermore, there is a real contractual arrangement underlying these transactions. The ultimate legal opinion on this topic is, however, outside the scope of this grant. As part of our roadmap, we will fully document and realise the protective measures necessary in order to protect the security of the network and funds. One potential solution is to release the key to the information/contract held within the NFT to a local lawyer and claims agent to assist in recovery. Having also run claims processes too, my experience has been that many are happy to be compensated based on some % of funds recovered.

You're asking the community for money. That is, you're not asking accredited investors, you're not asking underwriters, and you're not asking people who will have the time, patience, and means to do due diligence to protect themselves from this kind of risk.

We understand this might seem risky and has sometimes resulted in scams, but we think that this is a great unexplored area in DeFi because of these fears. We, however, want to build it and we welcome this discourse and feedback. We want to work with Stacks to explore solutions that are safe on chain and off chain in order to bring this to life. We absolutely want to avoid money laundering but we think realistically this can't be 100% avoided, just like it cannot be avoided in current solutions. It is also worth noting that p2p SME lending models have seen fantastic success. E.g. FundingCircle has demonstrated the potential for individual community members to either assess individual loan potential or "automate" their appetite for a certain level of credit risk.

jennymith commented 2 years ago

Hi @vl5613 thanks so much for taking the time to respond to our feedback in such a thoughtful way. At this stage, it doesn't seem like we can resolve these concerns enough to move forward with the current iteration of this application. I think we are a tentative pass on this proposal unless you think it's possible to resubmit a revised version that does address these concerns? I'd be happy to get on a call to explore alternative options.

vl5613 commented 2 years ago

Hey @jennymith, thanks for your comment - I reached out via e-mail to set up that call. Perhaps @jcnelson would also have time to join? I'd love to address some of the topics raised.

jennymith commented 2 years ago

Hey @vl5613 just got your email! I don't think that Jude can join but I'll coordinate a call for next week.