Subject: Re: [bitcoindev] Unbreaking testnet4

From: Jameson Lopp <[email-masked]>
Date: Mon, 28 Apr 2025 06:45:23 -0400

On Mon, Apr 28, 2025 at 2:11 AM Saint Wenhao <[email-masked]> wrote:

> > Demurrage might be asking a bit much in terms of deviation.
>
> If that's the case, then why signing all blocks in signet is not "too
> much"?
>

Because signet isn't testnet? It gives up permissionless block creation in
return for predictability.

> Or why unlimited supply is not "too much"?
>

It might be, but it might not be, given that the point of testnet is for
coins to be free for developers to acquire and use without fear of
financial loss. Thus scarcity isn't really an inviolable property of
testnet.

> All of these changes were put in the same basket of "Require unanimous
> consent", so why one kind of change is better or worse than the others? All
> of them deviates from the mainnet, and we probably wouldn't want anything
> like that on the original chain anyway.
>
> > I'd think that testnets should be reset more frequently than that.
>
> Then why don't we put any kind of reset logic into testnet5 consensus
> rules? Because when nothing like that is present, then testnets can
> potentially run forever. Testnet3 is becoming an altcoin, and new testnets
> will also be, if no significant changes will be made. Signet is not traded
> yet, mainly because of centralized mining, but there already are
> centralized altcoin federations, so it may change in the future.
>
>
Encoding an "end of life date" into testnets is actually an interesting
idea worth discussing. As far as I'm aware it's never been done before on
any network.

And again, the word "reset" should be replaced by "abandon", unless you
> really want to reorganize the whole old chain of some existing testnet, by
> producing a stronger alternative chain in testnet5, which would replace the
> old network in a backward-compatible way, by mining everything on top of
> the same Genesis Block, and eventually producing a bigger chainwork.
>
> pon., 28 kwi 2025 o 00:50 Jameson Lopp <[email-masked]>
> napisał(a):
>
>>
>>
>> On Sun, Apr 27, 2025 at 12:47 PM Saint Wenhao <[email-masked]>
>> wrote:
>>
>>> What about introducing demurrage in testnet5 consensus rules?
>>>
>> In general it seems desirable for a testnet to be as close as possible to
>> mainnet's rules. Demurrage might be asking a bit much in terms of deviation.
>>
>> I'd suggest simply disabling the halving logic and making it a perpetual
>> 50 TBTC issuance. At that rate, it would still take ~8 years or so to
>> surpass the 21M limit and I'd think that testnets should be reset more
>> frequently than that.
>>
>>>
>>> Testnet coins were supposed to be worthless. But it failed in both
>>> testnet3 and testnet4. In the meanwhile, signet was introduced, to make a
>>> more stable test network. However, signing blocks was listed on wiki page
>>> https://en.bitcoin.it/wiki/Prohibited_changes as something, that
>>> "Require unanimous consent". And, as the history can tell us, people still
>>> wanted to test mining anyway, which is why testnet3 and testnet4 have much
>>> more chainwork than signet (and when it comes to signet, sending
>>> signed-but-unmined blocks to the miners was never implemented, so they had
>>> no chance to provide more hashing power).
>>>
>>> Another kind of change on the list, that would require consent, was
>>> increasing the total number of coins beyond 21 million. But then, testing
>>> supply limits would be harder, and it could cause integer overflows in some
>>> cases. But: in all test networks, including testnet3, testnet4, and signet,
>>> there was never a problem of "not enough coins for miners", so that change
>>> probably wouldn't solve any problems (and seeing it in action would take
>>> years anyway; testnet4 is still far from the first halving, and it is
>>> traded anyway, so that change won't fix it).
>>>
>>> Then, we have the third option, which was not yet tried in test
>>> networks: demurrage. There are two main options: burning coins, or
>>> re-assigning them to someone else. To make a soft-fork out of it,
>>> re-assigning would be backward-incompatible, so it is probably easier to
>>> just implement burning, and just treat all coins older than N blocks in the
>>> same way, as OP_RETURN, by simply invalidating transactions spending them
>>> on consensus level.
>>>
>>> Also, when it comes to maintaining testnet nodes, if it would be
>>> possible to automatically remove things from the UTXO set, then it would
>>> make Initial Blockchain Download easier, just because new nodes wouldn't
>>> need to synchronize everything, if old coins would be automatically
>>> invalidated. In practice, all nodes could be just running in pruned mode
>>> all the time, and everything beyond the pruning point, could be simply
>>> ignored on consensus level (which would also prevent the UTXO set from
>>> exploding). And then, if we would keep for example the last 2,016 blocks,
>>> then the whole chain would never take more than 2016 * 4 MB = 8.064 GB of
>>> storage, and that's all we would need to send during Initial Blockchain
>>> Download to other nodes.
>>>
>>> poniedziałek, 31 marca 2025 o 22:50:27 UTC+2 Antoine Poinsot napisał(a):
>>>
>>>> Good point on not having the flag day on a holiday. One or two weeks
>>>> sounds good to me.
>>>>
>>>>
>>>>
>>>>
>>>> On Monday, March 24th, 2025 at 8:25 AM, Murch <[email-masked]> wrote:
>>>>
>>>> >
>>>> >
>>>> > Errr, I wrote the same date as you, but I meant a week later,
>>>> 2026-01-08
>>>> > instead.
>>>> >
>>>> > -Murch
>>>> >
>>>> > On 2025-03-21 14:20, Murch wrote:
>>>> >
>>>> > > Hey Antoine and everyone,
>>>> > >
>>>> > > What you suggest makes sense to me. Since the 20-minute difficulty
>>>> > > exception is now exploited perpetually, it doesn’t serve its
>>>> intended
>>>> > > purpose of allowing developers to mine themselves a few coins
>>>> easily or
>>>> > > confirm their own non-standard transactions. In that case, it would
>>>> be
>>>> > > better to not have it at all.
>>>> > >
>>>> > > On 2025-03-18 07:29, 'Antoine Poinsot' via Bitcoin Development
>>>> Mailing
>>>> > > List wrote:
>>>> > >
>>>> > > > I propose to fix this by removing the difficulty reset rule from
>>>> > > > testnet4 through a flag day hard fork on 2026-01-01.
>>>> > >
>>>> > > I would suggest to pick a date that’s not a holiday in many places
>>>> to
>>>> > > avoid disrupting people’s holiday, how about 2026-01-01 instead?
>>>> > >
>>>> > > Cheers,
>>>> > > Murch
>>>> >
>>>> >
>>>> > --
>>>> > 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/7c6800f0-7b77-4aca-a4f9-2506a2410b29%40murch.one.
>>>>
>>>>
>>> --
>>> 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/672cb527-9005-46fc-be2c-4508d39cfd7dn%40googlegroups.com
>>> <https://groups.google.com/d/msgid/bitcoindev/672cb527-9005-46fc-be2c-4508d39cfd7dn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
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/CADL_X_dfaBQJDXu%3DurRn40J7fCkDAPi-sdnnCwAZd4RUgr68fw%40mail.gmail.com.