Now that Segregated witness is scheduled to be deployed on November 15, we should take a look at this "soft fork" as well. I like the idea of Segregated Witness, but from conversations on Reddit and IRC, I see people saying that this soft fork will be like the others: requiring a hard fork in order to revert it. Is this true? I am getting conflicting messages by reading the BIP. It says that if all transactions are non-segwit, then a node will validate the block as before. But if we pass the threshhold (usually 95 % for 1000 blocks) will miners mining non-segwit blocks be ignored? This is not good... I really think we should make it optional. Miners will have an incentive to mine segwit blocks, since it allows for more transactions per block, so why force them? What if we want to slightly modify the Segwit protocol in the future? What if we want to replace segwit with something much different? We will be forced to do a hard fork in order to do that.
Now, we can't go back in time and fix the deployment of the soft forks, but I do propose one clean way to fix things: Remove all the previously "soft forked" rules for non segwit transactions, and require them only for segwit transactions. But make segwit optional! In addition to what I talked about above, this may also relieve some tensions of people who are not comfortable with segwit and are thinking of joining a hard fork like the Bitcoin Unlimited project.
Unless people can give me a good explanation as to why we are deploying soft forks in such forceful manner, or Bitcoin Core accepts my proposal, then I will have no choice but to create a new client (I'm thinking to call it Bitcoin Authentic), that will be just as Bitcoin Core but will always follow the chain with the most work regardless of whether soft fork rules are respected, and I would put at least CHECKLOCKTIMEVERIFY as mandatory within segwit transactions.
--
PGP: B6AC 822C 451D 6304 6A28 49E9 7DB7 011C D53B 5647