1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-12-23 07:08:13 +00:00

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.
This commit is contained in:
David A. Harding 2023-05-25 13:34:18 -10:00
parent c10f5664a3
commit 2b4a4220e2

View File

@ -2214,15 +2214,14 @@ image::images/mbc2_1009.png[A blockchain with forks]
Later, however, at block height 6, a hard fork occurs. Let's assume that Later, however, at block height 6, a hard fork occurs. Let's assume that
a new implementation of the client is released with a change in the a new implementation of the client is released with a change in the
consensus rules. Starting on block height 7, miners running this new consensus rules. Starting on block height 7, miners running this new
implementation will accept a new type of digital signature, let's call implementation will accept a new type of bitcoin, let's call
it a "Smores" signature, that is not ECDSA based. Immediately after, a it a "foocoin". Immediately after, a
node running the new implementation creates a transaction that contains node running the new implementation creates a transaction that contains
a Smores signature and a miner with the updated software mines block 7b a foocoin and a miner with the updated software mines block 7b
containing this transaction. containing this transaction.
Any node or miner that has not upgraded the software to validate Smores
signatures is now unable to process block 7b. From their perspective, signatures is now unable to process block 7b. From their perspective,
both the transaction that contained a Smores signature and block 7b that both the transaction that contained a Foo signature and block 7b that
contained that transaction are invalid, because they are evaluating them contained that transaction are invalid, because they are evaluating them
based upon the old consensus rules. These nodes will reject the based upon the old consensus rules. These nodes will reject the
transaction and the block and will not propagate them. Any miners that transaction and the block and will not propagate them. Any miners that
@ -2232,12 +2231,12 @@ the old rules may not even receive block 7b if all the nodes they are
connected to are also obeying the old rules and therefore not connected to are also obeying the old rules and therefore not
propagating the block. Eventually, they will be able to mine block 7a, propagating the block. Eventually, they will be able to mine block 7a,
which is valid under the old rules and does not contain any transactions which is valid under the old rules and does not contain any transactions
with Smores signatures. with foocoins.
The two chains continue to diverge from this point. Miners on the "b" The two chains continue to diverge from this point. Miners on the "b"
chain will continue to accept and mine transactions containing Smores chain will continue to accept and mine transactions containing foocoins,
signatures, while miners on the "a" chain will continue to ignore these while miners on the "a" chain will continue to ignore these
transactions. Even if block 8b does not contain any Smores-signed transactions. Even if block 8b does not contain any foocoin
transactions, the miners on the "a" chain cannot process it. To them it transactions, the miners on the "a" chain cannot process it. To them it
appears to be an invalid block, as its parent "7b" is not recognized as a appears to be an invalid block, as its parent "7b" is not recognized as a
valid block. valid block.