1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-11-26 09:58:22 +00:00
Commit Graph

64 Commits

Author SHA1 Message Date
David A. Harding
b387a9c09e Appendixes: add whitepaper errata
Suggested by Murchandamus.
2023-08-01 11:13:43 -10:00
David A. Harding
6e14b9637a CH09-10: edits for Murchandamus feedback
- Mention an example of Bitcoin Core sending a BIP151 transacation in
  advance, alas it's the only case implemented.

- Mention that FIBRE is software (since Matt's main network for it was
  shut down)

- Add fRelay to the node announcement message.  We've only had it for 11
  years.

- Clarify descriptions mention the genesis block as part of the block
  chain

- Mention that BIP157/8 is not able to relay unconfirmed transactions

- Update assertion that the mempool is only stored in memory (on Bitcoin
  Core, it is now written to disk on shutdown; on libbitcoin, it's
  always written to disk)

- HUGE FIX: correct inverted enumerator and denominator on feerates.  So
  embarrasing!
2023-08-01 07:53:41 -10:00
David A. Harding
4a6344a4d0 CH09: remove sections about fee market theory
These were absurdly hard to write and, as often happens when something
is that hard to write, they don't appear to be helpful, as judged by
Murch.  The last time I tried to explain the theory[1], it also sucked,
so maybe this isn't what I'm meant to do.  :-)

The removed text introduces the term "mempool" for this chapter, so a
small edit is made later on to compensate.

[1] https://en.bitcoin.it/wiki/Miner_fees#The_market_for_block_space
2023-08-01 07:53:21 -10:00
David A. Harding
baae9293cf Multi: switch from k-of-n/n-of-n to t-of-k/k-of-k
Suggested by Murchandamus
2023-08-01 07:52:54 -10:00
David A. Harding
644867fd92 CH08: edits for feedback from Murch
- Drop box with Wikipedia definition of digital signatures.  It didn't
  add anything and its accuracy was debatable.

- Use "commitment hash" earlier and more often.

- Fix some variable-name errors in the math

- Correct info about worst-case signature verification cost
2023-08-01 07:52:54 -10:00
David A. Harding
4165d6e113 Appendix Script Ops: remove (replace with link)
During his review, Mark "Murch" Erhardt discovered that the appendix
contained several errors and many entries that were confusing.  When I
looked at the upstream source on the wiki, I discover that it had extra
information that eliminated those problems.  Since we only reference the
appendix twice, don't really go into detail about writing your own
scripts, and since all the information is easily accessible online for
free, we drop the appendix and replace references to it with a link to
the wiki.
2023-08-01 07:52:54 -10:00
David A. Harding
27337e415f CH07 edits for Murch feedback
- Describe OP_CMS pubkey limits for consensus, relay policy, and P2SH.

- Mention that OP_CLTV and OP_CSV leave elements on the stack, unlike
  other VERIFY opcodes.
2023-08-01 07:52:54 -10:00
David A. Harding
491891fdaa CH05-06: edits for Murchandamus feedback
- Explicitly describe what BIPs are before we start dropping references
  to them.

- Mention that addresses don't encode a message, so using a unique
  address that the receiver has privately associated with a spender is
  the only guaranteed way to identify payments from that spender.

- Correct how many blocks need to elapse before an output can be spent
  by an input with a relative lock time.

- Many other small edits.
2023-08-01 07:34:58 -10:00
David A. Harding
a4f337b840 All: update to comply with current draft of bip-bikeshed 2023-08-01 06:44:36 -10:00
David A. Harding
e6f895732a [Housekeeping] Normalize BIP references 2023-08-01 06:44:36 -10:00
David A. Harding
60f25a5985 CH08: fix broken reference 2023-06-28 16:24:41 -10:00
David A. Harding
6ac0122731 CH07-13: edits for arufino feedback (thanks!) 2023-06-28 15:19:52 -10:00
David A. Harding
02d0bdbd62 CH08: add anchor for MAST 2023-06-28 14:31:38 -10:00
David A. Harding
c4007411b4 CH08: fix reference 2023-05-18 15:55:38 -10:00
David A. Harding
037d8108fc CH07 & CH08: edits for arufino feedback (thanks!) 2023-05-08 14:21:49 -10:00
David A. Harding
3ff08d8fff CH09: add info about fees
- New introduction to fees
- More detail about how the fee market works
- Adds RBF and CPFP fee bumping
- Adds transaction pinning
- Adds package relay
- Adds CPFP carve out
- Small edits to 'Adding fees'
- Tiny edits to fee sniping
2023-05-07 09:16:34 -10:00
David A. Harding
02d7401f9d fixmes 2023-04-09 05:52:11 -10:00
David A. Harding
e0af3f1fa3 [Move only] Move CH06/07 fee material to Fees chapter 2023-04-09 05:30:48 -10:00
David A. Harding
e96341c9b7 CH08: add conclusion 2023-04-08 11:42:33 -10:00
David A. Harding
51a71a8e01 CH08: ECDSA terminology update
- "Ephemeral key pair" -> nonce; makes it consistent with schnorr
  section and better composes with section about avoiding nonce reuse

