The description of SPV in the original paper assumed full nodes would
warn SPV clients about invalid blocks. Such fraud proofs are not used
in production, so lightweight clients are (arguably) not SPV clients.
- 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.
- 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
- 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.
- 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
- 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
Previous text didn't explain how including a transaction in a block
gave it security. We add a short explanation here, knowing that we'll
go into more detail in the mining chapter.
This takes up the same amount of space and is (I think) just as easy to
understand, but avoids the indirection of a metaphorical example and
some of the confusions it can create, e.g. that mining is a race to
complete a puzzle rather than a memoryless lottery.
We also remove a later desciption of PoW which is now redundant.
This advice may have been somewhat accurate when the first edition of
this book was published and opt-in replace-by-fee wasn't available, but
that's no longer the case. And now, especially, with default
replace-by-fee on the probable horizon, there's even less safety in
accepting unconfirmed transactions as final without some type of
secondary protection.
- Alice can send her transaction to software that will forward it to a
node for her. This is very common today.
- Previous text used the term "flooding" but the more common phrase for
this particular propagation technique is "gossiping".
Per the updated infobox in CH01, we stop using the name "clients" for
full nodes; they're peers. We also clarify that miners commit effort to
blocks rather than necessary prove them valid.
Introduce the UTXO term as it is one of the most essential concepts to
understanding how Bitcoin works and is widely used in other Bitcoin
technical documentation.
Previous text said that wallets can construct tranactions offline. Add
clarification that this requires the wallet to already know what inputs
it controls.
- Update text to refer to new illustration
- Introduce the term "change output" in addition to existing term
"change address"
- Add information about the privacy advantages of unique change
addresses
- Previous illustration was cut-off, both in the source and the print
edition. We update the illustration to not only correct that but also
provide more accuracy:
- Instead of showing input values, the illustration now shows input
references to prevouts.
- Instead of using BTC denomination, it use satoshis
- Instead of putting tx fees in the output category, it shows them
outside the transaction since they're an implicit value
- The source for the new illustration is provided as a comment to
make future editing easier
- The text is updated to refer to the new illustration appropriately.
- Text now mentions the implicit input value
- We describe that we use satoshi values because that's what's in the
protocol
Before earlier edits, the second edition text for this chapter was about
buying a cup of coffee. The edits changed it to a laptop. The risk
profile of a cup of coffee and a laptop are different, making some parts
of the text problematic, e.g. Bob accepting payment without waiting for
confirmation.
This update replaces the example with Alice buying a premium podcast
episode, which has a very low risk profile.
Existing text claimed that Alice's unconfirmed transaction completed the
payment to Bob, but Bob would be wise to wait for a $750 transaction to
confirm.
I think this is a problem resulting from a previous edit to the
second-edition text where the example was changed from a cup of coffee
at a cafe to a laptop. A cup of coffee is cheap and has no resale
value, so the chance of fraud is small; a laptop is expensive and has
significant resale value, making fraud a greater risk.
The payment request language is confusing because BIP70 payment requests
look a lot like the URI used here but this is not a BIP70 payment
request (and BIP70 is dead, so we need not describe it).
Instead, update the text to use the more generic word "invoice", which
has the advantage of also being simpler English.
Existing text used "bitcoin" as both the singular and plural unit, which
was not an uncommon practice when the first edition was written.
However, my edits to the first chapter and this update adopt the
practice of using the same pluralization rules used for other
currencies, like the dollar, plus most numbered things in general.
This produces more natural text.
Reference: https://www.chicagomanualofstyle.org/qanda/data/faq/topics/Numbers/faq0058.html
Replace older block explorers with modern alternatives and warn readers
that looking up info on explorers may disclose their interest to third
parties.
Users operating a full node don't need to trust anyone else for certain
guarantees about the system, although they do need at least one honest
peer to obtain some other guarantees. Clarify this in the text by
revising text about text and emergent properties.
The commit ab5ae32bae is the last commit
for the second edition, so all changes since then are dropped except for
several commits for the third edition authored by Andreas Antonopoulos.
No attempt is made to remove CC-BY-SA or other licensed content present
in the already-published first or second editions.
This revert may itself be reverted for versions of the book published
under CC-BY-SA.