1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-12-26 16:38:31 +00:00
Commit Graph

44 Commits

Author SHA1 Message Date
David A. Harding
75e1277545 All: edits for follow-up feedback from Murchandamus (thanks!) 2023-09-01 13:22:08 +02:00
David A. Harding
0cab0c9d2a Meta: edit notes for the future 2023-09-01 13:22:04 +02:00
David A. Harding
399e004211 CH05: fix script nesting (from Murchandamus feedback, thanks!) 2023-09-01 13:21:39 +02:00
David A. Harding
114d7bf25a Auth&Auth: explain differerence between MAST and Merklized Alt Script Trees
Inspired by a comment from Roasbeef about how we shouldn't described
MAST because that's not what taproot implements.
2023-09-01 13:21:39 +02:00
David A. Harding
89b548d5b5 All: update images for reviewer feedback
Special thanks to Murchandamus who provided most of the feedback
2023-09-01 13:21:39 +02:00
David A. Harding
8d6972d719 Libbitcoin bx: remove all mentions of vulnerable tool
- Remove appendix dedicated to `bx`.  They had already been slated for
  deletion, as I wrote to a reviewer on 2023-07-27: "I'm also probably
  going to delete the library/tool focused appendixes as I don't think
  they add anything".  After the disclosure of CVE-2023-39910 on August
  8th, it's clear that this appendix was worse than useless: it was
  harmful.

- Remove other mentions of `bx` in the book.  I had not previously
  intended this because it looked like a pain, but mentions of a tool
  often come across as endorsements to readers and no tool created by
  the team behind Libbitcoin is one I would ever want to endorse.  I
  regret that I didn't remove the mentions earlier in the process of
  updating the book.

- Remove appendix dedicated to pycoin.  I'm now aware of any problems
  with pycoin, but I don't think these sort of short detached tutorials
  add anything.  Programming Bitcoin is an entire book built on pycoin,
  and all of these tools have their own webpages that get updated more
  frequently than the book.
2023-09-01 13:21:39 +02:00
David A. Harding
672c3fdc07 All: edits for Roasbeef feedback
- Drop soon-to-be-outdated mention of current block reward amount

- Aezeed: mention internal and external version sumbers.  Instead of
  saying "global word list", clarify that both the backup and the
  recovery software need to support the same word list.

- Mention that compact block filters are something that blocks might
  commit to in the future in a consensus-enforced way.

- Add links to both RGB and Taproot Assets documentation.

- Mention that taproot assets can also support native forwarding.

- Minor edits and add some FIXMEs for later changes.
2023-08-06 21:08:04 -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
a4f337b840 All: update to comply with current draft of bip-bikeshed 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
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
61369c7206 CH06/07: Update titles, anchors, and cross-references links 2023-04-08 11:40:31 -10:00
David A. Harding
32d0aca1c0 CH07: Fix chapter heading 2023-03-30 14:20:01 -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
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
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