Turing complete programming language
When "Turing complete" is used as a qualifier for a programming language or system, the term implies that the language works based on a sense of logic that is familiar and easily understandable to most people.
Ethereum is considered to be a Turing complete programming language, and it is this attribute that enables Ethereum to be attractive for hosting smart contracts. When Vitalik Buterin first announced the Ethereum project on Bitcoin Forum, he claimed, "Ethereum is a modular, stateful, Turing-complete contract scripting system . . ." On the other hand, this attribute of supporting a broader array of functions may cause Ethereum to be less secure or predictable.
In contrast to Ethereum, bitcoin itself is widely considered not to be Turing complete, primarily because it cannot be programmed to use its outputs as inputs to its own functions. In other words there is no looping in bitcoin. Bitcoin's blockchain is limited in the types of contract information that it can record - essentially payment and transfer information.
- Ethereum: Welcome to the Beginning. Bitcoin Forum.
- Who Will Pay for Turing-Complete Smart Contracts?. Coindesk.
- Ethereum: Turing-Completeness and Rich Statefulness Explained. Hackernoon.