Turing Completeness: What Is Turing Completeness?Turing completeness is a computer science concept that describes whether a system can perform any computation that a general-purpose computer can perform, as long as it hasTuring Completeness: What Is Turing Completeness?Turing completeness is a computer science concept that describes whether a system can perform any computation that a general-purpose computer can perform, as long as it has

Turing Completeness

2026/08/07 18:01
#Intermediate

What Is Turing Completeness?

Turing completeness is a computer science concept that describes whether a system can perform any computation that a general-purpose computer can perform, as long as it has enough time and memory.

In crypto, Turing completeness usually refers to whether a blockchain’s smart contract environment can support flexible, general-purpose programs.

A Turing-complete blockchain execution environment can run complex logic such as loops, conditional statements, state updates, and multi-step contract interactions.

This matters because smart contracts are not only simple payment instructions.

They can power decentralized finance, token launches, lending markets, automated trading pools, staking systems, governance tools, games, identity systems, and many other on-chain applications.

The Ethereum Whitepaper explains that the Ethereum Virtual Machine is Turing-complete, meaning EVM code can encode any computation that can be conceivably carried out.

That flexibility is one reason Ethereum-style smart contract networks became important for decentralized applications.

However, Turing completeness also creates risk because more flexible code can be harder to secure, harder to audit, and easier to misuse.

In blockchain systems, programmability must be balanced with gas limits, execution costs, security controls, and network performance.

This is why Turing completeness is one of the most important ideas behind modern smart contract platforms.

Why Turing Completeness Matters in Crypto

Turing completeness matters in crypto because it determines how expressive a blockchain’s contract system can be.

A simple transaction system can send value from one address to another.

A more programmable system can define custom rules for how value moves, when it moves, who can move it, and what conditions must be met first.

This makes it possible to build decentralized applications that behave like on-chain software rather than simple payment scripts.

For example, a Turing-complete smart contract system can support lending logic, liquidation rules, governance voting, automated market making, token vesting, NFT marketplaces, oracle-based settlements, and complex treasury controls.

Without general-purpose programmability, many DeFi and Web3 applications would need to be much simpler or rely on off-chain infrastructure.

For traders, Turing completeness matters because it explains why some crypto networks support deep DeFi ecosystems while others focus mainly on secure value transfer.

For developers, it matters because it defines the range of applications they can build on-chain.

For users, it matters because programmable contracts can create both useful financial tools and serious security risks.

A blockchain that supports complex contracts can unlock innovation, but it can also expose users to bugs, exploits, governance mistakes, and unsafe contract interactions.

How Turing Completeness Works in Smart Contracts

A smart contract is a program that lives on a blockchain and executes according to rules written in code.

The Ethereum smart contract documentation describes a smart contract as a program that runs at an address and contains data and functions that can execute when it receives a transaction.

In a Turing-complete smart contract environment, contracts can make decisions using conditional logic.

They can repeat actions through loops.

They can store and update state.

They can call other contracts.

They can calculate values based on user input, contract balances, oracle data, governance settings, or previous transactions.

This makes smart contracts more like programmable financial machines.

For example, a lending contract can check a borrower’s collateral ratio, calculate interest, allow borrowing, trigger liquidation, and update balances without a traditional middleman.

A decentralized trading contract can calculate swap output, charge a fee, update pool reserves, and emit transaction events.

A governance contract can count votes, check quorum, schedule execution, and trigger protocol changes after a time delay.

These actions require a level of programmability that goes beyond simple payment validation.

Turing Completeness and the Ethereum Virtual Machine

The Ethereum Virtual Machine, often called the EVM, is the execution environment that runs smart contract code on Ethereum and many EVM-compatible networks.

The official Ethereum Virtual Machine documentation explains that the EVM computes state changes from block to block by executing transactions and smart contract instructions.

The EVM is important because it gives developers a shared environment where contract logic can run predictably across network nodes.

When a user sends a transaction to a smart contract, every validating node can execute the same logic and agree on the resulting state change.

This shared execution is what allows decentralized applications to operate without a single central server.

The EVM’s Turing-complete design means developers can write many kinds of programs.

These programs are usually written in high-level languages such as Solidity and then compiled into EVM bytecode.

The official Solidity website describes Solidity as a statically typed programming language designed for developing smart contracts that run on Ethereum.

This development model helped make smart contracts more accessible to programmers who wanted to build DeFi protocols, token systems, and decentralized applications.

At the same time, EVM programmability requires careful design because every contract action has cost, risk, and execution limits.

Turing Completeness vs Turing Incompleteness

A Turing-complete system can express general-purpose computation.

A Turing-incomplete system is deliberately limited and cannot express every possible computation.

In crypto, this difference is often shown by comparing general-purpose smart contract environments with more limited scripting systems.

Bitcoin Script is a well-known example of a more limited scripting system.

The Bitcoin Developer Guide describes Bitcoin Script as a Forth-like stack-based language deliberately designed to be stateless and not Turing complete.

The same guide explains that this design makes the system less flexible but more predictable, partly because it does not support loops or gotos.

This is an important design tradeoff.

A Turing-complete system gives developers more power.

A Turing-incomplete system can reduce complexity and make certain security properties easier to reason about.

Neither approach is automatically better in every situation.

A blockchain designed mainly for sound money and secure settlement may choose limited scripting.

A blockchain designed for broad programmable applications may choose a Turing-complete execution environment with resource limits.

Why Gas Is Needed in Turing-Complete Blockchains

Gas is a fee and resource-metering system used to control computation on smart contract networks.

Gas is especially important for Turing-complete systems because Turing-complete programs can contain loops and complex logic.

Without a resource limit, a badly written or malicious contract could run forever or consume too much network capacity.

Gas solves this by requiring users to pay for the computational work their transactions consume.

If a transaction runs out of gas, execution stops and the transaction may fail while still consuming the gas already spent.

The Ethereum smart contracts documentation explains that deploying a smart contract requires gas, just like a normal transaction requires gas.

Gas makes the network more resistant to spam and infinite computation.

It also forces developers to think about efficiency.

A contract that is theoretically valid may still be impractical if it costs too much gas to use.

This is why Turing completeness on a blockchain is not the same as unlimited computation.

On-chain computation is always constrained by gas, block limits, user costs, and network capacity.

Turing Completeness and Loops

Loops are one of the easiest ways to understand Turing completeness.

A loop allows a program to repeat an action until a condition changes or a limit is reached.

Loops are useful because many applications need repeated operations.

For example, a contract might need to process a list of voters, distribute rewards, update positions, or calculate values across multiple entries.

However, loops are risky on blockchains because every repeated operation costs gas.

The official Solidity security documentation warns that loops without a fixed number of iterations should be used carefully because they can grow beyond the block gas limit and cause transactions to stall.

This is one reason smart contract developers avoid unbounded loops.

A loop that works when there are 10 users may fail when there are 100,000 users.

Bad loop design can lock protocol functions, block withdrawals, or make important maintenance operations impossible.

Good smart contract design usually limits loop size, uses batching, separates work across transactions, or relies on efficient data structures.

Turing Completeness and State

State means the stored information that a blockchain or smart contract keeps over time.

In crypto, state can include balances, ownership records, collateral amounts, governance votes, user positions, token allowances, and protocol parameters.

Turing-complete smart contracts are powerful because they can read, change, and depend on state.

A DeFi lending contract can store each user’s supplied assets and borrowed assets.

A staking contract can store deposit amounts, reward debt, lock periods, and withdrawal status.

A token contract can store balances, allowances, roles, and total supply.

State is what makes contracts useful across many transactions rather than only within one isolated computation.

However, state also creates complexity.

If a contract updates state in the wrong order, it may become vulnerable to reentrancy, accounting errors, or unexpected interactions.

If state grows too large, some operations may become too expensive to run.

If state variables are poorly designed in upgradeable contracts, future upgrades may corrupt stored values.

Because of this, Turing completeness must be paired with careful state management.

Benefits of Turing Completeness in Crypto

The first benefit of Turing completeness is flexibility.

Developers can build many types of applications without needing a new blockchain for every use case.

The second benefit is composability.

Smart contracts can interact with other smart contracts, which allows protocols to combine lending, trading, staking, governance, and oracle data.

The third benefit is automation.

Contracts can execute rules automatically when users submit transactions that meet the required conditions.

The fourth benefit is transparency.

Contract code and transaction results can often be inspected on-chain, allowing users and auditors to review behavior.

The fifth benefit is permissionless innovation.

Developers can launch new protocols and tools without asking a central platform to approve every idea.

