my Question
I guess a lot of my confusion revolves around what a transaction is. Perhaps I have missed something but it seems to me that any documentation I have read seems to gloss over what a transaction is. If blocks form a chain and must be solved, and if the solution of the block depends on the hash of the block, doesn't adding a transaction to a block invalidate the solution?
the hash of the
previous block, not the current block. see here:
https://en.bitcoin.it/wiki/Block_hashing_algorithmIn bitcoin the service string is encoded in the block header data structure, and includes a version field, the hash of the previous block, the root hash of the merkle tree of all transactions in the block, the current time, and the difficulty...When mining bitcoin, the hashcash algorithm repeatedly hashes the block header while incrementing the counter & extraNonce fields.
a miner must build on top of the previous block (otherwise the blocks he publishes will be rejected by the network) but including previously unconfirmed transactions in the body of
new blocks is fine.
If the number of blocks are finite and blocks are not mutable (transactions cannot be added to them), doesn't that imply that the number of transactions is also finite.
past blocks are not mutable, to the extent that proof of work secures them. this doesn't apply to blocks yet to be mined.