Um contrato inteligente hospedado em uma blockchain executa autonomamente assim que todos os termos ou condições especificados em um contrato ou acordo são cumpridos, eliminando a necessidade de intervenção de um intermediário.

Os termos do contrato são escritos em código legível por máquina. Uma vez que o contrato inteligente está completo, ele é irreversível e legalmente vinculativo, levantando a questão: é possível encerrar um contrato inteligente? E mais importante, os contratos inteligentes podem ser revertidos?

Este artigo discute se é possível revogar contratos inteligentes e, se possível, como alguém pode revogar o acesso do contrato inteligente aos seus fundos de criptomoeda.

O que significa revogar contratos inteligentes?

Revogar um contrato inteligente normalmente significa desabilitar ou encerrar sua funcionalidade em uma blockchain. Por exemplo, a revogação pode interromper o acesso à carteira cripto de um usuário e à capacidade de mover tokens. Além disso, a revogação de um contrato inteligente impede a permissão para visualizar o saldo de tokens de um usuário ou endereço público.

Por que os contratos inteligentes são revogados?

Alguém pode revogar um contrato inteligente sob várias circunstâncias, como se não pretender comprar, vender ou transferir um ativo ou usar o contrato inteligente novamente.

Em outros casos, desenvolvedores maliciosos constroem portas dos fundos em contratos inteligentes, permitindo acesso não autorizado aos fundos.

Quem pode alterar um contrato inteligente?

Como qualquer contrato, uma vez que as partes concordaram com os termos do contrato, eles são inalteráveis. Mesmo que as partes quisessem fazê-lo, os termos são escritos na blockchain, que é inalterável. Isso torna os contratos inteligentes imutáveis.

A única maneira de "alterar" os termos de um contrato é "atualizar" o contrato, ou seja, trocar o contrato inteligente subjacente de uma aplicação descentralizada (DApp) por outro. Alternativamente, as partes podem optar por ter um contrato atualizável desde o início, o que permite modificações no contrato inteligente.

Quem controla um contrato inteligente?

Ninguém controla o contrato inteligente uma vez que o código é escrito na blockchain. O código será executado se ou quando uma condição ou estipulação predeterminada for atendida ou verificada. A ação envolve a atualização da blockchain e o envio de notificações. Apenas as partes com acesso ao contrato inteligente podem ver os detalhes da transação.

Como ninguém tem controle expresso do contrato, as partes precisam determinar as estipulações e descrevê-las adequadamente sem ambiguidade para garantir que possam ser executadas. E isso levanta a questão: os tokens podem ser bloqueados dentro de um contrato inteligente? Quando um usuário envia tokens para um contrato inteligente, ninguém pode negociar ou retirá-los, essencialmente bloqueando-os nele.

O contrato inteligente só liberará os tokens após um determinado período ou execução de certas condições. Algumas plataformas até permitem a personalização do bloqueio de tokens, com o usuário especificando a data e a hora em que os tokens podem ficar disponíveis.

O que são aprovações de tokens e permissões em contratos inteligentes?

A única maneira de se proteger contra a exploração de contratos inteligentes é aprovar apenas a retirada dos fundos necessários, evitar plataformas não testadas e revogar aprovações e permissões de tokens.

Mas o que são aprovações de tokens e permissões? Contratos inteligentes permitem que DApps automatizem a movimentação de tokens na carteira de um usuário, daí as aprovações e permissões de tokens. Portanto, aprovações e permissões de tokens significam a aprovação do proprietário de um contrato inteligente para retirar tokens de uma carteira para executar uma negociação. Um usuário pode usar várias maneiras de revogar o acesso do contrato inteligente aos seus tokens:

Revogando contratos inteligentes através do explorador de blocos de tokens

Redes individuais geralmente têm exploradores de blocos, como o Polygonscan e Etherscan, que contêm uma seção de aprovação onde os usuários podem utilizar a ferramenta de aprovação de tokens para revogar permissões e aprovações.

Estas são as etapas típicas tomadas ao usar uma ferramenta de aprovação de tokens, e observe que apenas o proprietário do endereço pode revogar contratos inteligentes conectados:

1. Navegue até a página de aprovação de tokens.

2. Digite seu endereço na barra de pesquisa e clique em “pesquisar”.

3. Qualquer contrato inteligente associado ao endereço que possa gastar em nome do usuário aparecerá na lista de ativos, fornecendo mais informações como a permissão de token do contrato inteligente, hash da transação e padrões de token.

4. Conecte-se à carteira clicando no botão “conectar a Web3”.

5. Uma vez que a conexão seja confirmada, selecione qual contrato(s) revogar.

Como revogar aprovações e permissão de tokens de contratos inteligentes na Ethereum

Aqui estão as etapas usuais tomadas ao revogar contratos inteligentes na rede principal da Ethereum:

Etapa 1: Ferramentas de revogação de acesso

Os usuários podem rastrear e revogar contratos inteligentes conectados aos seus endereços usando várias ferramentas de terceiros de revogação de acesso. Conecte-se a qualquer um desses sites para iniciar o processo:

  • approved.zone: Ethereum
  • Revoke: várias redes
  • EverRise: várias redes
  • Ethallowance: Ethereum
  • Unrekt: várias redes
  • Beefy.finance: BNB Smart Chain
  • Etherscan: Ethereum
  • Cointool: várias redes

Etapa 2: Conectar a carteira

Depois de se conectar ao site, procure e clique no botão “conectar carteira”. Ao conectar o site à carteira, certifique-se de que eles estão na mesma rede, pois as ferramentas de revogação de acesso só funcionam em um tipo de cadeia.

Por exemplo, se conectado à rede principal da Ethereum, não é possível revogar um contrato inteligente da Polygon, pois apenas contratos inteligentes da Ethereum são suportados e serão exibidos.

Etapa 3: Selecionar contrato inteligente

A ferramenta de contrato inteligente exibirá todos os contratos inteligentes compatíveis, mostrando suas permissões de acesso e limites de gastos. Os usuários devem selecionar aqueles que desejam revogar. Se não tiver certeza, selecione todos e conceda novas permissões no próximo lançamento de cada DApp.

Etapa 4: Revogar acesso

Clique no botão “revogar”, pague pela transação e espere um ou dois minutos para concluir a transação. Faça logout e login novamente no site para confirmar que a transação revogada foi bem-sucedida (o contrato inteligente não deve estar na lista).

A revogação do acesso ao token também encerra estratégias DeFi?

Não. Os usuários manterão suas posições em estratégias de finanças descentralizadas (DeFi), como pool, staking e empréstimos, permitindo que continuem recebendo recompensas. No entanto, isso pode afetá-los significativamente, dependendo do contexto e de como a estratégia é estruturada.

Nos ecossistemas de finanças descentralizadas (DeFi), os usuários frequentemente concedem permissão a contratos inteligentes para acessar seus tokens para diversas funções, como negociação, empréstimo ou staking. Se um usuário revoga esse acesso, o contrato inteligente não pode mais mover ou gerenciar os tokens do usuário em seu nome.

Essa ação pode interromper estratégias em andamento que dependem da capacidade do contrato de interagir com os tokens. No entanto, a estratégia DeFi subjacente não é encerrada, mas pausada ou tornada inativa até que o acesso seja concedido novamente ou a estratégia seja ajustada.

Desconectar uma carteira de um projeto é o mesmo que remover permissão para usar fundos?

Não, não são a mesma coisa. Desconectar uma carteira de um projeto apenas cancela permissões que permitem a outros usuários visualizar os saldos de tokens, endereço público e atividades passadas do usuário, e impede a iniciação de transações. No entanto, observe que isso não impedirá a execução de transações.

Por outro lado, remover a permissão para usar fundos significa revogar a permissão de um DApp para acessar e movimentar o conteúdo de uma carteira.

VEJA MAIS: