Comments (5)
In case there is enough change, RBF is really easy to implement -> Just reduce change
If there is not enough change, there are 4 possibilities:
- Wallet has other private/same pocket coins bigger than some selected so swapping some selected coins with other could be enough to cover the fee -> only downside is potentially (more) change
- Wallet has other private/same pocket coins smaller than the selected ones, some inputs can be added to cover for the extra fee -> it will increase size of the TX + potentially create (more) change
- Amount sent can be reduced to cover for the extra fee -> best solution but causes issues for payments.
- An extra non private output from another pocket -> degrades privacy, increases size of the TX and potentially create (more) change
In all cases it's probably better to just re-run the automatic coin selector but making sure that old TX will be replaced by the new one. One remaining question: If these are the only possible outcomes, should the user have an actionnable choice whether he wants to degrade his privacy by adding another pocket, have change, or reduce the amount?
from walletwasabi.
From the point of view of simplicity, I'd recommend that the original transaction inputs always be kept when RBF fee bumping. You don't want to accidentally create two distinct transactions, eg by selecting a different input to keep in different, successive, fee bumps. Better to lose a bit of privacy for the first version of this feature than accidentally create a double-payment bug.
from walletwasabi.
The effective fee rate calculation gets difficult if there is a chain of unconfirmed transactions prior to the users transaction.
This shouldn't be a problem if we are doing this for only single user transactions that are initiated from the users wallet (user has all inputs)
.
from walletwasabi.
the UX should warn the user about the privacy downsides [change output detection and potential additional non-private inputs]
from walletwasabi.
The effective fee rate calculation gets difficult if there is a chain of unconfirmed transactions prior to the users transaction.
from walletwasabi.
Related Issues (20)
- Search TXID before and after opening a wallet HOT 3
- [UX/UI redesign] Coloring and Grouping Numbers HOT 10
- Display/suggest only one label when there are many that differ only in uppercase/lowercase. HOT 2
- Remove the space separator and the unit when copying/pasting the private balance HOT 2
- UI & graceful shutdown support HOT 3
- RPC: reduce decimal count of anonymitySet result
- Reduce affiliation error to Warnings HOT 1
- Nothing happens when using Quit in Menu Bar if shutdown is prevented HOT 3
- Do not accept space as a valid input from the user when typing the amount to send
- Inappropriate use of random number generator
- Exlicit use of random generator HOT 3
- Visible list of suggested labels while textbox is empty HOT 3
- NavBar selection indicator on wrong wallet HOT 1
- [VDG] Coinjoin transaction group gets collapsed by itself HOT 7
- Many transaction notifications when opening a wallet. HOT 5
- [VDG] CurrencyEntryBox is not consistent HOT 3
- [VDG] ListBox hidden selected item bug HOT 1
- TXDetails: CopyableContent of address
- Removing Alices who have already spent their inputs doesn't work HOT 10
- Shortened output registration or signing phase disrupts round HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from walletwasabi.