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

Published On

30 Sep 2020

“A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution… “

Satoshi Nakamoto

This is the very first sentence of the Bitcoin whitepaper.

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. It was called “IP transactions” and it demonstrated the type of peer interactions that is referenced in that sentence. When speaking about peers in a Bitcoin context, it is common to assume it is a reference to nodes. Nodes are in fact peers to each other. However, there is more than one type of peer in Bitcoin. We can see from the general definition of the word that a set of peers is defined by commonality.

This doesn’t preclude there being more than one set of peers. The peers referenced in the first sentence of the whitepaper are the users of the Bitcoin network, not the nodes. What use is the Bitcoin network without users, preferably billions of them?

The IP Transaction feature demonstrated exactly that direct user to user interaction which, when coupled with SPV (Simplified Payment Verification – referenced in section 8 of the Bitcoin whitepaper) light clients, is precisely what allows Bitcoin to scale. It is a very simple scaling principle: Don’t do work that isn’t relevant to you. It is SPV that allows users to ignore every part of the Bitcoin transaction history that isn’t relevant to them whilst still obtaining the security benefits of Bitcoin.

It was however a rudimentary implementation, a proof of concept if you will. And even Satoshi acknowledged that, in its original form, the IP Transactions implementation had some real problems:

  • How peers will find each other
  • Insecure connections
  • NAT traversal
  • Susceptibility to man-in-the-middle attacks

Additionally, it didn’t complete the picture as is common for prototypes. It didn’t have any facility for obtaining, verifying or passing on SPV merkle proofs.

Today, the BSV Infrastructure Team are releasing three beta products simultaneously that, along with several other services, provide all the tools required to reimplement the IP2IP vision and address all of these well known problems in the process. 

BSV v1.0.6 (release code name “Push”)

  • New functions to provide and verify Merkle proofs
  • ZeroMQ notifications on double spend detection
  • (WIP) p2p broadcast of double spend detection to enable network wide awareness.

mAPI v1.2

  • Push based callback notifications for merkle proofs and double spends

SPV Channels v1.0.0 

  • An end to end encrypted messaging nano-service with push capability that provides an always on point of presence for a Bitcoin user and provides a unified interface for handling both online and offline messaging.
  • As an always on service, it solves the NAT traversal problem by enabling any two parties to communicate in a private channel via a blind intermediary such that only outbound connections are required. This is similar in principle to how services like TeamViewer, Skype and Zoom work seamlessly even between users that are behind firewalls but with full e2e encryption.

SPV Channels is a new offering from the BSV Infrastructure Team. Think of Channels as something similar to an IMAP mail server. If you’re offline, it collects messages for you, but when you’re online it passes them straight through to you. If you and another party are both online the experience is similar to having a direct connection, but e2e encrypted by default and without any of the horrible mail header format requirements. It can integrate with Paymail but the server itself has no visibility of the content and is completely agnostic to it. Other than that, it’s not very Bitcoiny at all. But it does fill a critical gap in the workflow of a peer 2 peer Bitcoin interaction.

The uses of SPV Channels go beyond that – to almost any off-chain coordination problem in Bitcoin and even outside of Bitcoin, such as;

  • Coordinating multisig or threshold signature groups
  • Spend notifications for wallets
  • Generic notification for anything
  • A base layer for a new generation of self sovereign email and/or instant messaging.

A use case with mAPI

Early versions of mAPI (formerly known as Merchant API) solved a couple of key problems like fee discovery and direct-to-miner transaction submission. Getting responses from miners about acceptance is simple as it can come as a direct response to the submission request. But there are events that happen after that user-miner connection is closed, such as receiving an SPV proof when the transaction is mined into a block. We put in a rudimentary mechanism of getting updates by polling mAPI for transaction status. But this is inefficient and for a particular use case, learning about double spend attempts, it is time critical so a better mechanism was required. 

Enter the “push” model. Registering for a callback on an event is a common programming paradigm. SPV Channels enables this for user-miner interaction. When registering for a callback, you typically need to provide an always-on URL for the callback to go to. This isn’t something users on a mobile phone are likely to be able to provide. 

Enter SPV channels. A hosted service (or self-hosted if you like) that acts as a channel for the user to receive messages. If the user is online, they’ll receive the messages straight away. If they are offline, the messages will be stored and forwarded as soon as the user comes online. In fact, the first internal version of SPV Channels was unimaginatively named “Store and Forward”.

So the workflow goes something like this:

  1. Customer and Merchant find each other via Paymail service discovery; and establish two way encrypted communications via SPV Channels.
  2. Merchant finds a miner’s mAPI via MinerID.
  3. Merchant requests a fee quote from miner via mAPI.
  4. Merchant sends customer a transaction specification via BIP270 including the required fee, payment amount and any other requirements for the transaction.
  5. Customer sends the transaction (possibly along with merkle proofs and other requested info) to the merchant.
  6. Merchant submits the transaction to miner via mAPI and registers an SPV Channel URL for callbacks.
  7. If a double spend is detected, the miner will send a message to the SPV Channel which the Merchant will receive immediately if online.
  8. Once the transaction is mined into a block, the miner sends a merkle proof to the SPV Channel – which the merchant wallet can retrieve and store in its database.
  9. Optionally, the merchant sends the merkle proof back to the customer via their SPV Channel.

Who pays for all these services?

In the early days, the costs of operating these services will likely be minimal so someone will probably offer them for free. But eventually, the cost of such hosted services will add up. Wallets, Miners and payment processors might absorb some of those costs as part of their service offering.

But there is another option. There are a number of new service offerings here, so it’s worth listing them:

  1. Hosted Paymail
  2. Hosted SPV Channels service (could be provided by paymail provider)
  3. Merkle proof provision (not necessarily from the miner that mines the transaction)
  4. Double spend notification (can be any or many miners monitoring for you)

It will be interesting to see how the BSV ecosystem develop and what kinds of businesses decide to offer these services.

Assume for some reason that you request each of the 4 services from 4 different service providers, all of them are services provided in the context of a transaction. This is a perfect use case for adding nano-payment outputs to a transaction. One or ten satoshis to each service provider for a one off service with no implied lock-in to each which creates a strong incentive for them to provide the service well.

The future of SPV Channels

The initial implementation of SPV Channels released today provides the basic framework and is currently only optimised for desktop. Our near term priorities are to get mobile client libraries available that leverage the push capabilities of iOS and Android devices. Further integrations with Paymail are required and, of course, we need horizontally scalable implementations. We can definitely see the provision of a combined channels/paymail hosted service being in high demand and look forward to seeing who is the first to offer it.

The future of SPV workflows

In what we have presented today, we have offered solutions to the blocking issues for the complete SPV workflow. Many of these solutions can be improved upon and optimised, but the end to end use case is possible right now with these components. We expect this entire workflow to be the subject of much discussion by the business operators on BSV and quite possibly changes or complete alternatives proposed and adopted. But for now we have a base, a starting point that developers of consumer targeted products can begin building upon right now.

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.