Atlanta BitDevs

Mastering Bitcoin: Chapters 5 & 6

Mastering Bitcoin

Join our vibrant reading discussion group as we dive into Mastering Bitcoin, the ultimate technical guide to understanding Bitcoin. Perfect for those eager to deeply grasp the intricacies of Bitcoin, this group combines a fun and supportive environment for learning complex technical concepts.

Each week, we'll explore a different pair of chapters, enriching your self-reading experience. We'll provide thought-provoking questions ahead of each session to guide your reading and fuel engaging discussions. Our meetups are not just about discussing the book; they're about building a community of Bitcoin enthusiasts and builders.

Discover, discuss, and delve into the world of Bitcoin with us. Your journey towards mastering Bitcoin starts here!

RSVP for Meetup Here

How It Works

We recommend that you read up on the event format before you attend.

This Session

In this session, Bryan Nonni will lead us through a discussion of:

  • Chapter 5: Wallet Recovery
  • Chapter 6: Transactions

Study Questions

These questions are provided to help guide your thinking as read the material. We'll try to answer these together when we meet to discuss the chapter.

Chapter 5

  • What is a bitcoin wallet? Describe the miconceptions and the components.
  • What is the difference between a "wallet database" and a "wallet application"?
  • What is the trade off of onle using a single public key?
  • Describe the difference between independent / nondeterministic and deterministic key generation.
  • What are the different types of recovery codes in wide use today? List some advantages and disagvantages.
  • Which recovery code schemes allow for an optional passphrase?
  • What are the 4 components needed to recover funds froim data loss? Why is the fourth needed?
  • Are version numbers important for recovery code schemes?
  • Are 12 words (128 bits of entropy) enough? What are advantages and disadvantages of using 12 vs. 24 words?
  • Advantages and disadvantages of using a passphrase.
  • Any questions about generating HD wallet from seed and seed from recovery code?
  • What is gap limit and how can it be handled?
  • What is the difference between child and hardened child addresses? Why are hardened important?
  • Is openly sharing your xpub bad?


Chapter 6

  • Difference between v1 and v2 transactions?
  • What is the purpose of the marker and flag fields?
  • Each input in a transaction must contain what? What does each of them do?
  • How do full nodes use the previous output data?
  • How does Bitcoin Core track of all previous outputs?
  • What was the originally intended purpose of the sequence field as explained by Satoshi?
  • What are the problems associated with this use of the sequence field?
  • What ended up replacing the inteded mechanism of the sequence field?
  • What constraint did BIP68 add to the sequence field?
  • What are the min/max values allowed in the amount field of an output? What are the practicality of these numbers?
  • What are uneconomical outputs and what are the problems associated with them?
  • What are these outputs called? What protects full nodes from these outputs? Explain. Any exceptions?
  • What makes OP_RETURN transactions special?
  • Is there a min/max for output scripts? How and when are these enforced?
  • Can anyone recall examples of an output script that tookup or almost tookup a whole tx?
  • How about a tx that took up (almost) a whole block?
  • What is a "witness" in bitcoin?
  • Why are they important?
  • Why do they exist?
  • What problems do they solve?
  • How are they used in bitcoin?
  • How do they allow users to spend UTXOs?
  • What problems did Segwit solve?
  • What is tx malleability, how did segwit solve this and why is it important?
  • What is an anyone-can-spend output script and how does it allow us to soft-fork Segwit into Bitcoin?
  • What defines a segwit output script template?
  • What are the two types of templates? How do they work?