I understand that a Merkle Root is the hash of hashes of hashes (etc.) of transaction pairings within a block that ultimately results in one 'Root' hash. Changing anything about any of the original transaction hashes would result in a completely different root hash.
What I'm still confused about is working backwards starting with the root hash to prove a certain transaction was included in the block. From the 'What is the Merkle Root?" thread, I understand the example of only needing 4 hashes to prove that Tk was included in the block (16 transaction block).
My questions are:
If every transaction is to be verified that it's included in the block, wouldn't you ultimately need to know all of the hashes anyway if you're going to trace back to each transaction separately?
Are these verifications only happening on request? or is it automatic before the block is added to the blockchain?
When verifying one specific transaction, where do you go to get the various sub-hashes for the necessary merkle branches?