i did read up some stuff about bitcoin but never used it until today. i might be asking something very obvious, but how can i get rid of address forking? that is, after several transactions my address list grown and each has a tiny amount of btc(its a mess now, and it was unexpected for me). i would like to send further transactions without implicit generation of new addresses, how can that be achieved? i use bitcoin-qt or bitcoind.

should i be using createrawtransaction to reassemble my btc to one address and avoid forking in the future?

  • 1
    That's how it's supposed to work. Why don't you want your funds to be split between several addresses? – Meni Rosenfeld Aug 19 '13 at 5:20
  • I think that I at least on a conceptual level answered your questions (of which I counted three). If you feel that I have not answered your question completely, it might help if you improved your question to have a clearer aim. I.e. pose each question by itself. If you feel that I have answered your question, please accept my answer. – Murch Aug 19 '13 at 13:07

If you have not seen this yet, here is a diagram by zerohedge.com I found enlightening in order to understand how transactions fit into the Bitcoin concept.

The wiki at bitcoin.it has a more in detail overview of the inner works of Transactions and the inner workings of Raw Transactions.

From what I understand inputs to Bitcoin addresses are always spent completely in a transaction, so whatever you don't assign to a recipient will be available to be collected by a miner as transaction fee. So you'd need to set your client software to use the same address as source as well as for the recipient address of the transaction's change.

You could create a transaction that collects the complete balance from your wallet and sends them to a single output address. However, it is beneficial to use more than one address in order to make it more difficult to connect different transactions as belonging to the same identity. The bitcoin.it wiki has more information on privacy concerns

Additionally, Gavin Andresen, the lead developer of the reference client explained in this question, why change is sent to another address.

| improve this answer | |
  • 1
    I'd say that diagram shows more of miner part rather than transactions core. and there's no such thing as total privacy, you should have known that... anyway it's not my concern now, i'm just learning how to use bitcoins the different ways. thank you for pointing out the nature of spending and fees. i should go ask about createrawtransaction next. – kanojo Aug 19 '13 at 10:43
  • Of course there is no total privacy, which I haven't claimed either. :) – Murch Aug 19 '13 at 12:58
  • 3
    Just a small error in your explanation. It's not addresses that are spent as a whole, rather it's inputs to a given address. Inputs can be seen as the individual amounts that were transferred in one go to an address. So if you received two payments of 1 BTC to an address, and then send 0.7 BTC from that address, then one of the 1 BTC inputs is spent. 0.7 BTC are sent to the destination and the 0.3 BTC in change are going to another address (usually a new one) that you own. – cdecker Aug 20 '13 at 14:03
  • 1
    i understand it entirely now. those inputs, otherwise known as parts of transactions are spent. address(technically, pubkey) is just used to allow only an owner of a certain inputs to spend them, having them signed with his privkey. address does not store anything. it's just an identifier of a person(s) on the bitcoin network. – kanojo Aug 20 '13 at 15:06

You can modify bitcoin client source a bit, so that it doesn't generate new addresses after using previous one. You actually need to set sth like keyUsed = false in getaddress and compile.
For consolidating use raw transactions, however bear in mind that creating a transaction from lots of previous outputs requires a lot of copy & paste, or some fun with pywallet to export all transactions.

| improve this answer | |
  • i would have rather refrain from modifying cryptographic software unless i'm a hero like ones who write it. but creating raw transactions is sorta interesting, at least, at the beginning, or useful, at some point. and at least you know what you're doing. – kanojo Aug 19 '13 at 21:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.