Dear Greg, Thank you for taking the time to review the BIP148 proposal. I agree with much of your thoughts. I originally started working on a generalized way to deploy user activated soft forks, in a way that leveraged BIP9 to allow for optional faster MASF activation. BIP148 came about as a way to satify many people's frustrations about the current segwit activation. I have said several times in various places that the proposal requires a very high amount of consensus that needs to be present to make actual deployment feasible. BIP148 is certainly not what a normal UASF would or should look like. I remain convinced the community very much wants segwit activated and that the UASF movement in general has gained a lot of traction. While support for BIP148 is surprisingly high, there are definitely important players who support UASF in general but do not like BIP148 approach (which you rightly point out is a UASF to force a MASF). In any case, I have been working on various iterations for generalized deployment of soft forks. My latest iteration adds a simple flag to a BIP9 deployment so the deployment will transition to LOCKED_IN at timeout if the deployment hasnt already activated or locked in by then. This is nice because it allows for a long deployment of a soft fork, giving the ecosystem plenty time to upgrade with an effective flagday at the end of the timeout. The hash power can still optionally activate earlier under MASF. BIP8 (was uaversionbits) can be seen here https://github.com/bitcoin/bips/blob/master/bip-0008.mediawiki With BIP8 we could perform a UASF segwit deployment. Due to some complexities in the peering logic, I recommend a new deployment with a fresh bit that starts right after November 15th (when BIP9 segwit timesout) with a BIP8 timeout for April 2018. The code can deployed much earlier. For example if code was deployed today, it would give the economy a year to upgrade. Activation could still occur safely by MASF any time from now until April 2018 (SEGWIT until Nov, then UASEGWIT from Nov until April 2018). I am still working on the finer implementation details, but you can see a rough draft from this diff (which includes BIP8 in the first commit, and the proposed bip-segwit-uasf in the second commit). https://github.com/bitcoin/bitcoin/compare/master...shaolinfry:uasegwit-flagday I believe this approach would satisfy the more measured approach expected for Bitcoin and does not have the issues you brought up about BIP148. I do not support the BIP148 UASF for some of the same reasons that I do support segwit: Bitcoin is valuable in part because it has high security and stability, segwit was carefully designed to support and amplify that engineering integrity that people can count on now and into the future. I do not feel the the approach proposed in BIP148 really measures up to the standard set by segwit itself, or the existing best practices in protocol development in this community. The primary flaw in BIP148 is that by forcing the activation of the existing (non-UASF segwit) nodes it almost guarantees at a minor level of disruption. Segwit was carefully engineered so that older unmodified miners could continue operating _completely_ without interruption after segwit activates. Older nodes will not include segwit spends, and so their blocks will not be invalid even if they do not have segwit support. They can upgrade to it on their own schedule. The only risk non-participating miners take after segwit activation is that if someone else mines an invalid block they would extend it, a risk many miners already frequently take with spy-mining. I do not think it is a horrible proposal: it is better engineered than many things that many altcoins do, but just not up to our normal standards. I respect the motivations of the authors of BIP 148. If your goal is the fastest possible segwit activation then it is very useful to exploit the >80% of existing nodes that already support the original version of segwit. But the fastest support should not be our goal, as a community-- there is always some reckless altcoin or centralized system that can support something faster than we can-- trying to match that would only erode our distinguishing value in being well engineered and stable. "First do no harm." We should use the least disruptive mechanisms available, and the BIP148 proposal does not meet that test. To hear some people-- non-developers on reddit and such-- a few even see the forced orphaning of 148 as a virtue, that it's punitive for misbehaving miners. I could not not disagree with that perspective any more strongly. Of course, I do not oppose the general concept of a UASF but _generally_ a soft-fork (of any kind) does not need to risk disruption of mining, just as segwit's activation does not. UASF are the original kind of soft-fork and were the only kind of fork practiced by Satoshi. P2SH was activated based on a date, and all prior ones were based on times or heights. We introduced miner based activation as part of a process of making Bitcoin more stable in the common case where the ecosystem is all in harmony. It's kind of weird to see UASF portrayed as something new. It's important the users not be at the mercy of any one part of the ecosystem to the extent that we can avoid it-- be it developers, exchanges, chat forums, or mining hardware makers. Ultimately the rules of Bitcoin work because they're enforced by the users collectively-- that is what makes Bitcoin Bitcoin, it's what makes it something people can count on: the rules aren't easy to just change. There have been some other UASF proposals that avoid the forced disruption-- by just defining a new witness bit and allowing non-upgraded-to-uasf miners and nodes to continue as non-upgraded, I think they are vastly superior. They would be slower to deploy, but I do not think that is a flaw. We should have patience. Bitcoin is a system that should last for all ages and power mankind for a long time-- ten years from now a couple years of dispute will seem like nothing. But the reputation we earn for stability and integrity, for being a system of money people can count on will mean everything. If these discussions come up, they'll come up in the form of reminding people that Bitcoin isn't easily changed at a whim, even when the whims are obviously good, and how that protects it from being managed like all the competing systems of money that the world used to use were managed. :) So have patience, don't take short cuts. Segwit is a good improvement and we should respect it by knowing that it's good enough to wait for, and for however its activated to be done the best way we know how. _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev