ELI5: the BSV Blockchain’s SPV Wallet

Imagine you’re using cash to make a payment, a common enough scenario. In the world of Bitcoin, Simplified Payment Verification (SPV, from section 8 of the Bitcoin white paper) is akin to ensuring the cash you’re using is legitimate. Let’s break this down using the analogy of a cash payment to explain how SPV works and the role of the SPV wallet as a reference implementation.

SPV: Verifying the cash’s legitimacy

When you receive cash, you want to be sure it’s no counterfeit. In Bitcoin terms, SPV helps verify that a transaction (the cash) is indeed real cash (a timestamped output in a transaction, in a block, on the blockchain). It does this through something called a Merkle proof using Merkle paths and block headers.

  • Merkle Paths: Think of the blockchain as a long hallway full of rooms (blocks) where each room has a wall of safety deposit boxes. Each transaction is a column of boxes on a wall and each input/output is a safety deposit box. A Merkle path helps prove that a particular column of boxes exists on the wall of a particular room without having to go to each room and check each wall.
  • Chain of Block Headers: Instead of having to go into every room of long hallway (i.e. have all the blockchain data) to verify a single transaction, SPV clients only need to look at the room sign (block headers). Each header is a summary of a block, including a reference to the previous block, creating a chain back to the very first block (the “genesis” block). This is much less data, around 65MB, compared to the full book, making it easier to handle.

Ensuring the cash can be used in future transactions

After verifying the cash isn’t counterfeit, you may also want to ensure it can be used again in future transactions (i.e. it’s not double-spent). SPV Wallets can do this with double-spend checks, confirming the BSV hasn’t been spent in a previous transaction, i.e. that the safety deposit box hasn’t been opened and emptied.

The SPV Wallet: a standard guide

The BSV Blockchain’s SPV wallet is a reference implementation, essentially a standard guide, showing how SPV can be implemented. It includes all the necessary components for SPV to work as well as some practical extra features:

  • A way to communicate directly with the network for fast transaction verification.
  • Best practices and technical standards for handling SPV checks.

This ensures anyone using an SPV wallet can verify transactions efficiently and securely, in line with Bitcoin’s original peer-to-peer vision.

True peer-to-peer exchange

Bitcoin was meant to facilitate direct electronic exchange, like Alice beaming Bob a transaction over Bluetooth without a trusted third party required to mediate the exchange. The SPV wallet, by following the reference implementation, enables this direct exchange on the BSV blockchain, including a special data envelope for the SPV check, allowing Bob to verify the transaction quickly and independently and even ensure it’s not double-spent if he chooses.

Making the BSV blockchain scalable

By allowing direct transactions with easy verification, SPV, particularly through the SPV wallet’s reference implementation, makes the BSV blockchain network more efficient. It eliminates the need for intermediaries in every transaction, pushing transaction validation to the edges of the network to keep it fast, efficient, and scalable.

Key takeaways

SPV and the SPV wallet, as a reference implementation, revive Bitcoin’s original vision on the BSV blockchain: a system where people can easily and securely pay each other directly. By simplifying transaction verification and adhering to a standardised approach, SPV tackles major challenges, ensuring BSV can handle more transactions and remain a practical option for daily use. This approach keeps BSV accessible and scalable, ready for the world’s needs.

AnalogyReality of SPV
Alice wants to pay Bob.Alice’s wallet makes a request to Bob’s SPV Wallet server to initiate a payment.
Alice gives Bob cash.Alice’s wallet constructs a transaction based on the response from Bob’s SPV Wallet server, signs it, and sends the transaction along with source transactions and their Merkle paths to Bob’s SPV Wallet server.
Bob checks cash is real using special pen.Bob’s SPV Wallet server inspects the source transactions and the payment transaction to see if anything is malformed. It also checks against his Block Header Service whether the derived Merkle roots match the expected values.
Bob is happy it’s probably real. 
Alice leaves.
Assuming all is valid the SPV Wallet server broadcasts the transaction to ARC.
Bob takes cash to bank later.A block is mined sometime soon.
Bank says cash is real and adds amount to Bob’s bank account.ARC sends a call-back to SPV Wallet server confirming the transaction has been mined into a block.

Table of content

Latest News

Stay in the loop

News, tips, guides, and industry best practices

Useful eBooks to download

Expand your knowledge about BSV and blockchain technology.

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

Send us a message and let us know about your needs.
Please contact [email protected]

Join Our
Community

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