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

Used burned BSQ to become a fee receiver #359

Closed
chimp1984 opened this issue Jan 23, 2022 · 15 comments
Closed

Used burned BSQ to become a fee receiver #359

chimp1984 opened this issue Jan 23, 2022 · 15 comments
Assignees
Labels
a:proposal https://bisq.wiki/Proposals re:protocol was:stalled

Comments

@chimp1984
Copy link

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

An alternative, better idea to #358 is to burn BSQ and use that for giving the right to receive trade fees. This could be done for BTC fees in Bisq (instead of using the burningman) as well for any new trade protocol where BTC or BSQ is not part of the trade (e.g. Liquid).

When burning BSQ one can attach a hash to the opReturn data. One can put the receiver address (e.g. BTC address for Bisq BTC fees or L-BTC address when used for swaps on Liquid) as pre-image for that hash, so there is a proof of the creator of the burn tx about the address. Additionally the address is published to the P2P network.
Alternatively we could put the address directly into the opReturn avoiding the need for the distribution on the P2P network. Would need to look if there are any issues to use the address directly in the opReturn data, I guess not.

Any DAO node can collect those burn BSQ txs and use those for the weighted probabilistic fee payment.

That way the burningman role can be decentralised and anyone can take part.
The difference though is that they have to burn up-front and receive the fees later and there is no guarantee that the fee payments will exceed the burned BSQ. It will depend on the participation as well and it might be hard to estimate but it should regulate itself over time. If it's not profitable people will stop doing it so there will be less participants and revenue will increase, attracting more participants again.

There can be some policies applied like a decay function over time or that it's just valid for a certain duration. E.g. your burned BSQ decays linearly to zero over the time of 6 months. Actually the shorter that period the faster the pool auto-regulates itself so that its sufficiently profitable. So probably better to have rather smaller amounts with shorter time scopes.

Similar ideas have been discussed in the past but not followed further. Now with the open questions how to distribute trade fees to the DAO for Bisq 2 protocols which do not fit into the BTC/BSQ fee model, I think that idea should be reconsidered.

@w0000000t
Copy link

I might not be a smart person, or maybe just mentally tired right now, but I am afraid I didn't understand this.
I know the way you explained it is univocal and just a tad more technical than the average person can decipher, yet, could you try and add a "higher level" explanation, where the technicalities of the first post are left hidden?
I mean, explaining in layman terms, and make a few characteristic examples (including the "inflation" mechanism) so "normal people" can get an idea 😃

@chimp1984
Copy link
Author

chimp1984 commented Jan 26, 2022

@w0000000t No worry, it is understandable that those who are not too familiar with the DAO technical and some rather exotic conceptual aspects get confused by the description. I will try to give more background....

The economics of the DAO is based on an inflationary and deflationary tendency. By issuing new BSQ at compensation requests we create more BSQ, thus creating inflation as the supply of total BSQ increases and the value of each unit decreases assuming the total value of the DAO stays the same.
On the other side by burning BSQ (e.g. by paying trade fee in BSQ) we remove BSQ from the supply and create a deflationary force, which increases the value of each unit.

Beside the burning BSQ by paying trade fees (technically its "uncoloring" BSQ back to BTC and using it for paying miner fees, so those BTC are not lost), there is a tool in the app called "Proof of burn". This is used by the burningman who receives the trade fee of those traders using BTC for fee payment and sell those BTC for BSQ and after receiving the BSQ burns those BSQ, thus bringing back the fees into the DAO economy. We would like to get rid of that burningman role as its not decentralized as it should be.

In the context of Bisq 2 with multiple trade protocols, including such which do not have BTC or BSQ on any side of the trade we need a new fee model.

So my suggestion here is that anyone can play that role of the burningman and burn upfront some amount of BSQ and in return receive the privilege to receive the trade fee. This can be the BTC trade fee in Bisq 1 or any crypto currency in Bisq 2, for instance at a Liquid LBTC-USDT swap there can be people who have burned BSQ and linked that to a USDT address to receive the trade fee paid in USDT, or they use a LBTC address and receive that if that is the fee currency.

