701 / 736SIMPLICITY

Simplicity

Linguagem de contratos definida formalmente

Simplicity é uma linguagem funcional tipada de baixo nível para contratos, com semântica formal, limites estáticos de recursos e programas merklizados; roda na Liquid, mas não está ativa na mainnet do Bitcoin.

Simplicity compõe programas a partir de um pequeno conjunto de combinadores e pode substituir subexpressões conhecidas por jets rápidos de significado idêntico, unindo capacidade de análise a desempenho prático.

O núcleo é um pequeno conjunto de combinadores tipados com semântica denotacional e operacional definida matematicamente. Um modelo formal em Rocq permite verificar por máquina provas sobre a linguagem, sua implementação e propriedades de um programa específico. [1]

A linguagem não tem loops ilimitados nem recursão geral, por isso limites máximos de computação, memória e dados podem ser derivados antes da execução. Assim, um programa não deve parar por um custo de gas desconhecido nem rodar para sempre. [1]

O programa é uma árvore merklizada de expressões, e ramos não usados podem ser substituídos por sua Merkle root no gasto. O validador confere o compromisso com o programa inteiro, mas só o caminho necessário e os witness data são revelados on-chain. [1]

Um jet reconhece uma expressão Simplicity específica e a executa por uma função nativa otimizada. A segurança do consenso exige que seu resultado corresponda exatamente à semântica de referência da expressão; o jet não introduz significado novo oculto. [1]

libSimplicity contém um runtime mínimo sensível ao consenso em C, componentes de referência e geração em Haskell e um modelo formal em Rocq. Essas camadas se verificam mutuamente, mas o repositório afirma expressamente que a linguagem e a implementação continuam em desenvolvimento. [2]

SimplicityHL é uma linguagem mais legível, semelhante a Rust, que compila para Simplicity bytecode. O próprio projeto a classifica como work in progress, não production-ready; uma auditoria de contrato deve cobrir fonte, compilador, bytecode, witness e jets. [3]

Simplicity foi implantada na mainnet da Liquid em 2025. Liquid é uma sidechain federada com vários ativos e Confidential Transactions, portanto essa implantação não é ativação no consenso da mainnet do Bitcoin; isso exigiria proposta e soft fork próprios. [4]

A semântica formal não garante intenção econômica correta, chaves seguras ou contraparte confiável. A verificação deve distinguir o programa de baixo nível, as ferramentas SimplicityHL, o conjunto específico de jets, a versão da Liquid e uma integração hipotética ao Bitcoin. [2]

Para ter uma visão mais completa, leia este verbete junto com Bitcoin Script, Miniscript, Taproot, Soft Fork, Regras de consenso, Sidechain.

01Simplicity está disponível na mainnet do Bitcoin?

Não. Ela foi implantada na mainnet da Liquid, que tem outro consenso; seu uso como linguagem de script do Bitcoin exigiria proposta e soft fork próprios.

02Simplicity é o mesmo que Miniscript?

Não. Miniscript é uma estrutura analisável sobre o Bitcoin Script atual; Simplicity é outra linguagem de baixo nível definida formalmente.

DOC · 001Simplicity paperFonte primária DOC · 002Blockstream Research — Simplicity implementationFonte primária DOC · 003Blockstream Research — SimplicityHLFonte primária DOC · 004Blockstream — Simplicity launches on LiquidFonte primária
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento