O Que é o Smart Contract?

Gaofeng Yin
Chainlink Community
10 min readMar 5, 2022

Este artigo é uma tradução de https://chain.link/education/smart-contracts escrito por ChainLink e traduzido por Gaofeng Yin.

Definição

O smart contract é um programa resiliente a adulteração (tamper-proof) que é executado numa rede de blockchain quando certas condições predefinidas são satisfeitas.

Smart contracts são programas de computador alojados e executados numa rede de blockchain. Cada smart contract consiste num código que especifica condições predeterminadas que, quando são cumpridos, desencadeiam uma série de ações e resultados. Ao executar em um blockchain descentralizado em vez de um servidor centralizado, os smart contracts permitem que vários elementos cheguem a um termo compartilhado de maneira precisa, pertinente e resistente a adulteração.

Os smart contracts são uma infraestrutura robusta para processos de automatizaçã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 com vários elementos, as aplicações de smart contracts podem reduzir o risco de contraparte, aumentar a eficiência, reduzir o custo e transmitir novos níveis de transparência nos processos.

A História de Smart Contracts

O termo smart contract foi referida pela primeira vez pelo computer scientist (engenheiro informático) americano Nick Szabo em 1994. Na sua redação seminal, ele deu uma definição ampla de smart contract da seguinte forma: “um protocolo de transação informático que executa os termos de um contrato”, com objetivos gerais para “satisfazer condições contratuais, minimizar exceções maliciosas e acidentais, e reduzir a necessidade de intermediários dignos de confiança.”

Ainda que a noção geral de smart contract possa ser visto como um sistema de máquina de venda automática (vending machines) (por exemplo, um código específico leva a um snack pretendido), as blockchains formam a base fundacional de smart contracts que são digitais, resilientes a adulteração e permissionless. A introdução de blockchain de Bitcoin em 2009 apoiou indubitavelmente o primeiro protocolo de smart contract — ao estabelecer um conjunto de condições que precisam de ser satisfeitas para poder transferir Bitcoins entre utilizadores na rede. Essas condições incluem se o utilizador assina a transação com a chave privada correta que corresponde ao seu endereço público (semelhante a uma password associada a uma conta específica) e se o utilizador possui fundos suficientes para cobrir a transação.

O blockchain do Bitcoin mais tarde evoluiu para conferir outro tipo importante de smart contract em 2012, chamado de transação multi-signature. Uma transação multisig requer um número definido de pessoas (chaves públicas) para assinar uma transação com as suas chaves privadas antes que seja considerada válida. Isso aumenta a segurança dos fundos do utilizador ao reduzir pontos únicos de falhas como a chaves privadas que foi roubado ou perdido.

Uma framework simples para uma transação multisig no blockchain de Bitcoin que requer 2 de 3 chaves privadas para assinar uma transação antes de ser considerada válida.

Ao longo do tempo os blockchains tem vindo a testar novas condições programáticas (chamadas de código de operação ou opcodes). No entanto, foi com a publicação de whitepaper de Ethereum por Vitalik Buterin em 2013, é que veio o grande salto de smart contracts. Em 2015, o Ethereum foi lançado como um novo tipo de blockchain para smart contracts programáveis. Em vez de o blockchain agir efetivamente como uma aplicação de smart contract singular ou oferecer alguns opcodes limitados, o blockchain de smart contracts de Ehtereum oferece um “computador mundial” que pode executar vários smart contracts independentes ao mesmo tempo.

Como Funcionam os Smart Contracts

Os smart contracts são programas resistentes a adulteração em blockchain com a seguinte lógica: “se/quando o evento X acontecer, executa a ação Y”. Um smart contract pode ter várias condições diferentes e uma aplicação pode ter vários smart contracts distintos para dar suporte a um conjunto de processos interligados. Existem também várias linguagens de programação para smart contract, sendo o Solidity do Ethereum o mais conhecido.

Qualquer developer pode criar um smart contact e fazer deploy em um blockchain público para os seus próprios propósitos, por exemplo, um agregador de rendimento pessoal que transfere automaticamente os seus fundos para a aplicação de maior lucro. No entanto, muitos smart contracts envolvem vários elementos independentes que podem não se conhecer e não confiam necessariamente umas nas outras. O smart contract define exatamente como os utilizadores podem interagir com ele, ao envolver quem pode interagir com o smart contract, em que momentos e quais inputs resultam em quais outputs. O resultado é acordo digital multipartidário que evoluem do estado atual probabilístico, onde serão possivelmente executados conforme previsto, para um novo estado determinístico, no qual são garantidos a execução de acordo com o seu código.

Exemplos de Smart Contracts

