Code Monkey home page Code Monkey logo

Comments (10)

MaxHillebrand avatar MaxHillebrand commented on June 22, 2024 2

CNACK, with mining fees so volatile, it is risky to offload the payment to the coordinator.

When mining fees are low, users will have to pay a huge coordinator fee which is all profit for the coordinator.

When mining fees are high, users pay the same high coordinator fee, but now the coordinator has to pay mining fee, meaning he's likely to have losses.

Also notice that now the coordinator has the incentive to low ball fee rates, because the less he pays, the more profit he makes.

Also notice that the mining fee depends not just on inputs, but also on outputs, so somehow the coordinator would have to charge fee for outputs too.

Mining fees are an inherently difficult topic, but I think the best way to solve this resource allocation problem is by everyone paying for what they use.

I think the solution is to make the client smarter with when to coinjoin, and for the coordinator to potentially offer multiple rounds at different fee rates.

from walletwasabi.

MaxHillebrand avatar MaxHillebrand commented on June 22, 2024 1

Think of it like this, if fee rates are 1000 sats/vByte, the coordinator would have to charge 10% or so to remain profitable.

Then if fee rates are 10 sats/vByte, the coordinator can provide the service at a 1% fee or so.

Should he now adjust the coordinator fee down? If yes, then we again have volatility in the total fee paid by the user. If no, then users pay an insane amount of fees eventhough the mempool is empty.

Yet another problem is, that the coordinator fee rate is a percentage point of sats amount, whereas mining fee is rate for a vByte size amount.

These two fees do not go well together, and that's why they are currently separate concepts, that's a good thing. Our current solution is better than any other, imho.

from walletwasabi.

MaxHillebrand avatar MaxHillebrand commented on June 22, 2024 1

Fees are high, so blockspace demand is high, so there is no shortage of potential customers of the coordinator who are willing to pay the miner fee, because they must do an onchain transaction.

The blockspace cost can either be paid directly by the user, or indirectly by the user through the coordinator as middle man.

from walletwasabi.

MaxHillebrand avatar MaxHillebrand commented on June 22, 2024 1

The users are now paying directly for a fee that the coordinator decides for them.

A solution to this is the coordinator offers different fee rates in parallel rounds.

from walletwasabi.

yahiheb avatar yahiheb commented on June 22, 2024

A example of a user turning off auto-coinjoin after realizing that mining fee costs them a lot of money.

https://www.reddit.com/r/WasabiWallet/comments/13531w3/comment/jka1beg/?utm_source=share&utm_medium=web2x&context=3

from walletwasabi.

yahiheb avatar yahiheb commented on June 22, 2024

When mining fees are low, users will have to pay a huge coordinator fee which is all profit for the coordinator.

What is wrong with that? If the users deem the service to be worth their sats then it doesn't matter how much the coordinator is making profit.

When mining fees are high, users pay the same high coordinator fee, but now the coordinator has to pay mining fee, meaning he's likely to have losses.

This balances out your first point when the fees were low and the coordinator was making more profit.

There should be a balance between the two cases for the this model to work fine from the coordinator's point of view.
But also think about the good UX for users who do not have to worry or care about the fees to decide whether to coinjoin or not, and who are currently losing time or money because of decisions made for them by the coordinator who doesn't lose much.

Also notice that now the coordinator has the incentive to low ball fee rates, because the less he pays, the more profit he makes.

That is not necessarily true, the coordinator is incentivized to have more coinjoins and to get them confirmed faster, when users are paying each round. Also the reputation and the quality of the service is at play here.

Also notice that the mining fee depends not just on inputs, but also on outputs, so somehow the coordinator would have to charge fee for outputs too.

Yes that should be taken into account when deciding what and how much users pay for the service.

Mining fees are an inherently difficult topic, but I think the best way to solve this resource allocation problem is by everyone paying for what they use.

I agree with that, but who pays what doesn't really matter if the model works from a business point of view and the users pay for the service that they get with all sovereignty and transparency.
I would say that the less hassle and the predictability of the costs and being truly in charge of what to pay and when is a very desirable outcome for users and justifies even an increase in the cost of the service.

from walletwasabi.

yahiheb avatar yahiheb commented on June 22, 2024

Think of it like this, if fee rates are 1000 sats/vByte, the coordinator would have to charge 10% or so to remain profitable.

The current system is not any better, if fee rates are 1000 sats/vByte then users would end up paying a lot in each round in mining fees which might be more than 10%.
Even worse users at such high fee rates won't be coinjoining so how can the coordinator be profitable??

Regardless of the mining fees issue, how could the coordinator be profitable if no new user coinjoin in the current model?

At the end of the day the users pay for a service and if it is useful to them then they will pay for it.
Some research/calculation should be made to determine what percentage should be charged in different scenario.

These two fees do not go well together, and that's why they are currently separate concepts, that's a good thing.

It is a good thing from the coordinator's point of view because it doesn't pay for the mining fees but the users do. Underpaying or overpaying doesn't harm the coordinator.

Our current solution is better than any other, imho.

We can explore different options. The current model cannot be better than any solution when we are clearly facing issues regarding mining fees, and to fix that we are adding more complexity on all levels to an already complex system.

from walletwasabi.

yahiheb avatar yahiheb commented on June 22, 2024

Fees are high, so blockspace demand is high, so there is no shortage of potential customers of the coordinator who are willing to pay the miner fee, because they must do an onchain transaction.

The blockspace demand is high does not mean that users want to coinjoin. We know for a fact that users coinjoin less when fees are high, and the above mentioned example supports that.

The blockspace cost can either be paid directly by the user, or indirectly by the user through the coordinator as middle man.

The users are now paying directly for a fee that the coordinator decides for them.

Imagine taking a taxi and the driver tells you:

Pay X for the service + Y for the gas/petrol which the driver decides for you. (our current fee model)
Pay Z for the service. (real world)

from walletwasabi.

yahiheb avatar yahiheb commented on June 22, 2024

A solution to this is the coordinator offers different fee rates in parallel rounds.

I don't know how realistic is this solution or how it would work or affect the rounds by splitting the liquidity.

from walletwasabi.

Kruwed avatar Kruwed commented on June 22, 2024

I don't know how realistic is this solution or how it would work or affect the rounds by splitting the liquidity.

#10615 describes a possible implementation of this solution.

from walletwasabi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.