O que são Contratos Inteligentes?

Compartilhar
Copied to clipboard!
O que são Contratos Inteligentes?
Ouça este artigo
00:00 / 00:00

A concepção de contrato inteligente surgiu com Nick Szabo na década de 1990. Na época, ele definiu um contrato inteligente como uma ferramenta capaz de tornar as redes de computador seguras e formais, combinando protocolos com interfaces de usuário. Szabo discutiu o potencial uso de contratos inteligentes em vários campos que envolvem acordos contratuais - como sistemas de crédito, processamento de pagamentos e gestão de direitos autorais e de conteúdo.

No mundo das criptomoedas, podemos definir um contrato inteligente como um aplicativo ou programa que é executado em uma blockchain. Normalmente, eles funcionam como um acordo digital que é aplicado com um conjunto específico de regras. Essas regras são predefinidas por códigos computacionais, que são replicados e executados em todos os nós da rede.

Basicamente, os contratos inteligentes de blockchain permitem a criação de protocolos trustless (protocolos que não exigem terceiros confiáveis). Isso significa que duas partes podem assumir compromissos através da blockchain, sem ter que se conhecer ou confiar uma na outra. Existe a garantia de que, se as condições não forem cumpridas, o contrato não será executado. Além disso, o uso de contratos inteligentes pode descartar a necessidade de intermediários, reduzindo significativamente os custos operacionais.

Embora o protocolo Bitcoin ofereça suporte a contratos inteligentes há muitos anos, eles se tornaram mais populares graças ao criador e cofundador da Ethereum, Vitalik Buterin. Vale ressaltar, no entanto, que cada blockchain pode apresentar um método diferente de implementar contratos inteligentes. 

Este artigo irá abordar os contratos inteligentes que funcionam na Ethereum Virtual Machine (EVM), que é uma parte essencial da blockchain Ethereum.


Como funcionam?

Resumidamente, um contrato inteligente funciona como um programa determinístico. Ele executa uma tarefa específica quando certas condições são cumpridas. Ou seja, um sistema de contrato inteligente geralmente segue a lógica "se… então…". Mas apesar da terminologia, os contratos inteligentes não são contratos legais, nem inteligentes. Eles são apenas um fragmento de código rodando em um sistema distribuído (blockchain).

Na rede Ethereum, os contratos inteligentes são responsáveis pela execução e gestão das operações da blockchain, que ocorrem quando os usuários (endereços) interagem uns com os outros. Qualquer endereço que não seja um contrato inteligente é chamado de conta externa (EOA, do inglês, externally owned account). Isso significa que os contratos inteligentes são controlados por códigos de computador e as EOAs são controladas pelos usuários.

Basicamente, os contratos inteligentes da Ethereum são compostos por um código de contrato e duas chaves públicas. A primeira chave pública é a fornecida pelo criador do contrato. A outra chave representa o contrato em si, agindo como um identificador digital que é único para cada contrato inteligente.

A implantação de qualquer contrato inteligente é feita através de uma transação de blockchain e o contrato só pode ser ativado quando chamado por uma conta EOA (ou por outros contratos inteligentes). No entanto, o ativador inicial será sempre uma EOA (usuário).


Características principais

Geralmente, um contrato inteligente da Ethereum apresenta as seguintes características:

Distribuído. Os contratos inteligentes são replicados e distribuídos em todos os nós da rede Ethereum. Esta é uma das principais diferenças em relação a outras soluções baseadas em servidores centralizados.

Determinístico. Contratos inteligentes executam apenas as ações para as quais foram projetados, levando em conta os requisitos a serem cumpridos. Além disso, o resultado será sempre o mesmo, independentemente de quem os executa.

Autônomo. Contratos inteligentes podem automatizar todos os tipos de tarefas, agindo como um programa de execução automática. Entretanto, na maioria dos casos, se um contrato inteligente não for acionado, ele permanecerá "inativo" e não irá executar nenhuma ação.

Imutável. Os contratos inteligentes não podem ser alterados após a implantação. Eles podem somente ser "excluídos" caso uma função específica tenha sido implementada anteriormente. Dessa forma, podemos dizer que contratos inteligentes têm capacidade de fornecer codificação inviolável.

Personalizável. Antes da implantação, os contratos inteligentes podem ser codificados de muitas maneiras diferentes. Eles podem ser usados para criar vários tipos de aplicativos descentralizados (DApps). Essa característica está diretamente relacionada com o fato de que a Ethereum é uma blockchain Turing completa.

Trustless. Duas ou mais partes podem interagir através de contratos inteligentes sem a necessidade de se conhecerem ou de confiar uns nos outros. Além disso, a tecnologia blockchain garante a precisão dos dados.

Transparente. Como contratos inteligentes são baseados em uma blockchain pública, o código-fonte não só é imutável como também visível para qualquer pessoa.


Posso alterar ou excluir um contrato inteligente?

É impossível adicionar novas funções a um contrato inteligente da Ethereum, após sua implementação. Porém, se o criador incluir uma função chamada SELFDESTRUCT (autodestruição) no código, é possível "excluir" o contrato inteligente no futuro - e substituí-lo por um novo. Entretanto, se a função não for incluída antecipadamente no código, não será possível excluí-lo.

Os chamados contratos inteligentes atualizáveis (upgradeable smart contracts) permitem que os desenvolvedores tenham mais flexibilidade sobre a imutabilidade dos contratos. Existem muitas maneiras de criar contratos inteligentes atualizáveis, com diferentes graus de complexidade.