Um dos propósitos de smart contract é automatizar o processo específico de um negócio entre um grupo de entidades distintos. Essas entidades em conjunto chegam a um acordo sobre todos os termos do smart contract, como pagamentos, fluxo de processo e resoluções de conflitos. Um exemplo simples de smart contract para o comércio internacional pode ter termos como:

  • Termo 1: Se as mercadorias chegarem no prazo, efetua um pagamento do revendedor ao fornecedor no valor total.
  • Termo 2: Se as mercadorias chegarem com um dia de atraso, efetua um pagamento do revendedor ao fornecedor de 98% do valor total.

Outros smart contracts suportam aplicações públicas descentralizadas (dApps) com os quais qualquer pessoa pode interagir sem precisar de permissões de acesso. Os dApps públicos no geral são open-source (código aberto) para que qualquer pessoa no mundo possa avaliar exatamente como eles funcionam antes de decidir se devem ou não interagir com eles. Um exemplo de um dApp público é um mercado de empréstimo descentralizado, que pode ter os seguintes termos:

  • Termo 1: Se o utilizador depositar colateral num smart contract específico, ele poderá receber um empréstimo de até 50% do valor do seu colateral (ou seja, com um depósito de 100$ ele pode pedir um empréstimo até 50$).
  • Termo 2: se o índice de colateral do utilizador (valor do empréstimo pendente) cair abaixo de 200%, a colateral do utilizador é automaticamente liquidada e transferida para credor para garantir que eles não percam dinheiro.
  • Termo 3: Os credores podem depositar fundos em um contracto específico e outros utilizadores podem pedir o empréstimo com taxa de colateral predefinidas, enquanto o credor recebe uma reivindicação de uma parte dos pagamentos da taxa de juros.

Os Benefícios do Smart Contracts

A maioria dos acordos digitais tradicionais envolvem dois elementos que não se conhecem, o que introduz o risco de que qualquer um dos intervenientes não cumpram os seus compromissos. Para resolver o risco de contrapartida, os acordos digitais são geralmente alojados e executados por grandes instituições centralizadas, como um banco, que é capaz de impor os termos do contrato. Esses contratos digitais podem ser diretamente entre um utilizador e uma grande instituição ou envolver uma grande entidade que atua como um intermediário confiável entre os dois utilizadores. Embora essa dinâmica permita a existência de muitos contratos que, de outra forma, não assumiriam tal risco, também cria uma situação em que as grandes instituições centralizadas exercem influência assimétrica sobre os acordos.

A diferença em como os fundos do utilizador são tratados ao fazer um pagamento por meio de um blockchain versus o sistema bancário.

Os smart contracts elevam os acordos digitais, ao providenciar várias vantagens.

  • Segurança — A execução do contrato na infraestrutura de blockchain descentralizada garante que não haja um ponto central de falha que pode ser explorado por entidades maliciosas, nenhum intermediário centralizado para subornar e mecanismo para qualquer elemento ou um administrador central recorrer para modificar o resultado.
  • Confiabilidade — Ter a lógica do contrato processada e verificada de forma redundante por uma rede descentralizada de nodes (computadores) dá fortes garantias de resiliência a adulteração, uptime e exatidão que o contrato será executado no prazo de acordo com os seus termos.
  • Igualdade — A utilização de uma rede descentralizada para alojar e impor os termos do acordo reduz a capacidade de um intermediário com fins lucrativos de usar a sua posição de privilégio para usufruir benefícios de rent-seek e desviar o valor.
  • Eficiência — Automatizar os processos de back-end do termo— custódia, manutenção, execução e/ou liquidação — significa que nenhum dos elementos precisa aguardar por inserção manual de dados, a outra vertente de cumprir as suas obrigações ou um intermediário para processar a transação.

Casos de Uso do Smart Contract

Gestão de Direitos (Tokens)

Os token smart contracts são usados para criar, monitorizar e atribuir direitos específicos de propriedade de tokens digitais existentes em redes de blockchain. O contrato de token programa funcionalidades em tokens que ele emite, o que fornece aos proprietários recursos como utilidade/seguro em um dApp (utility token), poder de voto num protocolo (governance token), ações de uma empresa (security token), declaração de propriedade a um ativo único do mundo real ou digital (non-fungible token), e muito mais. Por exemplo, o token FIL é usado para pagar pelos serviços de armazenamento descentralizado da Filecoin e o token COMP permite que os utilizadores participam na regulamentação do protocolo de Compound.

Produtos Financeiros (DeFi)

A finança descentralizada (DeFi) consiste em aplicações que usam smart contracts para recriar produtos e serviços financeiros tradicionais, como mercados monetários, mercado de opções, stablecoins, mercado cambial e gestão de ativos, além de combinar vários serviços para criar primitivos financeiros novos por meio de permissionless composability. O smart contract pode manter os fundos dos utilizadores em custódia e distribuí-los entre os utilizadores com base em condições predefinidas. Por exemplo, a BarnBridge usa smart contracts para automatizar negociações aos utilizadores que pretendem a exposição de ativos fixos a um par de preços (por exemplo, 45% token A, 55% token B) e Aave usa smart contracts para facilitar empréstimos de maneira descentralizada e permissionless.

