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

Add information to "Confirm fee bump" window #186

Merged
merged 1 commit into from Jan 26, 2021
Merged

Add information to "Confirm fee bump" window #186

merged 1 commit into from Jan 26, 2021

Conversation

ghost
Copy link

@ghost ghost commented Jan 16, 2021

luke-jr: Reducing the change output also could be a privacy problem, since it identifies which output was change.

sipa: Wallet doesn't know the original transaction was using coin control. So I think its expected that if you use automatic fee bumping, you'll get whatever the coin selection algorithm decides. As for why its not decreasing the change and instead adding another input, that may be a bug. (IRC: #bitcoin-core-dev)

Copy link

@percy-g2 percy-g2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK

Compiled successfully on Ubuntu 20.04.1 LTS and tested with below details:

Initial Tx: 64e2c03527b50a934f9cdedf87813ab534023afd161c907f4380dd24506f9a71
Selected one of the Inputs, used one address from wallet as change address and broadcasted RBF enabled Tx.

Replacement Tx: 02a48410d61974125ed145c465004e7e7c681b2398108ed4c4a5acea261b160c
New inputs and Outputs were added automatically.

User was informed about the changes in the "Confirm fee bump" dialog:
image

Can add one more <br /> in Line 517

@ghost
Copy link
Author

ghost commented Jan 20, 2021

Can add one more
in Line 517

Done. Added in 014498e

Copy link

@percy-g2 percy-g2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 014498e

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIUC, the purpose of this change is to warn users about privacy issues while bumping a fee, right?

Why not to add this statement explicitly (however, not sure about exact wording) with an appropriate subtitle? Smth like "WARNING: fee bumping could leak privacy if new inputs and change output will be added to the transaction".

@prayank23
Do you mind changing this PR title s/Add information in RBF pop-up/Add information to "Confirm fee bump" window/ ?

@ghost ghost changed the title Add information in RBF pop-up Add information to "Confirm fee bump" window Jan 20, 2021
@ghost
Copy link
Author

ghost commented Jan 20, 2021

IIUC, the purpose of this change is to warn users about privacy issues while bumping a fee, right?

Inform user about changes in replacement transaction apart from fees which is already mentioned. Adding inputs and outputs can be considered good or bad for privacy or fees depending on the user.

As luke-jr mentioned reducing change output is also a privacy issue

Why not to add this statement explicitly (however, not sure about exact wording) with an appropriate subtitle? Smth like "WARNING: fee bumping could leak privacy if new inputs and change output will be added to the transaction".

I was considering adding the word "warning" but didn't. It can be added. Mentioning about privacy looks scary and as I explained above it may not be a privacy issue for some users. Let me explain with one example:

Alice uses coin control features to select one input, custom change address and broadcasts RBF enabled tx. It is not confirmed for hours and she needs this amount urgently on one exchange for trading. She increases the fee with a replacement transaction not aware of other inputs and outputs being added, broadcasts it. There were few UTXOs in the wallet which were associated with darknet transactions and some of them were used in replacement transaction. In this case it's a privacy issue.

Bob has a business and uses coin control features to select one input, custom change address and broadcasts RBF enabled tx. Not confirmed for hours, few users related to this business are waiting. Bob increases the fee with replacement transaction which adds few extra inputs and outputs but Bob doesn't care as this wallet has all transactions related to business. Fees could have been less if less inputs/outputs but priority in this case is to complete the users requests asap.

@hebasto
Copy link
Member

hebasto commented Jan 20, 2021

Adding inputs and outputs can be considered good or bad for privacy or fees depending on the user.

If a txout, that was not correlated to a user/wallet in any way, is added to a transaction via a new input, it is always bad for privacy. However, it is true that some users do not care about it.

@ghost
Copy link
Author

ghost commented Jan 20, 2021

Makes sense. Users may not care but it affects privacy. Will rephrase the sentence and add "warning" and "privacy".

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approach ACK 6be2bff

@prayank23
Do you mind squashing all commits into the single one?

src/qt/walletmodel.cpp Outdated Show resolved Hide resolved
src/qt/walletmodel.cpp Outdated Show resolved Hide resolved
@hebasto
Copy link
Member

hebasto commented Jan 20, 2021

@achow101 @meshcollider @luke-jr @Sjors @sipa

Do you mind looking into this PR?

@ghost
Copy link
Author

ghost commented Jan 21, 2021

Do you mind squashing all commits into the single one?

@hebasto Will do once there are enough ACKs and we are sure about the statement that can be used in this warning.

@hebasto
Copy link
Member

hebasto commented Jan 21, 2021

@prayank23

Do you mind squashing all commits into the single one?

@hebasto Will do once there are enough ACKs and we are sure about the statement that can be used in this warning.

Doing in such a way all ACKs will be invalidated. It will require additional re-reviewing that increases the review burden.

@ghost
Copy link
Author

ghost commented Jan 21, 2021

Doing in such a way all ACKs will be invalidated. It will require additional re-reviewing that increases the review burden.

Done. Squashed commits.

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 3d93f27, tested on Linux Mint 20.1 (Qt 5.12.8):

Screenshot from 2021-01-21 03-08-17

More sophisticated solutions (e.g., opening a coin control dialog) could be added in follow ups.

src/qt/walletmodel.cpp Outdated Show resolved Hide resolved
Copy link
Member

@luke-jr luke-jr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(NACK until message is either CoinControl-only or understandable for non-technical folks)

@jonatack
Copy link
Member

utACK 570ebc6 in terms of the message content

I understand @luke-jr's disagreement with the change but I don't know enough about GUI user understanding or expertise level to have an opinion.

@ghost
Copy link
Author

ghost commented Jan 24, 2021

(NACK until message is either CoinControl-only or understandable for non-technical folks)

@luke-jr

Done. Added an if statement in 0ae1ce0

"Confirm fee bump" Window with Coin Control Features option disabled:
image

"Confirm fee bump" Window with Coin Control Features option enabled:
image

Copy link
Member

@jonatack jonatack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few suggestions below; thanks for updating.

src/qt/walletmodel.cpp Show resolved Hide resolved
src/qt/walletmodel.cpp Outdated Show resolved Hide resolved
src/qt/walletmodel.cpp Outdated Show resolved Hide resolved
@jonatack
Copy link
Member

utACK 84add0d

Copy link
Member

@luke-jr luke-jr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK, minor language nit

src/qt/walletmodel.cpp Outdated Show resolved Hide resolved
Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 84add0d

Happy to re-ACK after addressing the recent @luke-jr's suggestion.

Check if "Coin Control features" are enabled to display warning before broadcasting replacement transaction
Workaround to fix issue: bitcoin/bitcoin#20795

Co-authored-by: Jon Atack <jon@atack.com>
@jonasschnelli
Copy link
Contributor

Tested ACK - 232d1f9

@jonasschnelli
Copy link
Contributor

Bildschirmfoto 2021-01-26 um 10 26 59

(nit: not sure if it needs to be bold)

@jonasschnelli jonasschnelli merged commit d38e2d9 into bitcoin-core:master Jan 26, 2021
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jan 26, 2021
232d1f9 Add information to "Confirm fee bump" window (Prayank)

Pull request description:

  + Add information in bump fee confirmation box according to the documentation: https://bitcoincore.org/en/doc/0.20.0/rpc/wallet/bumpfee/

  + Workaround to fix issue: bitcoin#20795 in which user isn't aware of new inputs, outputs added to replacement transaction before broadcasting. Initial transaction had used coin control features and custom change address. Until the issue is fixed by change in coin selection algorithm we can add this warning.

  + Waiting for comments from devs who are working on coin selection algorithm PRs or involved in related research. However got two comments from Luke Dashjr and Pieter Wuille:

  _luke-jr: Reducing the change output also could be a privacy problem, since it identifies which output was change._

  _sipa: Wallet doesn't know the original transaction was using coin control. So I think its expected that if you use automatic fee bumping, you'll get whatever the coin selection algorithm decides. As for why its not decreasing the change and instead adding another input, that may be a bug._  (IRC: #bitcoin-core-dev)

ACKs for top commit:
  jonasschnelli:
    Tested ACK - 232d1f9

Tree-SHA512: 2ff65db1ddb1d4a45f82670b6ca303a0bf48acf3d09defffc21f44ec81cb6182268959706f592f3442aae5db48f43b8ea86973d74ec2721be93d209ce0414953
@bitcoin-core bitcoin-core locked as resolved and limited conversation to collaborators Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants