O que são Contratos Inteligentes e como eles funcionam?

Patrick (Barba) Carneiro
Chainlink Community
14 min readMar 2, 2024

Essa é uma tradução do artigo “What Are Smart Contracts and How Do They Work?” e foi traduzido por Barba.

DEFINIÇÃO DE CONTRATOS INTELIGENTES
Um contrato inteligente é um programa de computador descentralizado que opera em uma rede blockchain, executando automaticamente e de forma determinística acordos baseados em condições predefinidas.

Introduzidos em sua forma atual através blockchain Ethereum, os contratos inteligentes são um bloco de construção fundamental para a indústria Web3; a base para as aplicações DeFi, NFT, jogos e outras aplicações que ganharam destaque na Web3.

Seja para codificar termos de acordo arbitrários entre partes mutuamente desconfiadas, criar trocas automatizadas e descentralizadas, ou criar tokens fungíveis e não fungíveis, os contratos inteligentes são como os desenvolvedores constroem aplicações descentralizadas em blockchains. Continue lendo para uma introdução simples aos contratos inteligentes e o que eles significam para a sociedade.

O que é um Contrato Inteligente?

Contratos inteligentes são programas de computador hospedados e executados em uma rede blockchain. Cada contrato inteligente consiste em código que especifica condições predeterminadas que, quando atendidas, desencadeiam resultados. Ao operar em uma blockchain descentralizada em vez de um servidor centralizado, os contratos inteligentes permitem que múltiplas partes cheguem a um resultado compartilhado de maneira precisa, oportuna e à prova de adulteração.

Contratos inteligentes são uma infraestrutura poderosa para automação porque não são controlados por um administrador central e não são vulneráveis a pontos únicos de ataque por entidades maliciosas. Quando aplicados a acordos digitais entre múltiplas partes, as aplicações de contrato inteligente podem reduzir o risco de contraparte, aumentar a eficiência, reduzir custos e fornecer novos níveis de transparência nos processos.

Blockchains e Contratos Inteligentes

Blockchains habilitados para contratos inteligentes desbloqueiam a capacidade dos desenvolvedores de escrever lógicas arbitrárias de aplicativos em cima do consenso descentralizado que as blockchains fornecem nativamente. É por isso que blockchains, contratos inteligentes e aplicações podem ser pensados em termos de uma relação hierárquica: Aplicações (incluindo tokens) são criadas pelo código de um contrato inteligente (ou vários contratos inteligentes conectados). As ações definidas em um contrato inteligente, por sua vez, são executadas e armazenadas pela rede blockchain subjacente.

Como Funcionam os Contratos Inteligentes

Contratos inteligentes são programas à prova de adulteração em blockchains com a seguinte lógica: “se/quando o evento x acontecer, então execute a ação y.” Um contrato inteligente pode ter várias condições diferentes e uma aplicação pode ter vários contratos inteligentes diferentes para suportar um conjunto interconectado de processos. Existem também múltiplas linguagens de contrato inteligente para programação, sendo o Solidity da Ethereum a mais popular.

Qualquer desenvolvedor pode criar um contrato inteligente e implantá-lo em uma blockchain pública para suprir seus interesses, por exemplo, um agregador de rendimento pessoal que automaticamente transfere seus fundos para a aplicação que gera mais rendimento. No entanto, muitos contratos inteligentes envolvem múltiplas partes independentes que podem ou não se conhecer e não necessariamente confiam umas nas outras. O contrato inteligente define exatamente como os usuários podem interagir com ele, envolvendo quem pode interagir com o contrato inteligente, em quais momentos, e quais entradas resultam em quais saídas. O resultado são acordos digitais entre múltiplas partes que evoluem do estado probabilístico de hoje, onde provavelmente serão executados conforme desejado, para um novo estado determinístico onde são garantidos para executar de acordo com seu código.

Todas as Blockchains Possuem Contratos Inteligentes?

Nem todas as blockchains podem executar contratos inteligentes. Enquanto blockchains e redes de camada 2, incluindo Arbitrum, Avalanche, Base, BNB Chain e Ethereum, são exemplos de blockchains compatíveis com contratos inteligentes, blockchains como a blockchain base do Bitcoin não possuem capacidade nativa de contrato inteligente. A principal diferença entre essas blockchains é a capacidade de uma blockchain subjacente de executar e armazenar lógica arbitrária.

História dos Contratos Inteligentes

