Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reverse Dutch Auction for the Donation address BTC #148

Closed
ifarnung opened this issue Dec 10, 2019 · 12 comments
Closed

Reverse Dutch Auction for the Donation address BTC #148

ifarnung opened this issue Dec 10, 2019 · 12 comments
Labels
an:idea https://github.com/bisq-network/proposals/issues/182#issuecomment-596599174 re:processes was:stalled

Comments

@ifarnung
Copy link

ifarnung commented Dec 10, 2019

This is a Bisq Network proposal. Please familiarize yourself with the submission and review process.

I think quite a bit of efficiency could be gained for the BISQ DAO participants by changing the way the Donation address buys BSQ tokens from contributors.

Currently, the donation address gets all the BTC fees and the Donation address manager buys BSQ on the open market from BSQ sellers. This system does work pretty well so far and as a market maker I have no problem with it. But I think we could serve the contributors or other BSQ stakeholders by having a more fair and transparent way to buy and burn the BSQ that comes from BTC fees.

I propose a reverse dutch auction each time the Donation address would like to clear out the accumulated Bitcoin (once per month, or an X BTC threshold, for example, but the important thing would be for the sellers to know when it was happening)

Google's IPO used a Dutch auction to determine the price and it's well described here: (https://www.quora.com/How-was-Googles-IPO-unique)

In the case of BSQ, sellers would commit the number of BSQ tokens and the lowest price they would accept for those tokens. All the offers would be counted up, and the donation address would calculate the price it should pay to use up all its bitcoin in buying BSQ tokens. In this style of auction the final price paid is equal for all sellers, and it equals the price of highest priced seller that was included in the successful sellers group.

Simple examples: Al offers 1000 BSQ at 7000 sats, Brad offers 1000 BSQ at 10000 sats, and Charlie offers 1000 BSQ at 12000 sats. The Donation address needs to burn .15 BTC. So the result would be Al selling 750 BSQ at 10000 sats and Brad selling 750 BSQ at 10000 sats. This would burn .15 BTC. If Al had offered 3000 BSQ at 7000 sats, the result would be Al selling 2143 BSQ for 7000 sats.

It would save a lot of time and effort for the contributor or other BSQ seller to be posting offers and jockeying for order book position in a very illiquid, not frequently traded market.

This post references: (bisq-network/roles#80)

@julianknutsen
Copy link

julianknutsen commented Dec 10, 2019

I think the spirit of this is the right way to go. The fees -> burned BSQ makes up a large amount of the BSQ volume. If you happen to be online with your offer at the right time you could potentially get a higher than average price due to the low liquidity, but trying to figure out when the donation address holder is likely to liquidate isn't ideal.

I haven't thought through all the game theory or macroeconomic impact, but an additional constraint may be to only allow "earned" BSQ to be sold in these auctions or even limit the auction to contributors in the last cycle until liquidity improves. That way, contributors have some expected way to liquidate their compensation.

Thanks for starting this discussion!

@ifarnung
Copy link
Author

I would be strongly against creating additional contraints on participation in the auction. It should be transparent and fair for all and 1 BSQ should aim to equal 1 BSQ. (I guess they don't in terms of voting rights but if you are looking for efficient price discovery, then I wouldn't add constraints)

Imagine only contribs can sell BSQ to the donation address holder, then you eliminate any desire for a trader to buy those as they immediately would lose the right to sell to one of the largest buyers on the market.. so then a contrib is pretty much stuck waiting until next month to participate or to sell in small lots to traders needing the coupons that BSQ represent?

@MwithM
Copy link

MwithM commented Dec 10, 2019

One of the biggest pros of DAO address buying BSQ is that it provides liquidity to an iliquid market.
While I agree that there should be more transparency (rules) of how are BSQ bought, I don't think having a secondary market is something desirable at this moment.
Furthermore, an auction is done when something is rare and a market price is not yet developed. While BSQ-BTC market is very far from being a mature market, there is already a price for it.

@ghost
Copy link

ghost commented Dec 10, 2019

I think also that the selling of big amounts of BTC corresponding to some official Bisq accounts should absolutely be advertised beforehand.
Such txs are not ordinary txs, because of the amount, and because it comes from an official Bisq account (which is not the property of the BTC seller).
If such sales are not advertised beforehand, then there will either be some lucky buyers around, or, far worse, some very happy (but not hazardous) few who know the moment of the sales and can fully profit from arranged prices.
imo we should not let the door open to such uncomfortable suspicion.

@chimp1984
Copy link

chimp1984 commented Dec 10, 2019

Interesting idea, but I fear that will render the process more complicated and would require some infrastructure to run such auctions.

We need to keep in mind that the BTC on the donation address is not only from trade fee but the larger part is from BTC trade amounts from trades ended up in arbitration (new arbitration model). There are too many still as security deposit is too low (we likely will increase soon to de-incentivice "future trades" from buyers not completing the trade if price moves) and some bugs from the 1.2. release have caused cases which hopefully will not happen anymore in the future. Target is to have close to zero arbitration cases, so that amount should become much lower.
The trade fee part was about 20-50% of overall fees from rough analysis of the trade statistics and received BTCs on the old arbitrators addresses in the past months. As we do not have great trade volumes atm I assume that is about 0.3 - 0.7 BTC/ month (rough guessimation). Once the arbitrator posts his report about his cases one can calculate the trade fee part of the BTC received on the donation address.

I think the easiest way would be that the "burning man" announce 2 days before he will do the trades, so interested BSQ sellers can join the offer book.

@ifarnung
Copy link
Author

Agreed that it may be too complicated to implement and having a burning announcement seems like an easy and reasonable solution.

@wiz
Copy link

wiz commented Dec 13, 2019

Maybe instead of the Burning Man, we could have a Burning Committee, with more transparency - for example use a 3 of 5 multisig address for the donation address and have 3 of 5 of the committee members have to sign-off on each transaction?

@MwithM
Copy link

MwithM commented Dec 13, 2019

Maybe instead of the Burning Man, we could have a Burning Committee, with more transparency - for example use a 3 of 5 multisig address for the donation address and have 3 of 5 of the committee members have to sign-off on each transaction?

I'm still not very happy with this approach because it just distributes risk (destroying deposit funds is the only way to make the attack no profitable), but I had also commented this possibility:
Use a 2of3 receiving address, but this address doesn't buy BSQ to be burned. Periodically, this address (donation keepers') sends donated BTC to a completely anonymous burner, but only if the receiving address will have slightly less value than the locked bond when receiving funds. If bond value is 5BTC and a transaction from donation address would make the burner address have over 4BTC, that transaction shouldn't be sent, or should be of lower value.
Thus, now we would need 4 roles for this task, 3 donation keepers and one just to burn donations buying BSQ. Donation keepers could be trusted people with locked bonds (with public identity or not), while burning guy should be completely anonymous.
We would still need to keep an eye at donation keeper address growth, but risk would be more distributed between two different addresses (donation keeper and burning guy) and 4 bonds.

@chimp1984
Copy link

@MwithM interesting idea but I don't see how this reduces risk further beside that more parties are involved. The donation keepers could collude and run away with the funds...

Maybe another idea could be that Bisq users look up the balance of the donation address holder (burning man) and if the balance exceeds a defined limit (75% of bond) they will use an emergency address which is either from a highly trusted contributor (public identity) or a public donation address of a project Bisq supports (e.g. Tor) or a proofable burn address (but then the DAO suffers from those losses so that is a very expensive solution). That way a malicious burning man will fail to take offers as the peer will switch to the emergency address and the burning man would not receive the funds anymore but would risk to lose his bond. The tricky part here would be that the balance alone is not enough but the whole process of converting BTC to BSQ and burn it need to be verified as otherwise the burningman could just transfer the BTC. That would require some more complex protocol where the burning man's burn proof gets distributed and users can verify the process. I guess that should be do-able but likely has quite a bit of effort. Effort which might be better invested atm to increase trade volume. The DAO voting on the burning man should give enough safety that not a malicious burning man could take over.

@MwithM
Copy link

MwithM commented Dec 13, 2019

@MwithM interesting idea but I don't see how this reduces risk further beside that more parties are involved. The donation keepers could collude and run away with the funds...

Yes, that's why I say that I'm still not very happy with it. It may improve a little the current situation because 3 bonds would make the attack more expensive (higher total bond).

Maybe another idea could be that Bisq users look up the balance of the donation address holder (burning man) and if the balance exceeds a defined limit (75% of bond) they will use an emergency address...

This only would stop the attack once is done (and already profitable unless you set a low bond % limit) because all trades in course until the moment the attack is noticed would already be pointing to attacker's address. Solutions which involve to stay vigilant for abnormal activity tend to fail because they would notice the attack too late.
Anyway, as donation keeper's bond is higher than the burner bond, it might help to notice the attack earlier.

@chimp1984
Copy link

Ah damn, you are right... was too quick in thinking.... Yes my suggestion will not work....

Lets bring down the cases for refund agents and then see how to proceed. Separating the funds from fees and from refund agent cases would be one step. If refund agent cases are as rare as targeted the frequency of burning is much lower and the overhead to deal with multiple key owners is lower as well.

@cbeams cbeams added the an:idea https://github.com/bisq-network/proposals/issues/182#issuecomment-596599174 label Mar 13, 2020
@MwithM
Copy link

MwithM commented Aug 14, 2020

Clased as stalled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
an:idea https://github.com/bisq-network/proposals/issues/182#issuecomment-596599174 re:processes was:stalled
Projects
None yet
Development

No branches or pull requests

6 participants