O que é um contrato inteligente na blockchain?

Em palavras simples
Um contrato inteligente é um programa que está escrito diretamente na blockchain e executa por si mesmo umas regras definidas de antemão, sem intermediário. A regra é simples: se acontece uma coisa, o programa faz outra automaticamente. Quando a condição se cumpre, o resultado normalmente já não pode ser mudado.
O mais fácil é imaginar uma máquina de venda automática: você coloca uma moeda, e ela lhe entrega uma lata. A máquina não precisa de um vendedor, cumpre a sua regra sozinha, e a regra é igual para todos. Um contrato inteligente é a mesma máquina, só que para dinheiro e dados digitais, e suas regras estão à vista de qualquer um.
A palavra contrato aqui confunde. Não se trata de um acordo jurídico com assinaturas, mas de código de programa — uma regra que a rede cumpre por si só.
Mais a fundo
Em que ele se diferencia de um programa comum
Um programa comum roda no servidor de alguém, e o dono dele pode mudá-lo ou desligá-lo sem que se perceba. Um contrato inteligente está publicado na blockchain, suas regras são cumpridas pela rede, e mudá-las às escondidas depois é bem mais difícil. Aqui há um detalhe importante: nem todos os contratos são imutáveis, e nem todo o código é aberto. Alguns contratos são feitos para poder ser atualizados, outros têm chaves de administração e uma forma de pôr o contrato em pausa, e o código-fonte nem sempre está à vista. Então ser imutável e ser transparente são propriedades de um contrato concreto que convém verificar, não algo dado em todos.
Pela execução não paga o contrato em si, mas quem o chama, ou seja, o emissor da transação. Ele paga uma taxa da rede. No Ethereum essa taxa é chamada de gas, de que trata o artigo o que é o gas. Em alguns esquemas outra parte pode pagar o gas por você.
A rede Bitcoin sabe verificar condições simples para as transferências, mas a ideia de contratos de propósito geral, onde se pode programar quase qualquer lógica, foi o Ethereum que a trouxe de forma massiva. Por isso a maioria dos tokens, stablecoins como DAI, NFTs e diversos aplicativos dentro de uma rede funcionam justamente no Ethereum e em redes parecidas.
O que está construído sobre eles e onde você os encontra
Muito do que quem está começando encontra funciona sobre contratos inteligentes por baixo do capô. Isso inclui uma stablecoin, uma troca de uma moeda por outra sem uma empresa por trás, e a emissão de um token ou de um NFT. Pode ser que você não veja nem uma vez a palavra contrato e mesmo assim os esteja usando.
Daí um ponto prático importante: um contrato inteligente cumpre o que está escrito nele, não o que você tinha em mente. Quando você dá a um contrato acesso às suas moedas, uma ação chamada de approve, você confia no código dele. Então convém entender o que exatamente você está permitindo. O artigo segurança ao conectar a carteira entra nisso.
Com honestidade sobre «o código é a lei»
«O código é a lei» é uma forma comum de descrever os contratos inteligentes: uma vez que a regra está escrita no código, ela é executada sozinha, sem a decisão de ninguém. Essa autoexecução tem dois lados.
O lado bom é que, se a regra está escrita e o contrato não pode ser mudado, ninguém pode voltar atrás e deixar de cumprir o prometido, nem o criador nem a plataforma. O outro lado é que o código cumpre exatamente o que está escrito nele, inclusive um erro: se o contrato tiver um bug, ele será cumprido ao pé da letra, os fundos podem ir parar no lugar errado e, em geral, não há quem o desfaça, porque uma transferência na blockchain não pode ser revertida.
«O código é a lei» também nem sempre é verdade. Muitos contratos têm chaves de administração, ou seja, o criador pode intervir; alguns têm um botão de pausa; e às vezes um contrato depende de dados externos fornecidos por um chamado oráculo — um programa que fornece à blockchain dados do mundo real, como uma cotação. Tudo isso pode mudar ou interromper o funcionamento do contrato.
Por isso os projetos sérios encomendam uma revisão independente do código, chamada de auditoria. A auditoria reduz o risco de erros, mas não dá uma garantia de cem por cento: às vezes se encontram falhas até em código auditado.