Como exemplo, vamos imaginar que um contrato inteligente é dividido em vários contratos menores. Alguns deles são projetados para serem imutáveis, enquanto outros têm a função de 'exclusão' habilitada. Isso significa que parte do código (contratos inteligentes) pode ser excluída e substituída, enquanto outras funcionalidades permanecem intactas.


Vantagens e casos de uso

Como possuem código programável, os contratos inteligentes são altamente personalizáveis e podem ser projetados de muitas maneiras diferentes, oferecendo muitos tipos de serviços e soluções.

Por serem programas descentralizados e autoexecutáveis, os contratos inteligentes podem proporcionar maior transparência e redução de custos operacionais. Dependendo da implementação, eles podem também aumentar a eficiência e reduzir despesas burocráticas.

Os contratos inteligentes são especialmente úteis em situações que envolvem a transferência ou o intercâmbio de fundos entre duas ou mais partes.

Em outras palavras, contratos inteligentes podem ser projetados para uma grande variedade de casos de uso. Alguns exemplos incluem a criação de ativos "tokenizados", sistemas de votação, carteiras de criptomoedas, exchanges descentralizadas, jogos e aplicativos para celulares. Eles também podem ser implementados junto com outras blockchains que estão buscando soluções nos campos da saúdecaridadecadeia de suprimentosgestãofinanciamento descentralizado (DeFi).


ERC-20

Tokens emitidos na blockchain Ethereum seguem um padrão conhecido como ERC-20. O padrão descreve as funções fundamentais de todos os tokens com base na blockchain Ethereum. Ou seja, estes ativos digitais são frequentemente designados como tokens ERC-20, e representam grande parte das criptomoedas existentes.

Muitas startups e empresas 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 através de eventos de oferta inicial de moedas (ICO). Na maioria dos casos, o uso de contratos inteligentes permitiu a negociação de fundos e a distribuição dos tokens de forma confiável e eficiente.


Limitações

Contratos inteligentes são feitos por códigos de computador criados por humanos. Isso acaba trazendo alguns riscos, uma vez que o código está sujeito a vulnerabilidades e bugs. Em um cenário ideal, eles devem ser escritos e usados por programadores experientes, especialmente quando envolvem informações confidenciais ou muito dinheiro.

Além disso, alguns argumentam que sistemas centralizados podem fornecer a maioria das soluções e funcionalidades oferecidas por contratos inteligentes. A principal diferença é que os contratos inteligentes são executados em uma rede distribuída P2P, em vez de um servidor centralizado. Além disso, eles são baseados em um sistema de blockchain e tendem a ser imutáveis ou muito difíceis de alterar.

Ser imutável pode ser uma ótima característica em algumas situações, mas muito ruim em outras. Por exemplo, quando uma organização autônoma descentralizada (DAO) chamada "The DAO" foi hackeada em 2016, milhões de ether (ETH) foram roubadas devido a falhas no código do contrato inteligente.

Como o contrato inteligente era imutável, os desenvolvedores não conseguiram corrigir o problema do código. Isso acabou resultando em um hard fork, que deu origem a uma segunda cadeia Ethereum. De forma simplificada, uma parte da cadeia "reverteu" a ação do hacker e devolveu os fundos aos respectivos donos (esta é parte da atual blockchain da Ethereum). A outra parte da cadeia decidiu não interferir nas consequências do ataque, afirmando que o que acontece em uma blockchain nunca deve ser alterado (esta é a atual blockchain Ethereum Classic).

É importante ressaltar que o problema não teve origem na blockchain Ethereum. Ele foi causado por uma implementação defeituosa de contrato inteligente.

Outra limitação dos contratos inteligentes está relacionada ao seu status legal incerto. Não apenas por fazer parte de uma área pouco explorada na maioria dos países, mas também porque os contratos inteligentes ainda não se adequam à estrutura legal atual.

Por exemplo, muitos contratos exigem que ambas as partes sejam devidamente identificadas e com mais de 18 anos: o anonimato fornecido pela tecnologia blockchain, juntamente com a falta de intermediários, pode comprometer esses requisitos. Embora existam potenciais soluções para isso, a aplicação legal de contratos inteligentes é um verdadeiro desafio - especialmente no que se refere a redes sem fronteiras e distribuídas.


Crítica

Alguns entusiastas da blockchain vêem contratos inteligentes como uma solução que, em breve, substituirá e automatizará grande parte de nossos sistemas comerciais e burocráticos. Embora esta seja uma realidade possível, provavelmente está longe de acontecer.

Os contratos inteligentes são certamente uma tecnologia interessante. Entretanto, por serem distribuídos, determinísticos, transparentes e, de certa forma, imutáveis, podem ser menos atraentes em algumas situações.

Essencialmente, a crítica é baseada no fato de os contratos inteligentes não serem uma solução adequada para muitos problemas do mundo real. Na verdade, para algumas organizações, é bem mais conveniente utilizar alternativas convencionais com base no servidor. 

Em comparação com contratos inteligentes, os servidores centralizados são mais baratos e mais fáceis de manter. Além disso, tendem a apresentar maior eficiência em termos de velocidade e comunicação entre redes (interoperabilidade).


Considerações finais

Não há dúvidas de que os contratos inteligentes causaram um grande impacto no mundo das criptomoedas e certamente revolucionaram o ambiente da blockchain. Embora os usuários finais possam não interagir diretamente com contratos inteligentes, é provável que eles atendam a uma ampla gama de aplicações no futuro, desde serviços financeiros até gerenciamento da cadeia de suprimentos.

Os contratos inteligentes, juntamente com a tecnologia blockchain, têm o potencial de revolucionar quase todas as áreas da sociedade. Só o tempo dirá se estas tecnologias inovadoras vão conseguir superar as diversas barreiras que dificultam a adoção em grande escala.

Loading