Contratos inteligentes foram criados pela primeira vez pelo cientista da computação americano Nick Szabo em 1994. Em seu texto seminal, ele deu uma ampla definição de contrato inteligente da seguinte forma: “um protocolo de transação computadorizado que executa os termos de um contrato”, com objetivos gerais para “satisfazer condições contratuais comuns, minimizar exceções tanto maliciosas quanto acidentais, e minimizar a necessidade de intermediários confiáveis.”

Embora uma noção geral de contratos inteligentes pudesse ser vista em sistemas como máquinas de venda automática (por exemplo, um código específico leva a um lanche esperado), as blockchains formaram a base dos contratos inteligentes que eram digitais, à prova de adulteração e sem permissão. A introdução da blockchain do Bitcoin em 2009 suportou o que pode ser considerado o primeiro contrato inteligente de protocolo — estabelecendo um conjunto de condições que precisavam ser satisfeitas para transferir Bitcoins entre usuários na rede. Essas condições incluem o usuário assinando a transação com a chave privada correta que corresponde ao seu endereço público (semelhante a uma senha vinculada a uma conta específica) e o usuário possuindo fundos suficientes para cobrir a transação.

A blockchain do Bitcoin então evoluiu para oferecer outro tipo principal de contrato inteligente em 2012, chamado de transação multi-assinatura (multisig). Uma transação multisig requer que um número definido de pessoas (chaves públicas) assine uma transação com suas chaves privadas antes que seja considerada válida. Isso aumenta a segurança dos fundos do usuário ao mitigar pontos únicos de falha, como uma chave privada roubada ou perdida.

Um framework simples para uma transação multisig na blockchain do Bitcoin que requer 2 de 3 chaves privadas para assinar uma transação antes que ela seja considerada válida.

As blockchains começaram a realizar novos experimentos nos anos seguintes, adicionando novas condições programáticas (chamadas de códigos de operação ou opcodes). No entanto, o próximo grande salto em contratos inteligentes ocorreu com a publicação do whitepaper do Ethereum por Vitalik Buterin em 2013. Em 2015, o Ethereum foi lançado como um novo tipo de blockchain para contratos inteligentes programáveis. Em vez da blockchain agir efetivamente como uma única aplicação de contrato inteligente ou oferecer alguns opcodes limitados, a blockchain de contratos inteligentes do Ethereum ofereceu um “computador mundial” que poderia executar muitos contratos inteligentes independentes ao mesmo tempo.

Exemplos de Contratos Inteligentes

Um propósito de um contrato inteligente é automatizar um processo de negócios específico entre um grupo distinto de entidades. Essas entidades chegam coletivamente a um acordo sobre todos os termos do contrato inteligente, como pagamentos, fluxo de processo e resoluções de disputa. Um exemplo simples de contrato inteligente para o comércio global pode ter termos como:

  • Termo 1: Se os bens chegarem no prazo, então execute um pagamento do varejista para o fornecedor no valor total.
  • Termo 2: Se os bens chegarem com um dia de atraso, então execute um pagamento do varejista para o fornecedor por 98% do valor total.

Outros contratos inteligentes suportam aplicações descentralizadas públicas (dApps) com as quais qualquer pessoa pode interagir sem necessidade de permissões. dApps públicos são frequentemente de código aberto, permitindo que qualquer pessoa no mundo inspecione exatamente como funcionam antes de decidir se interage ou não com eles. Um exemplo de um dApp público é um mercado descentralizado de empréstimos, que pode ter os seguintes termos:

  • Termo 1: Se o usuário depositar garantia no contrato inteligente específico, ele pode receber um empréstimo de até 50% do valor de sua garantia (ou seja, depósito de $100 pode pegar emprestado até um empréstimo de $50).
  • Termo 2: Se a taxa de colateralização do usuário (garantia/valor do empréstimo pendente) cair abaixo de 200%, a garantia do usuário é automaticamente liquidada e transferida para os credores para garantir que eles não percam dinheiro.
  • Termo 3: Credores podem depositar fundos em um contrato específico que outros usuários podem pegar emprestado em taxas de colateralização pré-definidas, enquanto o credor recebe uma reivindicação de uma parte dos pagamentos de juros.

Executabilidade de Contratos Inteligentes

Por funcionarem em cima de blockchains, os contratos inteligentes são executados automaticamente e de forma determinística exatamente como programados. No contexto da execução, isso hipoteticamente significa que nenhuma das partes envolvidas em uma transação de contrato inteligente pode alterar seu resultado ou renegar os termos delineados em um contrato inteligente.

Efetivamente, é possível para contratos inteligentes — com o design certo — eliminar o risco de contraparte, frequentemente definido como o risco percentual de que uma contraparte não cumprirá suas obrigações. No entanto, contratos inteligentes introduzem o risco de contrato inteligente, ou o risco de que o código de um contrato inteligente tenha uma exploração ou falha que resulte em resultados indesejáveis. Contratos inteligentes sempre funcionam como programados, então se o programa for defeituoso, o contrato inteligente executará o código defeituoso conforme esperado.

Outra consideração chave para a executabilidade de contratos inteligentes é que alguns contratos são simplesmente inexecutáveis por meio de código. Um exemplo chave é o empréstimo — protocolos DeFi oferecem quase exclusivamente empréstimos supercolateralizados, onde um tomador deve depositar >$100 para pegar emprestado $100, porque não há como garantir que um credor pagará de volta um empréstimo a menos que o valor total já esteja em um contrato inteligente. Nesses casos, a combinação de contratos inteligentes e sistemas fora da cadeia, como pontuações de crédito, prova de fundos e contratos legais, pode fornecer uma abordagem de defesa em profundidade para mitigar o risco de contraparte.

Benefícios e Limitações dos Contratos Inteligentes

Os contratos inteligentes, sem dúvida, oferecem ao mundo uma maneira mais segura e verificável de criar acordos sociais que envolvem a transferência de valor e dados. No entanto, a paisagem das blockchains e contratos inteligentes ainda é incipiente, e os desenvolvedores devem enfrentar uma variedade de limitações à medida que buscam construir a visão da web verificável.

Benefícios dos Contratos Inteligentes

A maioria dos acordos digitais tradicionais envolve duas partes que não se conhecem, introduzindo o risco de que qualquer dos participantes não cumpra seus compromissos. Para resolver o risco de contraparte, os acordos digitais são frequentemente hospedados e executados por instituições centralizadas maiores, como um banco, que pode fazer cumprir os termos do contrato. Esses contratos digitais podem ser diretamente entre um usuário e uma grande empresa ou envolver uma grande empresa atuando como intermediário confiável entre dois usuários. Embora essa dinâmica permita a existência de muitos contratos que de outra forma não assumiriam tal risco, ela também cria uma situação onde as instituições centralizadas maiores exercem uma influência assimétrica sobre os contratos.

A diferença na maneira como os fundos dos usuários são tratados ao fazer um pagamento através de uma blockchain versus o sistema bancário

Os contratos inteligentes aprimoram os acordos digitais oferecendo várias vantagens.

  • Segurança — Executar o contrato em uma infraestrutura blockchain descentralizada garante que não haja um ponto central de falha para ataque, nenhum intermediário centralizado para subornar, e nenhum mecanismo para que qualquer uma das partes ou um administrador central use para adulterar o resultado.
  • Confiabilidade — Ter a lógica do contrato processada e verificada de forma redundante por uma rede descentralizada de nodes oferece garantias fortes de resistência a adulterações, disponibilidade e correção de que o contrato será executado a tempo de acordo com seus termos.
  • Equitativo — Usar uma rede descentralizada para hospedar e fazer cumprir os termos do acordo reduz a capacidade de um intermediário com fins lucrativos de usar sua posição de privilégio para buscar renda e desviar valor.
  • Eficiência — Automatizar os processos de backend do acordo — caução, manutenção, execução e/ou liquidação — significa que nenhuma das partes precisa esperar que os dados manuais sejam inseridos, a contraparte cumpra suas obrigações, ou um intermediário processe a transação.

Limitações dos Contratos Inteligentes

Uma limitação marcante no desenvolvimento de contratos inteligentes é a sua natureza imutável: uma vez criado, o código do contrato inteligente não pode ser alterado. Isso pode ser visto tanto como uma característica poderosa quanto uma limitação fundamental: aplicações imutáveis operam automaticamente enquanto a blockchain em que são executadas estiver ativa, mas elas não podem ser atualizadas com novas funcionalidades, correções de bugs ou expansões. Isso destaca outra limitação e risco para os contratos inteligentes — um contrato inteligente que é implantado com um bug ou vulnerabilidade não descoberta, não pode ser alterado de maneira oportuna (ou às vezes de forma alguma), tornando as auditorias de contrato inteligente uma parte central do processo de desenvolvimento de contrato inteligente.

