Conteúdo atualizado a 05/12/2023
A crença de que os Contratos Inteligentes (ou Smart Contracts) são infalíveis tem sido desafiada por uma série de casos que revelaram suas limitações e desafios e é isso que iremos abordar nesse artigo, que explora exemplos concretos de quando as coisas não correram conforme esperado.
Embora sejam uma tecnologia promissora, é crucial compreender que os contratos inteligentes, assim como qualquer inovação, não estão isentos de imperfeições, pelo que iremos analisar o que são e também casos reais que deram errado, evidenciando as vulnerabilidades e questões a considerar no desenvolvimento e implementação desses contratos inteligentes.
O que são Contratos Inteligentes?
Antes de mais, vamos à revisão da matéria!
Os Smart Contracts ou Contratos Inteligentes são simplesmente códigos de computador, executados automaticamente mediante o atendimento determinadas condições são atendidas, executando assim a parte total ou parcial do acordo.
O seu uso é geralmente aplicado quando envolve exchanges de criptomoedas, jogos, compra e venda de NFTs e jogos on-line. A tendência é para que isso aumente. Com efeito, são rápidos e eficientes. Além disso, como os contratos inteligentes são digitais e automatizados, não há papelada processada nem perda de tempo com a reconciliação de erros de documentos preenchidos manualmente.
Veja também: Contratos Inteligentes: mais transparência e segurança nas transações
O grau de automação varia nos Contratos Inteligentes. Existe, aliás, um espectro de automação. Alguns são acordos de linguagem natural no qual as obrigações são executadas por código. Quando e se algo der errado, as partes podem voltar e interpretar a linguagem natural. Contudo, quando os contratos são totalmente escritos e executados por código – e não há linguagem natural para as partes contratantes recorrerem – o que acontece quando as coisas não correm como suposto?
Como os Contratos Inteligentes podem falhar?
Um erro de codificação pode originar um ponto decimal mal colocado e uma transação poderá movimentar 200 BTC entre carteiras em vez de, digamos, 0,2 BTC. É estranho que isso possa acontecer, mas não é impossível. Depois disso, o problema só será detectado depois de efetuada a transação. Tratando-se de um erro óbvio, ambas as partes poderão concordar em efetuar outra transação revertendo o erro.
Porém, se o destinatário não se apressar em devolver os 200 BTC ou – o que é mais provável – o “erro”, tal como suas consequências podem ser devastadoras para quem se enganou, especialmente se não houver um acordo sobre como corrigi-lo? Afinal, não existe um documento de linguagem natural para ajudar as partes.
Casos reais que deram errado
Vamos então abordar 2 casos de usos de Contratos Inteligentes que deram errado.
O caso Slock.It
Em abril de 2016, com base na rede Ethereum, e usando contrato inteligente, uma start-up alemão, chamada Slock.it, lançou uma DAO (Decentralized Autonomous Organization) no qual ofereciam um serviço smartlock em que as pessoas podiam compartilhar suas próprias propriedades.
Proteger seus ativos: Ledger, uma hard-wallet confiável
Ora, essa DAO arrecadou mais de 150 milhões por entre 11.000 investidores até o final do período de financiamento. Contudo, chegou um dia em que um dos criadores da DAO mencionou um bug. Algo que não mereceu muita importância, inicialmente. Contudo, um hacker desconhecido atacou o sistema e acabou por drenar o éter do DAO, mesmo estando assente numa rede ultra segura como a Ethereum.
O caso Thomas Rush
O anonimato, uma das principais forças da rede Blockchain, virou fraqueza. Thomas Rush sentiu-o na pele, ao ver a sua carteira esvaziar dia após dia e sem capacidade de o reverter.
Thomas partilhou isso num post no Medium, explicando que o seu Ethereum Early Adopters Registry estava a tirar o dinheiro da sua carteira enquanto ele simplesmente assistia ao que estava sucedendo. Esse erro poderia ter sido revertido.. não fosse o seu anonimato. Ao não conectar os dados de seus usuários, torna-se difícil (talvez impossível) recuperar os fundos.