<p>The network does not have any labels associated with any address, besides the address itself.</p>

<p>The wallet software being used manages change addresses and corresponding private keys to ensure that the user has control over any change addresses.</p>

<p>From a network perspective, there are no accounts/wallets that can be readily identified (though blockchain analysis techniques can be used to attempt this to varying degrees of success). A group of addresses (AKA a wallet or maybe even account if one wants to call it that) can only be definitively identified/associated by the wallet software used to create that group of addresses.</p>

CC BY-SA 3.0
2016-08-23T20:28:38.727Z
2016-08-23T20:28:38.727Z
Michael C Ippolito
<p>The bitcoin network does not know who owns which address. The concept of an address doesn't even exist at the protocol level - it's just an authentication layer on top of the scripting logic in transactions.</p>

<p>And of course your own client does - because it has the private key for change addresses it generated itself. That's all that matters. When spending a transaction output, the client will prove that it holds that private key by creating a digital signature that matches the address. That's all the network cares about.</p>

CC BY-SA 3.0
2013-08-01T17:18:54.153Z
So when your client connects to the network, it takes all of the addresses it has the private key for, then tallies up each of the coins that have been sent to each of those addresses and haven't been sent to other addresses to arrive at the total? I just tried `dumpprivkey` on the change address generated by my last transaction, and it worked. However, `getaccount` returned nothing. I'm guessing an account is a separate thing, and the relation between addresses and accounts in your wallet is not 1 to 1?
bvpx
CC BY-SA 3.0
2013-08-01T17:23:52.780Z
That's entirely correct. Accounts have hardly anything to do with addresses - they are just virtual balances (they can go negative too, for example, if you send more from them than to them).
Pieter Wuille
CC BY-SA 3.0
2013-08-01T17:12:07.393Z
2013-08-01T17:12:07.393Z
Pieter Wuille
<p>Reading <a href="https://bitcoin.stackexchange.com/questions/9007/why-are-there-two-transaction-outputs-when-sending-to-one-address">this</a> thread about how transaction outputs are split due to "change" made me wonder how the bitcoin network knows you own that second address. How does your wallet/client display the correct balance, if it's unknown to everyone else that the second address is yours?</p>

<p>I'm assuming it has something to do with the wallet and accounts... if so, how can you find the "account" that corresponds with that address?</p>

<transactions><blockchain><wallet><client>
When a transaction is split into two outputs, how does the network "know" you're the owner of the "change" address?
bvpx
# When a transaction is split into two outputs, how does the network "know" you're the owner of the "change" address?

(Asked by: username_0 on 2013-08-01)

Reading [this](https://bitcoin.stackexchange.com/questions/9007/why-are-there-two-transaction-outputs-when-sending-to-one-address) thread about how transaction outputs are split due to "change" made me wonder how the bitcoin network knows you own that second address. How does your wallet/client display the correct balance, if it's unknown to everyone else that the second address is yours?

I'm assuming it has something to do with the wallet and accounts... if so, how can you find the "account" that corresponds with that address?

**Tags:** transactions, blockchain, wallet, client


---

## 2 answers

### Answer by username_2 on 2013-08-01. Score: 9 | Accepted answer

The bitcoin network does not know who owns which address. The concept of an address doesn't even exist at the protocol level - it's just an authentication layer on top of the scripting logic in transactions.

And of course your own client does - because it has the private key for change addresses it generated itself. That's all that matters. When spending a transaction output, the client will prove that it holds that private key by creating a digital signature that matches the address. That's all the network cares about.

> **Comments:**
> **username_0**: So when your client connects to the network, it takes all of the addresses it has the private key for, then tallies up each of the coins that have been sent to each of those addresses and haven't been sent to other addresses to arrive at the total? I just tried `dumpprivkey` on the change address generated by my last transaction, and it worked. However, `getaccount` returned nothing. I'm guessing an account is a separate thing, and the relation between addresses and accounts in your wallet is not 1 to 1?  
> **username_2**: That's entirely correct. Accounts have hardly anything to do with addresses - they are just virtual balances (they can go negative too, for example, if you send more from them than to them).  

---

### Answer by username_1 on 2016-08-23. Score: 2

The network does not have any labels associated with any address, besides the address itself.

The wallet software being used manages change addresses and corresponding private keys to ensure that the user has control over any change addresses.

From a network perspective, there are no accounts/wallets that can be readily identified (though blockchain analysis techniques can be used to attempt this to varying degrees of success). A group of addresses (AKA a wallet or maybe even account if one wants to call it that) can only be definitively identified/associated by the wallet software used to create that group of addresses.


---

