Beyond micropayments: The rise of nano-services

Published On

16 Sep 2020

The Rails release of BSV (v1.0.5) introduces several game changing features that have long been in the making.

  1. Activation of the Journalling Block Assembler by default
  2. Batch transaction submission
  3. Free consolidation transactions

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 – “payment rails.”

It is the last of these that we will focus on in the post.

The dust limit

Once upon a time some BTC developers, mindful of their parental responsibilities to all participants in the Bitcoin network, introduced a protective mechanism called the Dust limit. Leaving aside the debate about the rightness or wrongness of paternalistic developer attitudes, this limit persists today as a policy enforced by default by miners. It was put in place as an attempt to prevent people from falling into a particular trap.

A typical Bitcoin transaction looks something like this:

The notable part of this example transaction is that values paid (in satoshis) are very large in comparison to the fee. The payment is about $11 USD in today’s money whilst the fee is a tiny fraction of a cent. This tiny fee is what makes micropayments possible. No one wants to pay a significant chunk of their transactions as fees but when they are so low payments of even 1c are very feasible. But there is a lower limit to what makes sense economically. And if you cross that limit far enough you get into territory where you can effectively render some satoshis unusable.

In the above example, we are trying to go beyond micro-payments and into what we will call “nano-payments” by attaching a tiny 10 satoshi output to an existing transaction. This is where the dust limit would normally kick in to prevent the transaction going through, because under the standard fee policies that we are all accustomed to in Bitcoin, this output would require a higher fee to spend than the value of the output itself. It’s economically cheaper to just write that 10 satoshis off than it is to ever spend it. Unless perhaps we wait and hope that BSV blockchain rises many orders of magnitude and fees in satoshis fall equally.

Payment channels are a well-known mechanism enabling exchanges of value incrementally in units so small that they wouldn’t be economical in a Bitcoin transaction on their own. But there are other ways. 

Consolidation transactions

A Bitcoin transaction has a variable number of inputs and a variable number of outputs. When a transaction is accepted the previous outputs (which are referenced by the inputs) are removed from the UTXO database and the outputs are added. So the net effect on the size of the UTXO database (in terms of discrete items not bytes) after accepting a transaction can be expressed as:

utxo_delta = nOutputs - nInputs. 

From a miner’s point of view the size of the UTXO database matters because the larger it is the higher the cost of maintaining it. This is offset by the increased value of transaction fees that results but it is still in all miner’s economic interests to trim the UTXO where possible. Enter the concept of a consolidation transaction which has many inputs and few outputs such that the utxo_delta is substantially negative resulting in a shrinking of the UTXO database. Since this is already an economic net positive for a miner it is feasible for a miner to allow such a transaction with zero fee.

In doing so not only do we enable a lot of existing dust UTXOs to become useful again, but we also open up some powerful new use cases that are not possible with the current dust limit.

In the above example we see a normal transaction with additional 10 satoshi outputs attached. The recipient of these outputs simply collects enough of them to meet the criteria for a free consolidation transaction then converts the collective value of 1000 inputs into a single, higher-value output. The size of the UTXO database is reduced by 999 entries. One might argue that these are UTXOs that wouldn’t have been created without this model being feasible, which may well be true, however, even ignoring existing dust cleanup benefits we end with essentially a net cost in UTXO size of zero whilst enabling highly flexible new use cases.

Nano service use cases

So how might you make use of the ability to pay as low as 1 satoshi for a service? Well that’s for other creative minds to explore but in terms of normal operations of the Bitcoin network here’s a few examples:

  • Paying a specific miner a few satoshis to return you a Merkle proof when a transaction is mined (regardless of whether they mine it).
  • Paying a specific miner to watch for double spends and notify you.
  • Payments to a paymail host.
  • Paying a channels server to store and forward your messages while you’re offline (more on that later).
  • Paying for insurance or countersigning by a specialist multisig custodian.

Basically any service that is related to an economic transaction could be paid for in this way. The main caveat is there needs to be an existing transaction moving value in excess of a typical transaction fee for the nano-payment to piggy back off of.

What about payment channels?

Payment channels are a perfectly valid way to achieve nano-payments which are useful in many scenarios. A payment channel only becomes useful when the likely settled amount is in excess of a transaction fee, but it allows incremental shifts of value in similarly small amounts to a consolidation transaction. This is useful where you might want to repeatedly use the same nano-service. There are trade-offs around implementation complexity to consider. Where a consolidation transaction differs is that it can be used as a one-off for a particular service without establishing a payment channel-like relationship with the counterparty. Which of the two makes the most sense will come down to a use-by-use evaluation.

