BIP-119: Here’s everything you need to know about the Bitcoin proposal
Bitcoin Core developer Jeremy Rubin is rushing the Bitcoin community into a Speedy Trial for his Miner Activated Soft Fork (MASF). Through his Bitcoin Improvement Proposal 119 (BIP-119), he’s pushing for a significant change to one of the currency’s operation codes.
Rubin’s proposed operation code CheckTemplateVerify would introduce ‘covenants,’ a new kind of conditional transaction. Some senior developers are supportive. Others are fuming with frustration.
Around the world, Bitcoin Core developers contribute to Bitcoin’s development by reviewing code, fixing bugs, and debating the future of the currency. Once a developer believes strongly in a major change, they submit a formal proposal known as a Bitcoin Improvement Proposal (BIP).
BIPs introduce new code, which usually requires a fork to activate. Bitcoin’s consensus mechanisms have rules for accepting or rejecting forks. There have been many successful forks, including SegWit and Taproot.
Rubin has submitted BIP-119 which would permit on-chain covenants. An example of a covenant would be sending a Bitcoin to someone who can then only send that Bitcoin to a particular address. Covenants, in their various configurations, allow for more expressive programming and transaction routing.
Rubin has proposed using a Speedy Trial to achieve consensus for BIP-119 activation. As the name suggests, Speedy Trials speed up the process of testing whether a proposed upgrade can obtain consensus. Bitcoin’s Taproot upgrade, for example, used Speedy Trial to attain consensus.
BIP-119 requires approval from 90% of the network’s mining power. This MASF approach requires a quorum of mining pools to indicate support. Nodes can then upgrade when the proposal gains enough hash rate to activate.
In contrast to miner-led soft forks, User Activated Soft Forks (UASF) require approval from nodes. (There are tens of thousands of full nodes operating on household computers around the world.) SegWit activated with a UASF in 2017, resolving the contentious Blocksize Wars.
The Blocksize Wars demonstrated the difficulty of activating a proposed change in Bitcoin’s protocol. Even the owners of most of the world’s mining rigs could not force the changes they wanted onto Bitcoin. Users (nodes) prevailed. In the end, supporters of big blocks had to hard-fork, creating other coins without access to the Bitcoin Core client and the BTC ticker symbol.
Bitcoin Core developer Jeremy Rubin is a hustler
Jeremy Rubin founded Judica, a research and development firm that focuses on a proposed smart contract programming language named Sapio. His company would benefit financially from the adoption of BIP-119.
He previously worked on an algorithm to improve Bitcoin block confirmation times and also drew controversy by suggesting that miners could collude to rewrite Bitcoin’s blockchain to recover funds lost to theft.
Binance CEO Changpeng Zhao briefly considered Rubin’s suggestion in the wake of a hack but quickly dismissed the idea after backlash from other prominent figures in Bitcoin.
What will BIP-119 do?
Very simple covenants like multi-signature and time-locked wallets already exist in Bitcoin. BIP-119 proposes ways to create more complex, programmable covenants.
BIP-119 will change an operation code, OP_CheckTemplateVerify, to modify the OpCode OP_NOP4.
An OpCode is the first byte in a machine language instruction that directs computer hardware to perform an action. It defines the operation that the hardware needs to perform. Any additional data like addresses and values follow the OpCode. All processors and controllers come with a predefined set of OpCodes.
If the proposal activates, users can set up covenanted wallets where coins can only be spent if they meet certain predetermined conditions. Conditions can also be added to individual unspent transaction outputs (UTXO).
OP_CheckTemplateVerify will require the following conditions to be true:
- At least one element exists on the stack.
- The element on the stack is 32 bytes long.
- The DefaultCheckTemplateVerifyHash of the transaction at the current input index is equal to the element on the stack.
DefaultCheckTemplateVerifyHash controls the serialized version, locktime, scriptSigs hash (if any non-null scriptSigs), number of inputs, sequences hash, number of outputs, outputs hash, and currently executing input index.
Bitcoin insiders express doubts about BIP-119
Prominent Bitcoiners have questioned whether a Speedy Trial is appropriate for BIP-119. On Tone Vays’ latest Bitcoin Brief, Adam Back, Jimmy Song, and Rodolfo Novak opposed Rubin’s Speedy Trial. They also revealed similar opposition from Peter Todd, Matt Corallo, Giacomo Zucco, Luke-Jr, Bitcoin Gandalf, John Carvalho, Francis Pouliot, Andreas Antonopoulos, and many other senior Bitcoiners.
All of them have various reasons for opposing the plan, with some being in favor of BIP-119 and merely against Speedy Trial.
Read more: Core developer wants to fork Bitcoin for quantum resistance
There are various concerns about BIP-119. First, opponents argue that there are various proposals for on-chain covenants, and it is unclear that BIP-119 is necessarily the best proposal. Second, they are concerned with the rushed timeline of Speedy Trial, saying that Core developers have not had enough time to conduct technical and security audits. Third, owners of nodes and miners might not have enough time or interest to review Rubin’s proposal.
BitcoinMechanic from Start9, for example, has suggested that nodes should default to a “no” vote ⏤ effectively rejecting any blocks that include transactions from Rubin’s BIP-119. BitcoinMechanic endorses a URSF, a purely defensive soft fork to prevent Rubin from what he considers a “malicious soft fork.”
Programming Bitcoin author Jimmy Song expressed doubt that BIP-119 could win 90% approval of the network’s hash rate. “I think this has no chance. You’re going to get 20% of miners at most,” he said (our emphasis).
However, Song warned that neutrality on BIP-119 would count as consent under Speedy Trial rules.
Jimmy Song ran an informal Twitter poll. Of 240 votes, 54% were “opponents for now” of OP_CTV and Speedy Trial. 15% were supporters of OP_CTV yet opposed Speedy Trial. Song speculated that the unusually low number of votes (he normally attracts thousands of votes on a typical Twitter poll) indicated that few people even understand BIP-119.
For more informed news, follow us on Twitter and Google News or listen to our investigative podcast Innovated: Blockchain City.