Support not reusing addresses #10065

issue RHavar opened this issue on March 23, 2017
  1. RHavar commented at 6:34 PM on March 23, 2017: contributor

    An advanced wallet feature should be the ability to disable all address reuse. The attack this is designed to stop is if I know that the address 1BPmZt3kjnFffANNs6MCBBBKRYwRGGrXQZ is part of Alice's wallet, it shouldn't be possible to continually pepper it with dust and learn more about her as her wallet automatically keeps spend-linking it with her other outgoing transactions.

    I'm not exactly sure how the implementation of this would look, but I think a sensible route would be to make the lockunspent shit persistent (it's already annoying that it's not), and if the "-ignore-funds-from-reused-addresses" feature is enable, the wallet would automatically lock that output upon it being received.

    (It's probably bad form: But I'm offering a 1 BTC bounty to anyone who can get such a feature merged in within 6 months of this posting).

  2. jonasschnelli added the label Wallet on Mar 23, 2017
  3. laanwj added the label Feature on Mar 25, 2017
  4. jet0 referenced this in commit b971bb9e9a on Apr 19, 2017
  5. jet0 cross-referenced this on Apr 19, 2017 from issue Wallet: Support not reusing addresses by jet0
  6. luke-jr commented at 8:06 PM on April 19, 2017: member

    Which of these interest you?

    1. optimisation: don't check for used addresses in new blocks
    2. best practice: don't show more than one payment made to each address 2b) or at least, don't show payments made after coins sent to that address are spent
    3. privacy: don't spend coins received by the same address in different transactions (requires 2)
  7. RHavar commented at 8:15 PM on April 19, 2017: contributor

    Option 3, privacy.

    Let's say I know you sent money to 17p47toGLR5zBZw2pNzRDFh9yWKX2qxyaJ, and I don't know who owns that address but I'm trying to figure it out. A pretty easy way now is to spray it with a bunch of dust. Then if who ever owns 17p47toGLR5zBZw2pNzRDFh9yWKX2qxyaJ is running a wallet like bitcoin core, it'll automatically spend link all that dust. Eventually I should be able to figure out who owns that address, especially if it's a service. And thus where you were sending your money.

    That's a pretty big privacy hole that should be disable-able.

  8. kallewoof cross-referenced this on May 11, 2017 from issue [WIP] [wallet] Optional '-avoidreuse' flag which defaults to not reusing addresses in sends by kallewoof
  9. kallewoof cross-referenced this on Jan 24, 2018 from issue [wallet] Use destination groups instead of coins in coin select by kallewoof
  10. laanwj referenced this in commit 5f7575e263 on Jul 24, 2018
  11. kallewoof cross-referenced this on Jul 25, 2018 from issue wallet: "avoid_reuse" wallet flag for improved privacy by kallewoof
  12. HashUnlimited cross-referenced this on Sep 12, 2018 from issue Skip is_closing() check when not available. by HashUnlimited
  13. meshcollider referenced this in commit 44d8172323 on Jun 18, 2019
  14. kallewoof commented at 12:05 AM on June 19, 2019: member

    @RHavar I believe #12257 and #13756 together address this problem. Please confirm.

  15. RHavar commented at 12:20 AM on June 19, 2019: contributor

    Looks like it. Fantastic work! Keep it up 👍

  16. RHavar closed this on Jun 19, 2019

  17. luke-jr commented at 1:56 AM on June 19, 2019: member

    I don't see how. I can still send you coins to the same address twice if I'm arbitrarily quick enough...

  18. RHavar commented at 2:00 AM on June 19, 2019: contributor

    Yeah, but then both those outputs will be spent with the same transaction -- so it's not an issue.

  19. luke-jr commented at 2:52 AM on June 19, 2019: member

    It's still address reuse, and in some cases retains the problems of such reuse.

  20. kallewoof commented at 3:18 AM on June 19, 2019: member

    What @luke-jr is talking about is orthogonal to the issue raised here, so I believe closing it was the correct decision. The issue @luke-jr is talking about is in #3266 and there is a PR open in #15987.

  21. sidhujag referenced this in commit 6bcaa95d9d on Jun 19, 2019
  22. Munkybooty referenced this in commit 3a9c562e6e on Jun 15, 2021
  23. Munkybooty referenced this in commit c40f154def on Jun 15, 2021
  24. Munkybooty referenced this in commit 0f644d5f5f on Jun 16, 2021
  25. Munkybooty referenced this in commit e2bf529053 on Jun 22, 2021
  26. Munkybooty referenced this in commit 82659a4eb8 on Jun 24, 2021
  27. Munkybooty referenced this in commit 640b1ceea2 on Jun 24, 2021
  28. bitcoin locked this on Dec 16, 2021

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: 2026-05-20 06:55 UTC