Skip to content

Simplicity compared to other languages

Simplicity is a low-level, formally verifiable functional language for expressing spending conditions and covenants on Bitcoin-like blockchains. The table below compares it with other approaches to writing on-chain spend conditions and smart contracts.

Aspect Bitcoin Script Miniscript Solidity Simplicity Comments
Primary purpose Minimal spend conditions for Bitcoin UTXOs Safer, structured way to write Bitcoin Script policies General-purpose smart contracts on Ethereum-like blockchains Formally verifiable contracts in Bitcoin-like settings
Expressiveness Limited by design More composable than Bitcoin Script Very high High within strict rules More features increase the number of ways a program can be misused or misconfigured.
Execution model Stack-based, no global state Policy → Script, tree-structured, stack-based Runs on EVM with global state Combinator-based, no loops or mutable state The execution model determines how contracts interact and how directly their behavior can be audited.
Turing-completeness No No Yes No Non-Turing-completeness means every program terminates in bounded time; gas metering is unnecessary because execution cost is bounded statically.
Typical use cases Payments, multisig, timelocks Advanced wallet policies, thresholds with fallbacks DeFi, tokens, DAOs, dApps High-assurance financial logic on Liquid Each language targets a different point on the tradeoff between expressiveness and constraint.
Safety approach Minimal opcodes, deterministic Constrained grammar with static checks Security via patterns, audits, and tooling Formal proofs and deterministic execution Static and formal methods catch a different class of bugs than runtime testing and auditing.
State model UTXO (local) UTXO (via Script) Account/global state UTXO-style A local (UTXO) model isolates each contract's state from others. A global-state model lets contracts read and write state shared with other contracts directly.
Formal verification Limited Better static analysis Possible but complex Core feature The extent and rigor of available formal-verification tooling varies across these ecosystems.
Performance/resource bounds Bounded by consensus Bounded by consensus Gas-limited execution Strict static bounds How resource bounds are enforced (by consensus limits, by a gas mechanism, or statically by the language) affects how predictable execution cost is before deployment.
Interoperability Bitcoin-native Bitcoin-native EVM-wide standards Liquid ecosystem Interoperability depends on which wallets, tooling, and standards a contract can integrate with directly.