<blockquote>
  <p>When a new transaction is executed via a Bitcoin-client, the sender will have a different address than the ones used in previous transactions.</p>
</blockquote>

<p>That’s incorrect. You can only send money from the address where you received it.</p>

<p>Example:<br>
<em>Alice sends 1 BTC to Bob’s <code>address A</code>. When Bob now sends money to Carol, his client software will sign the transaction with the private key corresponding to <code>address A</code>. The unspent transaction output on <code>address A</code> will then be used up, and a new balance will be available on Carol’s address.</em></p>

CC BY-SA 3.0
2015-12-23T16:17:18.327Z
2015-12-23T16:24:31.973Z
2015-12-23T16:24:31.973Z
Murch
<p>One thing you might be missing is "there are no balances".  The network doesn't know about wallets or balances, it only knows about outputs.  These outputs are either spent or unspent. Once you have this concept it's easier to understand.</p>

<p>If your wallet says you have a balance of 1.2345 BTC that means it "thinks" there are X number of unspent outputs that you "control" that add up to 1.2345.  It's basing this on the keys it knows about and the transactions it has seen so far. There could be 1 output with a value of 1.2345 or 100 outputs with a sum of 1.2345, or any combination.</p>

<p>See any transaction on blockchain.info and you'll see the inputs on the left side.  These inputs are previously unspent outputs.</p>

<p><a href="https://blockchain.info/tx/ad646bbac1e44e4db199420e12fec2966903a0e078da99fab97b3156455f252a" rel="nofollow">https://blockchain.info/tx/ad646bbac1e44e4db199420e12fec2966903a0e078da99fab97b3156455f252a</a></p>

<p>On the right side are the new unspent outputs.  Once an output is used it's now spent and carries no balance.  Since the outputs you are using probably don't add up to exactly what you want there is a concept of change.</p>

<p><a href="https://en.bitcoin.it/wiki/Change" rel="nofollow">https://en.bitcoin.it/wiki/Change</a></p>

<p>So what about new addresses? The network doesn't need to know <em>anything</em> about new addresses.  When a node sees a new transaction it only has to verify the outputs being spent are not spent already i.e. they haven't been used by any other transaction (along with other verification like signature, amounts etc..)</p>

<p>So all transactions are linked to previous ones in that way.</p>

CC BY-SA 3.0
2015-12-23T23:07:31.973Z
Very clear explanation, understood, thank you very much :D
CedricCornelis
CC BY-SA 3.0
2015-12-23T18:06:40.863Z
2015-12-23T18:09:42.563Z
2015-12-23T18:09:42.563Z
Dustin Butler
<p>When a new transaction is executed via a Bitcoin-client, the sender will have a different address than the ones used in previous transactions. I also know that all the full nodes in the Bitcoin network maintain a ledger, which is basically a history off all Bitoin transactions ever made so the nodes can check the integrity of the system and the current amount of bitcoins people have available in their wallets.
How is it even possible to check all the transactions when there are constantly new addresses being generated? You can't even link a current transaction to the previous. Is there something I'm missing?</p>

<blockchain><address><utxo><full-node>
How can the transaction history be checked when new addresses are generated?
CedricCornelis
# How can the transaction history be checked when new addresses are generated?

(Asked by: username_0 on 2015-12-23)

When a new transaction is executed via a Bitcoin-client, the sender will have a different address than the ones used in previous transactions. I also know that all the full nodes in the Bitcoin network maintain a ledger, which is basically a history off all Bitoin transactions ever made so the nodes can check the integrity of the system and the current amount of bitcoins people have available in their wallets.
How is it even possible to check all the transactions when there are constantly new addresses being generated? You can't even link a current transaction to the previous. Is there something I'm missing?

**Tags:** blockchain, address, utxo, full-node


---

## 2 answers

### Answer by username_2 on 2015-12-23. Score: 5 | Accepted answer

One thing you might be missing is "there are no balances". The network doesn't know about wallets or balances, it only knows about outputs. These outputs are either spent or unspent. Once you have this concept it's easier to understand.

If your wallet says you have a balance of 1.2345 BTC that means it "thinks" there are X number of unspent outputs that you "control" that add up to 1.2345. It's basing this on the keys it knows about and the transactions it has seen so far. There could be 1 output with a value of 1.2345 or 100 outputs with a sum of 1.2345, or any combination.

See any transaction on blockchain.info and you'll see the inputs on the left side. These inputs are previously unspent outputs.

<https://blockchain.info/tx/ad646bbac1e44e4db199420e12fec2966903a0e078da99fab97b3156455f252a>

On the right side are the new unspent outputs. Once an output is used it's now spent and carries no balance. Since the outputs you are using probably don't add up to exactly what you want there is a concept of change.

<https://en.bitcoin.it/wiki/Change>

So what about new addresses? The network doesn't need to know *anything* about new addresses. When a node sees a new transaction it only has to verify the outputs being spent are not spent already i.e. they haven't been used by any other transaction (along with other verification like signature, amounts etc..)

So all transactions are linked to previous ones in that way.

> **Comments:**
> **username_0**: Very clear explanation, understood, thank you very much :D  

---

### Answer by username_1 on 2015-12-23. Score: 2

> When a new transaction is executed via a Bitcoin-client, the sender will have a different address than the ones used in previous transactions.

That’s incorrect. You can only send money from the address where you received it.

Example:  
*Alice sends 1 BTC to Bob’s `address A`. When Bob now sends money to Carol, his client software will sign the transaction with the private key corresponding to `address A`. The unspent transaction output on `address A` will then be used up, and a new balance will be available on Carol’s address.*


---