We used a similar model for paying back the losses of the victims from the security incident. Those victims had in total received 50% of the BTC fee revenue. The fee payment was done by an probabilistic algorithm as splitting small amounts to multiple receivers would be inefficient from the miner fee costs. So if a victim had 10% of the total loss they had a 10% chance (5% in reality as we allocated only 50% to the victims) to receive the trade fee in BTC. Over time that levels out statistically as there is a stream of many small payments.

Similar to that concept we can have a pool of people who have burned BSQ to get the right to receive the BTC fee.
E.g. Let's assume there are 10 people who have burned in total 10 000 BSQ for the period of one cycle. Some have burned 100 BSQ others have burned 1000 BSQ. Those with 1000 BSQ have a 10x higher chance compared to the ones with 100 BSQ to receive a trade fee payment.
Let's assume the revenue from BTC trade fees is 25 000 USD and 1 BSQ is 2 USD, so the pool value is 20k USD.
So in total they share by that probabilistic algorithm the 25k USD and have spent in sum 20k USD by burning BSQ. So in total they made a profit of 5k USD. Those with higher amounts get a bigger share of that profit.

If there is some profit to be made it will attract more who want to participate. So next cycle there might be 15K BSQ burned and assuming the same revenue, there would be a 5000 USD loss. This time some will leave the pool...
Over time there will be found an equilibrium so that those who take the efforts and risks get enough profit that its worth it for them, but profit is hard enough earned so that the pool is not overbought. With pool I mean the funds of the group of fee receivers who have burned BSQ.

For Bisq 1 that might not be justified as the added complexity and costs might not be worth it (those who take that risk will need to make some profit, so for the DAO it will be more expensive than the burningman solution used now).
But for Bisq 2 we need a fee solution for those trade protocols where we cannot use the current model.

The beauty of that model is that its permission-less and open for anyone to participate (anyone can become such a fee receiver) and that its flexible to can be used for any crypto currency. For fiat it would not work as linking a bank account would not really work in the privacy context of Bisq.

Technically the linking of the fee receiver address to the burned BSQ is done by attaching the address to the burn BSQ tx as opReturn data, either via a hash and extra P2P data or directly putting the address into the opReturn.

Conceptually there is a major difference to the burningman model: The BM burns after having received the BTC and converted to BSQ, so the BM does not carry risk to lose money. The DAO pays for the work to do those trades and administration work and for carrying some risks.
In the proposed model those who burn BSQ are doing that up-front, not knowing what the fee revenue will be and not knowing how many others will participate to divide the total fee revenue. So they are taking a speculative risk and need to be compensated by some profit for that. So it will be likely more expensive for the DAO. But the 2 major benefits are that the centralised role of the BM is remove and that it can be used for currency pairs where the current Bisq fee model does not work.

Hope that makes it more clear.

@w0000000t
Copy link

w0000000t commented Jan 26, 2022

Yes, I'm 70% there, while before it was probably 20%, thank you for the explanation! The balance will be found just like mining, with difficulty/revenue/BTC price/electricity cost/ASICs' MSRP
For the little it is worth, and at my current level of understanding, this idea finds my favour, especially if contributors can choose to adhere partially to this system, while receiving the remaining part of their compensation in BSQ, as usual.

EDIT: The only thing that re-reading here and there sheds some doubt, is that this sound something like ETH's PoS... is it?

@chimp1984
Copy link
Author

while receiving the remaining part of their compensation in BSQ

I does not affect that. They do their comp request as usual. Its just additional an option for anyone to spend their BSQ for becoming a fee receiver instead of selling it on the market.

...ETH's PoS

It cannot be compared to mining/PoS IMO as it has different context.
BSQ is not a blockchain which require miners/stakers for security.
Here it is only about a decentralized and privacy protecting way how to distribute revenue to DAO stakeholders.
The burned BSQ are a kind of payment to the DAO (increase the value of each unit).

