Bitcoin's ASICBOOST Problem Explained [pdf]
Besides the technical issues involved here, there&#x27;s been a lot of political quarrels as well.  Here&#x27;s my run down of them.  Note that I was heavily involved in the Bitcoin community a few years ago, but have been on the side lines recently.  As with all things political, take my interpretations with a grain of salt:<p>1) The Bitcoin network began experiencing congestion due to rise in popularity driving large numbers of transactions.  This resulted in slower transaction verification and higher transaction fees.<p>2) Users started asking for larger blocks, so that the network would have higher transaction bandwidth.  The defacto Bitcoin developers at the time pushed back.  Increasing block size is simple in terms of code change, but requires a risky hard fork.  It&#x27;s also only a temporary fix.  Bitcoin will grow and require another increase, and thus another hard fork.  They wanted a better, long term solution.<p>3) After a lot of discussion the developers came back with Segregated Witness.  It&#x27;s a soft modification to Bitcoin which meant no hard fork.  It doesn&#x27;t explicitly allow larger blocks.  It does, however, upgrade Bitcoin to allow side chains.  The argument is that faster, more abundant transactions can be implemented in a side chain system.  A sort of second layer on top of Bitcoin.  Much like how HTTP is implemented on top of the underlying TCP&#x2F;IP protocol.<p>It should be noted that, while this enablement of side chains is the biggest feature of SegWit, there were a few smaller improvements.  It _does_ increase effective block size slightly; ~2x.  And it fixes a few minor annoyances in the Bitcoin protocol (e.g. malleability).<p>4) The community was disappointed by the lack of larger blocks.  While developers were busy putting together their idea and specification for SegWit, the congestion issues on the network continued to grow worse.<p>5) Eventually the debate became &quot;on-chain&quot; versus &quot;off-chain&quot;.  Some of the community argued that they wanted to keep all transaction on the Bitcoin blockchain.  In other words, they still wanted bigger and bigger blocks.  I believe the root of this argument is that Bitcoin has served us well for many years, so why try to build another, potentially weaker system on top of it?<p>The other parts of the community were in favor of SegWit and off-chain transactions.  Side chains would allow for faster transactions and significantly more of them, and they would consume far less disk space (a growing concern in the community is the disk space required to run a Bitcoin node).  Side chains achieve this by compromising on some of the strengths of Bitcoin, either by reducing security or requiring more centralization.<p>6) Eventually the debate in the community shifted from just on-chain versus off-chain to SegWit versus bigger blocks.  Now, to be clear, SegWit doesn&#x27;t preclude the possibility of larger blocks.  Obviously larger blocks can be added regardless of SegWit.  But, for whatever reason, the dialog shifted.<p>7) When SegWit was finally released as part of the Bitcoin Core client (the defacto standard for Bitcoin clients&#x2F;wallets) a sort of battle amongst the community began.  Mining operations that ran the SegWit enabled clients started getting attacked; DDOS, etc.  There was a lot of strife, hate, and fear.  The way SegWit is implemented in the code, it requires a large majority of miners to support it before it officially activates and can be used.  This is by design, to ensure the community agrees with the feature and to ensure almost all miners are able to understand the new blocks and not get left behind after activation.  Because of this majority requirement, the battle in the community and between miners was very important.  If half the miners didn&#x27;t agree with SegWit, it would never activate.<p>8) This &quot;battle&quot; went on for a long time and is, currently, still on-going.  Bitcoin continues to remain congested.  Transaction fees have continued to rise.  SegWit is still not activated.  During this time a couple factions of the anti-SegWit community split off in attempts to fork Bitcoin.  They modified versions of the Bitcoin client to enable larger blocks.  So far, none of those forks have been successful, in terms of taking away any majority of users from the main Bitcoin network.<p>9) Recently it became public that a large mining operation may have been using a technology called ASICBOOST during this time.  It allows mining chips to be more efficient, which means those chips make more Bitcoins for less money.  Obviously an advantage.  This technology has been known about for awhile now, but as far as the community knew no one was using it.  It was covered by patents, and there&#x27;s a sort of gentleman&#x27;s agreement in the community not to use it as a result of the patent and potential ill effects on the network.  (The patent means not all miners would be able to use it, so it presents an unfair playing field).<p>ASICBOOST, the way this mining operation has supposedly been using it, is not compatible with SegWit.  That&#x27;s explained in the OP.<p>The accused mining operation was also involved in a lot of the anti-SegWit activity in the community; promoting the alternative forks of Bitcoin.  They had been accused in the past of using sock puppets to drive anti-SegWit agendas, drive character assassinations, etc.<p>They are in control of a large percentage of the total Bitcoin mining power.<p>The public revelation of them using ASICBOOST painted a dark, but enlightening picture.<p>As I mentioned before, SegWit ultimately has nothing to do with the on-chain versus off-chain debate.  It merely _enables_ off-chain possibilities.  It doesn&#x27;t force them.  So it was odd to see the discussion shift from on-chain versus off-chain to SegWit versus Bigger Blocks.  The theory now, given the accusations against this large mining operation, is that they are responsible for the majority of the anti-SegWit movement.  Because the activation of SegWit would force them to stop using ASICBOOST the way they&#x27;ve been using it, it was in their financial interest to prevent SegWit from activating.<p>That&#x27;s basically my summary of events.<p>I think that theory, that this mining operation has been basically using anti-SegWit propaganda and other attacks to prevent SegWit from activating, so they can keep using their secret version of ASICBOOST and profit (to the tune of $100 million a year), makes a lot of sense.  Why else would anyone oppose SegWit?  I&#x27;ve read through the SegWit specs.  It enables a lot of really cool tech for Bitcoin.  Side chains are not just about trying to get more, faster transactions into the Bitcoin network.  They&#x27;re also about allowing other technologies like smart contracts to tie themselves in Bitcoin.<p>You know all those cool features that various alt coins are testing out?  SegWit enables those features to become side chains so that you can gain all the security that Bitcoin offers.  Side chain versus altcoin is like browser addon versus a whole new browser.<p>At the end of the day, people in favor of bigger blocks could still campaign for bigger blocks.  SegWit doesn&#x27;t prevent that.  A mining operation being financially incentivized to block SegWit is the simplest explanation I&#x27;ve heard yet for why there would be significant opposition to it.