Turing completeness is a term used to describe a machine's ability to solve any computational problem, no matter how complex, given enough time, memory, and instructions. The concept originated from Alan Turing's hypothetical machine, which he envisioned as a tape with binary code and a read/write head that could solve any computational problem.
A system or programming language is considered Turing Complete if it can replicate the capabilities of a Turing Machine, while a system that cannot do so is deemed Turing Incomplete. For example, a simple calculator is Turing Incomplete, as it can only perform limited calculations, while a programmable scientific calculator is Turing Complete, as it can handle diverse computational tasks.
In the context of blockchain technology, some applications are Turing Complete, while others are Turing Incomplete based on the scripting technology used. For instance, Bitcoin's scripting language is intentionally designed as Turing Incomplete to avoid potential problems, whereas Ethereum is built as a Turing Complete blockchain. Ethereum's Turing Completeness enables it to understand and implement diverse smart contracts and perform a wide range of tasks, provided it has the necessary instructions, time, and processing power.