On Tuesday, March 18, 2025 at 9:24:49 PM UTC Antoine Poinsot wrote:
Hi,
Testnet4
was rolled out a year ago to address the shortcomings of testnet3. One
of those shortcomings was the difficulty reset creating havoc. [0] In
spite of this a similar rule was adopted for testnet4. [1] As a result,
testnet4 is similarly creating havoc. [2]
The goal of testnet is
to mimic the Bitcoin mainnet. This is why it is useful to have in
addition to a more control testing environment such as Signet.
The
given rationale for a difficulty reset was to let developers
occasionally mine blocks on their laptop. But you cannot have your cake
and eat it too: either the network is permissionless (PoW) or you assign
identities and privileges to some (Signet). By trying to do both at the
same time testnet4 created a loophole for abuse. As a result it failed
on both count: it neither mimics mainnet nor allows developers to mine
active blocks on their laptop.
I propose to fix this by removing
the difficulty reset rule from testnet4 through a flag day hard fork on
2026-01-01. I picked a date well in the future to minimize disruption.
This leaves enough time for a patch to be reviewed, merged, included in
the next major Bitcoin Core release, backported to previous releases and
adopted by the infrastructure running on testnet4. That should be
enough for a test network.
Part of the root cause is violations of the gentleman's agreement to not trade testnet coins for money, this results in predictable chaos with people sniping the low difficulty blocks. Some believed that resetting alone would discourage the conduct, but even if it had (it hadn't people are selling them now) it was still likely that people would hoard up coins just in case they became tradable in the future.
There is a simple fix for this which doesn't result in an operating difference from Bitcoin, just an economic one. Hard fork in an ultramassive premine, as large as possible but what stays with existing value overflow logic. (so maybe an additional 21 million testnet btc?).
This also resolves the 'actual developers can't get coins problem' and if someone starts trading tnbct for money, whomever has the premine wallet should feel feel to sell into it what they can. Once they run out of coins it'll be time for another testnet reset.
It may just not be possible to prevent degens from trading tn coins for money, -- I mean consider the altcoins that some people spend money on :), there is basically no low bar on how crappy you can make a cryptocurrency where some scammer won't try to sell it to some fool. But what can't be prevented can at least be turned into a benefit.
Compared to things like just rigging the subsidy to continue forever-- that's a bigger consensus change compared to bitcoin, and I think it doesn't have the right incentive surface... some of the most popular altcoins have endless inflation and people still use them. Instead you want the failure mode to be "if you do trade this for money, most of the profits end up going to support a developer or development, rather than whatever jerk decided to trick people into paying for it". :)
Feel free to suggest yourself as the custodian of the premine. Or it could be some anonymous party if there is a concern that they'll be pestered for handouts. There should be a general expectation that the custodian of the premine will use it for the betterment of Bitcoin development, but if it's found that they're not-- solution is just another reset. :)