Smart Contract: Como o Código Autoexecutável Funciona numa Blockchain

Smart Contract: Como o Código Autoexecutável Funciona numa Blockchain

Um smart contract é um programa armazenado numa blockchain que executa automaticamente os termos escritos no seu código assim que uma transação ou outro contrato o chama. Um programa é um conjunto de instruções informáticas. Uma blockchain é um registo partilhado ao qual novas entradas são adicionadas sucessivamente. Uma transação é um pedido enviado a uma blockchain.

Onde Vive um Smart Contract?

Um smart contract é armazenado num endereço numa blockchain. Um endereço é um identificador numa blockchain para um utilizador ou para um smart contract. O código do contrato, e os dados que esse código mantém, são armazenados nesse endereço. O estado (state) são os dados que um smart contract mantém, de modo a que esses dados continuem lá na próxima vez que o contrato for executado.

Implementar (deploy) um smart contract significa colocar o seu código na blockchain através de uma transação que transporta esse código. Após a implementação, o contrato passa a ter um endereço para o qual podem ser enviadas transações.

Como Funcionam os Smart Contracts?

Um smart contract é executado quando uma transação ou outro contrato chama uma das suas funções. Chamar uma função significa pedir ao contrato que a execute. Uma função é uma parte do código do contrato com um nome próprio. Uma transação enviada para o endereço do contrato indica o nome de uma função e fornece os seus inputs, que são os dados de que a função necessita.

Os nós (nodes) da rede blockchain executam o código de um smart contract. Um nó é um computador que executa o software de uma rede blockchain e se liga a outros computadores da rede. Quando o código altera o estado do contrato, essa alteração fica registada na blockchain.

Uma conta é um registo numa blockchain que tem um endereço e um saldo. Um saldo é a quantidade da moeda nativa da blockchain que uma conta detém. Uma moeda nativa é a unidade nativa de uma blockchain, como o BTC na Bitcoin.

Na Ethereum, conforme descrito na sua documentação, existem dois tipos de conta. Uma conta de utilizador é controlada por uma pessoa através de uma chave privada. Uma chave privada é um número secreto que assina transações. Uma conta de contrato contém código, e um smart contract está armazenado no endereço de uma conta de contrato.

Uma chamada a um smart contract tem origem numa conta de utilizador ou noutro contrato. Neste texto, a expressão “autoexecutável” descreve um contrato cujo código executa as suas instruções assim que é chamado. Não descreve um contrato que inicia uma execução por si próprio, uma vez que uma conta de contrato só pode enviar mensagens em resposta ao recebimento de uma transação.

Um exemplo fictício ilustra uma chamada. Contratos reais diferem no que guardam e em como as suas funções estão escritas. No exemplo, um contrato mantém um número de unidades para cada um de dois endereços. Uma unidade é uma contagem que o contrato mantém. O endereço A tem 100 unidades e o endereço B tem 20 unidades.

  1. Uma conta de utilizador envia uma transação que chama a função transfer do contrato, pedindo para mover 30 unidades do endereço A para o endereço B.
  2. Os nós executam o código do contrato.
  3. O código verifica se o endereço A tem pelo menos 30 unidades.
  4. O código reduz o endereço A para 70 unidades e aumenta o endereço B para 50 unidades.
  5. A alteração é registada na blockchain. Os dois endereços detêm, no total, 120 unidades, tanto antes como depois da chamada.

O Que Pode um Smart Contract Guardar e Fazer?

Um smart contract pode manter um saldo da moeda nativa da blockchain, tal como uma conta de utilizador. Um smart contract pode também guardar registos no seu estado, como uma contagem para cada endereço, e uma chamada a uma das suas funções pode alterar esses registos.

Um smart contract pode chamar outros contratos, o que permite que o código de um contrato utilize as funções de outro. Uma função pode registar um evento, que é um aviso na blockchain que o software externo à blockchain pode monitorizar.

Um contrato de token é um smart contract que cria e controla tokens. Ao contrário de uma moeda nativa, um token é uma unidade emitida numa blockchain já existente através de um smart contract. Um padrão de token (token standard) é uma especificação publicada das funções e eventos que um contrato de token disponibiliza.

O Que Determina o Comportamento de um Smart Contract e Pode Este Ainda Mudar?

O código armazenado no endereço de um smart contract determina o que o contrato faz. Um smart contract executa exatamente o que o seu código indica, o que pode diferir daquilo que o autor pretendia. O código no endereço de um smart contract não muda depois de o contrato ser implementado, mas um contrato pode ser concebido de forma a que o comportamento que executa seja substituído.

Um smart contract pode, ainda assim, ser concebido de forma a que o seu comportamento possa ser substituído. Um contrato pode armazenar o endereço de um segundo contrato e encaminhar chamadas para ele. Se o primeiro contrato tiver sido concebido para permitir alterar o endereço armazenado, o comportamento executado pode mudar enquanto o endereço do primeiro contrato se mantém o mesmo. Um contrato concebido desta forma pode também definir quais as contas que têm permissão para alterar o endereço para o qual encaminha as chamadas.

Qual é o Equivalente na Bitcoin a um Smart Contract?

A Bitcoin, uma rede de criptomoeda cuja moeda é o BTC, tem um equivalente nos scripts. Um script é uma regra, escrita na linguagem de script da Bitcoin, que tem de ser cumprida antes de uma quantidade de BTC poder ser movimentada. Em outubro de 2026, a documentação da Bitcoin descreve a sua linguagem de script como deliberadamente limitada. BTCFi, abreviatura de Bitcoin-native finance (finanças nativas da Bitcoin), é um termo utilizado por várias partes para designar atividade financeira construída em torno do BTC, incluindo smart contracts e outras soluções.

O Que é uma Revisão de Código de um Smart Contract?

Uma revisão de código de um smart contract é uma verificação do código do contrato feita por pessoas diferentes do seu autor, que leem o código à procura de erros. Uma auditoria é uma forma de realizar uma revisão de código. Uma revisão pode não detetar todos os erros, pelo que uma revisão não garante que o código de um contrato esteja livre de falhas.

Quais São as Limitações de um Smart Contract?

Sem um oráculo, um smart contract só funciona com dados existentes na blockchain em que está implementado. Um oráculo é um serviço que envia dados externos a um contrato. Dados externos são dados que não estão armazenados na blockchain do contrato, como uma data externa ou um resultado externo.

Um erro no código de um smart contract já implementado pode permanecer indefinidamente, a menos que o contrato tenha sido concebido de forma a que o seu comportamento possa ser substituído.

27 de novembro de 2025

Notícias da GoMining

Poderá estar interessado em: