Peer-to-peer transactions were promised in the original Bitcoin plan but remain the key “missing piece” of the network, said Steve Shadders, nChain CTO and technical director of the Bitcoin SV Node project. That’s all about to change with “SPV Channels”—a new way for Bitcoin users to conduct secure P2P transactions directly between devices and still broadcast them to the network, while avoiding security pitfalls like double-spends.
Shadders continued his tradition as one of the first speakers at any CoinGeek event, giving the Technical Update at CoinGeek Live, which started in New York City and London today. He said the term “P2P transactions” was often misused, with many assuming this is the way Bitcoin transactions already happened (thanks to the white paper title).
His presentation announced three new packages: SPV Channels v1.0.0, mAPI (formerly Merchant API) v1.2, and Bitcoin SV v1.0.6, titled “Push”. All are currently in beta, Shadders noted, but said they were being released so developers would be able to “start playing with them” immediately.
P2P transactions on Bitcoin at last
The original version of Bitcoin (which Shadders described as “alpha” and “a prototype”) had the ability to send transactions to IP addresses (known as IP2IP) which was incomplete at the time and never developed properly. For this to work, a sender had to know the receiver’s IP address—something that’s usually not known and is hard to discover. A second problem: how exactly to connect to that IP and structure the transaction and manage to broadcast it to the network for confirmation, remained a problem for years.
If users are offline, or if communication is directly between devices, how can they still be broadcast to the network and transaction processors in a secure way? How could receivers be confident the sender wasn’t attempting a double-spend (sending the same coins in two different transactions) either intentionally or accidentally if a transaction wasn’t broadcast till some later point?
The SPV Channels method, as the name suggests, works hand in hand with simplified payment verification (SPV) and is an essential component in Bitcoin scaling. It’s an end-to-end messaging “nano-service” with push capability that operates over a private channel that requires only outbound connections. It’s similar to functionality in existing online messaging platforms, and Shadders likened it to IMAP email—you’ll still get all your messages even if you’re offline for a while.
He gave the following use case example. A customer and merchant find each other’s details via Paymail service discovery. The merchant then locates a processor’s (miner) mAPI via MinerID and uses it to request a fee quote. The merchant constructs a transaction and submits it to the customer, and the customer sends the transaction. The merchant then sends it to a processor via mAPI, and registers an SPV Channel URL for callbacks. This part of the process is where any double-spend attempt is detected, and the merchant is notified immediately (if online). Once the transaction is processed in a block, the processor/miner sends a merkle proof record to the SPV Channel, which the merchant keeps in their database. The merchant has the option to send that proof to the customer as well.
Shadders gave a live demonstration of SPV Channels on-stage, including a double-spend attempt which was instantly detected and flagged.
Features in all three new software releases all contribute to realizing Satoshi Nakamoto‘s original desire for a peer-to-peer transaction network, and assist with scaling. Bitcoin SV is the only blockchain transaction network with the ability to do this, while remaining legally compliant yet open, and able to scale massively at minimal cost.
New to Bitcoin? Check out CoinGeek’s Bitcoin for Beginners section, the ultimate resource guide to learn more about Bitcoin—as originally envisioned by Satoshi Nakamoto—and blockchain.