Bitcoin SV is ‘Turing Complete’: Creating artificial life inside Bitcoin
Since 2015 there has been an ongoing debate on Bitcoin ’s capabilities to do complex computation and whether or not Bitcoin is “Turing-complete.” Unfortunately, many have stated that Bitcoin is not Turing-complete, and that it is not capable of complex computation and many more have accepted this but that is incorrect, in fact, and can be proven to be so. Writes Connor Murray, founder of Britevue, a blockchain verified consumer review service, for full article click here.
In March of 2018, Clemens Ley is the first to publicly back Dr. Wright’s claim and gives a presentation titled “Why Bitcoin is Turing Complete” at the Satoshi’s Vision conference in Tokyo. Clemens, a student of Automata Theory, came up with an independent proof of the thesis and presented on the proof here. He begins the presentation by stating that “many things that people think are impossible in Bitcoin can actually be done.” He then spends the presentation giving a practical application of using the blockchain as the tape needed to do Turing-complete computation. His presentation, at the time of this writing only holding 3,479 views, is worth careful study by anyone skeptical of the claims that Bitcoin is capable of Turing-complete computation. It is again in 2017 that Dr. Wright’s claims are validated by another independent researcher Konstantinos Sgantzos who publishes the paper “Implementing a Church-Turing-Deutsch Principle Machine on a Blockchain”.
The Game of Life: In 2019 Xiaohui Liu was at a Bitcoin SV meetup in San Francisco. He spoke briefly on how we hoped Bitcoin would provide a solution to multiple problems inherent to Silicon Valley companies.
Xiaohui’s project, sCrypt, was a fully functioning Bitcoin Script compiler in C++. Xiaohui has continually used the familiar language of C++ to show other programmers what is possible inside of Bitcoin Script.
An easy way to validate Wright’s claim would be to use Bitcoin Script to replicate a Turing-complete system such as the Rule 110 or Conway’s Game of Life. Xiahoui made this easy for us by releasing a boilerplate code for Conway’s Game of Life in C++ . The Game of Life is a cellular automaton that is played on a 2-dimensional grid.
The Game of Life is relatively simple and consists of four rules. The first three rules apply to cells that are populated (yellow), and the last rule applies to cells that are unpopulated (grey):
- Each populated cell with one or no neighbors dies, as if by solitude.
- Each populated cell with four or more neighbors dies, as if by overpopulation.
- Each populated cell with two or three neighbors survives. Each unpopulated cell with three neighbors becomes populated.
You can play with the Game of Life using this applet . The Game of Life is intriguing to academics and casual observers alike, because an initial configuration with this simple ruleset can create complex patterns and “lifeforms.” “Blocks,” “beehives,” “canoes,” and more are forms of still life that are found in the Game of Life. We even see dynamic “lifeforms” emerge such as a " glider gun ."
By creating an initial configuration on the blockchain one can observe how it evolves. Since Conway’s Game of Life is Turing-complete, one can replicate it on the Bitcoin blockchain, then we can have demonstrable proof that Bitcoin is, for all intents and purposes, Turing-complete. If you’re wondering why this hasn’t already been done in Bitcoin’s history, a quick look at the code in Bitcoin Script would make it apparent why. The script is quite large, and would not be possible on the BTC chain. Because Bitcoin SV is the only blockchain that implements Satoshi’s original design, this is only possible on Bitcoin SV.
Conway’s Game of Life live on the blockchain: Here is published the initial configuration of Conway’s Game of Life on a 4×4 board. We start with 3 populated cells:
An observer of the script in the transaction linked above would see that we have a game board that looks something like this:
00000000, 00000100, 00010100, 00000000
You can look at the scripthash of the script to see the second iteration on the game. Per the Game of Life rules, we will end up with a form of " still life " called a block in this transaction:
Or; 00000000, 00010100, 00010100, 00000000
Iterating on the game 5 more times keeps this form of stable still life seen in the Game of Life. We can see that it is possible to have a Turing-complete system running inside of Bitcoin, proving that Bitcoin itself is Turing-complete.