@w0000000t
Copy link

w0000000t commented Jan 26, 2022

I does not affect that. They do their comp request as usual. Its just additional an option for anyone to spend their BSQ for becoming a fee receiver instead of selling it on the market.

Silly me, I completely misunderstood, then this is completely separate from compensations... I like it even more.

It cannot be compared to mining/PoS IMO as it has different context.

I suppose I was referring to ETH to say "those who own more end up gaining more", yet burningman right now is the ultimate big staker, as is the only staker there is.
But now I also get what you meant back there with "probabilistic payout", "stream of small payments", "even out with time".

Thank you for taking the time to explain, I hope it was useful for others as well as it was for me!

@pazza83
Copy link

pazza83 commented Jan 26, 2022

Hi @chimp1984 thanks for the follow up explanation it helped explain how you anticipate it working in practice.

Would there would be a deadline for users to burn BSQ by if they wished to receive trade fees for the following cycle? And that the current amount of BSQ burned would be known by any potential participant?

I like that your idea removes the centralization of burningman and offers another way for people with BSQ to convert any amount of BSQ to BTC (or potentially something else).

You mention risks to the user, but I think there are also some risks to the DAO.

Users (BSQ burners) make profit = DAO makes loss (inflation as users underpaid).
Users (BSQ burners) make loss = DAO makes profit (deflation as users overpaid).

I think you are right that a balance would be achieved over time.

@MwithM
Copy link

MwithM commented Jan 26, 2022

In the proposed model those who burn BSQ are doing that up-front, not knowing what the fee revenue will be and not knowing how many others will participate to divide the total fee revenue. So they are taking a speculative risk and need to be compensated by some profit for that. So it will be likely more expensive for the DAO.

Indeed, I find this a great idea:
It's a future market prediction on how many trading fees is going Bisq to generate.
It should reduce volatility as the amount of burned BSQ should be more stable than trading fees. Some periods could be very beneficial for BSQ burners, but I see it something like paying an insurance as there will also be times when volume decay, so trading fees will be lower than the amount of BSQ burned.

If this idea removes the burningman for trading fees, I find it completely worth.

In a multicurrency system, how are the trading fees going to be paid? Will there be "strong" currencies to pay the trading fees (ETH, BTC, L-BTC, XMR...) to avoid receiving small amounts of different currencies? After 3 months as a BSQ burner I would not like to end owning just 3USD in Dogecoin which might be more expensive to trade than just leaving it there.

@chimp1984
Copy link
Author

It's a future market prediction on how many trading fees is going Bisq to generate.

Yes exactly. Have not seen it that way but yes its a prediction market.

In a multicurrency system, how are the trading fees going to be paid?

