BIP Draft: Testnet 5#2196
Conversation
murchandamus
left a comment
There was a problem hiding this comment.
Good first showing. I have left a few comments and suggestions.
murchandamus
left a comment
There was a problem hiding this comment.
Good improvements, thanks for the quick response. I gave this another read:
| Assigned: ? | ||
| License: CC0-1.0 | ||
| Discussion: 2026-06-02: https://groups.google.com/g/bitcoindev/c/kGUMTxOvdJA | ||
| Version: 0.1.0 |
There was a problem hiding this comment.
I think the following two additional headers would make sense:
| Version: 0.1.0 | |
| Version: 0.1.0 | |
| Requires: 54 | |
| Replaces: 94 |
|
|
||
| ## Abstract | ||
|
|
||
| A new test network with the goal of replacing [Testnet 4][BIP94]. Testnet 5 removes the difficulty |
There was a problem hiding this comment.
Nit: The abstract starts on a sentence fragment without a verb.
| ## Motivation | ||
|
|
||
| Testnet 4 included mitigations for an issue known as the [block storm attack][block-storms] which could render the | ||
| whole network unusable. This led to a depletion of block subsidies, which made it hard to acquire |
There was a problem hiding this comment.
It’s ambiguous whether "this" refers to the mitigations or the block storms.
| whole network unusable. This led to a depletion of block subsidies, which made it hard to acquire | |
| whole network unusable. Block storm attacks led to a depletion of block subsidies, which made it hard to acquire |
|
|
||
| Testnet 4 included mitigations for an issue known as the [block storm attack][block-storms] which could render the | ||
| whole network unusable. This led to a depletion of block subsidies, which made it hard to acquire | ||
| coins for testing. However, Testnet 4 still retained a modified version of the difficulty exception rule |
There was a problem hiding this comment.
Since much of this paragraph discusses the issues with the difficulty exception, perhaps it should be briefly explained.
| to discussion about changing Testnet 4 to mitigate this issue (see [Bitcointalk][bitcointalk-thread] | ||
| for analysis and discussion). | ||
|
|
||
| In Testnet 5 there is no exception to the PoW rules. This appears to be the logical conclusion, |
There was a problem hiding this comment.
I just had a random thought that I was wondering whether it was considered:
What would happen if blocks mined with the difficulty exception would be forbidden from collecting the subsidy (i.e., could only collect fees)? That would permit users to get blocks if the difficulty had run up, or to mine non-standard transactions, but would remove the incentive to mine blocks for collecting the subsidy. It would not prevent people from creating low-difficulty blocks to deny others from getting them and it might be more complicated than just dropping the exception, though.
There was a problem hiding this comment.
Yet another band-aid fix, I fear. Way better off fresh and "right" from the start.
There are other ways to earn coins besides Block Rewards, using a difficulty exploit. Perhaps even more disruptive.
I also agree with the more complicated.
There was a problem hiding this comment.
What would happen if blocks mined with the difficulty exception would be forbidden from collecting the subsidy (i.e., could only collect fees)?
Then, coins will be burned, and ASIC miners will have an incentive to reorg them. To prevent that, additional coins could be simply timelocked to some future block number, then stronger miners won't have an incentive to reorg them, and will simply collect them later instead.
Anyway, the idea to decrease the coinbase reward, proportionally to the Proof of Work in the block header, is not new. But it makes things more complicated, and there are other ways, like pay to Proof of Work scripts, which could be used to achieve the same things, without messing up with consensus rules.
Also, the scenario, where the chain would halt, because of not enough miners, could happen on the mainnet as well, so it would be good, if test network would behave in a similar way, to let someone try to deal with that problem, and prepare a solution for mainnet as well.
| TODO: Mine the block. The values below are placeholders inherited from Testnet 4. They are | ||
| the genesis block's header fields together with the `Message` and `Pubkey` of its coinbase | ||
| transaction. Notes for the miner: |
There was a problem hiding this comment.
I took a look at BIP94 in regard to the meaning of these two fields. It seems to me that the pubkey field is also only implicitly explained there. Looking at the construction, it seems to me that the pubkey field takes the place of the previous block hash in the block header, is that right? I was unable to find out where the message field goes. I thought it would appear in the coinbase field of the coinbase transaction, but I could not find the message string either forward or backward in the block hex.
I would recommend that it be explicitly explained where the pubkey and message field appear in the construction.
There was a problem hiding this comment.
Oooh. Does pubkey go into the P2PK output script? Still confused about the message, though.
There was a problem hiding this comment.
I guess it could be just some x-value pubkey, equal to the mainnet block hash. For example: https://mempool.space/address/0200000000000000000001ae18e25b101d485505283d8d8e67771e1d865acbfece (and then, getting the private key for the Genesis Block would be impossible, if the secp256k1 point would be invalid, or would be as hard, as breaking secp256k1, if it would turn out to be a valid point, like 04 00000000000000000001AE18E25B101D485505283D8D8E67771E1D865ACBFECE 0E007A49956DB6EF8251FADDB106C649250FD5E5EEE9E875C88F62EACF3473D4 is in this case).
Following up from the discussion on the mailing list.