[bisq-network/proposals] Replace burningman and refund agent by market place based solutions (#259)

chimp1984 notifications at github.com
Sat Sep 12 18:52:08 UTC 2020


In a discussion with @sqrrm we came up with some ideas how to solve the issues with burningman and refund agent. As always the best solution to a difficult problem is to eliminate the source of it, e.g. to get rid of both roles.
Here are the 2 ideas.

We want to remove the role of the refund agent and make the arbitration process a pure secondary mediation process instead. To avoid the friction for the user to need to go though the process of requesting reimbursment from the DAO and then being exposed to the volatility and liquidity risks when trying to sell the BSQ for BTC to get his lost funds recovered I would suggest a new model.

## Getting rid of the refund agent
### Adding a reimbursement claim market
The trader can put his claim for reimbursement on a nauction market with a limited period (e.g. 1 week). Anyone can make an offer in that time to offer x amount of BSQ to pay the trader the lost BTC and getting the right to do the reimbursement request for the traders dispute. He is buying the claim for BSQ issuance with BTC. This can be all raltively trivially secured by signatures and pubKeys. The best offer (lowest BSQ amount) after the time expires will be executed and the trader gets his BTC back from the winning market partizipant. The trade is like any altcoin trade. I doubt there is a solution for an atomic model but I think that is not needed as both sides of the transaction can be trivially verified. 

The claim purchaser then makes the reimbursement request for the amount of BSQ he paid. This might be more than the average market price as it represents the risk for getting rejected by the DAO as well as the liquidity and volatility risk. Disputes with unclear outcome have litte change to find anyone who is making an offer and might not be sell-able. That is good as only 100% clear cases should be reimbursed. In doubt the claim buyer is taking the risk and might get rejected by the DAO.

With that we create an open market for the claims and avoid to put the burden on the trader. The only burden for the trader is to wait 1 week until the auction is over. The price difference will depend on the health of the BSQ market and of the dispute result. As said unclear cases might not be sell-able or only at a very high price which would then again reduces the chance that the reimbursement request gets accepted in DAO voting.

It could be implemented as a new payment method and a "token" representing the claim. The tools for verifying the signature can be integrated in Bisq. The acution model would be new and need more thought, maybe there are better ways to do it (anyoneCanPay sighash might be useful here - but that needs more thought).

## Getting rid of the burning man
### Swapping automatically BTC fees to BSQ
With the work on atomic BSQ/BTC swaps and the work on the API we should be prepared for a solution how to do an automated conversion of the BTC fee to BSQ (and burned funds from arbitration cases).

At the trade fee transaction we could add the atomic swap of the BTC fee part with the BSQ fee. There need to be special market makers (using the API for automated trading) who do not need to pay a maker fee for their offers and who keep many offers online. To avoid abuse like offer spam they have to set up a BSQ bond. So act as bonded roles. Anyone can partizipate to be a market maker and it should be a profitable activity. They make offers with smallest min amount (0.0001 BTC) to max amount (2 BTC). A trader using BTC fees will automatically take the best offer on the market use the BSQ input for the fee tx and burn the required fee. The trade protocol for that is atomic so the trade fee tx is the BSQ/BTC swap as well as the fee payment and preparaton of the reserved funds. The interactive process could be probably reduced to one direct message for requesting the signature of the market maker. The inputs for creating the prepared tx could be added to the offer, but those are details to figure out later...

## Automatically burn BSQ from atomic swap with delayed payout tx
For making the process of convering the BTC funds from the delayed payout tx to BSQ and burning those can be automated via a special atomic swap as well.

Similar like the trade fee swap we could use market makers putting up offers to sell BSQ for BTC and the BSQ will be burned instead being received by the peer like in a normal swap.

The funds from the delayed payout tx goes as 1 input to that swap tx. The other input is the BSQ from the market maker. The outputs are the BTC which goes to the market maker and a optional change from the BSQ input. The BSQ amount representing the BTC input will be burned in that tx. The publisher of the delayed payout tx takes the best offer on the market (highest amount of BSQ burned). Here is a bit of a risk how we can guarantee that he has not manipulated the code so that he takes an offer which he created by himself with a manipulated price. To avoid that we can show the price in the arbitration and the arbitrator will discover if the price was off from the usual market price. The price is determined by the health of the BSQ market, so again the real price for that conversion can be different than the average market price specially if it is larger amounts. 
How to deal with the issue that we need to determine the output of the delayed payout tx at take offer time is an open problem we need think more about. One solution (not a good one) is to take the best offer at that moment and pre-select the potential marekt maker, but that comes with various problems... An area we need to find a good solution still.

So with that part we are providing more liquidity for those who want to sell BSQ. 

The whole concept requires that the BSQ market is somehow healthy and not terrible volatile and illiquid. But it confronts the DAO with the reality and we need to fix it if it is not satisfying. The current system makes some shortcuts that contributors takeing altruistically more risk as the DAO is paying for (refund agent).

An open risk is that the trades with larges amount (e.g. 2 BTC) will cause large burning and reimbursement swaps and BSQ trades with large amounts might tend to have a negative impact on price. Not 100% sure about that but need to be considered.

I think with those 3 elements we remove completely those problematic roles and get to a more market based and open system. It also does not seem to be terribly complex and that much engineering effort, sure its not done in a week, but its feasible to get there in a few months.  

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/proposals/issues/259
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20200912/518d23f8/attachment.html>


More information about the bisq-github mailing list