At least we are now acknowledging that splitting is what it’s about. That’s progress.
e > On Jun 29, 2021, at 01:32, Jorge Timón <jti...@jtimon.cc> wrote: > > > I think the option of "permanent failure because miners veto" should actually > be abandoned. > No, I don't think we should avoid splits when possible, I don't think we > should avoid splits at all costs. > > >> On Sun, Jun 27, 2021, 19:12 Billy Tetrud <billy.tet...@gmail.com> wrote: >> @Luke >> > They can still slow it down. >> >> Absolutely. However I think that the option of permanent failure is >> important. It certainly would be ideal to ensure that enough bitcoin users >> support the upgrade *before* releasing it, however realistically this can >> never be more than an estimate, and estimates can sometimes be wildly wrong. >> It would be unfortunate if miners had a substantially different estimate of >> user support than the people putting in the work to release bitcoin >> upgrades. Even if upgrades are never released before it becomes clear that a >> large supermajority of users want the upgrade, if miners don't agree with >> the estimate a harmful chain split could occur. And I agree with Eric that >> the goal here is to prevent a chain split during an upgrade when possible. >> This includes permanent failure of an upgrade when there is unexpectedly >> large miner opposition. >> >> This of course does not prevent a UASF-style deployment to be done after an >> initial failure to deploy occurs. My proposal is essentially a mechanism to >> improve upon the speedy-trial idea, allowing for even speedier releases >> (than speedy trial) without adding additional risk of undesired chain >> splits. >> >> > [BIP8] already has the trinary state you seem to be describing >> >> It sounds like you're saying the trinary state of BIP8 is A. Follow the >> longest chain, B. Follow the upgrade chain, or C. follow the non-upgraded >> chain. I agree. However the trinary state in my proposal is materially >> different - it is the signaling itself that is trinary, not just which chain >> is being followed. This allows others to know and make programmatic >> decisions (in software) based on that signaling. I'm sure you can agree that >> does not exist in BIP8. >> >> > No additional bit is needed, as softforks are coordinated between users, >> > NOT miners >> >> And yet there is miner involvement, as you rightly pointed out. Miners are >> needed to set the nVersion in the header. So when you say "no additional bit >> is needed", could you please be clearer as to what you mean? Do you mean >> that signaling of opposition in a block can be done without any "additional >> bit"? Or are you just saying that it is redundant to consider what miners >> might be opposing an upgrade? >> >> @Jorge >> > If different users want different incompatible things... there's no way to >> > avoid the split >> >> I agree. This happened with bcash, and that's fine. It was painful, but >> there were a significant amount of users that disagreed, and they have the >> chain they want now. >> >> But we generally all want to avoid a chain split when possible. Because >> chain splits have a cost, and that cost can be high, its likely that many >> users would rather choose the chain with the most support rather than >> choosing the chain with their preferred rules. >> >> However, the question here is: how do we estimate what fraction of users >> wants which rules? We don't have a divining rod to determine with certainty >> what users want. We can only make polls of various levels of inaccuracy. The >> methods bitcoin has been using is community discussion and social consensus >> estimation as well as miner signaling during the actual deployment period. >> Neither of these are perfect, but they are both reasonable enough >> mechanisms. However, because both of these mechanisms are very rough >> estimates of user sentiment, we need to consider the possibility that >> sometimes the estimate may be substantially inaccurate when we design >> deployment procedures. This inaccuracy is why we need multiple barriers in >> place for an upgrade, and why we need to have higher thresholds of success >> (require larger supermajorities in both consensus and miner signaling). >> >> Developers obviously care about bitcoin and have an incentive (personal and >> probably financial) to do it right. And miners have both an incentive to >> keep the system healthy, as well as an incentive to mine on the chain that >> the economic majority of users is using. But measuring the consensus of the >> bitcoin community can be extraordinarily difficult to do with consistent >> accuracy, and so I think miner signaling as it has been used as a second >> barrier to entry for an upgrade is quite appropriate. >> >>> On Sun, Jun 27, 2021 at 2:22 AM Eric Voskuil <e...@voskuil.org> wrote: >>> I have not objected to anyone splitting. As I said, a split is always >>> possible, and of course has been done on a large scale. It is only the >>> misleading statements about inherent soft fork “compatibility” and the >>> implication that activation without hash power enforcement does not create >>> a split that I object to. People who know better should be honest about it. >>> >>> Far too many people have been led to believe there is some sort of >>> activation choice with “ensured” equal outcomes (maybe “slowed down”). >>> There is only a choice between creating a split and hash power enforcement. >>> Soft forks are rule changes, and thereby incompatible - unless enforced by >>> majority hash power. >>> >>> The statements below are grossly misleading and need to be called out as >>> such so that people can actually make this decision you speak of. This idea >>> that “users” decide the rules is not the question. The question is only how >>> to avoid a split. If one does not care he can split at any time, no >>> discussion required. >>> >>> e >>> >>> > On Jun 27, 2021, at 01:47, Jorge Timón <jti...@jtimon.cc> wrote: >>> > >>> > If different users want different incompatible things (enough on each >>> > side), there's no way to avoid the split. We shouldn't try to avoid >>> > such a split. >>> > Users decide the rules, not miners nor developers. >>> > >>> >> On Sun, Jun 27, 2021 at 12:05 AM Eric Voskuil via bitcoin-dev >>> >> <bitcoin-dev@lists.linuxfoundation.org> wrote: >>> >> >>> >> Ultimately there is only one answer to this question. Get majority hash >>> >> power support. >>> >> >>> >> Soft fork enforcement is the same act as any other censorship >>> >> enforcement, the difference is only a question of what people want. >>> >> Given that there is no collective “we”, those wants differ. Bitcoin >>> >> resolves this question of conflicting wants, but it is not a democracy, >>> >> it’s a market. One votes by trading. >>> >> >>> >> If one wants to enforce a soft fork (or otherwise censor) this is >>> >> accomplished by mining (or paying others to do so). Anyone can mine, so >>> >> everyone gets a say. Mining is trading capital now for more later. If >>> >> enough people want to do that, they can enforce a soft fork. It’s time >>> >> Bitcoiners stop thinking of miners as other people. Anyone can mine, and >>> >> that’s your vote. >>> >> >>> >> Otherwise, as mentioned below, anyone can start a new coin. But it’s >>> >> dishonest to imply that one can do this and all others will surely >>> >> follow. This cannot be known, it’s merely a gamble. And it’s one that >>> >> has been shown to not always pay off. >>> >> >>> >> e >>> >> >>> >>>> On Jun 26, 2021, at 14:43, Eric Voskuil <e...@voskuil.org> wrote: >>> >>> >>> >>> For some definitions of “block”. >>> >>> >>> >>> Without majority hash power support, activation simply means you are >>> >>> off on a chain split. Anyone can of course split off from a chain by >>> >>> changing a rule (soft or otherwise) at any time, so this is a bit of an >>> >>> empty claim. >>> >>> >>> >>> Nobody can stop a person from splitting. The relevant question is how >>> >>> to *prevent* a split. And activation without majority hash power >>> >>> certainly does not “ensure” this. >>> >>> >>> >>> e >>> >>> >>> >>>> On Jun 26, 2021, at 14:13, Luke Dashjr via bitcoin-dev >>> >>>> <bitcoin-dev@lists.linuxfoundation.org> wrote: >>> >>>> >>> >>>> BIP8 LOT=True just ensures miners cannot block an upgrade entirely. >>> >>>> They can >>> >>>> still slow it down. >>> >>>> >>> >>>> It also already has the trinary state you seem to be describing >>> >>>> (although >>> >>>> perhaps this could be better documented in the BIP): users who oppose >>> >>>> the >>> >>>> softfork can and should treat the successful signal (whether MASF or >>> >>>> UASF) as >>> >>>> invalid, thereby ensuring they do not follow a chain with the rules in >>> >>>> force. >>> >>>> >>> >>>> No additional bit is needed, as softforks are coordinated between >>> >>>> users, NOT >>> >>>> miners (who have no particular say in them, aside from their role as >>> >>>> also >>> >>>> being users). The miner involvement is only out of necessity (to set >>> >>>> the bit >>> >>>> in the header, which users coordinate with) and potentially to >>> >>>> accelerate >>> >>>> activation by protecting upgrade-lagging users. >>> >>>> >>> >>>> Luke >>> >>>> >>> >>>> >>> >>>>>> On Saturday 26 June 2021 20:21:52 Billy Tetrud via bitcoin-dev wrote: >>> >>>>> Given the recent controversy over upgrade mechanisms for the >>> >>>>> non-controversial taproot upgrade, I have been thinking about ways to >>> >>>>> solve >>> >>>>> the problems that both sides brought up. In short, BIP8 LOT=true >>> >>>>> proponents >>> >>>>> make the point that lazy miners failing to upgrade in a timely manner >>> >>>>> slow >>> >>>>> down releases of bitcoin upgrades, and BIP9 / BIP8 LOT=false >>> >>>>> proponents make the point that LOT=true can lead to undesirable forks >>> >>>>> that >>> >>>>> might cause a lot of chaos. I believe both points are essentially >>> >>>>> correct >>> >>>>> and have created a proposal >>> >>>>> <https://github.com/fresheneesz/bip-trinary-version-signaling/blob/master/b >>> >>>>> ip-trinary-version-bits.md> for soft fork upgrades that solve both >>> >>>>> problems. >>> >>>>> >>> >>>>> The proposal uses trinary version signaling rather than binary >>> >>>>> signaling. >>> >>>>> For any particular prospective soft fork upgrade, this allows for >>> >>>>> three >>> >>>>> signaling states: >>> >>>>> >>> >>>>> * Actively support the change. >>> >>>>> * Actively oppose the change. >>> >>>>> * Not signaling (neither support or oppose). This is the default >>> >>>>> state. >>> >>>>> >>> >>>>> Using this additional information, we can release non-contentious >>> >>>>> upgrades >>> >>>>> much quicker (with a much lower percent of miners signaling support). >>> >>>>> For >>> >>>>> contentious upgrades, miners who oppose the change are incentivized to >>> >>>>> update their software to a version that can actively signal >>> >>>>> opposition to >>> >>>>> the change. The more opposition there is, the higher the threshold >>> >>>>> necessary to lock in the upgrade. With the parameters I currently >>> >>>>> recommended in the proposal, this chart shows how much support >>> >>>>> signaling >>> >>>>> would be necessary given a particular amount of active opposition >>> >>>>> signaling: >>> >>>>> >>> >>>>> [image: thresholdChart.png] >>> >>>>> If literally no one signals opposition, a 60% threshold should be >>> >>>>> relatively safe because it is a supermajority amount that is unlikely >>> >>>>> to >>> >>>>> change significantly very quickly (ie if 60% of miners support the >>> >>>>> change >>> >>>>> today, its unlikely that less than a majority of miners would support >>> >>>>> the >>> >>>>> change a year or two from now), and if no one is signaling opposition, >>> >>>>> chances are that the vast majority of the other 40% would also >>> >>>>> eventually >>> >>>>> signal support. >>> >>>>> >>> >>>>> This both gives an incentive for "lazy" miners to upgrade if they >>> >>>>> actually >>> >>>>> oppose the change while at the same time allowing these lazy miners to >>> >>>>> remain lazy without slowing down the soft fork activation much. >>> >>>>> >>> >>>>> I think now is the right time to discuss new soft fork upgrade >>> >>>>> mechanisms, >>> >>>>> when there are no pressing soft fork upgrades ready to deploy. Waiting >>> >>>>> until we need to deploy a soft fork to discuss this will only delay >>> >>>>> things >>> >>>>> and cause contention again like it did with taproot. >>> >>>>> >>> >>>>> I'm very curious to know what people think of this mechanism. I would >>> >>>>> appreciate any comments here, or written as github issues on the >>> >>>>> proposal >>> >>>>> repo itself. >>> >>>>> >>> >>>>> Thanks, >>> >>>>> BT >>> >>>> >>> >>>> _______________________________________________ >>> >>>> 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
_______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev