Getting your Trinity Audio player ready...
|
Bitcoin as originally designed supported multi-signature transactions where an X number of users could sign in order to spend coins. However, because the original standard were too big for the Core developers’ taste, P2SH (Pay-to-Script-Hash) was implemented (along with various other reasons).
Consequentially, the adoption of P2SH for multi-signature by almost all wallets, libraries and developer tools have mostly ensured that standard functionality is not fully supported.
P2SH is being deprecated on Bitcoin SV on February 4, so now these services need to ensure that they implement standard Bitcoin functionality 11 years after its birth.
Crazy, right?
The BTC Core developers have done a significant amount of damage to the public’s perceptions of what Bitcoin is, what it had from the beginning and how it should operate. The very idea of calling standard multi-signature functionality ‘bare’ is pure doublespeak. Bare implies without or lacking. Standard multi-signature transactions could in theory have as many participants as necessary, but the BTC Core developers preferred to stick their flag in the ground by implementing a hot mess of a solution (P2SH) versus removing the existing limits of the system and allowing it to grow.
The Core developers viewed the existing limits as a prison versus an opportunity. The motivation for P2SH pre-supposed that these limits were permanent and could never be raised. See below for Gavin Andresen’s rationale on why P2SH should be implemented for multi-signature:
Oh no! A capitalist miner might leap out ahead of other Raspberry PIs and ‘attack’ the network by giving its users better service while earning themselves a reward for doing so.
It is this way of thinking that has Bitcoin in the position it is in 11 years later. Fortunately, the return to Genesis is forcing service providers to mature and account for functionality that has been there all along. Unfortunately, they have been stuck with considerable technical debt as a result.
ElectrumSV developer Roger Taylor is leading this effort by implementing a means for users to preserve multi-signature functionality for their existing transactions after Genesis. Hopefully other ecosystem participants follow, as if they do not, then even though the network is capable, the removal of P2SH will cause a short-term loss in robustness.
To drive home how damaging these changes have been, less than 100 ‘bare’ multi-signature transactions exist on BSV per Roger Taylor. There are a few more as I managed to create some of these transactions using MoneyButton’s bsv JavaScript library:
Notice the absence of the address prefixed with ‘3’. Block explorers have issues interpreting these transactions as it would appear that the Bitcoin were sent to two regular addresses when they were sent to a set of public keys:
This way of displaying the transactions compromises my privacy since addresses I control are revealed even though I never sent Bitcoin to them. Notice the second address prefixed with ‘1Avws’:
The damaging changes by the Core developers have had a ripple effect in causing bad practice by service providers. With the Genesis upgrade imminent, work still needs to be done to account for the ways Bitcoin was always meant to work.