Bitcoin Forum

Other => Beginners & Help => Topic started by: sounds on January 09, 2013, 10:20:52 AM



Title: How Can I Specify Which Input Addresses? (Coin Control)
Post by: sounds on January 09, 2013, 10:20:52 AM
I'm using the official Bitcoin-Qt client (0.7.2) and so far have just been receiving coins.

How can I control the inputs to a transaction? I've read Quantitative Analysis of the Full Bitcoin Transaction Graph (PDF) (http://eprint.iacr.org/2012/584.pdf) - I think that means I don't want to just combine all my coins by sending them to one address. An algorithm could safely deduce that all the inputs to the transaction were really just me all along.

I want to get in the habit of being as anonymous as possible. I understand that there's no such thing as perfect anonymity.

The "send coins" view in Bitcoin-Qt is missing an option to pick an input and see what the balance is at that address. I googled to see if anyone had asked a similar question but didn't find one.


Title: Re: How Can I Specify Which Input Addresses?
Post by: flatfly on January 09, 2013, 12:34:37 PM
If you know the right keywords to search for, you can find some stuff... Try googling "coin control" :)

If you don't want to waste too much time, the short answer is, this is not supported by the Qt client (as of today).

However, the following clients do support this feature (each with their own way):

Electrum (see the Prioritize context menu in the receive tab)
Armory
Blockchain.info


Title: Re: How Can I Specify Which Input Addresses?
Post by: DannyHamilton on January 09, 2013, 02:23:03 PM
. . .
this is not supported by the Qt client (as of today).

However, the following clients do support this feature (each with their own way):

Electrum (see the Prioritize context menu in the receive tab)
Armory
Blockchain.info

Or, depending on your skills, I suppose you can create a raw transaction and paste it into the [ Help->Debug window->Console ] in Bitcoin-Qt.


Title: Re: How Can I Specify Which Input Addresses?
Post by: usagi on January 09, 2013, 04:07:04 PM
I'm using the official Bitcoin-Qt client (0.7.2) and so far have just been receiving coins.

How can I control the inputs to a transaction? I've read Quantitative Analysis of the Full Bitcoin Transaction Graph (PDF) (http://eprint.iacr.org/2012/584.pdf) - I think that means I don't want to just combine all my coins by sending them to one address. An algorithm could safely deduce that all the inputs to the transaction were really just me all along.

I want to get in the habit of being as anonymous as possible. I understand that there's no such thing as perfect anonymity.

The "send coins" view in Bitcoin-Qt is missing an option to pick an input and see what the balance is at that address. I googled to see if anyone had asked a similar question but didn't find one.

Get the Armory client. It's not a reference implementation but no one has ever lost their coins to a programmer error (right guys?). Armory is the only client that can do what you want as far as I know.


Title: Re: How Can I Specify Which Input Addresses?
Post by: John (John K.) on January 09, 2013, 04:10:10 PM
. . .
this is not supported by the Qt client (as of today).

However, the following clients do support this feature (each with their own way):

Electrum (see the Prioritize context menu in the receive tab)
Armory
Blockchain.info

Or, depending on your skills, I suppose you can create a raw transaction and paste it into the [ Help->Debug window->Console ] in Bitcoin-Qt.
+1. Use createrawtransaction, signrawtransaction, and pushrawtransaction. A huge hassle though - I learnt this the hard way a couple days ago.  ;)


Title: Re: How Can I Specify Which Input Addresses?
Post by: salfter on January 09, 2013, 04:45:26 PM
. . .
this is not supported by the Qt client (as of today).

However, the following clients do support this feature (each with their own way):

Electrum (see the Prioritize context menu in the receive tab)
Armory
Blockchain.info

Or, depending on your skills, I suppose you can create a raw transaction and paste it into the [ Help->Debug window->Console ] in Bitcoin-Qt.

That's the approach I took with CheapSweep (https://bitcointalk.org/index.php?topic=128388.0), except that it talks to bitcoind's RPC interface.


Title: Re: How Can I Specify Which Input Addresses? (Coin Control)
Post by: sounds on January 09, 2013, 10:48:55 PM
Ok this is great!

So I've been playing around with Electrum and I like what I see.

I should probably tweak Bitcoin-Qt to add this feature. Would anybody want that? (For a few BTC I'd be sure and do it)


Title: Re: How Can I Specify Which Input Addresses? (Coin Control)
Post by: DannyHamilton on January 09, 2013, 10:58:13 PM
I thought that I saw somewhere that someone had already created a custom version of Bitcoin-Qt that had coin-control in it?  For whatever reason the modifications never made it into the version generally recognized as being the "official"version.  I don't remember when/where I saw it so I could be mistaken.


Title: Re: How Can I Specify Which Input Addresses? (Coin Control)
Post by: Bitsky on January 09, 2013, 11:24:26 PM
I thought that I saw somewhere that someone had already created a custom version of Bitcoin-Qt that had coin-control in it?  For whatever reason the modifications never made it into the version generally recognized as being the "official"version.  I don't remember when/where I saw it so I could be mistaken.
Someone has for a 0.6.x version, but nobody seems to want to support it:
https://bitcointalk.org/index.php?topic=129288.msg1420252#msg1420252

I've also contacted the dev some time ago, but sadly there's no reply so far:
https://bitcointalk.org/index.php?topic=24784.0

I baffles me that such a great feature is ignored and instead it's suggested to create raw transactions in the debug console to those who value privacy.


Title: Re: How Can I Specify Which Input Addresses? (Coin Control)
Post by: sounds on January 09, 2013, 11:44:46 PM
Baffling, yes.

I think there aren't that many developers with enough free time to do it. I have the free time but since I'm unemployed, I have to focus on survival.

Here's my address if you want me to port it from 0.6.x and fix the remaining bugs: 1GiN4UWo8VZ9PZuJXfMQYbQyP9opGsayYD