PR Newswire

LONDON, Dec. 17, 2020

LONDON, Dec. 17, 2020 /PRNewswire/ -- 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.