how to configure bitcoin-core (bitcoin-qt) to not use change addresses?

1

Can bitcoin-core wallet be configured to not use change addresses, but just one address?

If yes, how? Thanks

(PS: I know most people will try to convince me that this is not a good thing, but I have perfect valid reasons. I know the privacy implications of this, ok? :)

knocte

Posted 2016-05-31T11:26:50.743

Reputation: 1 531

1Address reuse is not just bad for you, but for everyone. Don't do it. And if you do anyway, smart potential users of your product will simply not use it for precisely that reason.Jannes 2016-05-31T12:03:11.823

Could you elaborate on your reasons? I feel that your reasons probably aren't as good as you think they are, and better solutions are likely available to you.Jestin 2016-05-31T13:36:27.543

2 reasons: a) with confidential transactions coming to bitcoin-core soon, need for privacy via change addresses is not so important, b) transactions without change addresses are smaller, thus cheaperknocte 2016-05-31T14:35:15.473

Address reuse privacy issues will still be important after Confidential Transactions arrivescowboy4life 2016-05-31T16:14:07.820

1@cowboy4life: I didn't say it's not important, I said it would be not so importantknocte 2016-06-01T03:57:46.190

1Transactions without change are smaller. But a transaction with change but no separate change address is not smaller. Also, confidential transactions are unlikely to come to Bitcoin any time soon.Pieter Wuille 2016-06-05T15:45:58.947

Answers

2

It's unclear what you want.

Do you want no change addresses, but still have change that goes back to one of the addresses from which coins were taken? That does not have any size/fee benefit. This is possible by using the coin control feature (in the Bitcoin-Core GUI) or the createrawtransaction RPC interface.

Do you want no change at all? That means the amount you are sending must exactly match the sum of the sizes of some of the unspent outputs you have in your wallet. It does result is slightly smaller transactions and thus lower fees, but it is highly constraining. You'll have to construct transactions manually if you need this.

Pieter Wuille

Posted 2016-05-31T11:26:50.743

Reputation: 54 032

Of course I don't refer to no change at all, that would be dumb. In regards to not having fee/size benefit, you're right, I just realized that if I want to send n bitcoins and all of my previous outpoints are lower than n, then I need many inputs regardless if I used change addresses or not. Thanks for making me think through it. (And thanks for telling me about coin-control and createRawTransaction, but I was looking for a bitcoin-core setting that would make the behaviour of createTransaction be different without recurring to different API or to UI.)knocte 2016-06-05T16:06:48.917

1Such a setting doesn't exist.Pieter Wuille 2016-06-05T16:19:10.223

0

You can just send all the money leaving no change. This way there would be no money to send to a change address. Then if you need to take part of the money back, you can send the transaction with two outputs: 1. the address you are paying to; and 2. your original address.

By the way there is by design no way to just leave coins on an address. A transaction could be either spent or unspent with no partial spend. But you can send (in a new transaction) coins back to previously used address. Nevertheless it's often bad idea.

Edit: You may also want to enable Coin Control Features, which result in UI extended like below: Coin Control Features
(source: cryptocoinsnews.com)
This way you can just specify the old address as a change address.

jaboja

Posted 2016-05-31T11:26:50.743

Reputation: 139

you're just saying how one would do it sending transactions manually, but I asked how to do with BitcoinCoreknocte 2016-06-05T15:28:01.433

how to enable Control Coin features?knocte 2016-06-05T15:48:01.297