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

Implement change avoidance #102

Open
cygnet3 opened this issue Jan 29, 2025 · 2 comments
Open

Implement change avoidance #102

cygnet3 opened this issue Jan 29, 2025 · 2 comments
Labels
prio: low type: feature New feature or request

Comments

@cygnet3
Copy link
Owner

cygnet3 commented Jan 29, 2025

Sometimes we can avoid the change output by increasing/decreasing the destination amounts slightly. Something like what Wasabi is doing: https://docs.wasabiwallet.io/why-wasabi/Coins.html#change-avoidance-suggestion

@cygnet3 cygnet3 added type: feature New feature or request prio: low labels Jan 29, 2025
@Sosthene00
Copy link
Collaborator

Sosthene00 commented Feb 18, 2025

Ok let's try to narrow things down, according to our recent discussions on this topic:

  • the basics: if change amount is less than some defined amount, we remove the change output (basically giving it away as fees)
  • We want it to be as transparent as possible for user (if we can do it, we do it without asking user validation)

Questions:

  • how small is the amount we are ready to renonce to? Too big and user will complain that he's wasting money, too small and it becomes pointless (it will never happen).
  • While we should probably give user the possibility to define it himself, we should also define a sensible default
  • Is it only a posteriori (we made our transaction and figure that we can remove the change) or a priori (we actively try to build a transaction whose sum of inputs is close enough of the sum of outputs)?
  • how does this feature interact with the donate change one? Especially in the active case, it means that we could come up with multiple possible transactions that either give away the change in fees or can donate it to someone else, we don't want to overwhelm the user by giving him the choice either so I think it's best to define ourselves the best scenario.
  • Do we want to only act on the inputs or also modify the outputs?

@Sosthene00
Copy link
Collaborator

Just some thoughts on the questions above:

  • Is it only a posteriori (we made our transaction and figure that we can remove the change) or a priori (we actively try to build a transaction whose sum of inputs is close enough of the sum of outputs)?
    I think that the active way will be a lot harder, so I suggest that we first build the feature in a passive/opportunistic way
  • Do we want to only act on the inputs or also modify the outputs?
    If we want to actively suppress change I also agree that we could modify the amounts sent, but only on the plus side. Sending slightly more than expected is probably no big deal, sending even slightly less than expected can be confusing and/or irritating to user imo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
prio: low type: feature New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants