On the governance of Bitcoin limits

Published On

12 May 2021

The BSV blockchain team recently received this request on the BSV github issue tracker.

“request to change the default script size limit from 10KB to 500KB”

The use case presented looks like a valuable one that we would like to see explored.  However BSV blockchain soundly rejected the model of “governance by developer decree” in favour of the original Bitcoin model where limits are determined by the competitive actions of miners. Which triggers the unseen hand of markets to define limits as emergent properties.

When Genesis activated the BSV blockchain team made this public statement directly to miners:

“We would like to thank all of the miners that participated in the upgrade and offered assistance in various ways. The governance of Bitcoin consensus parameters is now in your hands.  We will be available to advise but we will resist making recommendations and will no longer be making any decisions on your behalf. We know you will take this significant responsibility seriously perhaps because you care about Bitcoin but most certainly because it’s in your economic interest to do so.”

This is important to emphasise because the “governance by devs” model is what led to the strangulation of Bitcoin Core. We saw in the block size debates, a clear majority of miners in favour of raising block size but because it was established that devs made those decisions the miners submissively accepted their decision not to scale.

It is miners who collectively, but competitively, operate the Bitcoin network service and it is they that bear the risks of changing their own policy or consensus limits.  It is not the role of the BSV infrastructure team to impose additional risk on miners without a clear signal from miners that that is what they want.

Why have policy limits at all?

Policy limits are different to consensus limits in that they are chosen by individual miners and do not need to match a majority of other miners to avoid the risk of forking off the network.  Many of those limits have a matching consensus limit that is set to a much more liberal value. All of those limits exist to mitigate some sort of risk to node stability in unusual or attack conditions. Without them the alternative would be to have no protection against potential crashes.

They exist in order to enable miners to make individual decisions about which risks to accept and in what quantity. Any miner is free to increase or decrease any of these limits. It is common for businesses to make decisions to accept risk if they expected reward outweighs the risk. It is also common for different businesses to have a different perception of risk and reward and make different decisions about the same risk.

How to get a policy limit raised?

The ancestor limit is a clear example of how this governance process should work, where the demand originated from the users and that translated into the miners wanting it and making that known to the BSV blockchain team. Our customers are the miners.  Their customers are the users of Bitcoin. The demand drivers of change flow from users -> miners -> infra-developers.

The right approach is to talk to the miners directly. They can change this limit right now with a config setting. So explain your use case, explain that you will generate additional transaction fees if they allow this. Once the demand is clear what usually happens is that miners talk to the BSV Infra team and ask us to help them understand the risk profile of the change. Part of this risk profile is inevitably the increased orphan risk of accepting a transaction type that other miners might not. 

If the risk is acceptable the miner will make the change. This usually results in more miners following suit so they can share in the transaction fees this new use case is generating.  Eventually when enough miners adopt it, this orphan risk flips on its head and becomes a risk to the miners that haven’t adopted the new policy limit rather than the ones that have. At this point the signalling of miner demand is clear and BSV Infra team will usually make a change to the default.

This is not the quick fix you’re looking for

Suppose, as a hypothetical, that the BSV blockchain team decided to bypass the usual governance mechanism and attempted to impose a new limit on miners by releasing a new version of software with the default changed.  Would it achieve the goal of increasing this limit across the board?

The short answer is ‘no’. Bitcoin miners can be broadly divided into two camps:

  1. Those are that are pro-BSV
  2. Those that aren’t very interested in BSV and are just here for the block rewards.

Miners like TAAL, Mempool, MatterPool and a few others are in the first camp and routinely adopt new versions of BSV quite quickly.  But those are also the miners that are also proactive in responding to user demand by changing policy settings to accommodate new use cases. They could put this change into effect today, whereas the BSV blockchain team couldn’t do it until the next release at earliest.