The sixth benefit is programmable finance.

Assets can be governed by rules that are enforced by code rather than only by legal agreements or manual operations.

These benefits explain why Turing-complete smart contract platforms became central to DeFi, NFTs, DAOs, and many Web3 applications.

Risks of Turing Completeness in Crypto

The first risk of Turing completeness is greater attack surface.

More expressive code can create more ways for something to go wrong.

The second risk is smart contract bugs.

A small coding mistake can lead to stolen funds, frozen assets, broken accounting, or failed governance execution.

The third risk is gas inefficiency.

Complex code may become too expensive for users, especially during network congestion.

The fourth risk is unpredictable interaction between contracts.

A contract may behave safely alone but become risky when connected to other protocols, tokens, or oracles.

The fifth risk is denial of service through expensive operations.

If a function depends on too many storage entries or external calls, it may become impossible to execute reliably.

The sixth risk is user misunderstanding.

Users may approve contract interactions without understanding what the code can do with their tokens.

Turing completeness makes crypto applications powerful, but it also makes due diligence more important.

Turing Completeness and DeFi

DeFi depends heavily on Turing-complete smart contracts.

Lending markets need code that tracks deposits, loans, collateral ratios, interest rates, liquidations, and reserves.

Automated trading protocols need code that calculates swap prices, pool balances, fees, and liquidity provider shares.

Derivatives protocols need code that manages margin, funding rates, settlement, oracles, and liquidation engines.

Yield vaults need code that accepts deposits, deploys strategies, compounds rewards, and processes withdrawals.

Governance systems need code that handles proposals, delegation, voting, quorum, timelocks, and execution.

These applications are possible because smart contracts can express detailed rules and preserve state across time.

However, DeFi also shows the danger of complex programmable money.

Many DeFi losses have come from contract bugs, oracle manipulation, governance attacks, unsafe upgrades, and composability failures.

For this reason, users should not assume that a protocol is safe only because it is decentralized or automated.

Code can enforce rules, but bad rules or flawed code can still cause losses.

Turing Completeness and Tokens

Turing completeness also affects token design.

A simple token can support balances and transfers.

A programmable token can add approvals, minting rules, burning rules, transfer restrictions, role-based permissions, staking logic, fee logic, rebasing, vesting, or governance rights.

This flexibility allows developers to create many different token models.

It also creates more risk for users.

A token contract may include owner permissions, blacklist functions, pausing functions, upgradeability, transfer taxes, or hidden minting powers.

Users who only look at a token symbol may miss important contract-level risks.

In a Turing-complete environment, tokens can be much more than simple balances.

They can be programmable financial instruments whose behavior depends on code.

This is why users should check token contracts, permissions, audits, liquidity, and upgrade controls before trading unknown assets.

Turing Completeness and NFTs

NFTs also benefit from Turing-complete smart contract systems.

An NFT contract can define ownership, transfer rules, metadata updates, royalties, minting phases, allowlists, reveal mechanics, and access rights.

More advanced NFT systems can interact with games, lending protocols, identity tools, ticketing systems, or real-world asset records.

This is possible because the smart contract can store and update more than a simple ownership entry.

However, NFT programmability also creates risk.

Metadata may change if the contract allows updates.

Minting functions may be abused if access control is weak.

External links may break if metadata is stored off-chain.

Royalty logic may not be enforced consistently across all marketplaces and contracts.

For NFT users, Turing completeness means the contract’s code matters as much as the image or collection name.

Turing Completeness and DAOs

DAOs, or decentralized autonomous organizations, often rely on Turing-complete smart contracts for governance.

A DAO may use contracts to manage token-weighted voting, proposal creation, quorum rules, treasury spending, delegation, and execution delays.

These governance systems require conditional logic and persistent state.

For example, a proposal may only pass if enough voting power supports it and the quorum requirement is met.

After that, a timelock may delay execution so users can review or exit before the change takes effect.

This kind of governance automation is difficult to express with simple payment scripts.

Turing completeness makes DAOs more flexible, but it also makes governance attacks more serious.

A malicious proposal, flawed voting contract, or compromised governance key can affect an entire protocol treasury.

Users should evaluate DAO rules, voter concentration, execution permissions, and emergency controls before relying on governance promises.

Turing Completeness and Oracles

Oracles bring external data into smart contracts.

Turing-complete contracts often need oracle data because they make decisions based on prices, rates, events, or off-chain conditions.

A lending protocol may need a price oracle to decide whether collateral is safe.

A derivatives protocol may need an oracle for settlement.

A prediction market may need an oracle to resolve outcomes.

Oracle integration makes contracts more useful, but it also creates new risk.

If the oracle reports a bad price, the contract may execute the wrong action.

If the oracle is delayed, manipulated, or unavailable, liquidations and settlements may become unfair.

Turing completeness lets contracts react to data, but it does not guarantee that the data is correct.

This is why oracle design is a core part of smart contract security.

Turing Completeness and Composability

Composability means that smart contracts can connect with other smart contracts like building blocks.

A DeFi app can use a token contract, price oracle, lending market, trading pool, governance contract, and yield vault in one larger system.

This is one of the strongest advantages of Turing-complete blockchain environments.

Developers do not need to rebuild every function from scratch.

They can connect to existing protocols and create new products faster.

However, composability can also spread risk.

If one protocol fails, other protocols that depend on it may also suffer.

A bad oracle price can affect lending, derivatives, vaults, and liquidations at the same time.

A token bug can affect every protocol that accepts that token as collateral.

Composability turns smart contracts into shared infrastructure, which makes security review even more important.

Turing Completeness and Security Audits

Security audits are especially important for Turing-complete smart contracts.

An audit reviews code for vulnerabilities, logic errors, access-control problems, accounting mistakes, gas risks, and unsafe assumptions.

Because smart contracts can hold real assets, a bug can have direct financial consequences.

Turing-complete code can be complex enough that even experienced developers may miss edge cases.

Audits help reduce risk, but they do not guarantee safety.

A contract can be audited and still contain unknown bugs.

A protocol can be safe at launch but become risky after upgrades, integrations, or governance changes.

Users should treat audits as one layer of protection, not as a complete guarantee.

Other important safety signals include bug bounties, open-source code, battle-tested contracts, timelocks, conservative permissions, and active monitoring.

Turing Completeness and Formal Verification

Formal verification is a method of mathematically checking whether code satisfies specific properties.

It can be useful for high-value smart contracts because ordinary testing cannot cover every possible input and state.

A formally verified contract may prove that certain rules always hold under defined assumptions.

For example, a verification process may try to prove that total balances cannot exceed total supply or that only authorized addresses can call a critical function.

Formal verification is powerful, but it is not magic.

The proof is only as good as the specification being checked.

If the specification misses an important risk, the verified code may still be unsafe in practice.

Turing-complete contracts can be harder to verify than simpler systems because the possible states and interactions are more complex.

This is another example of the tradeoff between programmability and simplicity.

Turing Completeness and Scalability

Turing-complete smart contract platforms face scalability challenges because every node may need to verify contract execution.

Complex computation can be expensive when it is repeated across many nodes.

This is why blockchains do not work like ordinary cloud servers.

They prioritize shared verification, consensus, and security over unlimited computation.

Layer 2 networks, rollups, optimized virtual machines, and modular blockchain designs are often used to improve scalability.

These systems can move some execution or data handling away from the base layer while still trying to preserve security guarantees.

For users, scalability affects gas costs, transaction speed, and application usability.

For developers, scalability affects contract architecture and where different parts of an application should run.

Turing completeness makes rich applications possible, but scaling those applications requires careful infrastructure design.

Turing Completeness and Gas Optimization

Gas optimization means writing smart contracts in a way that uses fewer blockchain resources.

In Turing-complete environments, developers may have many ways to write the same logic.

Some methods are cheaper than others.

Storage writes are often expensive compared with memory operations.

Large loops can become expensive or fail.

Unnecessary external calls can increase cost and risk.

Poor data structures can make common actions too costly for normal users.

Gas optimization matters because users pay for execution.

A protocol with inefficient contracts may lose users during high-fee periods.

Developers must balance readability, safety, and efficiency instead of optimizing blindly.

The cheapest code is not always the safest code, and the safest code is not always the cheapest code.

Turing Completeness and Wallet Safety

Users interact with Turing-complete contracts through wallets.

This creates a safety challenge because a wallet prompt may not clearly explain everything the contract can do.

A user may think they are approving one simple swap, but the transaction may involve approvals, contract calls, token transfers, and external routing.

