Subject: [bitcoindev] Re: Unbreaking testnet4

From: Greg Maxwell <[email-masked]>
Date: Mon, 5 May 2025 15:25:29 -0700 (PDT)

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. :)

-- 
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email-masked].
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/afb749b2-bdb8-4b2a-84ec-b703a64ad765n%40googlegroups.com.