I have not yet sent money to anyone. I was wondering if there is any way to control which address shows up in the block chain as the sending address.

Say I receive money on addresses A, B, C. I want to send money to someone from a totally unrelated address D. How to do this using the bitcoin client.

EDIT: I want to unlink addresses (A, B, C) from D

So when I send money, the sender should be D, and there should be no transactions from any of (A, B, C) to D, directly or in a chain. I guess this is not possible without 3rd party help.

I fear that the ability to follow transactions in a chain will eventually reveal enough information about identity of users. So there should be a way to send/receive from two complietely unlinked addresses. (linked = connected via a transaction chain).

  • 1
    Are you specifically concerned only with the sending address? Or are you trying to prevent the coins from being traced back to addresses A, B, and/or C. For example, would transferring from A to D and then from D to the recipient accomplish your objective? D would be the sending address, but D would have received the coins from A. – David Schwartz Oct 17 '12 at 17:11
  • 1
    It's also worth considering what the "change" address will be in the transaction. The asker of this question may be unaware of that address existing. – Highly Irregular Oct 17 '12 at 18:49
  • Actually I am not aware of 'change' address, as I have never spent any BTC yet. Can you please elaborate? – Jus12 Oct 18 '12 at 6:53
  • @Jus12: See en.bitcoin.it/wiki/Change. – Meni Rosenfeld Oct 18 '12 at 10:00
  • @DavidSchwartz: I want to prevent the coins from being traced to A, B or C. I have updated my question with this information. – Jus12 Oct 18 '12 at 17:28

Bitcoin doesn't really have sender addresses.

Every transaction consumes some of your coins, and creates one or more new coins, potentially assigned to a different address. What the receiver can see is the transaction, and he can trace which coins it spent, and which addresses those coins were previously assigned to. Some programs/sites use the first such address as sender, but this is not recommended. It doesn't say who sent the money - only who previously controlled it (which may for example be a shared webwallet).

The reference client always considers its entire pool of (confirmed) coins as source for creating transactions. The recently (0.7.0) introduced raw transaction API allows fine-grained control over which coins are used as input, but does not have a GUI (yet).

| improve this answer | |

In every client that I know of today, the sending account is selected automatically for you based on a defined set of rules.

If you need to control the sending address, you could do so using a client like Multibit, though the process would not exactly be straightforward. Assuming that you have a Multibit wallet with bitcoins, you would have to:

  1. export your private keys.
  2. edit the export file in a text editor to remove all keys except the one that you wish to spend.
  3. create a second wallet file in Multibit.
  4. import your edited private key file.
  5. spend your coins from the new wallet.
  6. export the keys from the new wallet file.
  7. import the keys from the new wallet file into your old wallet file.
  8. delete the new wallet file.

Note, steps 6 and 7 are necessary to capture the change addresses if you did not spend the entire amount in the new wallet.

It may also be possible to take that exported private key and import it into an online wallet like BlockChain.info's My Wallet or Mt Gox and spend it from there.

| improve this answer | |

You can use Raw transactions to create a spend transaction from A, B, and C to the address D and then spend from D.

This obviously links D to A, B and C.

The only option to de-link these is to use other coins, similar to what mixing services provide.

| improve this answer | |

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.