Rusty Russell [ARCHIVE] on Nostr: 📅 Original date posted:2015-09-16 📝 Original message:Tier Nolan via bitcoin-dev ...
📅 Original date posted:2015-09-16
📝 Original message:Tier Nolan via bitcoin-dev <bitcoin-dev at lists.linuxfoundation.org>
writes:
> On Sun, Sep 13, 2015 at 7:56 PM, Rusty Russell via bitcoin-dev <
> bitcoin-dev at lists.linuxfoundation.org> wrote:
>
>> '''States'''
>> With every softfork proposal we associate a state BState, which begins
>> at ''defined'', and can be ''locked-in'', ''activated'',
>> or ''failed''. Transitions are considered after each
>> retarget period.
>>
>
> I think the 75% rule should be maintained. It confirms that miners who are
> setting the bit are actually creating blocks that meet the new rule (though
> it doesn't check if they are enforcing it).
I couldn't see a use for it, since partial enforcement of a soft fork is
pretty useless.
Your point about checking that miners are actually doing it is true,
though all stuff being forked in in future will be nonstandard AFAICT.
I bias towards simplicity for this.
> What is the reason for aligning the updated to the difficulty window?
Miners already have that date in their calendar, so prefer to anchor to
that.
> *defined*
> Miners set bit
> If 75% of blocks of last 2016 have bit set, goto tentative
>
>
> *tentative*
> Miners set bit
> Reject blocks that have bit set that don't follow new rule
> If 95% of blocks of last 2016 have bit set, goto locked-in
>
>
> *locked-in*
>
> Point of no return
> Miners still set bit
> Reject blocks that have bit set that don't follow new rule
> After 2016 blocks goto notice
OK, *that* variant makes perfect sense, and is no more complex, AFAICT.
So, there's two weeks to detect bad implementations, then you everyone
stops setting the bit, for later reuse by another BIP.
> I think counting in blocks is easier to be exact here.
Easier for code, but harder for BIP authors.
> If two bits were allocated per proposal, then miners could vote against
> forks to recover the bits. If 25% of the miners vote against, then that
> kills it.
You need a timeout: an ancient (non-mining, thus undetectable) node
should never fork itself off the network because someone reused a failed
BIP bit.
> In the rationale, it would be useful to discuss effects on SPV clients and
> buggy miners.
>
> SPV clients should be recommended to actually monitor the version field.
SPV clients don't experience a security change when a soft fork occurs?
They're already trusting miners.
Greg pointed out that soft forks tend to get accompanied by block forks
across activation, but SPV clients should *definitely* be taking those
into account whenever they happen, right?
Thanks!
Rusty.
Published at
2023-06-07 17:40:04Event JSON
{
"id": "989377464bc2e3390bb4287e01426bd2ae63a0336e0f8c2bd01aba21e54fc068",
"pubkey": "13bd8c1c5e3b3508a07c92598647160b11ab0deef4c452098e223e443c1ca425",
"created_at": 1686159604,
"kind": 1,
"tags": [
[
"e",
"97970fd647e1ad99b763fefc14ff6c3da92992c59a8d85f2e5fe9ba87f5c9fb9",
"",
"root"
],
[
"e",
"dde1359388c80ed711dfa0884e8747964244b70d2e52e012d3e9aee89d2e4de7",
"",
"reply"
],
[
"p",
"46986f86b97cc97829a031b03209644d134b939d0163375467f0b1363e0d875e"
]
],
"content": "📅 Original date posted:2015-09-16\n📝 Original message:Tier Nolan via bitcoin-dev \u003cbitcoin-dev at lists.linuxfoundation.org\u003e\nwrites:\n\u003e On Sun, Sep 13, 2015 at 7:56 PM, Rusty Russell via bitcoin-dev \u003c\n\u003e bitcoin-dev at lists.linuxfoundation.org\u003e wrote:\n\u003e\n\u003e\u003e '''States'''\n\u003e\u003e With every softfork proposal we associate a state BState, which begins\n\u003e\u003e at ''defined'', and can be ''locked-in'', ''activated'',\n\u003e\u003e or ''failed''. Transitions are considered after each\n\u003e\u003e retarget period.\n\u003e\u003e\n\u003e\n\u003e I think the 75% rule should be maintained. It confirms that miners who are\n\u003e setting the bit are actually creating blocks that meet the new rule (though\n\u003e it doesn't check if they are enforcing it).\n\nI couldn't see a use for it, since partial enforcement of a soft fork is\npretty useless.\n\nYour point about checking that miners are actually doing it is true,\nthough all stuff being forked in in future will be nonstandard AFAICT.\n\nI bias towards simplicity for this.\n\n\u003e What is the reason for aligning the updated to the difficulty window?\n\nMiners already have that date in their calendar, so prefer to anchor to\nthat.\n\n\u003e *defined*\n\u003e Miners set bit\n\u003e If 75% of blocks of last 2016 have bit set, goto tentative\n\u003e\n\u003e\n\u003e *tentative*\n\u003e Miners set bit\n\u003e Reject blocks that have bit set that don't follow new rule\n\u003e If 95% of blocks of last 2016 have bit set, goto locked-in\n\u003e\n\u003e\n\u003e *locked-in*\n\u003e\n\u003e Point of no return\n\u003e Miners still set bit\n\u003e Reject blocks that have bit set that don't follow new rule\n\u003e After 2016 blocks goto notice\n\nOK, *that* variant makes perfect sense, and is no more complex, AFAICT.\n\nSo, there's two weeks to detect bad implementations, then you everyone\nstops setting the bit, for later reuse by another BIP.\n\n\u003e I think counting in blocks is easier to be exact here.\n\nEasier for code, but harder for BIP authors.\n\n\u003e If two bits were allocated per proposal, then miners could vote against\n\u003e forks to recover the bits. If 25% of the miners vote against, then that\n\u003e kills it.\n\nYou need a timeout: an ancient (non-mining, thus undetectable) node\nshould never fork itself off the network because someone reused a failed\nBIP bit.\n\n\u003e In the rationale, it would be useful to discuss effects on SPV clients and\n\u003e buggy miners.\n\u003e\n\u003e SPV clients should be recommended to actually monitor the version field.\n\nSPV clients don't experience a security change when a soft fork occurs?\nThey're already trusting miners.\n\nGreg pointed out that soft forks tend to get accompanied by block forks\nacross activation, but SPV clients should *definitely* be taking those\ninto account whenever they happen, right?\n\nThanks!\nRusty.",
"sig": "8746f4c1c9b1606412ee54b6be99251caaa3b80275937569500dcfc980cdd9e68d6313f2e200bde2a2543c0c33b442ce0e097e395761707a78783813e10a196e"
}