EDIT: A critical bug has been revealed to us, so we've disabled the interface while we re-organize.
For the Solidity devs, the bug has to do with the
open function, which can be called by anyone to become the initiator and
recall the funds as if they created the trade.
The interface is disabled on mainnet, but still works on Kovan for anyone who wants to poke around.
It seems that only one user, aside from our seed trades, was vulnerable. u/adamaid_321, who found and exploited the flaw, has said he will return the funds to their original owners in a few hours.
(u/adamaid_321 was professional to work with, and kind, given the situation.)
Tomorrow we'll write a post-mortem, which is ironic for something that was supposed to be unkillable. Hoo boy.
DAIhard: the unkillable crypto/fiat gateway. Any country, any fiat. Proudly announcing the open beta on mainnet.
Here is a legitimate concern most of us are familiar with:
To enter or exit the crypto economy, we rely on exchanges, which track their users, impose limits, and are coupled to their jurisdiction. And for all we know, any day now governments could start shutting down the exchanges altogether. In light of this, can we honestly say that crypto is anonymous, limtiless, borderless, immune to regulation, and unstoppable?
To really address this concern, we need a completely decentralized fiat-to-crypto on-ramp platform: something that extends the benefits of crypto to the very act of moving between the fiat and crypto economies. But the design of such a platform is far from obvious. (Bisq comes close, but contains some crucial centralized compoments.)
We believe we've found the solution. We are proud to present DAIHard, currently in open beta on mainnet (and Kovan).
If you want to jump right in, we reccomend first watching Using DAIHard to buy and sell DAI (12 min), then diving in and giving it a shot with a small amount of DAI. (Feel free to try it on Kovan if mainnet is too scary at first.)
Okay, but What Is It?
DAIHard extends many of the promises of crypto (borderless, anonymous, limitless, unstoppable) into the exchange mechanism itself, allowing anyone anywhere to bypass centralized exchanges and the control they impose.
More concretely, DAIHard is a platform, run on smart contracts, for forming one-off crypto/fiat exchanges with other users, in which:
- The method of fiat transfer is open-ended, but agreed upon up-front (for example: bank transfer, cash handoff, transfer of online credit, or really anything the offer creator thinks up).
- You and the counterparty can communicate via end-to-end encrypted chat to coordinate the fiat transfer (i.e. communicate bank account number, or describe a cash drop location).
- In the last phase, the Seller can choose to burn the DAI instead of releasing it to the Buyer (but he can't get it back). This credible threat is what makes the platform reliable in the absence of centralized control or moderation. For more on this see the DAIHard Game Theory medium article (10 min read).
Using DAIHard to buy and sell DAI (12 min) shows this process in action.
You Need DAI (and ETH, for gas) to Use The Tool (At Least For Now).
This is the biggest drawback of the platform in its current state: if you want to buy DAI, you need 1/3 of the purchase amount to put into the contract as a burnable deposit. Put another way, if you only have 10 DAI now, you can only open a buy offer for 30 DAI, and must wait for it to complete before using the newly bought DAI to open up a bigger offer.
(The 1/3 ratio will be customizeable in a future version, but even if it's set to 0 (which comes with its own problems), the Buyer still needs ETH to pay gas.)
Most tragically of course, this means that if you don't already have some crypto, you can't use this tool to get crypto. This comes from the fact that both parties must have "skin in the game" for the game theory to work, and a smart contract can't hold fiat--only crypto.
We have solid ideas on how to address this drawback in the not-too-distant future, but for now it's time to launch this thing. We'll write more about these ideas soon.
Dangerous and Scary To Use
In rare cases, a user may have to burn DAI. In all cases, the user must risk the credible threat of burning DAI. DAIHard Game Theory explains why this is necessary.
A cautious, rational user can gather information (probably via our subreddit!) about how people have used the tool, successfully and unsuccessfully. They can then create a buy or sell offer with wisely chosen settings based on what has worked for others. Other cautious, rational users can find this offer and commit to the trade if they dare. We expect the vast majority of committed trades should involve rational, cautious users, and should therefore resolve happily.
But each trade must contain a credible risk of burning DAI, and inevitably there will be sloppy trades that result in burns. It will be interesting to see how long it takes for the first burn to occur.
Unlike the previous issue, this drawback will stick around: credible risk is absolutely necessary for the platform to function without centralized control.
The core of the whole system is the Factory contract. It has no owner, as well as no suicide or pause code. Barring some unknown bug, it cannot be stopped, and will happily open new offers for anyone who has the DAI and can pay the gas cost in ETH, and will also list all created trades for anyone with access to Ethereum. This will remain so for as long as Ethereum remains functional.
The HTML/JS front-end is currently hosted on Github pages, which is centralized--but even if Github takes down the page and deletes the code, it's a minor step to get the page hosted on IPFS (which is on our near-term roadmap in any case).
Like Toastycoin, this thing was immortal the moment it was deployed (even more immortal than RadarRelay, for example, which does rely on an ownership role). Both DAIHard and Toastycoin (and probably whatever we build next) will last for as long as a single Ethereum node continues mining, and it will remain easy to use as long as someone can find the HTML/JS front-end and the Metamask plugin.
No Sign Up, No Limits: All you Need is Love Metamask
It's smart contracts all the way down, so DAIHard never asks any nosy questions--if you have Metamask installed and set up, with some ETH and DAI, you can immediately open or commit to a trade.
(In fact, we're so inclusive, even machines are allowed--no CAPTCHA here!)
You're limited only by the collateral you put up, so if you have 10,000 DAI you could open up a buy offer for 30,000 DAI (or a sell offer for 10,000 DAI) right now.
We do reccommend trying the tool out first with a small amount of DAI... But we're not your mom! Do what you want!
It simply doesn't matter where you are, because DAIHard doesn't need to interface with any particular jurisdiction or payment system to work. DIAHard works by incentivizing people (or robots?) to navigate the particular real-world hurdles of bank transfers, cash drops, or other fiat transfer methods. These incentives work whether you're in America, Zimbabwe, or the Atlantic; and they would work whether the "fiat" is USD, seashells, or Rai Stones.
Any Fiat Type, and Highly Customizeable
Here are some examples of the types of trades you could open on DAIHard.
- Sell 200 DAI for $220 USD, granted they bring the cash to you by tomorrow afternoon in Central Park, NYC.
- Buy 20 DAI with a $30 gift card for Amazon AWS that you were never going to use.
- Sell 20 DAI in exchange for a $20 Steam game.
- While in Vietnam, sell 200 DAI to someone for €180 anytime in the next two weeks, provided they deposit it into your German bank account.
- Buy 30 DAI for 8,000 ZWD, delivered anonymously by cash drop, sometime within the next month.
- Buy 500 DAI for $550 via PayPal, but wait 3 weeks for before the DAI is released, (so the paypal transaction can't be reversed).
As the DAIHard community grows, users will doubtless find much more creative ways to use the system, and we will discover together which types of trades are reliable and which are more risky. Because users can set their own margins and phase timeout settings, we expect even the riskiest trades remain available on the marketplace, with higher margins or longer phase periods.
In a future version, we will open up more options to the user creating the offer--for example, allow modifying the default 1/3 buyer's deposit to some other ratio.
Extensible by Third Parties
Do you have some nifty idea for how to display and organize user reputation? Or maybe some idea for how trades could be chained togeher? Maybe you'd like to design a notification system for DAIHard? Maybe you just want a different color scheme!
Well, you won't need our permission to do any of this. Any tool that watches the same Factory contract will share the pool of trades, regardless of which tool actually creates the trade.
This Is a Big Fucking Deal
DAIHard is a turning point in crypto and a breakthrough in decentralized markets, and is an irreversible augmentation of the Ethereum platform.
What we now have is a gateway to crypto completely devoid of centralized components--rendering entry and exit unkillable, flexible, borderless, and private. Centralized exchanges, and the control they impose, can now be bypassed by anyone with ETH and DAI.
Tips on Usage
- You can find the tool via https://daihard.exchange and https://daihard.io, but both will redirect to the more secure https://burnable-tech.github.io/DAIHard.
- Don't forget about the chat tool! We forgot to cover it in the video >.>
- Try it on Kovan, or on mainnet with a small amount of DAI, first.
- If you're creating on offer, be extremely clear in describing your accepted payment methods (if you're using a bank, include the routing/ABA/IBAN/etc number).
- If you're considering committing to an offer, make sure you completely understand the offer's payment methods, and be wary of short payment windows.
- After opening or committing to a trade, use etherscan's address watch tool to get notified of any action (including messages) via email.