Q1: What limitation did the old spreadsheet-based system still have?
Lisa could silently delete or revert transactions without verifiers being able to prove it. Although users could confirm the validity of transactions, they couldn't prove Lisa hadn't removed any after the fact.
Q2: How does a blockchain help if Lisa tries to remove or replace transactions?
Each block references the previous block’s ID (hash) and signs a "merkle root" of its transactions, so tampering would invalidate signatures in that block and all subsequent blocks. This makes fraud cryptographically provable.
Q3: What is a "block" in the blockchain?
A block is a file containing:
Q4: How does the block header "commit" to all transactions in the block?
Through the merkle root, which is a single hash derived from recursively hashing all transactions in a merkle tree. Changing any transaction changes the merkle root, invalidating the block.
Q5: What are the steps Lisa takes to create (confirm) a new block?
Q6: How does this signature help prevent Lisa from removing transactions later?
If she changes or removes any transaction in a past block, she must alter the block header and re-sign it, creating a new version of that block. Now there are two signed versions of the same height, proving fraud.
Q7: Why do some wallets prefer not to download the full blockchain?
For bandwidth and storage reasons. Mobile or low-capacity devices often use "lightweight" or SPV (Simplified Payment Verification) wallets that trust a full node to filter and provide relevant transaction data.
Q8: How do lightweight wallets verify that a transaction is in a block without downloading the full block?
They use a merkle proof. The full node sends:
Q9: How do bloom filters help preserve privacy while fetching relevant transactions?
A bloom filter is a bit array that matches multiple addresses with some probability. The wallet sends this filter to the full node, which checks if various parts of each transaction match the filter. Because it can produce false positives, the node can’t tell exactly which addresses the wallet is interested in.
Q10: What are the downsides of bloom filters?
Q11: What is a merkle tree in this context?
A binary tree of hash pairs that merges all transaction hashes into a single "merkle root". Each transaction is hashed, then concatenated pairwise, hashed again, and so on until only one hash remains.
Q12: Why not just hash all transactions in one big concatenation?
A tree structure allows selective proofs (partial merkle proofs) for only a subset of transactions, without revealing or sending the entire block of transactions. This saves a lot of data.
Q13: Can Lisa still cheat in any way despite the blockchain preventing removal or alteration?
She can still censor transactions by refusing to include them in blocks. She also controls which transactions appear at all. Additionally, she can revert old transactions by building alternative blocks (though that reveals her fraud if the blocks are already distributed).
Q14: What’s next for removing Lisa’s power to censor and controlling who builds blocks?
We introduce miners and proof of work in Chapter 7, distributing the block-building process among many nodes so no single party can decide unilaterally which transactions to include.
End of Study Notes for Chapter 6. We’ve replaced the spreadsheet with a blockchain, ensuring public verifiability of the transaction history and paving the way for decentralized consensus in the upcoming chapters!