A token approval can allow a contract to spend tokens later if the approval is not limited or revoked.

A malicious contract can use confusing transaction data to trick users into signing dangerous actions.

This is why wallet security is important in programmable blockchain environments.

Users should review transaction simulations, token approval amounts, contract addresses, and warning messages before signing.

They should avoid interacting with unknown contracts from suspicious links.

Turing completeness gives contracts more ability, so users must be more careful about what they authorize.

Examples of Turing-Complete Crypto Applications

A decentralized exchange can use Turing-complete contracts to calculate swaps, update liquidity pools, and distribute fees.

A lending protocol can use Turing-complete contracts to track collateral, calculate debt, and trigger liquidations.

A staking system can use Turing-complete contracts to record deposits, apply lock rules, and distribute rewards.

A DAO can use Turing-complete contracts to count votes, manage treasury funds, and execute proposals.

An NFT game can use Turing-complete contracts to manage assets, upgrades, in-game rules, and ownership transfers.

A token launch contract can use Turing-complete logic to set vesting schedules, allowlists, caps, refunds, and claim windows.

A synthetic asset protocol can use Turing-complete contracts to track collateral, oracle prices, and minting rules.

These examples show why Turing completeness is central to programmable crypto ecosystems.

They also show why bugs can be expensive when contracts manage valuable assets.

Common Misunderstandings About Turing Completeness

The first misunderstanding is that Turing completeness means a blockchain can compute anything for free.

In reality, computation is limited by gas, block limits, fees, and network rules.

The second misunderstanding is that Turing completeness automatically makes a blockchain better.

It makes a blockchain more expressive, but it also increases complexity and security risk.

The third misunderstanding is that every smart contract needs Turing completeness.

Many simple payment and custody rules can be handled with limited scripting.

The fourth misunderstanding is that Turing-complete contracts are always decentralized in practice.

A contract may be programmable but still controlled by admin keys, upgrade permissions, or concentrated governance.

The fifth misunderstanding is that audited Turing-complete contracts cannot fail.

Audits reduce risk, but they cannot remove every possible bug or economic attack.

The sixth misunderstanding is that users do not need to understand contract permissions.

In programmable crypto systems, contract permissions can directly affect user funds.

How to Evaluate Turing-Complete Smart Contract Risk

Start by checking whether the contract code is verified and publicly readable.

Then check whether the contract has been audited by reputable security researchers.

Review whether the contract is upgradeable and who controls upgrades.

Check whether admin permissions can pause transfers, change fees, mint tokens, blacklist addresses, or move funds.

Look for timelocks that give users time to react before major changes take effect.

Check whether the contract depends on oracles, bridges, external protocols, or off-chain operators.

Review whether the protocol has a bug bounty and public incident history.

Check whether the contract uses risky patterns such as unbounded loops, unsafe external calls, or unclear accounting.

For large deposits, users should also review liquidity depth, withdrawal rules, governance concentration, and emergency controls.

Turing completeness makes complex systems possible, so risk evaluation must look beyond the user interface.

Turing Completeness vs Practical Computability

A system can be Turing-complete in theory but still limited in practice.

Blockchain computation is expensive because it must be verified by the network.

Storage is expensive because state must be maintained over time.

Transactions are limited because blocks have capacity limits.

Users have fee limits because they will not pay unlimited gas.

This means developers should not place every possible computation on-chain.

Many applications use a hybrid design where critical settlement and asset ownership happen on-chain, while heavy computation, indexing, user interfaces, and analytics happen off-chain.

This does not make the application less crypto-native by default.

It simply recognizes that blockchains are best used for trust-minimized coordination, not for unlimited general computing.

The practical question is not only whether a chain is Turing-complete, but what should actually be computed on-chain.

Why Some Blockchains Avoid Full Turing Completeness

Some blockchain designs avoid full Turing completeness because they prioritize predictability, simplicity, and security.

A limited scripting system can be easier to analyze because it has fewer possible behaviors.

It may also reduce the chance of infinite loops, unexpected state changes, and complex contract exploits.

This can be useful for networks focused mainly on secure payments, settlement, or conservative monetary policy.

However, limited programmability can make it harder to build advanced DeFi applications directly on the base layer.

Developers may need sidechains, layers, external protocols, or more specialized constructions to support complex applications.

This is a design choice, not a simple weakness.

