The “Theory of Bitcoin” masterclass series heads in a new direction this week, with Bitcoin creator Dr. Craig Wright. In this first episode in a new “Bitcoin Class” series, Dr. Wright joins Ryan X. Charles and sCrypt founder Xiaohui Liu for a deeper look at how someone could use Bitcoin Script to crowdsource a solution to the classic Traveling Salesman Problem, automating a payment to whoever finds the right answer.
Episode 1 elaborates on topics discussed in the previous regular episode of “Theory of Bitcoin.” As a stand-along episode, it doesn’t contain much explanation of the kinds of problems being solved, or many real-world scenarios where they might be used. If you’re a newcomer to the series, it’s probably best to go back one week to review the concepts, at least.
— Theory of Bitcoin (@theoryofbitcoin) March 1, 2021
Example: the Traveling Salesman Problem
The Traveling Salesman Problem is a classic systems optimization question, though in this episode it’s presented mainly as one example of a problem a Bitcoin Script coder might need to ask others to compute. First formulated in 1930 (before digital computers existed), it concerns calculating the shortest and most efficient route between various points on a map—it’s used not only in vehicle navigation and logistics, but also in other research fields like microchip design and in areas of DNA sequencing.
In this case, a Bitcoin user might need to find a solution to their particular question, and wish to “crowdsource” a solution. With Bitcoin Script, they could construct (and pre-sign) a transaction that allows external parties to calculate their own answer, submit it, and receive a payment if it matches the parameters the originator set.
How Bitcoin Script handles computation and its results
In short, we’re looking at ways to construct complex transactions using Bitcoin Script. These may take outputs from previous transactions, plus computed input from external machines, and use them as inputs to new transactions. It could involve a chain of transactions, transactions-within-transactions, multiple signers, time-locks, and conditional statements.
This way, most of the computing work that solves the initial problem happens on external systems, who include their results as part of new transaction inputs. Only the final answer is relevant, and that’s what completes the transaction, which is then processed and recorded on the blockchain.
As Dr. Wright says, “This is not about solving every problem on-chain… that’s a bit silly.” That’s a dig at Ethereum—and Charles points out that Ethereum’s structure would see it computing all potential scenarios and solutions to a problem on-chain, consuming unnecessary resources. Bitcoin instead prevents such waste (and expense) by processing and recording on-chain only the information that’s necessary.
Another concept previously discussed was that of the “unilateral contract”—or, an offer made by one party to the public in general (the everyday example offered last week was offering a reward to someone who finds a lost pet). Bitcoin Script allows you to code such an offer and leave the transaction open-ended, in the hope that an as-yet-unknown third party may solve a problem and complete the transaction. Dr. Wright also explains ways a correct answer may be determined.
There are all kinds of conditions and variables that can be set in initial transactions; waiting for later results to be matched and verified, and completed later. You could even create and sign payment transactions that aren’t funded, instead waiting for a payment input from someone else, before eventually paying out to someone else entirely.
The class also refers to concepts like truth tables, transaction DAGS, acyclic transaction graphs, the blockchain as a WORM (write-once-read-many) machine… and that favorite Dr. Wright topic, R puzzles.
Aimed at coders, but interesting for everyone
If the Bitcoin Class series becomes a regular thing, it might get some extra viewers if it takes a few minutes to briefly recap/explain some of the concepts and terminology, and perhaps present some potential use-cases. The first episode dives right into some complex topics, and just as the participants (well-experienced in Bitcoin development) look a little stumped at times, it’s easy for the ordinary watcher to get lost as well.
But don’t worry if you don’t follow everything. The possibilities Bitcoin Script allows are still unknown to many, even in the BSV world. There’s still plenty of room for creativity and a lot of undiscovered territory to explore, and even for non-coders it could trigger inspiration or even help solve some old mysteries. It takes someone like Dr. Wright to explain enough to get things rolling. These episodes might take a few watches before it clicks, but it’s a great start.
To watch previous episodes of the Theory of Bitcoin, subscribe to the Theory of Bitcoin YouTube channel here.
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.