I guess this is called Circular spending.

Why is it required in the bitcoin protocol?


Because on the lowest level of bitcoin protocol there is no accounts. There are scripts inside transaction. The most common script says: show me public key, I will compute Hash160 of it, compare with given Hash160, and if they are equal, I will check signature.

Let imagine, transaction contains single output with 1 bitcoin. Script contains Hash160 (which we treat as account). There is no way to spent part of bitcoin. We have to spent entire output, which is equal to 1 BTC in our case. Transactions, like blocks, form some kind of chain.


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