Different blockchain communities choose different tradeoffs between expressiveness and safety.

Users should understand those tradeoffs before comparing networks only by features.

Why Turing Completeness Is Important for Web3

Web3 applications often need programmable ownership, programmable payments, and programmable governance.

Turing-complete smart contracts make these features possible.

A Web3 identity system may need rules for permissions, recovery, attestations, and access control.

A decentralized game may need rules for asset ownership, upgrades, rewards, and marketplaces.

A creator economy app may need rules for royalties, memberships, token-gated content, and revenue sharing.

A DeFi app may need rules for collateral, borrowing, swaps, or yield distribution.

These use cases require more than simple value transfer.

They require code that can store state and execute conditional logic over time.

Turing completeness provides the foundation for this kind of programmable digital economy.

Its value depends on whether the applications built on top are secure, useful, and economically sustainable.

Smart contract means an on-chain program that executes rules through blockchain transactions.

EVM means Ethereum Virtual Machine, the execution environment used by Ethereum smart contracts and many compatible networks.

Gas means the fee and resource unit used to measure contract execution cost.

Loop means code that repeats an action while a condition remains true or until a limit is reached.

State means stored blockchain or contract data that can change through transactions.

Bytecode means low-level code that a virtual machine can execute.

Solidity means a programming language commonly used to write EVM smart contracts.

Composability means the ability of smart contracts and protocols to interact with each other.

Oracle means a system that supplies external data to smart contracts.

Formal verification means mathematically checking whether code satisfies certain defined properties.

FAQ

What does Turing completeness mean in crypto?

In crypto, Turing completeness means a blockchain execution environment can support general-purpose smart contract computation, including complex logic, loops, and state updates.

Why is Turing completeness important for smart contracts?

It is important because it allows developers to build advanced applications such as DeFi protocols, DAOs, NFT systems, lending markets, and automated trading tools.

Is Ethereum Turing-complete?

Yes, Ethereum’s EVM is generally described as Turing-complete, but execution is limited by gas and network rules.

Does Turing completeness mean unlimited computation?

No, blockchain computation is limited by gas, block limits, transaction fees, and practical network constraints.

Why does gas matter for Turing-complete blockchains?

Gas prevents infinite or wasteful computation by making users pay for the resources their transactions consume.

Is Bitcoin Script Turing-complete?

No, Bitcoin Script is deliberately designed to be stateless and not Turing-complete, according to the Bitcoin Developer Guide.

Is Turing completeness always better?

No, Turing completeness increases flexibility, but it also increases complexity, attack surface, and audit difficulty.

Can Turing-complete smart contracts be hacked?

Yes, smart contracts can be exploited if they contain bugs, unsafe permissions, poor oracle design, or flawed economic logic.

What is the main benefit of Turing completeness?

The main benefit is expressive programmability, which allows developers to create complex on-chain applications.

What is the main risk of Turing completeness?

The main risk is complexity, because flexible contracts can contain unexpected bugs, expensive operations, and unsafe interactions.

Why are loops dangerous in smart contracts?

Loops can become too expensive or impossible to execute if they depend on data that grows too large.

How should users evaluate a Turing-complete contract?

Users should check audits, verified code, upgrade permissions, admin controls, oracle dependencies, timelocks, liquidity, and protocol history.

Conclusion

Turing completeness is the idea that a system can perform any computation that a general-purpose computer can perform, given enough time and memory.

In crypto, it is most important because it explains why some blockchains can support flexible smart contracts and complex decentralized applications.

Turing-complete environments such as the EVM allow developers to build DeFi protocols, DAOs, NFTs, staking systems, lending markets, automated trading pools, and many other on-chain tools.

This flexibility is powerful, but it is not unlimited.

Blockchain computation is constrained by gas, block limits, user costs, and security requirements.

Turing completeness also increases risk because complex code can contain bugs, unsafe permissions, expensive loops, and unexpected contract interactions.

By contrast, Turing-incomplete systems can be less flexible but more predictable and easier to reason about in some cases.

The key lesson for crypto users is that programmability creates both opportunity and responsibility.

Developers must write secure, efficient, and well-tested contracts.

Users must understand that interacting with programmable contracts can expose them to risks that do not exist in simple transfers.

Turing completeness is therefore one of the foundations of smart contract innovation, but it should always be understood together with gas, security, audits, state management, and real-world usability.