Distributed Autonomous Issuer

JoOlJoOl Member Posts: 1
I think we can all agree that well functioning P2P-exchanges will be a very important component in the cryptocurrency eco system, and there are a number of projects ongoing that hopes to fill the current void. However, most of them seem to work like one-to-one marketplaces where someone wanting to exchange BTC for fiat need to directly connect over the legacy banking system with another party willing to accept the exchange. This makes for a slow market ill suited for efficient transactions.

Open Transactions version of P2P exchange improves greatly on this by offering a way for all parties to perform fast asset trading in the form of digital tokens. These tokens are issued by issuers, that takes care of the bailment process when a party wishes to exchange the token for the corresponding amount of the asset class it represents.

One problem I see with this in the context of P2P fiat exchanges is, how can we trust the issuers to guarantee their solvency and that the issued tokens will always be backed by the actual asset it represents? The solution might be a proof of solvency by having a provable reserve of BTC, but how can we be sure that the issuers are able convert these BTC to fiat and transfer it over the legacy banking system?

If the solution is that the issuer simply pays the token holder the corresponding value of the token asset in BTC, in a suppressive regulatory environment the problem may still remain that the token holder will not find a way of exchanging the BTC to the currency the token represented.

To solve this problem I propose the creation of a Distributed Autonomous Issuer (DAI).

Think of the DAI as working similarly to the “decentralized dropbox” dapp, where instead of offering storage space in return for storage fees, contributors offer liquidity out of their own bank accounts and in return get a share of the profits generated by the DAI.

There would be three types of actors interfacing with the DAI:

The Liquidity Provider (LP)
The fiat liquidity available is provided by people/entities that pledge a certain amount of fiat currency to be available for immediate transfer should they be called upon by the DAI to perform a transaction.

The compensation for the LP is twofold:

1. There will be a monthly return based on how big share of the total liquidity the LP has pledged on average during each month, as well as the reputation of the LP. Reputation points are gained automatically over time, but failure to perform transaction requests from the DAI will result in severe penalties to the reputation of the LP. Transactions performed quickly after received request will increase reputation slightly, while delayed transactions will decrease reputation slightly. After a certain amount of time the transaction request will automatically be canceled and a new request sent to another LP.

If a LP with maximum reputation points (gained after X months of providing flawless service) has pledged USD1000 on average and the total liquidity pledged by all LPs is USD100 000, the share for this particular LP would be 1% of the profits generated by the DAI that month. An LP with 50% reputation with the same amount of liquidity pledged would get 0.5% of the profits.

One difference compared with the decentralized dropbox model is that there is no good way to verify that the LP actually has the amount of liquidity pledged readily available until the entire amount has been used in a transaction, so how can the DAI be sure that the LP is not cheating?
There needs to be some additional incentive structure in place to make sure that it is in the best interest of LPs to not cheat. In order to prevent this, monthly shareholder dividends will not be payed out to the LP until he/she has actually transferred funds on request from the DAI. Should a month pass without any transaction requests, the dividends for that month will be withheld until the LP has received and successfully responded to a request by transferring the funds requested.

2. The LP also earn part of the exchange fees collected for each performed transaction.


In order to prove that a transaction has been performed a process needs to be in place that automatically sends the SSL logs from the LP bank transfer to the DAI as proof, in case of a dispute. There has been significant progress on this approach already, see for example https://bitcointalk.org/index.php?topic=173220.0


The Customer
The party who wishes to exchange tokens issued by the DAI for fiat. When the LP reports to the DAI that the transaction is performed the customer receives a notification that the transaction has been performed.

When the customer has received the full amount of fiat currency he/she confirms through the DAI app that the exchange has been successful. If the customer does not receive the funds within a reasonable time he/she can report this and demand arbitrators to judge whether SSL logs support the LP or the customer.

As protection from malicious actors, both the LP and the customer needs to post BTC bonds as security which may be released to the other party (shared with the arbitrators) depending on which party the arbitrators side with.


The Arbitrator
The job of the arbitrator is to examine the SSL logs (or equivalent solution) generated from the LP bank transfer, in order to judge whether the transfer was performed correctly (correct recipient, correct amount..). After arbitration is performed the arbitrator will receive part of the bond (with a caveat, see below) posted by the losing party in the dispute.

Two mechanisms will be in place to avoid incompetence and collusion:

1. For every dispute five randomly selected arbitrators are chosen to provide their judgment, and the dispute is settled by a majority decision. Only the arbitrators on the side of the majority decision will take part of the bond payment and increase their reputation, the arbitrators on the minority side of the decision will get no compensation and a decrease in reputation. This serves as incentive for arbitrators to make an effort to make the right call, since most likely that means they end up on the majority side.

2. Arbitrators with a high reputation get more arbitration assignments. This serves both as an incentive for arbitrators to keep a good reputation, as well as making sure that each dispute is arbitrated by a majority of experienced arbitrators.


Conclusion
I've made a ton of assumptions here that might prove wrong, but hopefully this is at least something to start the discussion around. The biggest challenges as I see them:

Making sure that the bank transfer proof works well.

Getting all the incentives right. Will the liquidity providers be properly motivated to set aside funds for the service? Will the exchange fees be low enough to attract customers to use the tokens issued by the DAI?


Any thoughts, feedback and criticism welcome!

Comments

  • JasperJasper Eindhoven, the NetherlandsMember Posts: 514 ✭✭✭
    Good job. The arbitrators are essentially 'judges' in other terminology? Your term seems closer to me, so i will use it. I think there is a general 'how to do arbitrators' problem. Afaict, that is the main breaking point of this idea?

    When you use arbitrators, it is because the system cannot determine what the correct answer is. Think the problem of arbitrators is essentially:
    1. One of reputation/trust, how much do we trust this arbitrator, and how much do we trust him at that particular job? Of course, if you trust yourself with the technical issue, you can be the ultimate judge, from your own point of view. If you trust your people-skills, you can (happen to)meet the arbitrator and see if you trust him. Or someone you trust trusts the arbitrator, etcetra.

      Who has to trust the arbitrator? In this case, it is consumers and Liquidity Providers. They're the ones that should influence the reputation, and who the arbitrators are.
    2. If arbitrators check on eachother, disalignment of interests. Selecting randomly is one approach, but knowing about alignments you might be able to cross them off the list of possibilities, or make them less likely. You could also have arbitrators be chosen by different sides of the fence.
    3. Giving arbitrators stake without it affecting their judgement, but i dont think incentivizing them directly to vote the same is a good idea.. One way is to use trust completely, and rely on people taking out trust when judgements keep going wrong. However, that may work too slowly, you might create a 'challenge' of trust, where people with reputation/trust vote against an arbitrator.
    You can also try manage the situation to set interests towards correct judgement. A case to avoid is a monolithic monopoly liquidity provider where consumers dont have alternatives is incentivized toward bad judges.

    I havent figured stuff out. I tend to think that use of the arbitrator looks like depends a lot on how many people technically could do that judgement, what the stake is. It could choose arbitrators from a small pool of people with the technical skills, or just about anyone. That trust/reputation/'stake in success' system will probably be most effective as an infrastructure that makes use of wider trust outside any particular system.(but it is good to get going)
Sign In or Register to comment.