I think it has been shown that an understanding of reasonableness is not 
universal, making any assertion about it as a collective goal kind of 
self-defeating. The question is what is achievable, not what is reasonable. I’m 
not making any value judgements here. Simply pointing out that anything other 
than a successful 51% attack will create a split.

e

> On Feb 28, 2021, at 12:25, Matt Corallo <lf-li...@mattcorallo.com> wrote:
> 
> Glad you asked! Yes, your goal here is #4 on the list of goals I laid out at 
> [1], which I referenced and specifically addressed each of in the OP of this 
> thread.
> 
> [1] 
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/017547.html
> 
>> On 2/28/21 15:19, Eric Voskuil wrote:
>> In the attempt to change consensus rules there is a simple set of choices:
>> 1) hard fork: creates a chain split
>> 2) soft fork: creates a chain split
>> 3) 51% attack: does not create a chain split
>> The presumption being that one can never assume 100% explicit adoption of 
>> any rule change.
>> A 51% attack can of course fail. It is also possible that signaling can be 
>> untruthful. But miner signaling provides some level of assurance that it 
>> will be successful. This level of assurance is increased by adoption of a 
>> higher than majority threshold, as has been done in the past.
>> Most of the discussion I’ve seen has been focused on who is in charge. 
>> Bitcoin requires no identity; anyone can mine and/or accept bitcoin - nobody 
>> is in charge.
>> The majority of those who mine can choose to enforce censorship any time 
>> they want. They don’t need anyone’s permission. No power is given to them by 
>> developers or anyone else. They have that power based on their own capital 
>> invested.
>> Similarly, the economy (those who accept bitcoin) can enforce any rule 
>> change it wants to. And it can do so at any level of participation that 
>> wants to go along. Anyone can do this, it requires nobody’s permission. 
>> Furthermore, it is possible for the economy to signal its level of agreement 
>> in every transaction, as miners have done in blocks previously.
>> But if the objective is to produce a rule change while avoiding a chain 
>> split, 50% is a much lower bar than 100%. If there is some other objective, 
>> it’s not clear to me what it is.
>> e
>>>> On Feb 28, 2021, at 12:02, Jeremy via bitcoin-dev 
>>>> <bitcoin-dev@lists.linuxfoundation.org> wrote:
>>> 
>>> 
>>> Miners still can generate invalid blocks as a result of SPV mining, and it 
>>> could be profitable to do "bad block enhanced selfish mining" to take 
>>> advantage of it.
>>> 
>>> 
>>> Hard to analyze exactly what that looks like, but...
>>> 
>>> E.g., suppose 20% is un-upgraded and 80% is upgraded. Taking 25% hashrate 
>>> to mine bad blocks would mean 1/4th of the time you could make 20% of the 
>>> hashrate mine bad blocks, overall a > 5% (series expansion) benefit. One 
>>> could analyze out that the lost hash rate for bad blocks only matters for 
>>> the first difficulty adjustment period you're doing this for too, as the 
>>> hashrate drop will be accounted for -- but then a miner can switch back to 
>>> mining valid chain, giving themselves a larger % of hashrate.
>>> 
>>> So it is still possible that an un-upgraded miner will fail part 3, and 
>>> attempting to accommodate un-upgraded miners leads to some nasty 
>>> oscillating hashrate being optimal.
>>> 
>>> 
>>> --
>>> @JeremyRubin 
>>> <https://twitter.com/JeremyRubin><https://twitter.com/JeremyRubin>
>>> 
>>> 
>>>> On Sun, Feb 28, 2021 at 11:52 AM Matt Corallo <lf-li...@mattcorallo.com 
>>>> <mailto:lf-li...@mattcorallo.com>> wrote:
>>> 
>>>    Note further that mandatory signaling isn't "just" a flag day - unlike a 
>>> Taproot flag day (where miners running
>>>    Bitcoin
>>>    Core unmodified today will not generate invalid blocks), a mandatory 
>>> signaling flag day blatantly ignores goal (3)
>>>    from
>>>    my original post - it results in any miner who has not taken active 
>>> action (and ensured every part of their
>>>    often-large
>>>    infrastructure has been correctly reconfigured) generating invalid 
>>> blocks.
>>> 
>>>    As for "Taproot" took too long, hey, at least if its locked in people 
>>> can just build things assuming it exists. Some
>>>    already are, but once its clearly locked in, there's no reason to not 
>>> continue other work at the same time.
>>> 
>>>    Matt
>>> 
>>>>    On 2/28/21 14:43, Jeremy via bitcoin-dev wrote:
>>>    > I agree with much of the logic presented by Matt here.
>>>    >
>>>    > BIP8 was intended to be simpler to agree on to maintain consensus, yet 
>>> we find ourselves in a situation where a
>>>    "tiny"
>>>    > parameter has the potential to cause great network disruption and 
>>> confusion (rationality is not too useful a
>>>    concept
>>>    > here given differing levels of sophistication and information). It is 
>>> therefore much simpler and more likely to be
>>>    > universally understood by all network participants to just have a flag 
>>> day. It is easier to communicate what users
>>>    > should do and when.
>>>    >
>>>    > This is ultimately not coercive to users because the upgrade for 
>>> Taproot itself is provable and analyzable on
>>>    its own,
>>>    > but activation parameters based on what % of economically relevant 
>>> nodes are running an upgrade by a certain
>>>    date are
>>>    > not. Selecting these sorts of complicated consensus parameters may 
>>> ultimately present more opportunity for a
>>>    cooptable
>>>    > consensus process than something more straightforward.
>>>    >
>>>    >
>>>    > That said, a few points strike me as worth delving into.
>>>    >
>>>    >
>>>    > 1) Con: Mandatory signalling is no different than a flag day. 
>>> Mandatory signaling is effectively 2 flag days --
>>>    one for
>>>    > the signaling rule, 1 for the taproot type. The reason for the 2 week 
>>> gap between flag day for signaling and
>>>    flag day
>>>    > for taproot rules is, more or less, so that nodes who aren't taproot 
>>> ready at the 1st flag day do not end up SPV
>>>    mining
>>>    > (using standardness rules in mempool prevents them from mining an 
>>> invalid block on top of a valid tip, but does not
>>>    > ensure the tip is valid).
>>>    > 2) Con: Releasing a flag day without releasing the LOT=true code 
>>> leading up to that flag day means that clients
>>>    would
>>>    > not be fully compatible with an early activation that could be 
>>> proposed before the flag day is reached. E.g.,
>>>    LOT=true
>>>    > is a flag day that retains the possibility of being compatible with 
>>> other BIP8 releases without changing software.
>>>    > 3) Pro: BIP-8 is partially in service of "early activation" and . I'm 
>>> personally skeptical that early activation
>>>    is/was
>>>    > ever a good idea. A fixed activation date may be largely superior for 
>>> business purposes, software engineering
>>>    schedules,
>>>    > etc. I think even with signaling BIP8, it would be possibly superior 
>>> to activate rules at a fixed date (or a
>>>    quantized
>>>    > set of fixed dates, e.g. guaranteeing at least 3 months but maybe 
>>> more).
>>>    > 4) Pro: part of the argument for BIP-8=false is that it is possible 
>>> that the rule could not activate, if
>>>    signaling does
>>>    > not occur, providing additional stopgap against dev collusion and 
>>> bugs. But BIP-8 can activate immediately (with
>>>    start
>>>    > times being proposed 1 month after release?) so we don't have 
>>> certainty around how much time there is for that
>>>    secondary
>>>    > review process (read -- I think it isn't that valuable) and if there 
>>> *is* a deadly bug discovered, we might want to
>>>    > hard-fork to fix it even if it isn't yet signaled for (e.g., if the 
>>> rule activates it enables more mining
>>>    reward). So I
>>>    > think that it's a healthier mindset to release a with definite 
>>> deadline and not rule out having to do a hard
>>>    fork if
>>>    > there is a grave issue (we shouldn't ever release a SF if we think 
>>> this is at all likely, mind you).
>>>    > 5) Con: It's already taken so long for taproot, the schedule around 
>>> taproot was based on the idea it could early
>>>    > activate, 2022 is now too far away. I don't know how to defray this 
>>> other than, if your preferred idea is 1 year
>>>    flag
>>>    > day, to do that via LOT=true so that taproot can still have early 
>>> activation if desired.
>>>    >
>>>    > Overall I agree with the point that all the contention around LOT, 
>>> makes a flag day look not so bad. And something
>>>    > closer to a flag day might not be so bad either for future forks as 
>>> well.
>>>    >
>>>    > However, I think given the appetite for early activation, if a flag 
>>> day is desired I think LOT=true is the best
>>>    option
>>>    > at this time as it allows our flag day to remain compatible with such 
>>> an early activation.
>>>    >
>>>    > I think we can also clearly communicate that LOT=true for Taproot is 
>>> not a precedent setting occurence for any
>>>    future
>>>    > forks (hold me accountable to not using this as precedent this should 
>>> I ever advocate for a SF with similar release
>>>    > parameters).
>>>    >
>>>    >
>>>    > _______________________________________________
>>>    > bitcoin-dev mailing list
>>>    > bitcoin-dev@lists.linuxfoundation.org 
>>> <mailto:bitcoin-dev@lists.linuxfoundation.org>
>>>    > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>>    <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>
>>>    >
>>> 
>>> _______________________________________________
>>> bitcoin-dev mailing list
>>> bitcoin-dev@lists.linuxfoundation.org
>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to