As far as I can tell, the user currently has little to no control over how outputs are selected for building a new transaction. I have had instances of trying to send the exact amount of an output, and hoping the transaction building algorithm would realize that and not involve other outputs, but having either the opposite happen, or even at one time having all my outputs sent in the same transaction, many of which were created in the same transactions. That sounds like needless privacy destroying behavior, so I wonder what can be done about that. So, there are a few things I would like to suggest and ask:
(1) Please explain how the output selection works in each of the transfer building algorithms. I have seen some links to the comments in the code, but couldn't get the main points of those constructions and the differences between them.
(2) Could we have a function that allows the user to manually choose what outputs to send, and which ones to include?
(3) Could it be made so that, on using always-confirm-transfers 1
, in addition to asking if the fees charged are okay, it would also print out the outputs and their transfers hashes and ask the user if using those together is okay too? Since the transfer building algorithm seems to be randomized in the user's outputs selection, hopefully after trying a few times the user would get a transaction that doesn't involve outputs that they don't want to see linked.
Edit: Thank you user36303 for addressing item (2). I am still very much interested in learning more about (1) and really would like to see (3) get implemented, so I am placing a bounty for anyone addressing those points! (Also, I meant the bounty to be for more details, but it turned out saying I wanted more authoritative answer, for some reason...)