Chaincode Seminars
  • Seminar for Bitcoin and Lightning protocol
  • Bitcoin Protocol Development
    • Welcome to the Bitcoin Protocol Development Seminar
    • SegWit
    • Mining and Network Block Propagation
    • P2P
    • Scripts and Wallets
  • Lightning Protocol Development
    • Payment Channels, Intro to Lightning, and HTLCs
    • How the layers of Lightning Fit Together
    • Lightning Routing
    • Lightning Limitations
    • The Future of Lightning
Powered by GitBook
On this page
  • Reading
  • Optional Practical Exercise
  • Discussion Questions
  • Mining and Consensus
  • Advances in Block Propagation
  • Compact Blocks
  • Mining: No Good, The Bad, and The Ugly
  • Majority is not Enough
  • Mining pools
  • Overview of the covert AsicBoost allegation
Edit on GitHub
  1. Bitcoin Protocol Development

Mining and Network Block Propagation

PreviousSegWitNextP2P

Last updated 1 year ago

If you haven't recently read the , please review it before diving into the content below.

Reading

Content
Time (min)

75

15

15

15

20

21

45

20

15

30

15

20

20

10

Optional Practical Exercise

  • has created a along with .

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?

(optional video)

Mining and Consensus chapter in Mastering Bitcoin
Larry Ruane
proof of work mining simulator
exercises and discussion questions
Advances in Block Propagation with Greg Maxwell
Why Is It Taking 20 Minutes to Mine This Bitcoin Block?
Compact Blocks
ELI5 FIBRE
Mining: No Good, The Bad, and The Ugly
Hijacking Bitcoin: Routing Attacks on Cryptocurrencies
The History and Future of the Stratum protocol
Mining pool reward FAQ
Why Bitcoin Mining Pools Aren't Incentivized to Broadcast Blocks Quickly
Majority is not Enough: Bitcoin Mining is Vulnerable
Demystifying The Selfish Mining Bet
Mining pools
Overview of the covert AsicBoost allegation
Transaction standardness; motivations and spec