Turing Completeness

1 min read

Turing completeness is a feature of a programming language or instruction set that can compute any computable algorithm. Simply put, if a programming language has the capacity for logical loops and conditionals, it is considered Turing complete. Turing completeness is named after Alan Turing, a pioneer of digital computing.

Almost all modern programming languages are Turing complete. Bitcoin’s scripting language, called Script, is one exception. Script is intentionally Turing incomplete to prevent computational loops from consuming too many resources for Bitcoin nodes. If Script were Turing complete, Denial of Service (DoS) attacks would be possible against the entire Bitcoin network.