I think it`s a really good explanation and I understood most of it. But I`m confused on one minor thing;
What`s the (technical) difference between confirming and validating?
this of this duo as "separation of concerns".
- a miner is only concerned with performing mathematical operations and finding the next block as fast as possible so that he can win the race and get the block reward. when he finds a block and includes transactions in them, he is "confirming" those transactions.
- a node is responsible for "validating" everything including transactions. this means to check the transaction so that it is not spending fake coins, not creating more coins that is had, check to see it has the right signature,... and then gives these transactions to the miner to include in his block.
when you are a miner you just have hardware (ASIC) that doesn't even understand what a valid tx is. it only knows what hash is and how to do it fast. then you as a miner either run a node that does the verification for you or connect to a mining pool that runs a node that does the verification.