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

Address cluster information on coin control window #19035

Open
eloyesp opened this issue May 21, 2020 · 2 comments
Open

Address cluster information on coin control window #19035

eloyesp opened this issue May 21, 2020 · 2 comments
Assignees

Comments

@eloyesp
Copy link

eloyesp commented May 21, 2020

I found it is very difficult to maintain privacy on my transactions because it is difficult to keep the address separated. I'm trying to prevent my addresses to cluster together, based on the following definition:

Usually an adversary will try to link together multiple addresses which they believe belong to the same wallet. Such address collections are called "clusters", "closures" or "wallet clusters", and the activity of creating them is called "wallet clustering". (source)

While the coin control feature helps with that, it does not show all the transaction tree, listing just the coin sources.

I would like the coin control window display all the clustered addresses belonging to any given tree so I can chose better which coins to use.

An example tree

Given the following transaction tree (where up-case letters are owned addresses)

a -> B
  -> C -> e
     |--> D

There are two UTXOs that can be spend: B and D, both are change addresses, within the coin-control I can see that the coins were received from a, but there is no mention of e, and that could be actually quite important, if for example e does know my name. That would allow for example, prioritizing those UTXO to send more money to e.

Could it be possible to add that information in the tree?

@fanquake fanquake added the GUI label May 21, 2020
@maflcko maflcko removed the GUI label May 21, 2020
@maflcko
Copy link
Member

maflcko commented May 21, 2020

I think if this is implemented, it should also be available to RPC wallets

@Sjors
Copy link
Member

Sjors commented May 28, 2020

It would indeed be useful to track where linked funds have been sent to. Perhaps we can add a column "Linked destinations". This would contain a list of labels (fallback to addresses) of anything we sent to.

Schermafbeelding 2020-05-28 om 11 14 31

I think if this is implemented, it should also be available to RPC wallets

We have listaddressgroupings but could use listunspentgroupings. That might be a good place to start. Starting with the newest unspent output in a wallet, recursively iterate over its inputs and change outputs to collect all related wallet transactions. Insert all of them in the first group. Pick a wallet output that's not in the first group, rinse and repeat. Once you have the groups, collect all its non-wallet destinations (labels) and origins (labels).

[
 {
    "destinations": [{"label": "KYC place", "address": "3..."}],
    "origins": [{"label": "Customer 1, "address": "bc1..."}, {"label": "Customer 2, "address": "bc1..."}],
   "unspents": [ same format as listunspent ] 
  },
  {
    // second group...
  },
  // other groups
]

Ideally the UI coin selection tree would also have these groups.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants