<oembed><type>rich</type><version>1.0</version><author_name>npub1f2nxequ09nz44775vv6lkffq2plzqvrqramnk29eddmwcc9z7jys8ms289</author_name><author_url>https://nostr.ae/npub1f2nxequ09nz44775vv6lkffq2plzqvrqramnk29eddmwcc9z7jys8ms289</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2021-02-23&#xA;📝 Original message:I wanted to follow up on what Jeremy and others are saying regards finding&#xA;consensus on LOT. I&#39;ve seen a few other opinions saying that finding&#xA;consensus on the LOT value is far more important than what the LOT value&#xA;actually is. This makes sense because if 100% of economic activity is&#xA;running the same rule set, there is no divergence, regardless of which&#xA;value is picked.&#xA;&#xA;It is my understanding that those who oppose LOT=true are mostly opposed on&#xA;the grounds of it *appearing* &#34;unnecessarily coercive&#34; and that this lack&#xA;of consensus can precipitate a chain split at the &#34;brinksmanship period&#34; as&#xA;Jeremy refers to it. I don&#39;t think that we can say that LOT=true is&#xA;coercive at all unless there is some opposition to Taproot itself.&#xA;Opposition on the grounds that it *may* be opposed by others and Core does&#xA;not want to assert control over the protocol is a conservative view but&#xA;ultimately contingent upon opposition to Taproot for more fundamental&#xA;reasons. If no one opposes it, then by definition you have consensus, and&#xA;in that case I also don&#39;t think that the LOT=true (or false) in that regard&#xA;sets meaningful precedent, as I would expect precedents to only be&#xA;meaningful if they were established during a contentious scenario. As it&#xA;stands we have precedents for both MASF&#39;s and UASF&#39;s to execute soft forks&#xA;in Bitcoin.&#xA;&#xA;Of course it seems intractable to ascertain the views of ~100% of the&#xA;Bitcoin constituency, and therefore it gives credibility to the argument&#xA;that by coming to consensus on LOT=false among those who *are* speaking up&#xA;is safer with the embedded assumptions that modifying consensus beyond what&#xA;core ships is an active choice, presumably by those who know what they are&#xA;doing. However, the simple act of Core choosing to ship an unconfigurable&#xA;LOT=false value does not *prevent* the forking and creation of a UASF&#xA;client. As Jeremy points out, the LOT=true possibility always exists here,&#xA;and we have multiple high profile people saying they will be running that&#xA;regardless of how things turn out. It seems to me that in this scenario,&#xA;LOT=false does less to prevent a chain split.&#xA;&#xA;In regards to precedent, there may be good reasons to force that minority&#xA;to fork themselves off the network, as would be the case if a hypothetical&#xA;soft fork was a consensus action to blacklist some UTXO&#39;s or something else&#xA;that weaponizes consensus against some subset of Bitcoin&#39;s user base, but I&#xA;haven&#39;t heard a single person who advocates for LOT=false on the grounds&#xA;that they *themselves* oppose the consensus change that is being proposed&#xA;here. So if the goal is to prevent a chain split, and the soft fork is&#xA;benign and essentially &#34;annexing unoccupied territory&#34; with respect to&#xA;script versions, and no one actually has opposed Taproot itself, then I&#xA;fail to see how LOT=false is safer in the presence of a grenade defense by&#xA;the LOT=true crowd.&#xA;&#xA;I personally *prefer* LOT=true for these reasons, but I am NOT going to be&#xA;joining the ranks of the intolerant minority if Core ultimately ships&#xA;LOT=false. I think it is more important to stay in consensus, and as a&#xA;result I am able to be convinced that false is the right answer. My&#xA;question to everyone else (true AND false advocates) is this: what would&#xA;you have to observe, in order to change your mind or is it immutably made&#xA;up? If we have a significant portion of the community that is immutably&#xA;made up to go false, and another portion that is going to go true, the&#xA;asymmetry of the fork almost *requires* that those of us whose opinions are&#xA;malleable to break for true.&#xA;&#xA;If social consensus is what drives technical consensus and not the other&#xA;way around it seems as if there cannot exist a valid (rational?) reason to&#xA;oppose Taproot itself, and then by extension with the arguments laid out&#xA;above, LOT=true seems to be the logical conclusion of all of this, even if&#xA;Core ships LOT=false at the outset.&#xA;&#xA;Where am I wrong here?&#xA;&#xA;Keagan&#xA;&#xA;On Mon, Feb 22, 2021 at 7:11 PM Jeremy via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; Not responding to anyone in particular, but it strikes me that one can&#xA;&gt; think about the case where a small minority (let&#39;s say H = 20%?) of nodes&#xA;&gt; select the opposite of what Core releases (LOT=false, LOT=true). I&#39;m&#xA;&gt; ignoring the case where a critical bug is discovered in Taproot for reasons&#xA;&gt; I could expand on if anyone is interested (I don&#39;t think LOT=true/false has&#xA;&gt; much of a diff in that regard).&#xA;&gt;&#xA;&gt; You&#39;ll note an asymmetry with LOT=true / false analysis. LOT=true nodes&#xA;&gt; are clearly updated (or lying), LOT=false nodes may be un-upgraded (or&#xA;&gt; however you want to interpret it).&#xA;&gt;&#xA;&gt;&#xA;&gt; *# 80% on LOT=false, 20% LOT=True*&#xA;&gt;&#xA;&gt; - Case 1: Activates ahead of time anyways&#xA;&gt;&#xA;&gt; No issues.&#xA;&gt;&#xA;&gt; - Case 2: Fails to Activate before timeout...&#xA;&gt;&#xA;&gt; 20% *may* fork off with LOT=true. Bitcoin hashrate reduced, chance of&#xA;&gt; multi block reorgs at time of fork relatively high, especially if network&#xA;&gt; does not partition.&#xA;&gt;&#xA;&gt; Implication is that activation % being 90%, then X% fewer than 70% of&#xA;&gt; miners are signaling for Taproot at this time.  If X% is small the&#xA;&gt; increased orphan rate caused by the LOT=true miners will cause it to&#xA;&gt; activate anyways. If X% is larger, then there will be a consensus split.&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt; *# 80% on LOT=true, 20% LOT=False*&#xA;&gt; - Case 1: Activates ahead of time Anyways&#xA;&gt;&#xA;&gt; No issues.&#xA;&gt;&#xA;&gt; - Case 2: Fails to Activate before timeout...&#xA;&gt;&#xA;&gt; A% + B% + C% = 20%&#xA;&gt;&#xA;&gt; A% (upgraded, signal activate) remain on majority chain with LOT=false,&#xA;&gt; blocks mined universally valid.&#xA;&gt;&#xA;&gt; B% (upgraded, not signaling) succeeds in activating and maintaining&#xA;&gt; consensus, blocks are temporarily lost during the final period, but&#xA;&gt; consensus re-emerges.&#xA;&gt;&#xA;&gt; C% (not upgraded/not signalling) both fail to activate (not upgraded) and&#xA;&gt; blocks are rejected (not signaling) during mandatory signalling.&#xA;&gt; Essentially becomes an SPV miner, should still not select transactions&#xA;&gt; improperly given mempool policy, but may mine a bad tip.&#xA;&gt;&#xA;&gt; (I argue that group B is irrational entirely, as in this case the majority&#xA;&gt; has upgraded, inevitably winning, and is orphaning their blocks so B should&#xA;&gt; effectively be 0% or can be combined with group C as being somehow not&#xA;&gt; upgraded if they are unable to switch once it becomes clear after say the&#xA;&gt; first 100 blocks in the period that LOT &gt; 50%. The only difference in&#xA;&gt; lumping B with C is that group C SPV mines after the fork and B should, in&#xA;&gt; theory, have full validation.).&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt; Apologies if my base analysis is off -- happy to take corrections.&#xA;&gt;&#xA;&gt;&#xA;&gt; My overall summary is thus:&#xA;&gt;&#xA;&gt; 1) People care what Core releases because we assume the majority will&#xA;&gt; likely run it. If core were a minority project, we wouldn&#39;t really care&#xA;&gt; what core released.&#xA;&gt; 2) People are upset with LOT=true being suggested as release parameters&#xA;&gt; because of the *narrative* that it puts devs in control.&#xA;&gt; 3) LOT=true having a sizeable minority running it presents major issues to&#xA;&gt; majority LOT=false in terms of lost blocks during the final period and in&#xA;&gt; terms of a longer term fork.&#xA;&gt; 4) Majority LOT=true has no long term instability on consensus (majority&#xA;&gt; LOT=true means the final period always activates, any instability is short&#xA;&gt; lived + irrational).&#xA;&gt; 5) On the balance, the safer parameter to release *seems* to be LOT=true.&#xA;&gt; But because devs are sensitive to control narrative, LOT=false is preferred&#xA;&gt; by devs.&#xA;&gt; 6) Almost paradoxically, choosing a *less safe* option for a narrative&#xA;&gt; reason is more of a show of dev control than choosing a more safe option&#xA;&gt; despite appearances.&#xA;&gt; 7) This all comes down to if we think that a reasonable number of&#xA;&gt; important nodes will run LOT=true.&#xA;&gt; 8) This all doesn&#39;t matter *that much* because taproot will have many&#xA;&gt; opportunities to activate before the brinksmanship period.&#xA;&gt;&#xA;&gt; As a plan of action, I think that means that either:&#xA;&gt;&#xA;&gt; A) Core should release LOT=true, as a less disruptive option given stated&#xA;&gt; community intentions to do LOT=true&#xA;&gt; B) Core  community should vehemently anti-advocate running LOT=true to&#xA;&gt; ensure the % is as small as possible&#xA;&gt; C) Do nothing&#xA;&gt; D) Core community should release LOT=false and vehemently advocate&#xA;&gt; manually changing to LOT=true to ensure the % is supermajority, but leaving&#xA;&gt; it as a user choice.&#xA;&gt;&#xA;&gt;&#xA;&gt; Overall, I worry that plan B has a mild Streissand effect and would result&#xA;&gt; in boosting LOT=true (which could be OK, so long as LOT=true +&#xA;&gt; LOT=false+signal yes becomes the large majority, but would be not fun for&#xA;&gt; anyone if LOT=true + LOT=false+signal yes are a small majority). Plan C&#xA;&gt; most likely ends up with some % doing LOT=true anyways. D feels a little&#xA;&gt; silly, but maybe a good tradeoff.&#xA;&gt;&#xA;&gt; If I had to summarize the emotional dynamic among developers around&#xA;&gt; LOT=true, I think devs wish it didn&#39;t exist because it is clear LOT=true&#xA;&gt; *creates* the issues here. LOT=false would be fine if the LOT=true strategy&#xA;&gt; didn&#39;t exist at all. But unfortunately the cat is out of the bag and cannot&#xA;&gt; be put back in. To validate the emotions, I think it is fine to be angry&#xA;&gt; about LOT=true and not like it, but we should either accept that it is most&#xA;&gt; likely to create consensus OR we should find a new game theoretic&#xA;&gt; activation strategy with better pro-social equilibriums.&#xA;&gt;&#xA;&gt; Personally, I think with either plan the ultimate risk of forking is low&#xA;&gt; given probability to activate before timeout, so we should just pick&#xA;&gt; something and move on, accepting that we aren&#39;t setting a precedent by&#xA;&gt; which all future forks should abide. Given my understanding of the&#xA;&gt; tradeoffs, I believe that the safest choice is LOT=true, but I wouldn&#39;t&#xA;&gt; move to hold back a plan of LOT=false (but would probably take mitigative&#xA;&gt; steps on community advocacy if it looks like there is non majority but non&#xA;&gt; negligible LOT=true uptake).&#xA;&gt;&#xA;&gt; Cheers,&#xA;&gt;&#xA;&gt; Jeremy&#xA;&gt;&#xA;&gt;&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210223/5d65c6e3/attachment-0001.html&gt;</html></oembed>