I understand that a Merkle tree allows efficient verification of transactions, but I don’t fully get how it saves space. If there are thousands of transactions in a block, and I only need to prove one, do I just provide the hashes along the branch? How much smaller is this compared to downloading the full block?🧐