Discussion Questions
These questions are based on the Mastering Bitcoin Book, 3rd edition (2023)
Chapter 1
Why isn't Bitcoin designed with a hierarchical network structure?
What is the difference between the bitcoin network and bitcoin as a currency?
What is the double-spend problem, and how did bitcoin solve it?
What determines the rate of inflation in bitcoin?
Do you think it would be better if bitcoin transactions were reversible? Pros and Cons?
Do you believe that bitcoin needs to be competitive with Visa/MasterCard to succeed?
Chapter 2
What are transaction inputs and outputs and what do they have to do with the transfer of value?
Why is a transaction fee needed and how is it calculated?
Why will many bitcoin transactions include an output controlled by the sender, in addition to the output paying the receiver? When would this not occur?
What is a mining pool and why would someone belong to one?
What is the status of a transaction that has not yet been included in a block, but has been propagated around the network? Why do some services require 6 confirmations to clear funds?
What kind of privacy is there for transactions on a public ledger?
Chapter 3
What are Bitcoin Improvement Proposals (BIPs) and what role do they play in determining the Bitcoin protocol?
Why is Bitcoin Core referred to as the reference implementation? Are there other widely used implementations?
What are some common reasons you would run your own full node?
What are some of the most important configuration options to set when running your own node?
What is the difference between a pruned node and a full (AKA archival) node?
Chapter 4
What is the relationship between private keys, public keys, addresses, and signatures?
What is a one-way cryptographic function, and how do we use it to derive public keys?
Why will many bitcoin transactions include an output controlled by the sender, in addition to the output paying the receiver? When would this not occur?
How do we know that the discrete log problem is hard to break?
Bitcoin uses the elliptic curve over a finite field of prime order. What does that mean using common English terms? Why is the order prime?
What are output and input scripts? How do they relate to receiving and spending Bitcoins?
What are the differences between P2PKH, P2SH, and P2TR?
What are Bech32 and Base58 addresses? What issues are associated with each?
Chapter 5
Why does address reuse reduce privacy? Can you think of other de-anonymizing missteps that might happen due to bad user-experience design or lack of privacy education?
Why does the author argue that BIP32 wallets are a superior wallet?
Are there wallets with mnemonic seeds in languages other than English? Why is this a good or not a good idea?
What are the 3 items needed to generate children keys from a parent key? Is there a limit as to how many times this can be done? What combination of the 3 items makes up an extended key?
Why does the author argue that BIP32 wallets are a superior wallet?
Chapter 6
When people refer to the bitcoin ledger or a wallet that displays a received bitcoin balance, what is actually being monitored to come up with those numbers?
What are the different components of a Bitcoin transaction? What's the difference between a legacy transaction and a Segwit transaction?
How can you calculate the fees for a transaction? Why isn’t this information just included in the transaction? Is there a better way to do this?
Explain the first transaction in a block; how many confirmations does it require before it can be spent? Would reducing the required number of confirmations improve security or efficiency?
Can a transaction be malleable by a third party? How does this relate to the Segwit upgrade?
Chapter 7
There is a bug in the CHECKMUTLISIG opcode. Why don’t we just fix it?
P2SH shifts the burden of fees and complexity from the sender to the spender? Why would you want to do this?
Timelocks (nlocktime) are used to lock funds until after a certain time or blockheight. How might one lock funds until a certain time or blockheight before it expires?
Provide a scenario that you’d personally use a multisig transaction for.
Chapter 8
Besides signing transactions, what are some other uses of digital signatures?
How do digital signatures ensure the integrity of a transaction?
How do Schnorr and ECDSA signatures differ in terms of their serialization formats?
How can different SIGHASH flags affect the parts of the transaction that a signature commits to?
What is nonrepudiation, and why is it important in Bitcoin transactions?
Chapter 9
How do transaction fees function as a bidding mechanism in the Bitcoin network?
What challenges are associated with estimating appropriate fee rates for transactions?
Can you think of scenarios where inadvertently paying a large fee might be beneficial or harmful to a user?
Why is package relay particularly important for time-sensitive protocols like the Lightning Network?
How does the CPFP mechanism incentivize miners to confirm transactions?
How do current wallet implementations balance the need for anti-fee sniping measures with other uses of the lock time field? What are some possible trade-offs involved?
Chapter 10
Do SPV nodes help or hurt the network?
The Bitcoin Relay Network section describes multiple projects intended to reduce block propagation latency. Why is so much effort being put into this?
How do new nodes discover peers on the network when they first come online?
What are the privacy concerns of using an SPV node?
What happened to the proposal to add p2p encryption (BIP150/151)?
Chapter 11
The genesis block contains a hidden message within it. What OP_CODE is used for this and what are some other examples of this OP_CODE being used? Do you think superfluous data should be allowed in the blockchain?
How much data would be required to calculate a Merkle path for a tree with 4 transactions?
What is signet and how is it different from testnet and regtest?
Bloom filters have some problems, how are block filters better?
Chapter 12
How does mining solve the Byzantine Generals Problem?
What happens to a transaction that isn't validated by your node?
What happens if a miner tries to pay itself a higher subsidy than allowed?
In 2016, there was ~3 EH/sec of processing power. Today there are 150 EH/sec. What is the right threshold for securing the network? Can you have too much security?
Under what circumstances would a node receive an orphan block? Why would it not be discarded if its parent hasn't been received? How long should a node wait? Do you see any problems with keeping it for a long time?
A 10-minute block interval was set by Satoshi. Is that too slow? How might we speed it up? What problems might be caused by a shorter interval?
How is work by a miner monitored by pools? Could this be gamed?
What prevents miners from signaling that they will support an upgrade but later not enforce it?
Upgrades have become increasingly more difficult to get merged and accepted by the community. Should we make it easier? If so, how?
Bonus: How do p2pools work? Why is this not the main method used?
Bonus: What are the largest pools today and what risk do they pose?
Chapter 13
Bitcoin's security relies on decentralized control over keys and on independent transaction validation by miners. Are there instances when centralization might be appropriate or even encouraged?
How do developers of the protocol fit into the trust model? What safeguards are in place to ensure there are not any single points of failure?
How can we protect ourselves from the thousands of software components that run on our personal computers?
Chapter 14
What do you see as the biggest weakness of the Lightning Network?
Do you think the punishment mechanism in the Lightning Network incentivized the right kind of behavior?
People say that the Lightning Network is better for privacy, but each node has a persistent identity, so how is that possible?
Lightning sounds complicated. Couldn't we just use unidirectional payment channels? It's not like my coffee shop will ever be paying me, right?
Last updated