We now have a recognized subject that would result in coinbase transactions having the identical txid. Which is an issue as a result of it will probably result in make cash not possible to spend. These instances aren’t lined by BIP34 and so far as I do know BIP30 is not in use. See this assets for the collision instances.
Sure and no. The BIP30 smooth fork (disallowing duplicate coinbases) activated in March 2012, and has been lively since. Reverting it will require a tough fork. BIP34 (top in coinbase) can also be lively, and principally covers the identical downside. A lot so the truth is, that we don’t truly carry out the BIP30 verify anymore, as resulting from Bitcoin Core’s database design it’s includes a non-cachable database entry. And since BIP34 makes it not possible to truly violate BIP30, there is no such thing as a actual have to nonetheless verify.
Besides, there exist historic pre-BIP34 blocks with unspent coinbase outputs, which have BIP34-like heights of their coinbases. Simply following BIP34 can, in concept, 20 years from now, imply a reproduction can nonetheless be created, which might be disallowed by BIP30.
The priority is not lack of cash. It will require the the identical miner within the 12 months 2045 to mine the identical coinbase transaction (which most likely means utilizing the identical software program stack) as they did in 2012, with out ever spending the 50 BTC they’ve held onto this complete time since 2012, whereas accumulating ~50 BTC in charges (in any other case the repeated coinbase wouldn’t be legitimate in 2045) to by chance set off this.
The priority is that somebody may intentionally recreate the coinbase, as a way to fork off a part of the community (people who do and don’t implement BIP30). This could be costly, because it means foregoing the revenue for the block, however Bitcoin must be resilient towards the case somebody may nonetheless do that.
Due to this, the present Bitcoin Core software program re-enables the BIP30 enforcement in 2045, which is able to imply a slight efficiency degradation if the software program nonetheless exists in its present type then. It is not a really huge deal, but it surely simply feels pointless. If one other consensus rule can categorically take away the BIP30 concern, this verify may very well be averted then, nevertheless.
Appears that making the witness dedication obligatory would clear up it because the txid would change. Why was this rule not enforced for the reason that starting? I may perceive that you do not wish to drive individuals to improve immediately to segwit and trigger a fork on the chain however in that case, why it’s not enforced now when all miners are working segwit so keep away from a doable assault?
You’re proper that making the witness dedication obligatory would resolve the issue.
On the time nevertheless, when segwit was proposed, we didn’t wish to make it in order that no matter 5% of miners have been final to improve (BIP141 solely required 95% to sign, and thru BIP90, even much less) would immediately get their blocks invalidated. This had occurred in February 2015, with the deployment of BIP66, and because of the existence of validationless mining, some ~30 blocks from upgraded miners began constructing on high of a block produced by a (5% minority) unupgraded miner, ensuing within the greatest reorg in Bitcoin’s historical past after 2010.