Looking for a needle in a haystack—that’s what it could be like, searching for Bitcoin transactions relevant to the contract code you’re running. But filtering techniques make it easy, and that’s the topic of this week’s “Bitcoin Class with Satoshi,” featuring sCrypt founder Xiaohui Liu and Bitcoin creator Dr. Craig S. Wright.
Why would you need to filter for specific transactions? As discussed in previous weeks, automated contracts running on Bitcoin may use the results of other transactions as inputs for new ones (or hashes of the information in them). You might also need to identify transactions of a certain type, or from a certain party, before you know what’s in them.
Filtering is a very useful topic, and something we hope to support in both ElectrumSV and ElectrumSV SDK. Looking forward to watching this. — rt12 https://t.co/0AmDLvq02V
— ElectrumSV (@ElectrumSV) September 13, 2021
Remember that Bitcoin transactions aren’t always payments. They can be signals, additions of data, triggers, or guarantees an action has taken place. Dr. Wright explains that in internet communications, receivers can differentiate between TCP and UDP packets from a message placed in their headers—it’s the same with Bitcoin. Parties can adopt a common template to structure their transactions, making it simple to filter them from the millions of other transactions passing through the network every day.
It would be great if Bitcoin developers could adopt the technique of putting filtering information in transaction headers. Companies like sCrypt could have their own standards, or there could be accepted common standards for all.
But how do you get people to start doing this? And how do you prevent them from abusing the technique, by mimicking others’ transaction data to make something appear to be what it isn’t? Bitcoin’s built-in economic incentives play a part here, and Dr. Wright stresses the significance of Bitcoin’s clear-text, open transaction records as ways external parties can monitor blockchain records (and identify bad actors).
Bitcoin “firewalls identity,” as he puts it, but still verifies the information in the transaction and thus guarantees the integrity of the data in any block that’s been processed.
“We’ve got to remember that the average user does not ever want to see the back end of Bitcoin. They don’t care.” That’s why we need to keep things like protocols and transaction templates simple. As for getting people to adopt and use standards, there are incentives for that as well. Dr. Wright refers to router/networking companies of the early internet era devoting much time to creating standards to make their systems interoperable.
From here, the conversation veers more towards the necessity for standards and common protocols on Bitcoin. This would enable developers to build better functionality on top of Bitcoin. And, further to the above point about users not caring about the back end, we shouldn’t get bogged down (again) in arguments over which standards are better, or who uses what. Some classic Craig Wright economic history returns here as well, with a reminder of why he doesn’t like the “Yap Stone” analogy for Bitcoin—and why the whole Yap Stone myth is bogus anyway.
This Bitcoin Class is more a call to action than an explainer since many of the points Dr. Wright makes will seem like common sense once you’ve heard them again. With filtering, micro-services and automation, we can gain so much more real value from the network than just create and trade pointless digital assets. However, there’s a lot of background work that needs to be sorted out first.
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.