Salvage, fixing OP_False, and more
One of the flaws in the mangled version of Bitcoin we have today comes from the ability to “burn” and destroy coins. Bitcoin was designed as stable money. This is a fixed-token money system where the cap is maintained in time and fees are used to reward miners.
Total circulation will be 21,000,000 coins. It’ll be distributed to network nodes when they make blocks, with the amount cut in half every 4 years. […]
When that runs out, the system can support transaction fees if needed. It’s based on open market competition, and there will probably always be nodes willing to process transactions for free.
To be stable, the money supply needs to allow long-term investment, but also not allow intentional attacks by destruction.
In having an end capacity of just under 21 million bitcoin (BCH), some bitcoin will be “lost”, but this is analogous to bullion money being lost. In time, it can be found, and returned into circulation. I cover some of the differences in a prior article. When a private key is lost, it is merely out of circulation. It may be many years, but all old addresses eventually become mine-able and can be recovered.
Returning “lost” money into circulation is a future means of miner revenue and analogous to salvage firms who seek lost bullion on ships that have sunk in the sea.
To allow for this vision and end, the SV implementation of Bitcoin will be removing the flawed code that allows “burning” of coins permanently. This is not an instantaneous process, and it will take time, but all of this lost money will be returned into circulation. The full details will come before the changes.
OP_FALSE is an original OP_CODE that was designed to fail script paths in a predicate. It is used and needed, and has a range of uses, and in fact, it cannot (and should not) be disabled or removed.
The issue comes when a script is constructed as a means to just destroy Bitcoin. The aim in this is to remove value from Bitcoin, and send it into an alternate system — it is a form of attack.
In Bitcoin, miners are the replacement for the various member banks in the U.S. Federal Reserve. The distinction is that the banks in the US Fed are incentivised to create more money. They act in collusion, that is social consensus.
Bitcoin alters this by making the miners, the equivalent of the member banks that set monetary policy, act in capitalist competition. This allows them to neither increase the money supply nor seek to subvert it. The miners ensure that the money supply is stable.
They do this by allowing the system to recover funds that are taken out of circulation.
Some parties have used OP_FALSE as a means to issue a “proof-of-burn.” This is what miners are aligned and incentivised to stop. Burning money by making it permanently un-spendable is an attack on Bitcoin by those with a vested interest in creating something other than Bitcoin.
The aim was never to allow the creation of scripts that are designed to diminish the long-term viability of Bitcoin, and to this end miners will be able to recover this form of funds as if they were salvaging “sunken treasure”. This returns the coins into circulation.
The OP_RETURN code is also used to create a lost-value transaction. The purpose of OP_RETURN is to make a marker, not to destroy Bitcoin. This will also be recoverable.
We will be publishing a strategy where OP_RETURNS are published on a time basis. The amount invested into the OP_RETURN will set the length of time before these are removed and pruned.
The result will be a message that remains for a set amount of time and then is prunable, returning the funds to miners through salvage and, after that, into circulation.
The exact details will be published later, but the concept would be to have OP_RETURN remain valid for a set length of time that is determined by the number of satoshis expended by the size of the data to be saved against the time in Unix time (that is, in seconds from when it is published).
This allows for both the use of OP_RETURN and a means to pay miners and archive nodes for delivering a service. This is not the final version, but for example:
- (V) number of satoshis (sent to miners in OP_RETURN) /
- (S) size of TX in KB =
- (T) time in 100 seconds, before the value is recoverable
T = V / S
So, if a 100-KB file is to be stored for 1 year, miners’
V = T*S = 31,536,000*100/100 = 0.315 BCH
The exact figures would be left to market forces to determine. When the time has expired, a sunk fee can then be recovered by miners.
Invalid OP_CODES (DSV, etc.)
If a transaction is intentionally sent to a invalid OP_Code such that it is burnt and removed from circulation, this again is just an attack against the total number of bitcoins that can circulate, and it will be available for miners to recover.
Miners recover these coins as salvage — lost treasure, you might say.
The end result of this is that those wanting to attack Bitcoin through a vain attempt to remove money from circulation and to extract it into a separate system (Tether, Omni, CounterParty, WHC, etc.) will find their attacks fail.
Bitcoin is resilient.