Author

Topic: What's with all the addresses I've never seen before in my transactions?!? (Read 867 times)

legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
But when you sign a transaction, you do it from a specific private key which corresponds to a unique public key which is the address, no?
Sort of. You sign it with each private key that corresponds to the output of a previous transaction that is being claimed by the current transaction.

Quote
So to check whether a transaction is valid, the network checks the block chain to see if the transactions involving that address add up. Or am I missing something here?!?
You might be. I think you're thinking it does this:

1) Check the signature to prove the transaction came from the owner of the address.

2) Find unclaimed bitcoins for that address and use them.

But it actually works like this:

1) For each 'input' to this transaction, find the corresponding 'output' of a previous transaction.

2) Check the signature(s) on this transaction to confirm that the corresponding output of a previous transaction is validly claimed.

That is, the validation is per input to a transaction, not per transaction. Transactions can claim inputs using signatures with different keys.

Transactions have inputs that gather bitcoins into a pile and the outputs that distribute that pile. The inputs can come from a variety of different previous transactions sent to different addresses.
TT
member
Activity: 77
Merit: 10
But when you sign a transaction, you do it from a specific private key which corresponds to a unique public key which is the address, no?
So to check whether a transaction is valid, the network checks the block chain to see if the transactions involving that address add up. Or am I missing something here?!?
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
But say I wanted to be able to specify all these things myself in the API without the client
trying to do all these clever little tricks for me. Say I wanted a simple way of saying
"I want X amount transfered from address A to address B." Shouldn't the API expose
this functionality?
The protocol doesn't really work that way and the client design doesn't reflect that philosophy. You don't really transfer funds from an address, addresses are just to allow other people to send you bitcoins. And accounts are only used for local bookkeeping.

The client treats all your bitcoins as one giant pile.
TT
member
Activity: 77
Merit: 10
But say I wanted to be able to specify all these things myself in the API without the client
trying to do all these clever little tricks for me. Say I wanted a simple way of saying
"I want X amount transfered from address A to address B." Shouldn't the API expose
this functionality?
legendary
Activity: 1204
Merit: 1015
OK, so this is my change. Only problem is, I don't see this address ANYWHERE in my address book.
Is it a "hidden" address? Is the client trying to do something clever without telling me?
Yes, it's a hidden address. However, if you send something to it, you'll notice that you still get the money.
Also, why can't you just get the change back at the sending address? So the client is creating a
hidden account in my wallet to receive the change?
It's to help with anonymity. As an outside observer, it's harder to be sure which address is the change and which address was the one that you were actually sending to.
TT
member
Activity: 77
Merit: 10
OK, so this is my change. Only problem is, I don't see this address ANYWHERE in my address book.
Is it a "hidden" address? Is the client trying to do something clever without telling me?

Also, why can't you just get the change back at the sending address? So the client is creating a
hidden account in my wallet to receive the change?
sr. member
Activity: 364
Merit: 250
OK, I'm guessing someone has already answered this one somewhere...and it could just be
that I still don't really understand the bitcoin protocol.

When I send, say, .3 BTC, I'm seeing a bunch of other transactions in the transaction history
with addresses I've never seen before. Rather than a straightforward .3005 input and .3 output,
with .0005 as a transaction fee, I see something like 2 BTC as an input and two outputs:
one is 1.6995 and the other is .3. I recognize the .3 output as the address I sent to. But I have
no idea who the other address is.

Can someone please help?!

Thanks.

Inputs are all-or-nothing, you must spend the entire address balance.

the second output is your 'change', to a new address Bitcoin generated.


Smart question, BTW.
hero member
Activity: 532
Merit: 500
FIAT LIBERTAS RVAT CAELVM
Check your address book. I bet you'll find the receiving address of that 1.6995.

It's all part of the program. Helps with anonymity. (You can't say exactly how much money each person has sent where, etc.)
TT
member
Activity: 77
Merit: 10
OK, I'm guessing someone has already answered this one somewhere...and it could just be
that I still don't really understand the bitcoin protocol.

When I send, say, .3 BTC, I'm seeing a bunch of other transactions in the transaction history
with addresses I've never seen before. Rather than a straightforward .3005 input and .3 output,
with .0005 as a transaction fee, I see something like 2 BTC as an input and two outputs:
one is 1.6995 and the other is .3. I recognize the .3 output as the address I sent to. But I have
no idea who the other address is.

Can someone please help?!

Thanks.
Jump to: