Mining and Network Block Propagation

If you haven't recently read the Mining and Consensus chapter in Mastering Bitcoin, please review it before diving into the content below.


Optional Practical Exercise

Discussion Questions

Mining and Consensus

  1. Why would some miners use parts of the version field as a nonce? What effect did this have on nodes?

  2. How do P2Pools work? Advantages and disadvantages? Why aren't there any mainstream P2Pools today in the market?

  3. How far back into the past can the timestamp in blocks be? Is this validated? How can this be attacked?

  4. Have we seen the difficulty retarget algorithm be manipulated in other projects? Is this a threat to Bitcoin?

  5. In your opinion, is it a good or bad thing that specialized hardware is now needed to mine bitcoin rather than letting individual users participate in that part of the ecosystem?

  6. Consider the following scenario: Segwit2x didn’t happen (or miners didn’t throw in support for it) and UASF (BIP148) ended up causing a chain split on August 1st, 2017, with minority mining support (e.g. ~10-20%). What would likely happen as a result?

  7. Can you ensure the transaction will be processed even if you send it with low fees? Which mechanisms do you have to ensure a stuck transaction (due to low fees) gets processed?

  8. Some mempool divergence is natural in a decentralized system. What negative side effects might we incur if the level of mempool divergence between nodes becomes "too high"? Consider other stack layers (P2P, wallet, validation etc.). What level of divergence do you think the system can safely tolerate?

Advances in Block Propagation

  1. How can changes to Bitcoins p2p protocol affect mining?

  2. How is a high stale block rate the best indicator that block propagation times are too high?

  3. Alternatively, while a low stale block rate can be an indicator that block propagation times are good, it could also be an indicator of something more problematic. What could be a bad reason for there to be very few stale blocks?

  4. Greg Maxwell mentioned that miners are hesitant to connect with one another directly, even though it would speed up block propagation. Why?

  5. A low block-orphaning rate can be an indicator that block propagation times are good. It could also be an indicator of something more problematic. What could be a bad reason for there to be very few orphans?

Compact Blocks

  1. How could we speed up block propagation in the network and why is that important for decentralization?

  2. Compact block relay is a good way to reduce the amount of bandwidth to propagate new blocks to full nodes, but is it the fastest method for a synced node given peers may need to request missing transactions?

Mining: No Good, The Bad, and The Ugly

  1. What is a BGP Hijack attack? What prevents it?

  2. Why not encrypt all communications with pool operators?

Majority is not Enough

  1. What is the 'Selfish Mining' attack? How does it work? Is it a real threat?

  2. Is it possible to identify and ignore a Selfish Miner's chain? Must we follow the most-work chain even if we identify that it came from a selfish miner?

Mining pools

  1. How do pools give work assignments to client miners? Do all miners search the same block candidates?

  2. What are 'shares' and how do they help facilitate pooled mining?

Overview of the covert AsicBoost allegation

  1. What is the difference between overt and covert ASIC Boost?

Last updated