No details yet defined. but for instance a L-BTC-USDT trade might either have 2 fee payments in the users currency (e.g. L-BTC seller pays in L-BTC and L-BTC buyer pays in USDT, so that does not introduce dependencies in case the user has no money of the asset they will receive yet. Or it could be that one side pays for both similar like we do it in BSQ swaps, but I think its more clear and transparent if both pay their fee in the currency they have.

So that will require that fee-collectors choose if they want L-BTC or USDT or both and do 2 x BSQ burning.

For niche markets there might be different treatments. Either no fee or longer time scopes to avoid frictions. E.g if you want to be fee collector for Doge then you might have 3 or 6 cycles instead of 1 cycle... many open details but I think that is all manageable. Tiny amounts of fees are probably not worth to worry about....

@chimp1984
Copy link
Author

Would there would be a deadline for users to burn BSQ by if they wished to receive trade fees for the following cycle?

I think to keep time periods short reduces risks for misallocations and lowers potential loss for both sides.
Maybe one cycle is a good unit. So at current cycle one can make a burn BSQ tx to become fee collector for the upcoming cycle.

And that the current amount of BSQ burned would be known by any potential participant?

Yes thats a good question.
One option to avoid that everyone tries to wait until the last block to get more information would be to weight the share with the block height. So if you burn at the first block of the cycle you get 100% and if you burn at the last block it goes down to 50%. So early birds get a bonus as they take higher risk. The numbers need to be adjusted maybe, But something in that range could work. Maybe it need to be even more aggressive as its a very important information how large the pool is.

That way there is enough motivation to burn early and then the others can see if there is still headroom in the pool for a realistic profit. E.g. if after 5 days in the cycle the pool has already 10 K BSQ burned and from past cycles we had about 20K USD revenue on BTC fees then its clear that adding more to the pool comes with higher risk that collectors do not make a profit. Those who would add more later pay even more for the loss as there weight is smaller.

@chimp1984
Copy link
Author

The numbers need to be adjusted maybe

Actually using 0% at the last block might be justified. Then there is the full spectrum and the market can find it's sweet spot.

@MwithM
Copy link

MwithM commented Jan 27, 2022

So that will require that fee-collectors choose if they want L-BTC or USDT or both and do 2 x BSQ burning.
For niche markets there might be different treatments. Either no fee or longer time scopes to avoid frictions. E.g if you want to be fee collector for Doge then you might have 3 or 6 cycles instead of 1 cycle... many open details but I think that is all manageable. Tiny amounts of fees are probably not worth to worry about....

I thought there would be 1 single pool for all trading fees, so any participant would burn BSQ and provide a myriad of cryptocurrencies addresses to receive the trading fees.
Burning BSQ to get one single niche coin would create too much friction. Maybe a couple pools, one for main currencies (with shorter time scope) and another for niche (larger) would be ok.

One option to avoid that everyone tries to wait until the last block to get more information would be to weight the share with the block height.

What about using a blind bid phase similar to the blind vote and vote reveal phase? Is it technically feasible or I don't understand how exactly blind votes work? It would probably require more time for the market to adjust their bids, but it's easier to understand and seems harder to play tricky games.
For example, I imagine that with the weighted solution there could be a race to be the first to burn BSQ at the first block.

@chimp1984
Copy link
Author

I thought there would be 1 single pool for all trading fees

Ah yes true that might be better. If we use the hash we can put multiple addresses in.

blind bid phase

That would not work technically with the existing features.
But a better idea is to not bind it to a cycle as suggested above but just have a x days validity of the burned BSQ.
We could even make it dependent on the burned amount. Then we would actually price it, but it might be hard how to define the price. Similar as we do with paying for asset listing.
E.g. burning 100 BSQ gives you 10 days right to receive trade fees. If we find a way how to automatically adjust that price (the number of blocks per BSQ) that would be probably the best solution.
We could calculate at each cycle what was the real revenue in trade fee and what was burned BSQ and if the "price" was too high or too low and adjust it by DAO voting, similar as we define the fee and BSQ rate for comp. requests. But would prefer a solution without that administrative overhead.

@MwithM
Copy link

MwithM commented Jan 27, 2022

I find that the administrative option and needing to establish prices is less attractive than a market prediction where X% amount of burned BSQ represents Y% chance of getting the trade fees for trades during Z amount of time.

@flix1
Copy link
Member

flix1 commented Jan 29, 2022

I've read it 3 times now and don't understand it.

EDIT - OK, I think I get it now. Thanks @chimp1984 for the extended explanation.

It looks like an extremely interesting idea and would remove one of the most centralized aspects still remaining in Bisq. You can count on my help as a beta-tester. I'll happily take the risk of being one of the first to burn BSQ in exchange for fees.

I still expect Bisq to come under scrutiny and attack on multiple fronts in the not too distant future, so creating a permissionless, decentralized, anonymous replacement for burningman is important.

@pazza83
Copy link

pazza83 commented Sep 4, 2022

Closing as stalled

@pazza83 pazza83 closed this as completed Sep 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:proposal https://bisq.wiki/Proposals re:protocol was:stalled
Projects
None yet
Development

No branches or pull requests

5 participants