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
David A. Harding
66c0861b62
CH07: Use term "nested" for P2SH-P2WPKH/P2WSH
...
This is the phrasing used in BIP141.
2023-03-30 14:01:06 -10:00
David A. Harding
bef3a4e5ae
CH07: s/fingerprint/commitment/
...
This is consistent with phrasing we've used in previous chapters.
2023-03-30 14:01:06 -10:00
David A. Harding
a1d7bd1ecf
CH07: drop ref to "programmable money"
...
I think this could be confusing. It's not so much that the money is
programmable---in Bitcoin, your money won't go out and take actions on
its own based on programming. Instead, Bitcoin allows contracts to be
enforced by deterministic full nodes rather than a more arbitrary justice
system.
2023-03-30 14:01:06 -10:00
David A. Harding
107e331b2f
CH07: Statlessnes is per-tx not per-script
...
Some of the information necessary to validate a transaction is contained
within the transaction executing the script, such as the data the
signature commits to plus its locktimes for OP_CLTV & OP_CSV.
2023-03-30 14:01:06 -10:00
David A. Harding
38dd2398ae
CH07: correction: the utxo set is not stored in ram
2023-03-30 14:01:06 -10:00
David A. Harding
245adc151d
CH07: s/nLocktime/nLockTime/
...
Matches the style used in Bitcoin Core, which matches the style we use
for other terms in this book.
2023-03-30 14:01:06 -10:00