A Aave suporta os mercados de empréstimos descentralizados ao usar os preços dos ativos para determinar o empréstimo de um utilizador e para ver se os créditos estão sub garantidos e sujeitos a liquidação.

Gaming e NFTs

Os jogos baseados em Blockchain usam smart contracts para execução de ações no jogo com garantias de resiliência a adulteração. Um exemplo é o PoolTogether, um jogo de poupança sem perdas em que os utilizadores fazem stake dos seus fundos em um pool compartilhado que é então reencaminhado para um mercado monetário onde rende juros. Após um período de tempo predefinido, o jogo termina e um vencedor recebe aleatoriamente todos os juros acumulados, enquanto que todos os outros podem retirar os seus depósitos originais. Da mesma forma, NFTs de edição limitada podem ter o modelo de distribuição justo e RPGs suportam sorteio de itens imprevisíveis ao usar algoritmo de aleatoriedade, o que ajuda a garantir que todos os jogadores tenham uma chance equilibrada de obter ativos raros digitais. Muitos projetos acedem a função de aleatoriedade ao usar Verifiable Random Function (VRF) do Chainlink — um gerador de números aleatórios (RNG) que recorre à criptografia para garantir a resistência da adulteração, o que significa que o processo de RNG pode ser verificado publicamente.

O jogador de beisebol da MLB, Trey Mancini, fez uma drop de NFT para angariar fundos para apoiar as pacientes com cancro, onde o VRF do Chainlink foi usado para atribuir aleatoriamente utilidade adicional a alguns NFTs.

Seguro

O seguro paramétrico é um tipo de seguro em que um pagamento está vinculado diretamente a um evento concreto predefinido. Os smart contracts facultam a infraestrutura a prova de adulteração para criar contratos de seguro paramétricos que são ativados com base nos dados de input. Por exemplo, o seguro agrícola pode ser criado ao usar smart contracts, em que um utilizador compra um seguro com base em informações meteorológicas específicas, como chuvas sazonais numa localização geográfica. No final da apólice, o smart contract emite automaticamente um pagamento se a quantidade de chuva no local específico exceder o valor original declarado. Não apenas os utilizadores finais recebem pagamentos oportunos com menos despesas gerais, mas também a oferta do seguro pode se tornar aberto ao público por meio de smart contracts. O smart contract permite que os utilizadores depositem fundos em um pool e, de seguida, distribuam os prémios recolhidos aos participantes do pool com base na percentagem da sua contribuição para o pool.

A Arbol usa smart contracts de Ethereum e oracle de Chainlink para possibilitar o seguro paramétrico baseado em dados meteorológicos numa determinada região geográfica.

Limitações de Smart Contract

Uma das limitações inerentes dos smart contacts é que os blockchains subjacentes em que executam são redes isoladas, o que significa que os blockchains não estabelecem a ligação com o mundo exterior. Sem ligação externa, os smart contracts não conseguem comunicar com os sistemas externos para validar a ocorrência de eventos do mundo real nem aceder a recursos computacionais eficientes. Semelhante a um computador sem Internet, os smart contracts estão muito limitados sem a informação do mundo concreto. Por exemplo, eles não conseguem saber o preço de um ativo antes de iniciar uma troca, não é possível verificar a precipitação média mensal antes de pagar uma reivindicação de seguro agrícola e não é capaz de verificar se as mercadorias chegaram antes de pagar ao fornecedor.

Assim, a grande evolução atual na indústria de blockchain são os smart contracts programáveis que se ligam aos dados do mundo real e sistemas tradicionais fora de um blockchain, o que estende os inputs e outputs usados na lógica do smart contract. Esses smart contracts híbridos usam um middleware seguro conhecido como oracle para combinar código on-chain com a infraestrutura off-chain — por exemplo, ativar um smart contract com dados externos ou pagar um contrato off-chain na forma de pagamento tradicional.

Os oracles ligam inputs e outputs a blockchains para criar smart contracts híbridos.

Semelhante ao efeito da Internet nos computadores, os oracles são a chave para ligar as redes de blockchain emergentes com os sistemas tradicionais de hoje para permitir os smart contracts interligados, de alto desempenho e preservam a privacidade que mantêm a rede de blockchain subjacente segura e confiável. Ao possibilitar smart contracts híbridos, os oracles expandem e reforçam muito as propriedades valiosas dos blockchains, o que leva a acordos digitais mais robustos fundamentado na verdade criptográfica que estende para além de outras setores e casos de uso.

Comece a desenvolver com o Chainlink hoje através da documentação de developers, participa em discussão técnica no Discord e/ou entrar em contacto com um especialista.

Para saber mais sobre o Chainlink, visite o site do Chainlink e siga o Twitter oficial do Chainlink para acompanhar as últimas notícias e anúncio do Chainlink.

--

--