8 ms·
Show HN: Dharma – Programmable Peer-To-Peer Loans Using Ethereum Smart Contracts
Hey HN!
My name's Nadav Hollander, and I'm the Founder of Dharma.
Dharma is building an open-source library that makes it really easy to programatically borrow and lend cryptocurrencies using smart contracts on the Ethereum blockchain.
Today we're launching our Alpha Testnet release -- a command line tool that allows you to
1. Access a line of cryptocurrency credit from the command line in under 5 minutes
2. Easily build a bot that auto-invests in loans under hyper-customizable, programmable criteria
Check it out: https://github.com/dharmaprotocol/dharma-cli https://github.com/dharmaprotocol/dharma-cli
Why I Think This Is Cool:
1. Loans in the Dharma Protocol are basically miniature ICOs issued by borrowers -- an investor's stake in a loan is held in a digital token that entitles them to future cash flows. That means loans are just as tradeable and moddable as Bitcoin or Ether, and packaging loan tokens into tranched debt instruments of all shapes and sizes is relatively trivial to implement in an Ethereum smart contract.
2. Dharma is an open protocol. This opens the door for any client application, including existing online lending platforms, to tap into a non-proprietary army of lending bots as a source of lending capital. This has the potential to dramatically lower the cost of capital for online lenders -- and, in turn, borrowers.
How This Can Be Better:
1. Loans in the Dharma Protocol are slow and expensive. Ether gas costs are fairly steep for writing the requisite loan data onto the Ethereum blockchain, and an on-chain auctioning mechanism places a bottleneck on how fast a loan can be funded. We plan to address these issues by migrating towards an off-chain auctioning mechanism layered on top of a Kademlia-style P2P network.
2. The identity verification mechanisms we use to assess baseline creditworthiness are very weak -- any mainnet release of the protocol would necessitate much more robust KYC flows.
Please play around with the CLI -- would love to hear feedback!
- tyingq 9y agoSlightly off topic, but the recent Ethereum hacks have created interest in how to write secure contracts with Solidity. That is, despite some of the built in barriers, like functions defaulting to public, awkward guard code limitations, etc. I would imagine if you have some expertise in that area, it would be of interest here. Might also help put some confidence in your specific use case.
- nahollander 9y agoNot off topic in the slightest! In fact, all too topical, given the past few weeks. For what it's worth -- I'm a former engineer at Coinbase / Google and recently graduated from Stanford. Though I didn't touch Solidity as part of my work at Coinbase, I've been following Ethereum extremely closely since its beginnings, and any mainnet release I'd push forward would certainly undergo rigorous third-party auditing at the smart contract level. I've also been iterating on this protocol for the better part of the past 9 months, so this is by no means a weekend project.
- sigstoat 9y agohave you attempted to apply any formal methods (coq, isabelle, tla, whatever) to your code? or will you be content with mere auditing?
- nahollander 9y agoNot as of yet, but I'd definitely be interested in exploring the possibility. If you know of any good resources or primers on those, please do send them my way.
- sigstoat 9y agoshrug, the reference books for all those things are the standard resources. i think they've shown up on hacker news a couple times each. if i were aware of any material on formalizing solidity or the EVM, honestly i'd keep it to myself and use it to identity vulnerabilities in your contracts. in that hypothetical world, my question was a means to check and see if you were a good target. good luck. :)
- buckie 9y agoThis project is simultaneously a great example of the democratizing effect of Ethereum while also being truly terrifying. A Stanford '17 grad with a few internships worth of industry experience is able to create and deploy a peer-to-peer loan infrastructure. This isn't meant to be demeaning in any way, I'm just remarking on how incredible of an accomplishment it is for both you and Ethereum that the previous sentence isn't fantasy. Now, I'm someone with ~10yrs experience in finance/production engineering/regulation. That doesn't mean I'm right, just that I've been in the trenches for far longer and seen this type of domain from a number of sides over the course of many years. I need to at least mention that, well, this project is probably a bomb and you should be really careful with it. I, at least, wouldn't want to be the next DAO dev (e.g. project takes off quickly, unseen exploit exists, I lose some 10's of millions of other people's money) at mostly a personal (I'd feel guilty) and career trajectory level. The Parity multi-sig bug occurred in a solidity shop that was founded by the father of the language itself. It got past a serious audit and had the best eng process known (for solidity) enforced. The odds that your code -- currently unaudited correct? -- doesn't have an exploit are, while impossible to accurately calculate, quite remote. Even an audit, as shown by Parity, is no guarantee. And while yes, we're all human so there is always the chance for a bug, your system could be the next ITO market and thus could gain a huge amount of attention (from both regular folks, regulators, and hackers). I'm not saying you shouldn't do it (I wouldn't but you do you) or that you must have more exp to do it. I'm just recommending to be careful. Have fun and good luck!
- nicpottier 9y agoForgive what might be an obvious question, but though I see there is a concept of trying to determine the risk of a loan, it isn't clear to me how that is actually done. What is used as a source of identity of the borrower? IE, how do you punish bad borrowers on future loans? Or does that fall outside of this?
- nahollander 9y agoCredit-risk assessment is indeed the most brittle aspect of what I'm building. In short -- borrowers have to get a cryptographically signed attestation from what's called a Risk Assessment Attestor in order to request a loan in Dharma. RAAs use whatever means they have to assess a borrower's identity and creditworthiness -- be that through social media logins, uploaded identification documents, authenticated phone numbers, their loan history both on and off chain, etc. They are compensated for this by a fee that is allotted to them in the loan contract. Ostensibly, borrowers are deterred from defaulting on their loans insofar as their future creditworthiness on the platform will be marred. For the time being, Dharma Labs is the sole RAA of the protocol, but, as time goes on, we hope to build mechanisms for allowing other trusted third parties to enter the ecosystem as RAAs.
- weego 9y agoRisk assessment is literally the entire product is it not? Loans are not a technical problem to solve, and there's no inherent usefulness in it being a smart contract. A guy in a office is not a risk assessment strategy.
- nahollander 9y agoNot necessarily. I think a great example of something that smart contracts enable in a lending scheme is built-in secondary market functionality. A lot of marketplace lending platforms have built in proprietary secondary markets, but none of them are anywhere near as liquid as crypto markets are in general, and the vast majority are not interoperable, to my knowledge. Your ownership in a loan on Dharma is denominated by a cryptographic token like Bitcoin, Ether, or any other, meaning its just as easy to trade your stake in a loan as it is to trade a cryptocurrency. Assets built on open protocols are fundamentally easier to build products and technologies around -- insofar as they lower the barrier to entry for developing financial applications, their openness is extremely valuable.
- deleted 9y ago[deleted]
- sharemywin 9y agoI know it's off the subject but is there a marketplace for freelancing for altcoins?
- Jabanga 9y agoThere's https://ethlance.com https://ethlance.com. I don't know how much activity it has, but I do know it will be part of a family of marketplaces called District0x [1], which should help it with adoption. [1] https://blog.district0x.io/introducing-the-district0x-network-5d45a72d364a https://blog.district0x.io/introducing-the-district0x-networ...
- sharemywin 9y agoI was thinking any coin. With all the ICOs there seems like a lot work that needs done and a lot of coins to burn.
- Jabanga 9y agoAlmost all the token sales are being done on Ethereum so they'll probably be paying in ETH. I imagine Ethlance is working on integrating ERC20 payments, so you can get paid in tokens as well.
- omaree 9y agoDo you need a pro for all your cyber and other related issues? You can contact one of the best in stealth software and equipment for spying and hacking and the anti. Do you need a change of identity? For more information on various solutions provided by the dark web contact-www.darkebsolutions.co
- jmagoon 9y agoI know this is off topic, but why the heck is it called Dharma? Just a cool sounding eastern word? It's like calling something 'The Gospel' or 'The New Testament' or the 'Quran Protocol'. I get that it's hip for westerners to yank Buddhist words, but this one really pushes my East Asian buttons. It doesn't even semantically make sense--in fact, it's a total antonym in many ways.
- deleted 9y ago[deleted]
- marsrover 9y ago> It's like calling something 'The Gospel' or 'The New Testament' or the 'Quran Protocol'. Yeah, I don't think that is true, at all. Dharma is a concept and you've listed books (or close enough to books). According to Wikipedia, > In certain contexts, dharma designates human behaviours considered necessary for order of things in the universe, principles that prevent chaos, behaviours and action necessary to all life in nature, society, family as well as at the individual level. With this definition, I think the author has given the project a fine name. Beyond that, I really think you're getting bent out of shape about something very insignificant and don't think this has anything to do with "westerners [yanking] Buddhist words". It's no different than naming something Apache, Vista, Yahoo, or Google. It's just a name. And just to add, also according to Wikipedia, > The antonym of dharma is adharma (Sanskrit: अधर्म), meaning that which is “not dharma”. As with dharma, the word adharma includes and implies many ideas; in common parlance, adharma means that which is against nature, immoral, unethical, wrong or unlawful. So, either you don't know what Dharma or Adharma is yourself or you just don't know what's an antonym.
- jmagoon 9y agoDifferent cultures have different definitions of the loanword. For East Asian Buddhists, Dharma generally means the teachings of the Buddha. As in the phrase, 'Turning the wheel of Dharma'. I guess if you pick that one section of wikipedia and say that's what it means, then sure. Dharma is also used by Hindus--I'm not Hindu, so I won't comment on what the word means for them. Saying "it's just a name" is a valueless claim. Of course it's just a name. Names have meaning, and in this case, the word has four thousand years of history in Asia. I just don't understand why this particular name was chosen, and why borrowing something fundamental to two major world religions is the logical choice for a protocol. "The Gospel", in my understanding of the Christian term, is also a concept, and not a book.
- luizb 9y agoHow does a RAA ( so far Dharma INC) grants initial credit worthiness to new borrowers ?
- alistproducer2 9y agoI would love to see the loan be able to (or better yet, enforced that it is) used as a funding source in a smart contract. Provide an API for funneling revenue in the client contract to the loan object thus ensuring repayment. Making the release of the funds contingent on an audit ensuring the repayment is handled autonomously. Sort of interesting though.
- joosters 9y agoIsn't that impossible? If the money is locked up so it can't be lost, then by definition you can't do anything with it.
- sm4sp 9y agoVery nice work. Is there an estimated release date for the Dharma Loan Browser?
- primeblue 9y agoWith all the DAO hacks and criticism of Solidity, why would one use Ethereum?
- mcjiggerlog 9y agoI'm struggling to understand what the use-case of this is, both from a borrower and a lender viewpoint? Who would use this and for what?
- atomicUpdate 9y agoAs a borrower, this is a perfect way to attempt to get free money, since there's no penalty for defaulting on the loan.
- mcjiggerlog 9y agoThat's what it seems like. I'm happy to be convinced otherwise, but the homepage doesn't really explain anything.
- sm4sp 9y agoThe white-paper has more detail than the homepage and I recommend reading it for a better understanding of the project From what I understand, third party entities responsible for vetting borrowers. These entities referred to as "Risk-Assessment Attestor"(RAA) are incentivized to do quality risk assessment as they get a piece of the loans they vet. Here's a section from the white paper, discussing the importance of RAAs and how they might deter habitual defaulters "Moreover, RAAs are capable of reporting borrower defaults to relevant credit bureaus on the behalf of lenders. Thus, borrowers are disincentivized from defaulting on loans insofar as their future creditworthiness, both within the Dharma network and in traditional loan markets, will be adversely affected." https://dharma.io/whitepaper https://dharma.io/whitepaper
- joosters 9y agoWhat happens when the borrower and the RAA turn out to be the same entity?
- KomradeKeeks 9y ago
- Terretta 9y agoIf you would enjoy playing with this[1], with getting paid to play as a bonus, email me. I want to pay you to do what you enjoy. --- 1. And/or things like this.
- xtracto 9y agoHey man Omar from Kueski, good to see you are progressing on this. I will definitely download the CLI program and start playing with it!