There are quite a few in the other group as well.  Many of them are absent right now because of the BTC price boom pushing up block reward profitability on BTC but we do expect them to return.  This other group doesn’t tend to adopt new versions of BSV very quickly at all. In fact we believe there are some still running v1.0.0.  Changing the default will have no effect on them unless they upgrade to the latest version. Which they probably won’t any time soon if past behaviour is any indication..

So the end result is likely worse and slower to adopt than approaching the miners directly.  For that reason we will not be implementing this change until we have a clear signal from enough miners that this is the new normal.

How to make this process even smoother

There are some changes coming to BSV node that will lower the risks to early adopting miners and make the path for limit increases even easier.

The first risk we can mitigate is that whilst the particular use case that is driving the request to increase the limit might be known to be safe, we may not know what other use cases there are that might cause problems.  In this example the request is to raise the script size limit from 10kb to 500kb.  This allows a particular type of smart contract to be accepted.  But it also allows every possible script that can be expressed in less than 500kb.  And since this hasn’t been exhaustively tested we can’t be sure that doesn’t enable an attack vector.

A potential solution to this is to limit the raised limit to specific known users with known use cases. mAPI can allow this with a change to bitcoind that allows mAPI to flag a transaction to be allowed to ignore a policy limit. That mAPI operator can allow this much more easily than if they had to modify the BSV software itself.

The second risk we can mitigate is orphan risk. Since mAPI has the ability to bypass some of the policy limits set on bitcoind, it is relatively simple for a miner to setup up a mAPI token for another miner that allows them to send them transactions that they are mining but do not meet standard policy limits.  This allows the transaction to be kept in the other miner’s mempool and eliminates the additional cost of block propagation from that transaction.  It’s not a perfect solution but it’s one that can be implemented relatively quickly and enables more flexibility.

Both of these mitigations will be enabled by the same feature in bitcoind which we previously mentioned.  mAPI uses the ‘submitrawtransaction’ RPC call to send transaction to the node. It already takes an optional parameter to indicate that the node should bypass it’s fee checks.  The feature allows an additional parameter to allow the node to bypass policy checks as well.

This feature is targeted for release in BSV v1.0.9

Blogs

Our blog articles cover the latest in blockchain technology.
Solutions, trends, and news.

post-image

22 Jun 2022

Miner Advisory June 2022 – Transaction Fee Configuration

Bitcoin was designed to distribute coins to miners through the block subsidy. The subsidy halves every 210,000 blocks.

post-image

12 May 2021

On the governance of Bitcoin limits

The BSV blockchain team recently received this request on the BSV github issue tracker.

post-image

24 Dec 2020

A (belated) Christmas present from BSV blockchain team.

It’s taken us a bit longer than we hoped, but the beta version of BSV 1.0.7 (Dynastic) will be released in early January (hence the “belated” part of this article’s title). The Dynastic release is the result of almost a year of work to untangle a particularly nasty mess we inherited from Bitcoin Core. As […]

post-image

09 Oct 2020

BSV Blockchain Capacity Report

Transaction volume on the BSV blockchain approximately doubled for a few days last week – due to “multi source stamina testing”

post-image

30 Sep 2020

Realising (Finally) Satoshi’s Peer to Peer Vision for Bitcoin

When Bitcoin V0.1.0 was released in 2009, it contained a proof of concept feature that is perhaps the most overlooked in its history.

post-image

16 Sep 2020

Beyond micropayments: The rise of nano-services

The Rails release of BSV (v1.0.5) introduces several game changing features that have long been in the making. This release is code-named RAILS because its major features are aimed to open new and innovative payment cases using the BSV blockchain protocol and ledger, and empower BSV blockchain companies to build more infrastructure for payments – […]

post-image

04 Feb 2020

Genesis activation successful

At 1:28am GMT block 620,537 was mined and BSV nodes of v1.0.0 or greater began accepting transactions under the restored Genesis protocol.  At 1:55am at block height 620,539 the first block containing a Genesis-only transaction was mined, locking in the change. Old node software did not accept this block and forked off onto a legacy […]

post-image

