Launch HN: Dharma (YC S17) an open protocol for borrowing/lending cryptoassets
184 points| nahollander | 7 years ago
My name’s Nadav Hollander, and I’m the founder of Dharma Labs (https://dharma.io). At Dharma, we are creating a suite of protocols, standards, and developer tools for issuing and administering tokenized debt agreements on the Ethereum blockchain.
After three extensive external security audits of our smart contracts, we are releasing the public beta of Dharma Protocol v1 on the Ethereum mainnet -- developers can take a crack at building decentralized lending applications at docs.dharma.io, and non-developers can try out borrowing and lending a wide variety of crypto-assets using Dharma Plex (https://plex.dharma.io).
I first became interested in the cryptocurrency ecosystem in 2015, when I took Dan Boneh’s class on Bitcoin & Cryptocurrencies at Stanford. Though the technology was (and still is) quite immature, I fell in love with the nascent space, and subsequently worked as an engineer at Coinbase.
At Coinbase, I was struck by the fact that a huge amount of users’ cryptocurrency was sitting idle in cold storage, instead of being deployed in some capacity as dollars would in a savings account. The advent of generic, programmable blockchains like Ethereum presented an intriguing possibility -- what if we could build borderless infrastructure for borrowing and saving that wouldn’t require a company like Coinbase to sit in the middle?
That’s why I started working on Dharma -- a framework for originating, issuing, crowdfunding, and trading debt on blockchains like Ethereum. In essence, what we do is create tools, standards, and smart contracts that developers can use to build profitable lending applications that can tap into a borderless pool of credit liquidity. These tools are all fully open source and free to use -- there is no native “Dharma token” that users are forced to leverage in some capacity.
We look forward to hearing HN’s feedback / thoughts!
[+] [-] nowarninglabel|7 years ago|reply
Could you possibly speak to how you intend to enable KYC (Know Your Customer) / AML (Anti-Money Laundering) to work with Dharma? The best bet so far has seemed to be trying to incentivize it through providing automatic fees to external parties to perform these actions and holding the money in escrow until it goes through. However, it would be great if you could share if you'll have discussed this problem at all.
I'd love a world where we didn't have to deal with KYC & AML, but we do, and the sooner we figure out how to make it work in an efficient and inexpensive manner for the world's poor, the sooner we can reach the UN Sustainable Development goals around financial inclusion.
[+] [-] nahollander|7 years ago|reply
We've pretty deliberately opted out of baking jurisdiction-specific protections (be they KYC / AML, accreditation, etc.) into the protocol insofar as we really want this to be a universal standard that's jurisdiction-agnostic -- to give a somewhat crass analogy, most developers would agree that it does not make sense for content-protection against, say, child pornography, to sit at the level of TCP / IP. Jurisdictions vary widely in how they treat lending law, and so we've opted to be as flexible as possible on a technical level.
With that being said, we're actively working on making sure that, at layers above the protocol, developers have an easy time plugging in / restricting functionality on the basis of regulatory parameters. There are several interesting projects in the decentralized identity space that are tackling ways of natively attesting to KYC / AML screening on blockchains like Ethereum, and we're actively in conversations with them to make sure we maintain compatibility.
[+] [-] CryptoBard|7 years ago|reply
The proper solution is not to hold people's PII at all and depend on a provider (ThisIsMe, Civic, Consent, IDNow, etc, etc, etc, etc) combined with the customer's social graph information. If you want to know your customer, you need to know the people who knows your customer. After-all, who knows you better than your family and friends?
[+] [-] himom|7 years ago|reply
Unfortunately, I lost a job and the ability to work, spent 401k, went bankrupt and lost access to the email address to my Kiva account. It seems ironic as I no longer have even $5. I don’t really worry about money anymore with serious endocrinological, ophthalmological and neurological problems... sleeping 12 hours and awake for 60 hours might place small limitations on life.
[+] [-] beefield|7 years ago|reply
This is actually one of the more frustrating issues for me in cryptocurrency discussions. The underlying monetary policy is of fixed or predefined money supply, that is supposed to somehow stabilize the price/value of the cryptocurrency in the long term because of hand waving, wishful thinking and reasons, all the while having exactly no way to stop fractional reserve banking emerging nor regulating it or the additional monetary supply it will create. This being one of the main reasons why current crop of cryptocurrencies will never be used as economy-wide payment method and why their price will always stay chaotic (unless the price stabilizes to zero...)
[+] [-] edent|7 years ago|reply
Normal contracts are written by lawyers. They are reviewed by both parties' lawyer. Sometimes, after the contracts are signed, the lawyers disagree what a particular provision or clause means.
At which point, they either negotiate or sue. In which case, a human judge weighs up the case and decides.
How do disagreements work with smart contracts?
I assume some contracts will be buggy - mostly because programmers are just as fallible as lawyers. So how are disagreements resolved in an equitable way?
[+] [-] TekMol|7 years ago|reply
Otherwise, an algorithm will decide.
[+] [-] jacquesm|7 years ago|reply
In the case of Ethereum that's easy: you hard fork the currency.
[+] [-] TTPrograms|7 years ago|reply
What happens when there's a disagreement with your program that prints "Hello W0rld"? It prints "Hello W0rld".
[+] [-] afinemonkey|7 years ago|reply
If the two parties can agree on a new stipulation of the (smart) contract, a new contract can be issued.
As an aside, this is painful, as a smart contract's address will usually be linked to some user facing application or just your own wallet.
A way to facilitate this is through the use of a proxy contract, which is a contract that exists only to forward instructions to a secondary contract (the main one). The main contract can then do whatever is meant to do.
Now if there is a disagreement or a bug, after an agreement is reached, you can deploy your new contract, change the address on the proxy contract and you're done.
[+] [-] dustingetz|7 years ago|reply
[+] [-] matte_black|7 years ago|reply
[+] [-] nahollander|7 years ago|reply
[+] [-] seibelj|7 years ago|reply
[0] https://airfox.com
[+] [-] zanek|7 years ago|reply
Is this legal in the US ? Or where is it legal , illegal to use ?
[+] [-] iMuzz|7 years ago|reply
[+] [-] nahollander|7 years ago|reply
[+] [-] dmitrygr|7 years ago|reply
[+] [-] spookthesunset|7 years ago|reply
[+] [-] arcaster|7 years ago|reply
[+] [-] sambull|7 years ago|reply
[+] [-] jakecrouch|7 years ago|reply
[+] [-] dharma1|7 years ago|reply
Congrats on the launch still, great name ;)
[+] [-] bpforster24|7 years ago|reply
[+] [-] TTPrograms|7 years ago|reply
[+] [-] scoot|7 years ago|reply
[+] [-] simonebrunozzi|7 years ago|reply
Our company [0] is building an API platform to transact on digitized real estate assets, and we intend to leverage Dharma as much as possible in the future.
[0]: www.fabrica.city
[+] [-] TekMol|7 years ago|reply
[+] [-] bpforster24|7 years ago|reply
We also support unsecured loans (i.e., loans that are not fully collateralized). We consider these pretty experimental and lenders should do a lot of diligence before investing.
For unsecured loans, counterparties can agree to any kind of default deterrence that they want. Could be off-chain legal agreement, could be a reputation scheme, etc.
[+] [-] cargo8|7 years ago|reply
[+] [-] zitterbewegung|7 years ago|reply
Do you think that your product would be useful for Insurance contracts on the Ethereum blockchain?
[+] [-] nahollander|7 years ago|reply
There are numerous ways in which Dharma debt agreements can interface with insurance contracts:
1. We've already seen some members of our developer community working on trustless credit default swaps -- which are functionally insurance contracts that use the programmatic endpoints of Dharma debt agreements to assess claims on defaults. 2. For non-fully-collateralized insurance contracts, Dharma debt agreements can serve as the mechanism for tracking and administering the tokenized bonds that capitalize the insurance contract.
[+] [-] techaddict009|7 years ago|reply
[+] [-] xur17|7 years ago|reply
It looks like you'd need to trust the counterparty right now unless they put up substantial collateral. Do you intend to add something similar to a credit rating / history to make it possible for random strangers to lend to each other? Or do you have other ways to handle this?
[+] [-] nahollander|7 years ago|reply
In the short-term, as you correctly alluded to, we're focused on loans that are fully-collateralized on-chain. In the future, however, we hope to integrate trusted third-party underwriters into the network in order to open the door for unsecured loans. There are many technical / game theoretic challenges to be solved on this front, though, so we've included unsecured loans as an "experimental" feature set in this initial release.
[+] [-] himom|7 years ago|reply
[+] [-] perfunctory|7 years ago|reply
[+] [-] tlrobinson|7 years ago|reply
[+] [-] KasianFranks|7 years ago|reply
[+] [-] blahnow|7 years ago|reply
[+] [-] bpforster24|7 years ago|reply
[+] [-] orasis|7 years ago|reply
Consider a name change.