1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-12-23 23:18:42 +00:00
Commit Graph

26 Commits

Author SHA1 Message Date
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
David A. Harding
6c0368c5c6 CH07: s/BIP-xx/BIPxx/
This is my personal preference.  I think it's maximally concise and
reasonably clear.  It's also popular, which aids in searching.
2023-03-30 14:01:06 -10:00
David A. Harding
22ddf6a202 CH07: replace terms locking/unlocking with sPK/sS/rS/wP/w
Although I understand the desire to use more human-friendly terms than
scriptPubKey, scriptSig, redeemScript, witness program, and witness, I
think it makes things less clear, particularly when we switch from
legacy to legacy P2SH to segwit v0 to segwit v1.

An additional problem is that, with scriptSig no longer being executed
(and witnesses never being executed), it's not quite accurate to use the
phrase "unlocking script".

This commit replaces "locking script" and "unlocking script" with either
the specific data type or with non-specific phrasing.
2023-03-30 14:01:06 -10:00
David A. Harding
d304235d59 CH6/7/8: update link anchors for consistency 2023-03-30 14:01:06 -10:00
David A. Harding
34723bf97a CH07: fix image links now that we're using a file in chapters/ 2023-03-30 14:01:06 -10:00
David A. Harding
b2df51488b [Move only] Move content from CH06 & CH07 to new A&A chapter
A&A = Authorization & Authentication
2023-03-30 14:01:06 -10:00
David A. Harding
f3689a028a Update cross-references 2023-03-05 11:05:36 -10:00
David A. Harding
56c701a6ad C_Txes: edits (nearly complete rewrite)
This chapter, containing parts of previous chapters 6 and 7, is almost
entirely rewritten.

- Instead of introducing concepts in a somewhat arbitrary order, almost
  every section except the last three (coinbase txes, weight, and legacy
  serializitaion) follows the order of transaction fields as seen in
  a P2P serialized transaction.

- We leave details of scripts for the next chapter (authorization &
  authentication), signatures for the chapter after that, and fees and
  fee bumping for the chapter after that (reflecting the increased
  importance of fees).
2023-03-05 11:05:36 -10:00
David A. Harding
0a24448da5 [Move only] Move content from CH06 & CH07 to new Transactions chapter 2023-03-05 10:58:12 -10:00