O que é um contrato inteligente?
Um contrato inteligente (smart contract) é um programa armazenado em uma blockchain que roda quando alguém o chama. Ele não é inteligente nem, no sentido jurídico, um contrato. É uma máquina de vendas automática: coloque a coisa certa, sai a coisa definida, e ninguém precisa aprovar.
As propriedades que importam
- Determinístico: a mesma chamada no mesmo estado sempre produz o mesmo resultado.
- Público: qualquer um pode ler o bytecode implantado e, geralmente, o código-fonte.
- Autônomo: depois de implantado, roda sem o autor e, muitas vezes, sem nenhuma forma de ser parado.
"O código é a lei" é um alerta, não um slogan
Um contrato faz o que diz, não o que o autor quis dizer. Não existe cláusula sobre intenção nem juiz a quem recorrer. Se o código deixa alguém esvaziá-lo, isso não viola o contrato. É o contrato funcionando.
É por isso que auditorias existem, e por isso que um contrato não auditado que guarda dinheiro de verdade é um risco real, e não uma falha burocrática. É também por isso que a frase "o contrato é verificado" significa apenas que o código-fonte publicado corresponde ao bytecode implantado. Ela não diz absolutamente nada sobre se esse código é seguro.
Verificado significa "este é mesmo o código que está rodando". Não significa "este código é seguro", e confundir as duas coisas já custou muito dinheiro a muita gente.