wallet: Rethinking MIN_CHANGE #24458

issue MarcoFalke openend this issue on March 2, 2022
  1. MarcoFalke commented at 9:02 am on March 2, 2022: member

    MIN_CHANGE is a privacy leak, since it is an easily observable wallet behaviour. Any output almost equal, but minimally larger than MIN_CHANGE is highly likely the change output of a tx.

    Also, MIN_CHANGE is quite high, considering the value of bitcoin.

    An easy fix for the second issue would be to just lower the value, but maybe some randomization can be done to also fix the first issue?

  2. MarcoFalke added the label Feature on Mar 2, 2022
  3. MarcoFalke added the label Wallet on Mar 2, 2022
  4. MarcoFalke removed the label Feature on Mar 2, 2022
  5. MarcoFalke added the label Brainstorming on Mar 2, 2022
  6. MarcoFalke added the label Privacy on Mar 2, 2022
  7. glozow commented at 9:15 am on March 2, 2022: member
    I think the solution we came up with (@Xekyo @achow101 lmk if wrong) is to get rid of MIN_CHANGE and, instead, pick the change target for each selection as a random value between 50ksat and 500ksat, also limited by payment value?
  8. MarcoFalke commented at 10:53 am on March 2, 2022: member

    limited by payment value?

    I think limited by double the payment value? Otherwise it might be easier to apply the https://en.bitcoin.it/wiki/Privacy#Unnecessary_input_heuristic ?

  9. achow101 commented at 10:55 am on March 2, 2022: member
    Yes, double the payment value was what we decided.
  10. ghost commented at 11:15 am on March 2, 2022: none

    MIN_CHANGE is a privacy leak, since it is an easily observable wallet behaviour. Any output almost equal, but minimally larger than MIN_CHANGE is highly likely the change output of a tx.

    Also, MIN_CHANGE is quite high, considering the value of bitcoin.

    An easy fix for the second issue would be to just lower the value, but maybe some randomization can be done to also fix the first issue?

    Will making it run time variable fix this? #6669 (review)

    It will be configurable similar to long term fee rate added in #22009

  11. MarcoFalke commented at 11:20 am on March 2, 2022: member

    Will making it run time variable fix this? #6669 (review)

    No, because most users don’t change the default arguments. If there is one user changing it to another constant, it will actually be a more unique fingerprint, making it worse.

  12. glozow commented at 11:07 am on March 7, 2022: member
    Working on this now
  13. Xekyo commented at 2:29 pm on March 15, 2022: member

    I think the solution we came up with (@Xekyo @achow101 lmk if wrong) is to get rid of MIN_CHANGE and, instead, pick the change target for each selection as a random value between 50ksat and 500ksat, also limited by payment value?

    This is really just a way to cater to our existing knapsack selector mechanics, which tries to minimize the change amount over the minChange. For SRD, it would just do to have a much smaller minChange.

  14. fanquake closed this on Mar 25, 2022

  15. DrahtBot locked this on Mar 29, 2023

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-21 15:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me