Ethereum And Turing-complete Programming

Ethereum has become a blockchain platform that is second to only Bitcoin in terms of popularity among cryptocurrency investors and blockchain enthusiasts. When Vitalik Buterin first proposed and then advanced the idea of Ethereum a major selling point was improvements on the Bitcoin blockchain. One of these improvements was the use of a Turing-complete programming language. This helped to set Ethereum apart from its more popular rival.

Even though Ethereum has been a success, some debate has been fostered over the suitability of its Turing-complete programming. We’re going to take a deeper look at this subject here, and also address something known as state or “rich statefulness” as it applies to Ethereum.

What is Turing-Complete?

The most common and basic definition of a Turing-complete programming language is any language that is able to compute anything computable given enough resources to do so. The name is a tip of the hat to Alan Turing, the legendary mathematician and computer scientist who helped break the code of the German Enigma machine during WWII.

That definition may be a little too dense, so let’s compare Ethereum with Bitcoin. The Bitcoin blockchain would not be said to be Turing-complete because it only provides for the distribution of cryptocurrency. Ethereum, on the other hand, is often called a “World Computer” because it has the ability to support so-called Smart Contracts.

Smart Contracts work according to the following principle. The developer of an app writes the application and is able to include specific rules. Once the rules are satisfied, the desired outcome is achieved. All of this happens without third-party involvement. An example that is commonly used to illustrate this principle is the automated function of a vending machine.

With a Smart Contract it is possible to create a scenario where the machine can autonomously manage its function. For example, rules are written that stipulate what happens when the product in the vending machine reaches a certain level. Once the rule is satisfied, i.e. there are only five bags left of a specific potato chip, the Smart Contract kicks in and more inventory is ordered. Payment for the order is perhaps made with Ether, and all the owner of the machine must do is add the chips to the machine when they arrive.

This is a very basic example of a very expansive concept. Smart Contracts have the potential to elevate the usefulness of blockchains. Indeed, they have already done so. This type of system requires a Turing-complete programming language.

Here is the basic concept behind Alan Turing’s machine. It should be able to run any conceivable algorithm provided that it has enough time and enough resources. Unfortunately, with great advances in technology there is often a price to be paid. The detractors of Turing-complete programming as used in Ethereum see decidability as a sacrifice that is made by the Ethereum blockchain.

State and Turing-Complete Programming

“Rich Statefulness” is sometimes simply referred to as state. The term was coined by Vitalik Buterin in an effort to fire back at those who have criticized the use of Turing-complete programming with Ethereum. What this term means is that Ethereum has the ability to remember things at the blockchain level. It is this ability to “remember” that makes Smart Contracts possible. The Ethereum blockchain has to have the ability to track all of the functions of a contract and make sure they are being fulfilled.

This type of state is not possible with the Bitcoin blockchain. Bitcoin would be considered to have no state because there is no need to accomplish anything more than preserving a record of transactions made with the cryptocurrency.

Vitalik Buterin has stated that he sees Turing-complete programming as the very foundation of Ethereum. He believes that the possibilities it provides are beyond anything that has been conceived by a blockchain platform to date. Buterin may be right, but the suitability of Turing-complete machines to blockchain development will only be validated by time and experimentation.

Leave a comment