The Bitcoin SV Node team has finalized specifications for February’s Genesis upgrade. Notably, after consultation with miners and the wider BSV ecosystem the latest version removes Bitcoin’s pay-to-script-hash function upgrading it from a default local miner policy to a consensus rule.
The Genesis upgrade has also now entered a “code freeze” stage after the team released its second beta this week. No further changes will be made pending an internal QA review, and a stable release will be available from January 14. Once the new software is installed, Genesis is set to activate on February 4, 2020.
P2SH is due to be deprecated in Genesis, however the team has invalidated P2SH outputs as a consensus rule vs. local policy—meaning that miners will now reject the outputs as opposed to simply relaying them. P2SH was not part of Satoshi Nakamoto’s original Bitcoin protocol.
BTC Core developer Greg Maxwell pointed out in public posts last December that an attack vector existed that could allow BSV to be stolen via replay attack. Affected were coins that remained unspent from before the initial 2017 hard fork—a transaction broadcast on BSV involving these coins risked being “replayed” on the BTC chain. Maxwell also described how such an exploit could be carried out.
Such an attack would have required a dishonest miner. Although BSV had put measures in place to reduce this risk, the SV Node team decided it was better to remove the possibility altogether due to Maxwell’s reckless public disclosure increasing that risk.
We need a little more professionalism around responsible disclosure… Let start here and now… https://t.co/0yn8UNBdCv
— Shadders (@shadders333) December 23, 2019
P2SH allows users to send a bitcoin transaction to a script hash (beginning with “3”), rather than a public key hash (beginning with “1”). The transaction would have to be accompanied by a script hash, of which the script evaluates to true. This allowed for multi-signature transactions and other conditional requirements, while the content of the script itself remained hidden.
There remains a possibility to change P2SH back to a miner policy from a consensus rule if needed, and past P2SH transactions will need to remain valid.
In a blog post, Dr. Craig Wright described P2SH (and soft forks) as “cancers” that were “the two worst ideas to have infected Bitcoin.” He gave the ability to hide data in P2SH scripts as the main reason, saying it represented a security risk and promoted a false sense of anonymity. Bitcoin’s Script language, which is a separate layer to the protocol, still allows useful functions to create more complex transactions.
A separate change to the final spec sheet means miners cannot run the Bitcoin SV Node software without setting the parameters “excessiveblocksize” and “maxstackmemoryusageconsensus”. Miners can still set these parameters to “unlimited,” but cannot start the software without first considering it
The updated specification is published on the team’s GitHub page.
Editor’s note: This post has been updated.
New to Bitcoin? Check out CoinGeek’s Bitcoin for Beginners section, the ultimate resource guide to learn more about Bitcoin—as originally envisioned by Satoshi Nakamoto—and blockchain.