10 Jan 2020

Genesis specification finalized

The draft Genesis specification was published in December 2019 in order to elicit feedback from BSV miners and other ecosystem participants.

post-image

23 Dec 2019

BSV blockchain – Blocking potential P2SH replay attack after Genesis hard fork

The BSV Node team notes the recent public disclosure on Reddit by Gregory Maxwell (a.k.a. /u/nullc) from the Bitcoin Core (BTC) of a potential replay attack vector on BSV.

post-image

06 Dec 2019

BSV blockchain Genesis hard fork implementation plan – in advance of February 4, 2020

On February 4, 2020, the BSV blockchain network will undergo its “Genesis” hard forking upgrade.  This hard fork represents a significant milestone in BSV’s journey to restore the original Bitcoin protocol.  To allow the BSV blockchain ecosystem adequate time to prepare for the hard fork, the BSV Node team would like to communicate the rollout […]

post-image

24 Nov 2019

On the future of Bitcoin transaction fees

Cheaper transaction fees, fiat stable pricing and a highly flexible framework for dynamic fee rate discovery are all on the horizon for BSV blockchain.

post-image

06 Aug 2019

The BSV blockchain & False Reports of a “Three-way Fork”

In recent days there have been a couple of articles which incorrectly suggest that the BSV Blockchain has suffered from a “three-way fork” over the last few weeks. These articles seem to stem from the same source, a tweet from BitMEX Research. Here are the facts.  The BSV Blockchain had a planned hard-fork upgrade on […]

post-image

13 Jul 2019

Quasar upgrade 24th July recommendations – roadmap to Genesis part 2

This upgrade has very limited scope with just changing the block size hard cap but it warrants some further explanation. It was first detailed in part one of this post series.

post-image

22 May 2019

First gigabyte+ blocks mined in STN stress test

Background On May 21st 2019 the BSV blockchain Scaling Test Network (STN) saw its maximum mined block size record broken eight times in rapid succession. In the latest release of BSV Node (0.2.0) one of the standout changes was lifting the hard cap block size limit from 128MB to 10GB. The reason for setting the […]

post-image

29 Apr 2019

BSV blockchain [BSV] Scaling Test Network is open for business

The BSV Scaling Test Network (STN) is an initiative of the BSV blockchain Node project, owned by Bitcoin Association and operated by nChain (with funding by CoinGeek) to scale and test Bitcoin beyond gigabyte and eventually to terabyte blocks. In February 2019, the BSV blockchain team publicly released client software with full support for the […]

post-image

11 Mar 2019

BSV Scaling Test Network Sustains 128MB Blocks for 36 Hours

A new milestone was achieved recently on the Bitcoin SV Scaling Test Network with continuous 128MB blocks over a period of 36 hours. The test ran from about midday on the 7th of March through to midnight on the 8th. 246 blocks were produced during this period and each one was 128MB large. The blocks […]

post-image

01 Mar 2019

Denial of Service Vulnerabilities Repaired in BSV version 0.1.1

As part of its commitment to professionalise the Bitcoin development process.

post-image

24 Jan 2019

BSV blockchain (BSV) Weekly – Jan 23, 2019

The BSV blockchain ecosystem has benefited from significant developments in the past week – with six (count them six!) new releases just from Bitcoin developer unwriter. That alone deserves a special Satoshi Shout-Out below! Along with increased scaling achievements, the BSV blockchain ecosystem continues to grow at a rapid pace. Read below for a summary of […]

post-image

24 Jan 2019

Warming Up the Scaling Test Network for BSV blockchain – 24 hours of Sustained 64 MB Blocks

The BSV blockchain network is committed to massive on-chain scaling, and nChain’s team is progressing with technical work needed to achieve this Satoshi Vision. In fact, our recent tests have demonstrated the BSV blockchain network’s capacity to handle sustained 64 MB blocks over a full 24 hour period, and we are already moving towards showing […]

post-image

16 Jan 2019

