Sub wallet for dirty coins #22424

issue ghost opened this issue on July 10, 2021
  1. ghost commented at 7:34 PM on July 10, 2021: none

    Is your feature request related to a problem? Please describe.

    • Unable to spend unconfirmed UTXO
    • OUTPUT_GROUP_MAX_ENTRIES = 100

    The combination of these two things affects privacy which is discussed in detail here: #22018

    Describe the solution you'd like image

    We are already marking used addresses as 'grey' in #17355. Can improve this by marking 'red' for addresses used twice or more for receiving bitcoin. Grey color for addresses used once. Once we have dirty coins (received bitcoin twice or more), they should be locked automatically, dump private keys associated with the addresses and import them in a new wallet (sub-wallet for dirty coins).

    Not sure if there should be a sub wallet for each address or all dirty coins go in one sub wallet.

    Describe alternatives you've considered Use other wallets

    Additional context

    This will improve following things:

    1. No wallet fingerprinting
    2. Keep things separate
    3. Manage forced address reuse in a better way
    4. Neither UTXOs being confirmed nor value for OUTPUT_GROUP_MAX_ENTRIES will matter anymore. The user can decide how to spend dirty coins in future. Either use all in one transaction or do coinjoin or something else.

    Looking for Concept ACKs and discussion about this solution so that implementation can be planned if enough people agree to add this feature.

    Thanks @harding for suggesting idea about sub-wallets in #22018 (comment)

  2. unknown added the label Feature on Jul 10, 2021
  3. michaelfolkson commented at 8:38 PM on September 24, 2021: contributor

    If I've understood this correctly, this is making it impossible for the original wallet to spend the dirty coins (only the sub wallet can spend the dirty coins) in comparison to the current state where the original wallet only spends the dirty coins when there is no other alternative. Hence with subwallets a payment would fail if it needed dirty UTXOs to get up to the payment amount.

    This does create some challenges (code and UX) as at the very least the user would want to be informed that they have enough funds to make the payment across the original wallet and the sub wallet. And I would guess the user would want the option to go ahead with the payment despite it spending dirty UTXOs. Hence you would need to introduce some logic across the subwallet and the original wallet which leads to the question why were they separated in the first place?

  4. willcl-ark commented at 12:04 AM on September 25, 2021: contributor

    I have no particular firm opinion on this for Core at this stage, but it feels somewhat similar to the JoinMarket wallet structure where they use this behaviour to seperate change from mixed coins.

    Making users backup more wallets (than they expect) though seems like it could inroduce one or more new footguns, which could outweigh any privacy benefits.

  5. MarcoFalke added the label Wallet on Aug 11, 2022
  6. MarcoFalke commented at 3:18 PM on August 11, 2022: member

    The feature request didn't seem to attract much attention in the past. Also, the issue seems not important enough right now to keep it sitting around idle in the list of open issues.

    Closing due to lack of interest. Pull requests with improvements are always welcome.

  7. MarcoFalke closed this on Aug 11, 2022

  8. bitcoin locked this on Aug 11, 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: 2026-04-17 15:14 UTC

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