Did you find our Merkle proof standardised format document too technical to read or comment on? In this edition of our TTDR (Too Technical, Didn’t Read) blog, Centbee co-founder and CEO Lorien Gamaroff explains which payment processors should use the Merkle proof standard and how it can add value to their business.
Merkle proofs enable Bitcoin SV businesses and wallets to implement Simplified Payment Verification (SPV), as described in section 8 of the Bitcoin whitepaper. Thanks to the properties of Merkle proofs, SPV allows a transaction recipient to prove that the sender has control of the source funds of the payment they are offering without downloading the entire blockchain. Merchants can choose to use SPV rather than waiting for a transaction to be confirmed at least six times before concluding the deal. Where the value of small transactions poses a relatively small risk to the merchant, it is more cost-effective for merchants to accept the SPV than to run their own Bitcoin node. Because the block header chain that underpins SPV is so small* and grows at such a nominal rate (about 4MB per year), a business can use simple hardware to generate it at a low cost instead of running their own network node.
* A wallet can store all necessary block headers in around 50MB – this covers the entire Blockchain (as of January 2020, with 80 bytes per block and approximately 620,000 blocks in the chain). The total grows linearly at about 4MB per year (i.e., it increases by 80 bytes with each block mined, regardless of the size of that block). Contrast this with the hundreds of gigabytes required to store the entire chain if SPV were not used.
Lorien Gamaroff: We haven’t implemented SPV into our services yet. At present, we do everything quite traditionally. We have our own nodes that listen to all transactions, and then we link those transactions to our users. This infrastructure is quite costly, and we’re trying to scale it down where possible.
LG: We plan to fully implement SPV into our Centbee wallet and other services. The implementation of SPV would cut out the need to retain and manage the entire set of blockchain data. And yet, we can only fully unleash SPV’s value once it has been implemented across the payments industry. And for that, we need standardisation of Merkle proofs. The Merkle proof standard will ensure that all wallets and payment services using SPV apply the same protocols – if everybody did it their own way, it would hinder interoperability.
Once all wallets and payment services are using SPV, it will improve the user experience in many cases. It would also mean that businesses won’t all have to run their own nodes, which entails the expense and management of extensive infrastructure. Offline transactions also become possible; this is important for point-of-sale transactions where network connectivity might be an issue.
At Centbee, we have massive servers that are listening to or broadcasting transactions. Because we’re not mining, this is solely a business expense. At the same time, running our own node provides us with other capabilities, such as providing APIs like TAAL are doing, as well as other B2B services. Even though we’re just a wallet right now, we want to have the option of offering B2B and Metanet services in the future.
LG: SPV makes the most sense in scenarios where you are receiving on-the-spot payments. It enables you to receive offline point-of-sale payments, such as when a customer wants to pay with their wallet on their phone, but they don’t have connectivity. In these cases, the merchant needs to tell whether a transaction is valid so they can hand over the customer’s cup of coffee while it’s still hot. For that, you don’t have to worry about the transaction IDs or what’s in the ‘OP_RETURN’, SPV gives you just what you need and liberates you from the expense of running a node.
I’m expressing SPV’s place within the context of payments because that’s the industry I’m most familiar with. As a caveat, I wouldn’t be surprised if the IoT world and Metanet find other ways to apply SPV.
LG: The kinds of payments businesses that must be interoperable with other businesses need to sit up and take notice. If you think of Centbee, we let you send money via Paymail, which means you’re sending money from one system to another or one business to another. If you are interacting with other companies, you need that process to be standardised so that everybody is doing the same thing.
It is important for software developers to understand the Merkle proof standard and participate in its public review. At Centbee, for example, we need interoperability between other companies’ applications, like MoneyButton and Twetch. To ensure the interoperability we need, we want to support and contribute to the development of industry standards.
LG: I am involved in the Paymail standard, which is very important to us, as we are trying to move away from addresses. It also supports the Financial Action Task Force (FATF) guidelines on the Travel Rule for payments. Centbee’s other co-founder and TSC committee member Angus Brown is involved in the Travel Rule standard. This standard will affect cross-border remittance services like our Minit Money business and non-custodial wallets like Centbee, ensuring we comply with local banking regulations.
We have been working closely with the South African Reserve Bank for several years to help them understand that Bitcoin can comply with their regulations. By being proactively involved in the standardisation and implementation of regulatory requirements within Bitcoin, we ensure that our business won’t run into trouble with the law.
The Merkle proof standard is currently open for public review. To leave comments, feedback or suggestions, please register here.