Bitcoin SV (BSV) Weekly – Jan 16, 2019

Along with scaling capacities, the Bitcoin SV ecosystem continues to grow at a rapid pace.  In our weekly post, we provide a summary of some of the past week’s developments from around the world. Today’s special “Satoshi Shout-Out” goes out to hivr; the social network built around a BSV wallet is sponsoring “one of the […]

post-image

04 Jan 2019

Bitcoin SV (BSV) Unveils Logo for Rebirth of Original Bitcoin

The bComm Association unveils an updated logo for Bitcoin SV (ticker: BSV), chosen from public voting after three Twitter polls in a new form of decentralized marketing.  The BSV logo is revealed on the 10th anniversary of the Bitcoin genesis block, to mark Bitcoin SV as rebirth of the original Bitcoin.  A modernized update of […]

post-image

21 Dec 2018

BSV blockchain (BSV) Weekly – Dec 19, 2018

BSV blockchain (BSV) is designed to preserve Bitcoin’s fundamental design and fulfil the Satoshi Vision .  BSV provides the enterprise-friendly blockchain – with a stable, scalable, secure, and regulation-friendly platform for businesses to confidently build upon. In just one month since it emerged, the BSV ecosystem has quickly grown.  Numerous Bitcoin applications and services have […]

post-image

04 Dec 2018

New, Exciting BSV blockchain Projects Announced During CoinGeek Week

The highly anticipated CoinGeek Week conference has drawn to a close and to say that it was a huge success is putting it mildly.

post-image

20 Nov 2018

BSV blockchain Mines 64 MB Block on Bitcoin Cash, Largest Ever on a Public Blockchain

20 November 2018 – BSV blockchain, the new full node implementation for Bitcoin Cash (BCH) mined a 64MB block, the world’s largest ever on a public blockchain. The huge block was mined by CoinGeek Mining, during an on-going Professional Stress Test of the BCH network. Just one hour before, a 38MB block was mined, also […]

post-image

15 Nov 2018

Bitcoin Cash (BCH) Protocol Upgrade: Coin Splitting Advisory

The upcoming Bitcoin Cash (BCH) hard fork on November 15 will likely cause two branches of the blockchain to exist, at least temporarily. Some actors believe both branches will persist, effectively creating two “coins.” Other observers believe that one chain will die off with the alternate “coin” simply becoming unusable, and leaving a single “coin” […]

post-image

14 Nov 2018

Bitcoin SV Notice to Cryptocurrency Exchanges, Wallet & Service Providers: Advisory about BCH Protocol Upgrade and Coin Splitting

We recently received inquiries from several cryptocurrency exchanges about the upcoming November 15 Bitcoin Cash (BCH) protocol upgrade and the role played by Bitcoin SV. There appears to be confusion by some exchanges and other cryptocurrency service providers about Bitcoin SV, perhaps caused by misleading statements made by supporters of other competing BCH implementations (such […]

post-image

08 Nov 2018

Bitcoin Cash (Bch) November 15, 2018 Protocol Upgrade – Notice to Cryptocurrency Exchanges & Bitcoin Cash Wallet Operators

On November 15, 2018, the Bitcoin Cash (BCH) network will undergo a scheduled protocol upgrade. This protocol upgrade has been different to previous upgrades due to differences in opinion as how best to evolve the Bitcoin Cash network to continue to meet the demands of enterprises and consumers who support Bitcoin Cash. We have developed […]

post-image

16 Aug 2018

BSV Full Node Implementation Launched to Fully Restore Original Bitcoin Protocol

nChain, the global leader in research and development of blockchain technologies, announces the creation of BSV, a new full node implementation of the original Bitcoin protocol now restored in the form of Bitcoin Cash (BCH).

Ready to add blockchain solutions to your business or government agency?

Send us a message and let us know about your needs. Please contact

Join Our Community

Stay updated with the BSV Blockchain's latest news and events.
Subscribe to our weekly newsletter.