1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-12-26 08:28:15 +00:00
Commit Graph

4363 Commits

Author SHA1 Message Date
David A. Harding
b387a9c09e Appendixes: add whitepaper errata
Suggested by Murchandamus.
2023-08-01 11:13:43 -10:00
harding
c79515dfe0 Updated atlas.json 2023-08-01 18:04:35 +00: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
5b1a5bff0a CH03-04: edits for Murchandamus feedback
- Mention the reason for the long validation time is the verification of
  transactions.  We previously implied it was download time, but some
  people have really fast internet.

- Better describe bitcoind cookie authentication and provide an example
  to make it even more clear.

- Add a link to bitcoin-s

- Make the long sidebar on collision attacks even longer by descripting
  a pre-image attack in addition to the previous descriptions of second
  pre-image and collision.  That way we don't conflate pre-image and
  second pre-image.

- Remove redundant tip box about an oddity in language about compressed
  and uncompressed private keys.

- Link to information about vanity address "mining" (brute forcing)
2023-08-01 07:13:47 -10:00
David A. Harding
67fd4677d1 Images: scale down send/receive 2023-08-01 07:13:05 -10:00
David A. Harding
f770347bd7 CH01-02: edits for Murchandamus feedback
- Fix bitcoin-overview image (P2PKH address was used as "private key")

