Satoshi Nakamoto’s vision was for Bitcoin to become global electronic peer-to-peer cash. For this vision to become a reality, services and merchants that use Bitcoin need a faster means to process payments as the Bitcoin network became increasingly bigger. Satoshi’s solution is Simplified Payments Verification (SPV), which allows services to deal only with transactions that are relevant to them. In a recent video, Bitcoin expert Joshua Henslee breaks down SPV and how it can bring Satoshi’s vision into reality.
As Henslee noted, the Bitcoin white paper states that one doesn’t have to run a full Bitcoin node as a merchant. “You can just run a lite SPV node where you only have the block headers. Based off the block headers, you can know, given a certain transaction hash, that it’s in a block,” he pointed out.
In a payment to a merchant, the transaction made is not confirmed at first, and as such, it’s not in a block and has no block header. This brings up a need for the merchant to reassure that the customer isn’t scamming him (like writing a check without enough funds in your bank account).
A customer has his unspent transaction outputs (UTXOs), which can be looked up on the blockchain “with a combination of the transaction hash and the index of the output.” He then sends these raw transactions to the merchant who looks them up on the block headers based on the Merkle root to validate that they are in a block.
While this allows the merchant to ensure that the UTXOs are in a block, they can’t ascertain that they haven’t been sent to other users. But according to Henslee, just as with the check system, very few customers are fundamentally dishonest and are out to commit fraud. In addition, the wallets will play their part by not allowing the users to hold UTXOs that are already spent.
Once the merchant has confirmed the UTXOs are on a block, they are then broadcast to the transaction processors.
SPV allows not only the merchants to quickly process Bitcoin payments but also for the customers to make payments offline.
“The key takeaway is to know that given the block headers and given transaction hashes, a merchant software can check, due to the Merkle root being in the block, [whether] a transaction is in a given block header,” explained Henslee.
Head over to Joshua Henslee’s YouTube channel for more Bitcoin SV Development Tutorials.
Learn more about Bitcoin investments with this new ebook, Investing in Blockchain: Better data for a better world
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.