So how do we use them?

Much like the early days of raising of the OP_RETURN limit, there will be a few initial barriers to getting such transactions accepted. Many will recall the efforts required to find nodes that supported it and to build connection pathways between enabled nodes so that OP_RETURN transactions could propagate. It took some time and became more reliable over time until blanket adoption was achieved. This will be similar but with a key accelerator provided by the Merchant API (henceforth known as mAPI).

Firstly the creation of dust outputs themselves are still limited to some degree by the dust limit. This limit will be removed entirely by the end of the year allowing even 0 value outputs. In the meantime the 1.0.5 release of bitcoin has at least fixed the hard limit and made it a function of the relay fee set by the Miner. This means that Miners who have upgraded to 1.0.5 should accept outputs greater than 140 satoshis. 

Until widespread deployment by Miners is achieved the dust limit will remain a barrier to getting these transactions relayed which means you shouldn’t assume the same level of zero-conf assurance as a transaction with only non-dust outputs. But for use cases where zero-conf doesn’t matter this is safe to use right now.

Secondly for non-zero conf scenarios the p2p propagation can be bypassed entirely once mAPI supports these transactions. This is a feature of the mAPI 1.2 which is targeted for release in October. Once you couple a 1.2 mAPI with a 1.0.5 BSV you’ll be able to submit both dust output transactions and consolidation transactions directly to a Miner.

Definition of a Consolidation transaction

In order for a transaction to be classified as consolidation by the BSV software, some strict conditions must be met. nChain and the SV team have done some exhaustive analysis to choose these criteria in order to ensure the mechanism isn’t gameable. We have erred very much on the side of caution and so there is plenty of room for the criteria to be relaxed in the future, but the current criteria enable a consolidation transaction to be constructed fairly simply.

A consolidation transaction is a transaction that reduces the number of UTXO’s by a margin that is more valuable for the network than the implied fee. Hence we allow consolidation transactions free from any fees.

The conditions for a consolidation transaction are as follows:

  • The scriptPubKey sizes from the transaction outputs spent are compared to the scriptPubKey sizes of the consolidation transaction. The sum of the former must be greater than the sum of the latter multiplied by the consolidation factor (configuration parameter: minconsolidationfactor)
  • The transaction input count must be greater than the transaction outputs count multiplied by minconsolidationfactor
  • All inputs must have a confirmation count of at least minconsolidationinputmaturity.
  • scriptSig sizes of the consolidation transaction have an upper limit of maxconsolidationinputscriptsize bytes long to prevent gaming.
  • Inputs spent in consolidation transactions must meet the old test of isStandard() if acceptnonstdconsolidationinput equals 0
  • The default value for maxconsolidationinputscriptsize is 150 bytes.
  • The default value for minconsolidationfactor is 20
  • The default value for minconsolidationinputmaturity is 6 (equivalent to one hour)
  • The default value for acceptnonstdconsolidationinput is 0 meaning only standard inputs allowed
  • Setting minconsolidationfactor to 0 disables the free consolidation transactions feature

The condition as the formula is:

c = minconsolidationfactor
m = minconsolidationinputmaturity
s = maxconsolidationinputscriptsize
a = acceptnonstdconsolidationinput
isFree = nInputs >= c * nOutputs
       && confirmationCount(input) >= m for all inputs 
       && sum(inputTxScriptPubKeyBytesLen[]) >= c * sum(outputTxScripPubKeytBytesLen[])
       && inputTxScriptSig <= s for all inputTxScriptSig
       && isStandardInput(input) for all inputs unless a == 1

As a general rule of thumb:

  • Consolidate at least 100 inputs to one output.
  • Only use standard p2pkh inputs or bare multisig with no more than 2 signatures.
  • Only use inputs confirmed for at least 6 blocks.
    • This rule can be gotten around simply by constructing the transaction using all available inputs but not broadcasting it until 6 blocks after you made it.

By following these guidelines you should fall well within the strict criteria. The worst that can happen if you don’t is that the transaction will get rejected with a ‘too low fee’ message in which case you can adjust it and try again.

The available set of transaction pricing models will ultimately be determined by miners and tested by market forces. This particular model is intended as a demonstration of what’s possible when restrictions are lifted. The SV team looks forward to seeing in what innovative ways nano-payments can be used.

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.