- Use receiving and sending images from Bitcoin Design Guide
  (https://bitcoin.design) under CC-BY license
  (https://github.com/BitcoinDesign/Guide/blob/master/LICENSE)

- Mention changeless outputs, especially as used in transaction-chain
  image

- Include brief mention of best blockchain in paragraph about the cost
  to miners for confirming conflicting transactions
2023-08-01 07:11:27 -10:00
David A. Harding
71cf4bc97a CH02: edits for Mark (Xekyo) Erhardt feedback (thanks!)
- Drop unnecessary mentions of people from CH01

- FIXMEs: add notes for image corrections and best blockchain change

- Drop unnecessary mention of debits and credits

- Remove mention about asking block explorer for UTXOs to construct a
  transaction.  This is unnecessary detail and it can never entirely
  work for our example if we later use it to spend the output (because
  then the output won't be unspent)

- Instead of "new block" use "candidate block"

- Drop unnecessary mention of payment consolidation.  We already
  adequetely introduce this concept earlier in the chapter.
2023-08-01 07:11:27 -10:00
David A. Harding
0249c97460 CH01: edits for Mark (Xekyo) Erhardt feedback (thanks!)
- Provide rough block and year when 99% of all BTC will have been mined

- Remove user-stories section.  I think this section frontloaded too
  much irrelevant detail.  In new sections of this edition, I've
  exclusively used the convential Alice, Bob, Carol, etc.---without
  trying to maintain a consistent backstory.  This is simpler on the
  writer and, I think, simpler on the reader---if they jump into a
  section of the book, they don't need to worry that there's some
  important context in a previous section.

    - This also necessitated a few changes chapter 2.

- Mostly remove the phrase "custody".  Instead use the phares "control
  the key".  I think this is clearer to non-specialists and a quick grep
  shows that we don't use any version of the word "custody" elsewhere in
  the book.

- Drop localbitcoins.com.  This service was terminated after this
  chapter was updated.

- Add 'feerate' to the script for catching forbidden words.  :-( This
  required a change to a comment in an image source.

- Other minor changes and typo fixes
2023-08-01 07:11:27 -10:00
David A. Harding
48b2ce1f05 Housekeeping: Move 3rd-ed-changes file to meta/ directory 2023-08-01 07:11:27 -10:00
Arthur O'Dwyer
28458aaefe Revert accidental s/=/==/ in the Bitcoin Whitepaper appendix.
This looks like a `sed` accident in commit 44eecb1b.
2023-08-01 06:44:36 -10:00
David A. Harding
1a855fb9ea Housekeeping: remove accidentally added FIXME.md 2023-08-01 06:44:36 -10:00
David A. Harding
5215e8c3e8 Tool: add discouraged.sh to find discouraged words & phrases 2023-08-01 06:44:36 -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
7412584e41 Housekeeping: remove unused schnorr.asciidoc file 2023-06-30 06:35:57 -10:00
David A. Harding
df1f3f089a Housekeeping: delete unused bech32m file 2023-06-30 05:35:01 -10:00
David A. Harding
463ad4102f Housekeeping: rename file with a space in it 2023-06-30 05:07:24 -10:00
David A. Harding
60f25a5985 CH08: fix broken reference 2023-06-28 16:24:41 -10:00
harding
bbf3229b02 Updated atlas.json 2023-06-28 18:58:47 -07:00
David A. Harding
bece720d4f Appendixes: update BIPs and Script; remove Bitcore
- BIPs: it's silly to repeat all BIPs in the book, especially when an
  increasing number have never been used or are just silly.  Instead,
  use the list of implemented BIPs from the Bitcoin Core project, which
  represents a list of mostly interesting BIPs.

- Add OP_CHECKSIGADD from tapscript to the Script copypasta.

- Bitcore removed per outline
2023-06-28 15:55:54 -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
ea1a64bd61 CH14: small edits for style and consistency 2023-06-28 14:30:14 -10:00
David A. Harding
aeb9f81f26 CH14: s/bitcoin/Bitcoin/ 2023-06-28 14:30:14 -10:00
David A. Harding
8ddd89270b CH14: add details about modern colored coin protocols (rgb/taro) 2023-06-28 14:30:14 -10:00
David A. Harding
372ef38fdf CH14: remove most of Colored Coined text 2023-06-28 14:28:25 -10:00
David A. Harding
c21794b44f CH14: reflow text so that future diffs will be more readable 2023-06-26 09:33:13 -10:00
harding
ab9d7cbcc3 Updated atlas.json 2023-06-06 18:00:17 -07:00
David A. Harding
77942dd2e1 CH11: edits for consistency with rest of the book
- s/bitcoin/Bitcoin/ when appropriate
- Proof of work is only part of security
- Mining is separate from verificatino
- Kill BIP38 encrypted private keys section (mention seeds instead)
2023-06-06 14:59:06 -10:00
David A. Harding
be60e2c779 CH13: reflow text so that future diffs will be more readable 2023-06-06 14:59:06 -10:00
harding
677628d6a3 Updated atlas.json 2023-06-05 19:27:38 -07:00
David A. Harding
06fae7d78e CH12: small edits for accuracy, consistency, voice, and grammar 2023-06-05 16:24:25 -10:00
David A. Harding
d9a730a512 CH12: Median Time Past: move and update 2023-06-05 16:21:45 -10:00
David A. Harding
e145b6fd29 CH12: add BIP8 and speedy trial 2023-06-05 16:14:31 -10:00
David A. Harding
0294abbcf1 CH12: Make timeless by removing mentions of block 277,315
Previously, the text went into a lot of detail about block 277,315,
which was a long time ago.  We generalize the text to make it
perpetually current (barring a hard fork).
2023-06-05 16:12:34 -10:00
David A. Harding
4fa8a1590c CH12: replace std tx policy with only consensus tx rules
The previous list mixed consensus rules that transaction must follow
with standard transaction policy, which I think was confusng for readers
and also a problem in a later reference where we claim that all
transactions in a block must follow the rules (true for consensus; false
for policy).
2023-06-05 16:11:46 -10:00
David A. Harding
cb15241574 CH12: mention BIP320-style header extension 2023-06-05 16:11:40 -10:00
David A. Harding
6613f367c4 CH12: Remove "other ways to soft fork"
This short subsection described segwit's use of always-true
scriptPubKeys as special.  It didn't mention the similar mechanism used
for BIP16 P2SH.  It also doesn't mention block-focused changes like
BIP32 and BIP34, or non-script changes like BIP66, BIP68, and BIP113.
I think it should either be greatly expanded or removed, and removing is
easier right now.  :-)
2023-06-05 16:11:26 -10:00
David A. Harding
0909808e82 CH12: Futureproof by removing table & graphics of hashrate changes 2023-06-05 16:11:21 -10:00
David A. Harding
9f94188e3c CH12: s/fingerprint/(digest|commitment)/
Makes the test more consistent with other changes made in previous
chapters.
2023-06-05 16:11:16 -10:00
David A. Harding
5d8c2c494d CH12: s/unlocking script/scriptSig/ 2023-06-05 16:11:10 -10:00
David A. Harding
2b4a4220e2 CH12: s/Smores signature/Foocoin/
"Smore" sounds like "Schnorr", which could be confusing.  Also, we
have upgraded signatures now without a soft fork, so the example is
confusing.  Although we could add another coin with a soft fork (sort
of), it seems a lot less likely to me, so I think it's a better cadidate
for this section.
2023-06-05 16:11:05 -10:00
David A. Harding
c10f5664a3 CH12: Add note about settlement being time-based not conf-based 2023-06-05 16:11:00 -10:00
David A. Harding
a0fc8f62eb CH12: Introduce versionbits as the replacement for version field 2023-06-05 16:10:55 -10:00