Sun-setting P2SH

Steve, Daniel, and the team are working around the clock to make Bitcoin SV as close to the original Bitcoin protocol as they can. In this end, we will be planning to deprecate P2SH. This is not a simple task, and it will need to occur in stages. We will need to have non-standard scripts accepted by miners, and we will need to accept old P2SH transactions as we stop any new ones being added.

So, this is a multi-stage plan.

Bitcoin SV is Bitcoin Cash (BCH), and this is Bitcoin

The two worst ideas (cancers) to have infected Bitcoin are the joint diseases of:

  • soft forks and
  • P2SH

The first is no longer something we will see in BCH. With the introduction of Bitcoin SV, the only path forward is that detailed in the original Bitcoin white paper. The concept of a soft fork is the most insidious attack on Bitcoin to have been spawned. But; it is no longer valid. All consensus rules in Bitcoin will be handled using the only way that works: PoW and hard forks.

SV — back to the original vision

P2SH — Pay-to-Script Hash

Unfortunately, we cannot simply remove P2SH altogether. That would be wrong as it is used in many applications. It is also saved money.

We can announce a plan to sunset it and to allow only scripts to be run.

We will set the dates soon, but from that point we will not allow the differentiation of standard and non-standard scripts to be a reason to see alternatives such as P2SH.

We are not interested in the arguments from Core; P2SH was a bad idea, and it will be removed. To do this, we will allow scripts and stop the flawed concept of not including non-standard scripts.

One reason for P2SH is to have sliding consensus rules. It helps align a strategy (as we saw in Core) of soft forks and have hidden transaction rules.

This is not what the original vision of Bitcoin was about. There is no anonymity in Bitcoin, there is pseudonymity, and that refers to privacy. To be private, a transaction must also be available and traceable.

It has been argued that P2SH is more secure. But as a responder to that claim says,

Basically, P2SH itself is not inherently more secure because the redeem script can be anything. But what it does is enable coin-receivers to easily communicate how coin-senders should send them coins, while letting the coin-receivers dictate the conditions of how/when those coins can be spent.

The truth is that what they are saying is that P2SH allows for non-standard scripts to be used. Once the distinction of standard and non-standard scripts is removed, this no longer holds.

The claim of obscurity is false, it is purely one of security by obscurity, and that is not a valid means to secure a system:

Which is just 23 bytes in total. The nice thing is that it provides a layer of abstraction. The person who is sending me coins doesn’t need to know how I am keeping my coins secure. All they see is a hash of a redeemScript, but they don't know what conditions that redeemScript actually puts on redeeming the coins.
P2SH — will be sunset

Some developers love to say how change for the sake of change and experimentation are good. If they were, we would try changing the shape of the wheel. It has remained stuck as a circle for millennia, and by the same logic used in defending change for the sake of change, we could see them try a square wheel. The truth is; to change a financial system, such as Bitcoin, it is up to the proposer to demonstrate just how much better the proposed addition would be. The converse has occurred. All of these changes have taken away from Bitcoin, and we will return it to the original state.

ABC building a better wheel

So, it is time to start planning to use script. It is the only layer 2 in Bitcoin. In network protocols, layers encapsulate data. This is, one inside the other, not in external systems.

Bitcoin in this is analogous to HTTP as layer 4 in the OSI model.

In the OSI model of the Internet, HTTP is a higher layer as it is encapsulated, and that is contained. Something like a side-chain, Plasma, or the Lightning Network is a separate system; it cannot be layer 2 as it is not encapsulated in script.

OSI — layers like an Onion

In the Bitcoin model, we have the following layer structure:

  • 0 = physical layer,
  • 1 = data link (the network, such as IP and the Internet or other),
  • 2 = network — the P2P network and the exchange of transactions between users and nodes,
  • 3 = Bitcoin transactions,
  • 4 = script.
  • More has not been created yet — it is wide open for development.

In any system, there is no concept of permission-less. This idea that you are allowed to create anything you like — including Silk Road version 2.0 and child-porn exchanges — is antithetical to what Bitcoin was designed to be: sound money. It ends here and now. What we see on the Internet is not development within a permission-less framework, it is the ability to develop within law and within the rules of the system.

Just as you cannot choose the format of an HTTP packet and a datagram, you do not get to add and change OP_CODEs in Bitcoin. You can work in the system, or find something else to try and break.

Welcome to Bitcoin SV — the way that Bitcoin will be cash, and the path that BCH will follow going forward.

Business friendly.

Sound money.