Introdução
Nick Szabo descreveu pela primeira vez os contratos inteligentes na década de 1990. Na época, ele definiu um contrato inteligente como uma ferramenta que formaliza e segura redes de computadores combinando protocolos e interfaces de usuário.
Szabo mencionou o uso potencial dos contratos inteligentes em várias áreas envolvendo acordos contratuais, como sistemas de crédito, processamento de pagamentos e gestão de direitos sobre conteúdos.
No mundo das criptomoedas, podemos definir um contrato inteligente como um aplicativo ou um programa que é executado em uma blockchain. Em geral, eles funcionam como um acordo digital que é aplicado por um conjunto de regras específicas. Essas regras são pré-definidas por código de computador, que é replicado e executado por todos os nós da rede.
Os contratos inteligentes blockchain permitem criar protocolos sem confiança. Isso significa que duas partes podem fazer compromissos via blockchain, sem precisar se conhecer ou confiar uma na outra. Elas podem ter certeza de que, se as condições não forem atendidas, o contrato não será executado. Além disso, o uso de contratos inteligentes pode eliminar a necessidade de intermediários, o que reduz significativamente os custos operacionais.
Embora o protocolo Bitcoin suporte contratos inteligentes há muitos anos, eles foram popularizados pelo criador e cofundador da Ethereum, Vitalik Buterin. Vale ressaltar, no entanto, que cada blockchain pode ter um método diferente de implementação de contratos inteligentes.
Este artigo se concentra nos contratos inteligentes que funcionam na máquina virtual Ethereum (EVM), que é uma parte essencial da blockchain Ethereum.
Então, como eles funcionam?
Em termos simples, um contrato inteligente funciona como um programa determinístico. Ele executa uma tarefa particular quando e se certas condições forem atendidas. Portanto, um sistema de contrato inteligente frequentemente segue as funções 'se... então...'. Mas apesar da terminologia, os contratos inteligentes não têm valor legal e não são inteligentes. Trata-se simplesmente de um código executado em um sistema distribuído (uma blockchain).
Na rede Ethereum, os contratos inteligentes são responsáveis por executar e gerenciar as operações da blockchain que ocorrem quando os usuários (endereços) interagem entre si. Qualquer endereço que não seja um contrato inteligente é chamado de conta externa (EOA). Assim, os contratos inteligentes são controlados por código de computador, e os EOA são controlados pelos usuários.
Fundamentalmente, os contratos inteligentes Ethereum consistem em um código de contrato e duas chaves públicas. A primeira chave pública é aquela fornecida pelo criador do contrato. A outra chave representa o contrato em si, atuando como um identificador digital único para cada contrato inteligente.
A implantação de um contrato inteligente é realizada por meio de uma transação blockchain. Ele só pode ser ativado quando é chamado por um EOA (ou por outros contratos inteligentes). No entanto, o primeiro gatilho é sempre causado por um EOA (usuário).
Características principais
Um contrato inteligente Ethereum apresenta frequentemente as seguintes características:
Distribuído. Os contratos inteligentes são replicados e distribuídos em todos os nós da rede Ethereum. Essa é uma das principais diferenças em relação a outras soluções que dependem de servidores centralizados.
Determinista. Os contratos inteligentes só realizam as ações para as quais foram projetados, desde que os requisitos sejam atendidos. Além disso, o resultado será sempre o mesmo, não importa quem os execute.
Autônomo. Os contratos inteligentes podem automatizar todos os tipos de tarefas, funcionando como um programa autoexecutável. Na maioria dos casos, no entanto, se um contrato inteligente não for acionado, ele permanecerá 'dormindo' e não realizará nenhuma ação.
Imutável. Os contratos inteligentes não podem ser modificados após sua implantação. Eles só podem ser 'removidos' se uma função específica foi implementada anteriormente. Assim, podemos dizer que os contratos inteligentes podem fornecer um código inviolável.
Personalizável. Antes de sua implantação, os contratos inteligentes podem ser codificados de várias maneiras. Eles podem, portanto, ser usados para criar muitos tipos de aplicativos descentralizados (DApps). Isso se deve ao fato de que a Ethereum é uma blockchain Turing-completa.
Sem confiança. Duas partes ou mais podem interagir por meio de contratos inteligentes sem se conhecerem ou confiarem uma na outra. Além disso, a tecnologia blockchain garante a precisão dos dados.
Transparência. Como os contratos inteligentes são baseados em uma blockchain pública, seu código-fonte é não apenas imutável, mas também visível para todos.
Posso modificar ou excluir um contrato inteligente?
É impossível adicionar novas funções a um contrato inteligente Ethereum após sua implantação. No entanto, se seu criador incluir uma função chamada SELFDESTRUCT no código, ele será capaz de 'remover' o contrato inteligente no futuro e substituí-lo por um novo. Por outro lado, se a função não estiver incluída no código anteriormente, é impossível removê-lo.
Notavelmente, os contratos inteligentes escaláveis permitem que os desenvolvedores tenham mais flexibilidade sobre a imutabilidade dos contratos. Existem muitas maneiras de criar contratos inteligentes escaláveis, com diferentes graus de complexidade.
Em um exemplo simplificado, imaginemos que um contrato inteligente seja dividido em vários pequenos contratos. Alguns deles são projetados para ser imutáveis, enquanto outros têm a função 'Remover' ativada. Isso significa que uma parte do código (contratos inteligentes) pode ser removida e substituída, enquanto outras funcionalidades permanecem intactas.
Vantagens e casos de uso
Como código programável, os contratos inteligentes são altamente personalizáveis e podem ser projetados de várias maneiras, oferecendo assim muitos tipos de serviços e soluções.
Como programas descentralizados e autoexecutáveis, os contratos inteligentes podem oferecer uma transparência aumentada e reduzir os custos operacionais. Dependendo de sua implementação, eles também podem aumentar a eficiência e reduzir as despesas administrativas.
Os contratos inteligentes são particularmente úteis em situações que envolvem a transferência ou troca de fundos entre duas ou mais partes.
Em outras palavras, os contratos inteligentes podem ser projetados para uma grande variedade de casos de uso. Entre os exemplos, estão a criação de ativos tokenizados, sistemas de votação, carteiras de criptomoedas, exchanges descentralizadas, jogos e aplicativos móveis. Eles também podem ser implantados com outras soluções blockchain que abordam áreas como saúde, caridade, cadeia de suprimentos, governança e finanças descentralizadas (DeFi).
ERC-20
Os tokens emitidos na blockchain Ethereum seguem um padrão conhecido como ERC-20. O padrão descreve as funções básicas de todos os tokens baseados em Ethereum. Portanto, esses ativos digitais são frequentemente chamados de tokens ERC-20 e representam uma grande parte das criptomoedas existentes.
Muitas empresas e startups de blockchain implementaram contratos inteligentes para emitir seus tokens digitais na rede Ethereum. Após a emissão, a maioria dessas empresas distribuiu seus tokens ERC-20 por meio de ofertas iniciais de moedas (ICO). Na maioria dos casos, o uso de contratos inteligentes permitiu trocar fundos e distribuir tokens de maneira confiável e eficiente.
Limitações
Os contratos inteligentes são compostos por código de computador escrito por humanos. Isso apresenta muitos riscos, pois o código está sujeito a vulnerabilidades e bugs. Idealmente, eles devem ser escritos e implantados por programadores experientes, especialmente quando envolvem informações sensíveis ou quantias significativas de dinheiro.
Além disso, alguns afirmam que os sistemas centralizados podem fornecer a maioria das soluções e funcionalidades oferecidas pelos contratos inteligentes. A principal diferença é que os contratos inteligentes são executados em uma rede P2P distribuída, em vez de um servidor centralizado. E porque eles dependem de um sistema blockchain, tendem a ser imutáveis ou muito difíceis de modificar.
Ser imutável pode ser ótimo em algumas situações, mas muito ruim em outras. Por exemplo, quando uma organização autônoma descentralizada (DAO) chamada 'DAO' foi hackeada em 2016, milhões de ethers (ETH) foram roubados devido a falhas em seu código de contratos inteligentes.
Como seu contrato inteligente era imutável, os desenvolvedores não puderam corrigir o código. Isso acabou levando a um hard fork, dando origem a uma segunda cadeia Ethereum. Para simplificar, uma cadeia 'cancelou' o hack e devolveu os fundos aos proprietários legítimos (isso faz parte da blockchain Ethereum atual). A outra cadeia decidiu não interferir no hack, afirmando que as coisas que acontecem em uma blockchain nunca devem ser modificadas (essa cadeia agora é chamada de Ethereum Classic).
É importante notar que o problema não vem da blockchain Ethereum. Em vez disso, foi causado por uma má implementação do contrato inteligente.
Outra limitação dos contratos inteligentes está relacionada ao seu status jurídico incerto. Não apenas porque é uma zona cinza na maioria dos países, mas também porque os contratos inteligentes não se encaixam no atual quadro jurídico.
Por exemplo, muitos contratos exigem que ambas as partes sejam devidamente identificadas e tenham mais de 18 anos. A pseudonimidade fornecida pela tecnologia blockchain, juntamente com a falta de intermediários, pode ameaçar esses requisitos. Embora existam soluções potenciais para esse problema, a aplicabilidade legal dos contratos inteligentes é um verdadeiro desafio, especialmente quando se trata de redes distribuídas sem fronteiras.
Críticas
Alguns entusiastas de blockchain consideram os contratos inteligentes como uma solução que em breve substituirá e automatizará grande parte de nossos sistemas comerciais e administrativos. Embora isso seja possível, provavelmente está longe de se tornar a norma.
Os contratos inteligentes certamente constituem uma tecnologia interessante. Mas o fato de serem distribuídos, determinísticos, transparentes e um tanto imutáveis pode torná-los menos atraentes em algumas situações.
A crítica se baseia essencialmente no fato de que os contratos inteligentes não são uma solução adequada para muitos problemas do mundo real. De fato, algumas organizações têm interesse em usar soluções clássicas baseadas em servidores.
Comparado aos contratos inteligentes, os servidores centralizados são mais fáceis e mais baratos de manter, e tendem a apresentar uma eficiência aumentada em termos de velocidade e comunicação inter-redes (interoperabilidade).
Para concluir
Não há dúvida de que os contratos inteligentes tiveram um impacto significativo no mundo das criptomoedas e que certamente revolucionaram o espaço blockchain. Mesmo que os usuários finais não interajam diretamente com contratos inteligentes, eles provavelmente alimentarão uma ampla gama de aplicativos no futuro, desde serviços financeiros até gestão da cadeia de suprimentos.
Juntos, os contratos inteligentes e a blockchain têm o potencial de desestabilizar quase todos os setores da nossa sociedade. Mas apenas o tempo dirá se essas tecnologias revolucionárias conseguirão superar os muitos obstáculos à sua adoção em larga escala.