- Changed variables to be consistent with schnorr section
2023-04-08 11:42:33 -10:00
David A. Harding
4f53af3f4e CH08: Add new intro to ECDSA to compare it to schnorr 2023-04-08 11:42:33 -10:00
David A. Harding
4749fc033f CH08: Describe schnorr signatures, multisignatures, t-signatures 2023-04-08 11:42:33 -10:00
David A. Harding
a28d4bb054 CH08: update RFC6979 text to describe BIP340 and synthentic nonces 2023-04-08 11:40:31 -10:00
David A. Harding
5f4a8cfc66 CH08: Edits to intro and other prev edition content 2023-04-08 11:40:31 -10:00
David A. Harding
5515a74870 CH08: update text about flex sighashes to ANYPREVOUT 2023-04-08 11:40:31 -10:00
David A. Harding
260df04abe CH08: clarify that diff sigs in the same input can have diff sighashes 2023-04-08 11:40:31 -10:00
David A. Harding
afed975b8c CH08: Move serialization of ECDSA signatures 2023-04-08 11:40:31 -10:00
David A. Harding
237fd1ea50 CH08: generalize text about signatures (ECDSA->{ECDSA,schnorr}) 2023-04-08 11:40:31 -10:00
David A. Harding
07e475583b CH08: drop paragraph about segwit commiting to input amount
This now has a well-known problem and doesn't provide the guarantees
that were hoped for.
2023-04-08 11:40:31 -10:00
David A. Harding
61369c7206 CH06/07: Update titles, anchors, and cross-references links 2023-04-08 11:40:31 -10:00
David A. Harding
43b736cd3b [Move Only] Content from old ch06/07 to new chapter 8 (signing) 2023-03-31 05:23:35 -10:00
David A. Harding
32d0aca1c0 CH07: Fix chapter heading 2023-03-30 14:20:01 -10:00
David A. Harding
dfb3aae2e0 CH06: try again to fix listing xref 2023-03-30 14:17:54 -10:00
David A. Harding
6dfdbbcd70 CH03/06: remove [listing] tag to see if that fixes ref 2023-03-30 14:09:33 -10:00
David A. Harding
a0a50cb547 CH06: edits for feedback from arufino (thanks!) 2023-03-30 14:01:06 -10:00
David A. Harding
1a27ee296e CH07: Add MAST, P2C, scriptless multisignature, taproot, tapscript 2023-03-30 14:01:06 -10:00
David A. Harding
fe575bb33e CH07: New chapter introduction 2023-03-30 14:01:06 -10:00
David A. Harding
eb1a75ad97 CH07: Minor edits
A bunch of minor edits just from reading through the previous text.
2023-03-30 14:01:06 -10:00
David A. Harding
3d659cec16 CH07: Leave future todo about implications of no script in scriptSig
- E.g., the idea that it might have been possible to implement
  script delegation
2023-03-30 14:01:06 -10:00
David A. Harding
61b18af41b CH07: Update warning about mixing locktimes
We go into more detail about the problems of mixining locktimes, both
CLTV and CSV.
2023-03-30 14:01:06 -10:00
David A. Harding
7b6bc29171 CH07: drop confusing claims about segwit wallet requirements 2023-03-30 14:01:06 -10:00
David A. Harding
90eafb5df8 CH07: Minor: wallets don't need to know what type of wit prog they spend to 2023-03-30 14:01:06 -10:00
David A. Harding
d84c3be909 CH07: clarify P2PKH to P2WPKH conversion 2023-03-30 14:01:06 -10:00
David A. Harding
50795e578f CH07: Remove claim about VERIFY opcodes that doesn't apply to CLTV/CSV
Previous text claimed VERIFY opcodes consumed their inputs, but that's
not the case for upgraded OP_NOP opcodes.
2023-03-30 14:01:06 -10:00
David A. Harding
5ea4e4ef03 CH07: OP_CMS "bug" -> "oddity", with explanation for why it might not be a bug
Details in the diff but there's a case for this not being a bug.
2023-03-30 14:01:06 -10:00
David A. Harding
15d9399521 CH07: tone down beyond-bitcoin applications
Bitcoin can do things beyond money, but (as other text in the chapter
notes) this can be controversial.  Let's not oversell those other uses
here only to throw shade on them later.
2023-03-30 14:01:06 -10:00
David A. Harding
ec534165ba CH07: Switch from M-of-N to K-of-N
Explanation for change is in changed text, but briefly: k-of-n is
clearer when pronounced.
2023-03-30 14:01:06 -10:00
David A. Harding
7417842837 CH07: prefix opcodes with OP_
I think this helps distinguish between opcodes and data
variables/constants.
2023-03-30 14:01:06 -10:00
David A. Harding
8cdac91f1a CH07: drop description of op_return limits
I think this is an overabundance of detail (and I'm not sure it's
correct about a 40-byte release; I think that may have been changed in
the RC phase).

There has also been recent (March 2023) discussion about making this
limit arbitrarily high, so this is something that might become outdated
quickly.
2023-03-30 14:01:06 -10:00
David A. Harding
9acf053805 CH07: drop cafe tx since we're not using that tx 2023-03-30 14:01:06 -10:00