Uma solução que muitos desenvolvedores usam para combater essa limitação é criar contratos inteligentes atualizáveis, onde um contrato proxy é usado para apontar para um novo contrato inteligente atualizado. Isso não quebra a imutabilidade do contrato inteligente, mas sim desbloqueia a capacidade de direcionar os usuários para um novo contrato inteligente atualizado.

Contrato Inteligente e Recursos Fora da Blockchain

As blockchains são redes isoladas, o que significa que não possuem uma conexão inerente com o mundo externo. Sem conectividade externa, os contratos inteligentes não podem se comunicar com sistemas externos para confirmar a ocorrência de eventos do mundo real, nem podem acessar recursos computacionais de custo eficiente. Semelhante a um computador sem Internet, os contratos inteligentes são extremamente limitados sem conectividade com o mundo real. Por exemplo, eles não podem saber o preço de um ativo antes de executar uma negociação, não podem verificar o volume médio de chuvas antes de pagar uma indenização de seguro agrícola e não podem verificar se os bens chegaram antes de se acertar com um fornecedor.

Assim, a grande evolução em andamento na indústria de blockchain são os contratos inteligentes programáveis que se conectam com dados do mundo real e sistemas tradicionais fora de uma blockchain, expandindo as entradas e saídas usadas na lógica do contrato inteligente. Esses contratos inteligentes híbridos usam Chainlink para combinar código on-chain com infraestrutura off-chain — por exemplo, acionar um contrato inteligente com dados externos ou liquidar um contrato off-chain em uma via de pagamento tradicional.

Oráculos conectam entradas e saídas às blockchains para criar contratos inteligentes híbridos.

Semelhante ao efeito da Internet nos computadores, a plataforma de computação descentralizada da Chainlink é a chave para conectar as emergentes redes de blockchain com os sistemas legados de hoje, para possibilitar contratos inteligentes interconectados, performáticos e que preservam a privacidade, mantendo a segurança e confiabilidade da rede blockchain subjacente. Ao possibilitar contratos inteligentes conectados externamente, a Chainlink amplia e aprimora grandemente as propriedades valiosas das blockchains, levando a acordos digitais superiores e verificáveis em mais indústrias e casos de uso.

Casos de Uso de Contratos Inteligentes

Gestão de Direitos (Tokens)

Contratos inteligentes de tokens são usados para criar, rastrear e atribuir direitos de propriedade a tokens digitais específicos existentes em redes blockchain. O contrato do token programa funcionalidades nos tokens que emite, fornecendo aos detentores características como utilidade/seguro em um dApp (token de utilidade), peso de voto em um protocolo (token de governança), participação em uma empresa (token de segurança), reivindicação de propriedade de um ativo real ou digital único (token não fungível), e mais. Por exemplo, o token FIL é usado para pagar pelos serviços de armazenamento descentralizado do Filecoin e o token COMP permite aos usuários participarem na governança do protocolo Compound.

Produtos Financeiros (DeFi)

Finanças descentralizadas (DeFi) consistem em aplicações que usam contratos inteligentes para recriar produtos e serviços financeiros tradicionais, como mercados monetários, opções, stablecoins, exchanges e gestão de ativos, bem como combinar múltiplos serviços para criar novos primitivos financeiros via composabilidade sem permissão. O contrato inteligente pode manter os fundos do usuário em custódia e distribuí-los entre os usuários com base em condições predefinidas. Por exemplo, o BarnBridge usa contratos inteligentes para automatizar negociações para usuários que desejam exposição fixa a um par de preços (por exemplo, 45% do token A, 55% do token B), e o Aave utiliza contratos inteligentes para facilitar o empréstimo de maneira permissionless e descentralizada.

A Aave suporta mercados de empréstimo descentralizados usando preços de ativos para determinar a capacidade de empréstimo de um usuário e para verificar se os empréstimos estão subcolateralizados e sujeitos a liquidação.

Jogos e NFTs

Jogos baseados em blockchain utilizam contratos inteligentes para a execução à prova de adulteração de ações dentro do jogo. Um exemplo é o PoolTogether, um jogo de poupança sem perdas onde os usuários apostam seus fundos em um pool compartilhado que é então encaminhado para um money market onde ele gera juros. Após um período de tempo pré-definido, o jogo termina e um vencedor é sorteado aleatoriamente para receber todos os juros acumulados, enquanto todos os outros podem retirar seu depósito original. Da mesma forma, NFTs de edição limitada podem ter modelos de distribuição justa e RPGs podem suportar quedas de loot imprevisíveis usando aleatoriedade, ajudando a garantir que todos os usuários tenham uma chance justa de obter ativos digitais raros. Muitos projetos acessam a aleatoriedade usando o Chainlink Verifiable Random Function (VRF) — um gerador de números aleatórios (RNG) que usa criptografia para provar que é à prova de adulteração, significando que o processo RNG é publicamente auditável.

O jogador de beisebol da MLB Trey Mancini fez um lançamento de NFT para arrecadar dinheiro para o suporte a pacientes com câncer, onde o Chainlink VRF foi usado para atribuir aleatoriamente utilidade adicional a alguns NFTs.

Seguro

O seguro paramétrico é um tipo de seguro onde o pagamento está diretamente atrelado a um evento pré-definido específico. Contratos inteligentes fornecem uma infraestrutura à prova de adulteração para criar contratos de seguro paramétrico que são acionados com base em entradas de dados. Por exemplo, um seguro de safra pode ser criado usando contratos inteligentes, onde um usuário compra uma apólice baseada em informações meteorológicas específicas, como a precipitação sazonal em uma localização geográfica. No final da apólice, o contrato inteligente emitirá automaticamente um pagamento se a quantidade de chuva na localização específica exceder a quantidade originalmente declarada. Não só os usuários finais recebem pagamentos oportunos com menos despesas gerais, mas o lado da oferta de seguros pode se tornar aberto ao público via contratos inteligentes. O contrato inteligente permite que os usuários depositem fundos em um pool e, em seguida, distribui os prêmios coletados aos participantes do pool com base na porcentagem de sua contribuição para o pool.

A Arbol utiliza contratos inteligentes Ethereum e oráculos Chainlink para possibilitar seguros paramétricos baseados em dados meteorológicos em uma região geográfica específica.

77+ Casos de uso para Contratos Inteligentes por Chainlink

Descubra a ampla gama de aplicações de contratos inteligentes que desenvolvedores de blockchain estão construindo com oráculos da Chainlink, desde protocolos DeFi até NFTs, seguros paramétricos e soluções de identidade descentralizadas.

Acesse aqui.

Perguntas Frequentes (FAQ) sobre Contratos Inteligentes

Como Eu Crio um Contrato Inteligente?

Criar um contrato inteligente requer conhecimento preliminar sobre desenvolvimento de contratos inteligentes. Este blog fornece um exemplo de um contrato inteligente básico, “Hello World”, escrito em Solidity.

Como Eu Faço o Deploy de um Contrato Inteligente?

Muito do desenvolvimento de contratos inteligentes acontece em redes de teste (testnets), onde os desenvolvedores testam seu código antes de fazer o deploy na rede principal (mainnet). Leia este blog para um guia de como fazer o deploy do seu primeiro contrato inteligente.

Como São Executados os Contratos Inteligentes?

Contratos inteligentes requerem uma parte externa para acionar funções baseadas em gatilhos pré-estabelecidos, o que exige um serviço de automação dedicado. Para aprender como executar automaticamente funções de contratos inteligentes, leia este blog.

Como Eu Faço a Auditoria de um Contrato Inteligente?

A segurança de contratos inteligentes não é apenas desejável, é uma necessidade. Aprenda os fundamentos da auditoria de contratos inteligentes lendo este blog.

Como Eu Começo a Aprender o Desenvolvimento de Contratos Inteligentes?

Um dos melhores recursos para se atualizar sobre o desenvolvimento de contratos inteligentes é o bootcamp de contratos inteligentes da Chainlink, que fornece orientação passo a passo sobre os fundamentos da codificação de contratos inteligentes.

O que é um ABI de Contrato Inteligente?

ABIs são interfaces binárias de aplicação. Eles definem os métodos e variáveis que estão disponíveis em um contrato inteligente e que podemos usar para interagir com esse contrato inteligente. Para um mergulho mais profundo em Solidity, a Ethereum Virtual Machine (EVM), bytecode e ABIs, leia este blog.

O que é um Oráculo de Contrato Inteligente?

Oráculos de contratos inteligentes fornecem aos contratos inteligentes uma conexão com dados, computação e sistemas fora da cadeia, o que é necessário para os desenvolvedores construírem casos de uso no mundo real.

Qual é a Melhor Linguagem de Programação para Contratos Inteligentes?

Existem várias linguagens de programação populares para contratos inteligentes, incluindo Solidity, Vyper, Rust e mais. Este blog passa pelas linguagens de programação mais populares.

--

--

Patrick (Barba) Carneiro
Chainlink Community

Solidity Developer | Security Researcher | Chainlink Developer Expert | @bellumgalaxy Founder