Is Bitcoin “Turing Complete“? Can Bitcoin scripts maintain state, or perform recursive loops, and what do these claims even mean? What relevance does Wolfram’s cellular automata have to Bitcoin, why does Dr. Craig Wright like the Forth programming language, and why is it always important to learn as much as you can about as many topics as possible? Find out by watching “Theory of Bitcoin #5” on Computation.
This video series between Bitcoin creator Dr. Craig Wright and Money Button’s Ryan X. Charles is becoming essential background knowledge for anyone looking to truly understand Bitcoin. Even the diversions along the way contain enough truth to make life more fulfilling, and are educations in themselves. For anyone feeling a bit daunted at the prospect of a two-hour discussion on computer science concepts… don’t be.
The Turing Completeness Issue
Much of this episode’s length is devoted to the topic of Turing Completeness. Over time this has become one of blockchain’s slightly higher-level tropes, with the question “Is Bitcoin Turing Complete?” both asked and answered by people who know, people who don’t know, and people who think they know. “There was a lot of misunderstanding about this early on,” says Charles.
It’s important because “Turing Completeness”—both in a blockchain’s native programming language and the network itself—has become a key part of the pitch for Ethereum and other so-called computation-focused blockchains over Bitcoin. The issue takes up a large percentage of the time in this episode, and that involves explaining a lot of other issues too.
A commonly-used understanding is that a “Turing Machine,” as defined by computer science pioneer Dr. Alan Turing, is a theoretical “automatic machine” that can compute any data fed into it on an infinite tape, thus simulating any other machine without extra instruction, and that “Turing Completeness” is a language/system that can perform this task. Here’s one example that explains why Ethereum is Turing Complete, while Bitcoin doesn’t need to be:
But as Dr. Wright points out, it’s more about how computation is performed. Moreover, since Turing’s computing models were mainly theoretical and have been both debated and added to many times over the years, the exact meaning often gets lost.
Both Wright and Charles take issue with the inclusion of “infinite” in the definition, saying this was an interpretation added years later, but has become part of the widely-accepted meaning. However Turing himself never stipulated this. In fact, as Dr. Wright says, running a script into infinity is neither possible nor desirable. There are always limits on resources (financial and otherwise) and those performing computation are usually looking for a result.
It’s “absolutely asinine” to say Bitcoin isn’t Turing Complete because a script can’t run infinitely, Dr. Wright says. People confuse “infinite” with “unbounded,” with the latter being far smaller in scope.
Arguing that Ethereum is more desirable for builders than Bitcoin for this reason is one example of how technological debates often become bogged down in misconceptions, marketing slogans, and questions that aren’t even relevant or valid.
In blockchain in particular, people are often trying to solve the wrong problem, or a problem that doesn’t need solving… or one that doesn’t exist at all. People see what they think “should be” instead of what is. They form arguments based on commonly “known” paradigms or historic examples that never actually existed, or use definitions and facts not present in the source material.
Examples of these include other common technology memes like The Singularity, Artificial Intelligence, Decentralization and “Censorship-Resistance,” or the notion that venture funding must precede serious business-building, or that “digital gold” is something anyone actually needs.
So what’s the difference between Bitcoin and Ethereum?
OK then, so is Bitcoin Script “Turing Complete” or not? Dr. Wright has written papers saying it is, so how does he explain it?
The too-simple summary of that answer is that you can take the outputs of any Bitcoin transaction and feed them into the next one as inputs. Bitcoin Script (at least, as it exists in BSV) can compute anything and produce a provable state, the signature of which can be sent to the next block and utilized for something else. Though one stage of the computation must be performed within the block confirmation time, its result is ready for the next stage.
Data may be added to the next transaction that only computes if the prior information is already there on-chain, or it will fail to validate. Building using Script and external mechanisms in this way is called an “overlay network”—and, if that doesn’t fit your definition of theoretical Turing Completeness, it becomes irrelevant anyway since Bitcoin can perform any computational task required of it.
In claiming Turing Completeness built into its on-chain computation, Ethereum subtracted scalability, says Charles. Dr. Wright likens its efforts to a programmer who uses every thread of a multi-threaded system to perform the same task. No programmer would ever do this, as it would be considered redundant and inefficient. Instead, the better way to perform the task would be for each thread to handle something different, producing more results. That’s how Bitcoin works.
This episode also features several interesting diversions into the “Silicon Valley religion” and whether anyone actually thinks about it enough to be serious, socialist “equality” versus capitalist competition, the myth of machine agency, whether Bitcoin is “antifragile,” why the laws of physics don’t apply to business despite what some think, and an explanation of Distributed Autonomous Corporations (DACs). There’s even the start of a recommended reading list for anyone looking for a more well-rounded education, featuring everyone from Fukuyama to Lenin and Orwell.
The Theory of Bitcoin series isn’t just interesting for what it says about Bitcoin, but often for what it doesn’t. Viewers can gain a deeper insight into the concepts and historic examples that led to Bitcoin’s creation, and use them as a guide to what comes next. The series isn’t just helpful, it can actually guide you towards building a better future—something we all need right now.
Subscribe to the Theory of Bitcoin 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.