Introdução
Os contratos inteligentes foram descritos pela primeira vez na década de 1990 por Nick Szabo. Ele definiu um contrato inteligente como uma ferramenta que formaliza e protege redes computacionais, combinando protocolos com uma interface de usuário.
Szabo considerou o uso de contratos inteligentes em várias áreas, relacionadas, por exemplo, a acordos contratuais, sistemas de crédito, processamento de pagamentos e direitos sobre conteúdo.
No mundo das criptomoedas, um contrato inteligente é um aplicativo que opera em uma blockchain. Ele atua como um acordo digital, sustentado por um conjunto de regras. Essas regras são definidas por código de computador que é copiado e processado por todos os nós da rede.
Os contratos inteligentes permitem a criação de protocolos que não exigem confiança. Isso significa que ambas as partes podem interagir através da blockchain sem a necessidade de confiar uma na outra. Os participantes do processo podem ter certeza de que o não cumprimento das condições do contrato levará à sua anulação. Além disso, o uso de contratos inteligentes elimina a necessidade de intermediários, reduzindo significativamente os custos de transação.
Embora o protocolo Bitcoin tenha suportado contratos inteligentes por muitos anos, sua popularidade é atribuída ao criador e cofundador do Ethereum, Vitalik Buterin. Nesse sentido, cada blockchain pode usar sua própria maneira de implementar contratos inteligentes.
O foco deste artigo são os contratos inteligentes que operam na máquina virtual Ethereum (EVM), que é uma parte fundamental da blockchain Ethereum.
Como isso funciona?
Simplificando, um contrato inteligente funciona como um programa determinístico. Ele executa ações específicas quando certas condições são atendidas. Com base nisso, o sistema de contratos inteligentes frequentemente utiliza expressões como 'se... então...'. Apesar da terminologia comum, os contratos inteligentes não são contratos no sentido jurídico, nem são 'inteligentes' (do inglês, smart). Eles são apenas fragmentos de código executados em um sistema distribuído (na blockchain).
Na rede Ethereum, os contratos inteligentes são responsáveis pela execução de operações entre usuários (endereços). Qualquer endereço que não seja um contrato inteligente é chamado de conta externa (EOA). Assim, os contratos inteligentes são geridos por código de programa, enquanto as contas externas são geridas pelos usuários.
Em essência, os contratos inteligentes Ethereum consistem no código do contrato (que contém as condições de execução) e duas chaves públicas. A primeira chave pública é fornecida pelo criador do contrato. A outra chave representa o próprio contrato, sendo um identificador digital único para cada contrato inteligente.
A execução de qualquer contrato inteligente ocorre durante uma transação blockchain, e eles podem ser ativados quando iniciados por uma conta externa (ou outro contrato inteligente). No entanto, a sequência de contratos inteligentes sempre é iniciada a partir de uma conta externa (ou seja, pelo usuário).
Principais características
Um contrato inteligente Ethereum geralmente possui as seguintes características:
Distribuição. Os contratos inteligentes são replicados e distribuídos por todos os nós da rede Ethereum. Esta é uma de suas principais diferenças em relação a outras soluções que utilizam servidores centralizados.
Determinismo. Os contratos inteligentes executam ações para as quais foram projetados quando os requisitos estabelecidos são atendidos. Além disso, o resultado será sempre o mesmo, independentemente de quem executa os requisitos.
Autonomia. Os contratos inteligentes podem automatizar todos os tipos de tarefas, operando como um programa autoexecutável. Na maioria dos casos, se um contrato inteligente não for iniciado, ele permanece 'inativo' e não executa nenhuma ação.
Imutabilidade. O processo de funcionamento de um contrato inteligente não pode ser alterado após seu desenvolvimento e ativação. Mudanças podem ser feitas apenas se os desenvolvedores implementaram uma função específica anteriormente. Assim, podemos dizer que os contratos inteligentes podem oferecer proteção contra a invasão de código por meio da prova de autenticidade.
Personalização. Os contratos inteligentes podem ser codificados de várias maneiras, por exemplo, para criar diferentes tipos de aplicativos descentralizados (DApps). Isso se deve ao fato de que o Ethereum foi criado de acordo com a completude de Turing.
Ausência de confiança. Duas ou mais partes podem interagir por meio de contratos inteligentes, sem se conhecerem e sem confiança. Além disso, a tecnologia blockchain garante a precisão e o registro de todos os dados.
Transparência. Como os contratos inteligentes são baseados em uma blockchain pública, seu código fonte está disponível para todos.
Posso mudar ou excluir um contrato inteligente?
Os usuários do Ethereum não podem adicionar novas funções após a ativação de um contrato inteligente. No entanto, se o desenvolvedor incluir no código do contrato uma função chamada SELFDESTRUCT, ele poderá, posteriormente, excluí-lo e substituí-lo por um novo. Sem essa função, não será possível excluir um contrato inteligente.
É notável que os chamados contratos inteligentes atualizáveis oferecem aos desenvolvedores acesso a alterações no código, proporcionando assim maior flexibilidade em comparação com contratos imutáveis. Existem várias maneiras de criar esse tipo de contrato inteligente com diferentes níveis de complexidade.
Vamos considerar isso com um exemplo simples. Vamos imaginar que um contrato inteligente é dividido em vários pequenos contratos. Alguns deles não podem ser alterados, enquanto outros podem ser excluídos, graças à função mencionada anteriormente. Isso significa que uma parte do código (um certo número de contratos inteligentes) pode ser excluída e substituída por outro, enquanto as demais funcionalidades permanecem inalteradas.
Vantagens e casos de uso
Como é um código programável, os contratos inteligentes podem ser facilmente configurados e desenvolvidos de várias maneiras, oferecendo diferentes tipos de serviços e soluções.
Como um programa descentralizado e autoexecutável, os contratos inteligentes podem proporcionar maior transparência e reduzir os custos operacionais. Dependendo da área de atuação, eles também podem aumentar a eficiência e diminuir os custos burocráticos.
As vantagens dos contratos inteligentes se manifestam especialmente quando se trata de transferências de dinheiro ou troca de recursos entre duas ou mais partes.
Em outras palavras, os contratos inteligentes podem ser desenvolvidos para uma variedade de casos de uso, incluindo a criação de ativos tokenizados, sistemas de votação, carteiras criptográficas, exchanges descentralizadas, jogos e aplicativos móveis. Eles também podem ser implantados junto com outras soluções de blockchain em áreas como saúde, caridade, cadeia de suprimentos, governança e finanças descentralizadas (DeFi).
ERC-20
Tokens emitidos na blockchain Ethereum seguem o padrão ERC-20, que descreve suas funções principais. Eles são frequentemente chamados de tokens ERC-20 e representam a maior parte das criptomoedas existentes.
Muitas empresas e startups desenvolvem contratos inteligentes para emitir seus próprios tokens digitais na rede Ethereum. Após a emissão, a maioria distribui seus tokens ERC-20 por meio de uma oferta inicial de moedas (ICO). Os contratos inteligentes permitem a troca e a distribuição de fundos de maneira segura e eficiente.
Desvantagens
Os contratos inteligentes consistem em código de computador escrito por pessoas. Isso é a causa de muitos riscos, uma vez que o código pode ter vulnerabilidades e erros. Idealmente, o desenvolvimento deve ser realizado por programadores experientes, especialmente quando se trata de informações confidenciais ou grandes quantias de dinheiro.
Acredita-se que sistemas centralizados possam fornecer a maioria das soluções e funções dos contratos inteligentes. A principal diferença é que os contratos inteligentes são executados em uma rede P2P distribuída, em vez de em um servidor centralizado. E, como os contratos inteligentes são baseados em blockchain, eles geralmente são imutáveis ou muito difíceis de alterar.
Às vezes, a imutabilidade é útil, mas nem sempre. Por exemplo, em 2016, hackers invadiram a organização autônoma descentralizada The DAO e roubaram milhões de dólares em ether (ETH), explorando vulnerabilidades no código do contrato inteligente.
Como o contrato inteligente The DAO era imutável, os desenvolvedores não puderam corrigir o código. Isso acabou levando a um hard fork e à criação de uma segunda cadeia Ethereum. Simplificando, uma cadeia reverteu o hack e devolveu os fundos aos proprietários legítimos (essa cadeia é parte da blockchain Ethereum atual), enquanto a outra não respondeu ao hack, seguindo a ideia de que os eventos na blockchain nunca devem ser alterados (essa cadeia agora é chamada de Ethereum Classic).
Vale ressaltar que o problema não surgiu devido ao funcionamento da blockchain Ethereum. Em vez disso, o erro foi causado por uma implementação incorreta do contrato inteligente.
Outra desvantagem dos contratos inteligentes está relacionada ao seu status jurídico indefinido. E isso não se deve apenas ao fato de que, na maioria dos países, essa tecnologia está em uma 'zona cinza', mas também porque os contratos inteligentes não se alinham com a atual regulamentação legal.
Por exemplo, uma exigência fundamental para muitos contratos e acordos é a identificação rigorosa dos participantes e a idade mínima de 18 anos. O anonimato proporcionado pela tecnologia blockchain, combinado com a ausência de intermediários, pode ser um obstáculo para atender a tais requisitos. Embora haja soluções potenciais para essa questão, a componente legal dos contratos inteligentes é um dos principais problemas, especialmente em uma escala global e em redes distribuídas.
Crítica
Alguns entusiastas de blockchain veem nos contratos inteligentes uma solução que pode substituir e automatizar grande parte dos sistemas comerciais e burocráticos existentes. Embora isso seja certamente possível, os contratos inteligentes estão longe de se tornar a norma nesse campo.
Os contratos inteligentes são sem dúvida uma tecnologia interessante. Mas a natureza distribuída e determinística, bem como a transparência e a parcial imutabilidade, tornam sua utilização menos atraente em algumas situações.
Em essência, toda a crítica se baseia no fato de que os contratos inteligentes não são uma solução adequada para muitos problemas reais. E, de fato, para algumas organizações, é mais simples e melhor usar servidores alternativos convencionais.
Em comparação com os contratos inteligentes, servidores centralizados são mais simples e baratos de manter. Além disso, eles também podem oferecer maior eficiência em termos de velocidade de operação e interação com outras redes (compatibilidade funcional).
Resumo
Sem dúvida, os contratos inteligentes tiveram um grande impacto no mundo das criptomoedas e certamente revolucionaram o campo das tecnologias blockchain. Como os usuários finais podem não interagir diretamente com os contratos inteligentes, é possível que no futuro eles sirvam como base para uma ampla gama de aplicativos: desde serviços financeiros até gestão de cadeias de suprimentos.
O potencial conjunto dos contratos inteligentes e da blockchain pode ter um impacto significativo em praticamente todas as áreas da vida social. Mas apenas o tempo dirá se essas tecnologias inovadoras conseguem superar as barreiras para uma adoção em larga escala.

