A system that in principle could be able to solve any computation problem.

In order to be called Turing complete, a system has to be able to do what a Turing machine — a theoretical machine developed by mathematician Alan Turing — can do.

Most computer programming languages in use today are Turing complete, but it is not necessary for blockchains to fit this requirement.

For example, Solidity, the programming language used to write Ethereum smart contracts, is Turing complete. Conversely, when a language is not Turing complete, it has some restrictions that prevent it from solving all kinds of computational problems.

Bitcoin is not Turing complete by design. That’s because it was designed as a cryptocurrency and just allows simple functionalities such as transferring values.

An important feature of a Turing-complete language is loops, which allow the programming language to do a set of instructions over and over again.

Bitcoin’s scripting language is not equipped with this. The reason this blockchain is not Turing complete is to prevent spams and network overload.

Join the thousands already learning crypto!