Aprovações Fazem O Mundo Girar
Aprovações são muitas vezes demonizadas no espaço NFT. Com membros de comunidades demandando letras maiores em negrito vermelho dos provedores de carteiras digitais e demandando respostas de plataformas de mercado, é compreensível que haja muita ansiedade em torno delas.
Porém, sinceramente a web3 seria quase impossível sem elas. Se você já fez alguma venda em uma plataforma NFT, ou uma oferta em uma coleção NFT, você já está utilizando o poder das aprovações. Através das aprovações, você pode configurar condições “off-chain”, em que seus negócios serão executados automaticamente quando condições predeterminadas forem atingidas, como por exemplo a sua listagem sendo atingida, ou alguém aceitando a sua oferta de wETH.

Isso permite que você faça outras coisas com o seu ativo digital(como provar posse) e listar em outros marketplaces. Se as aprovações não existissem, você precisaria de uma plataforma que tivesse custódia total dos ativos de pagamento, ativos NFTs, ou ambos. Nesse caso, você não conseguiria listar em múltiplos marketplaces e não possuiria todos os benefícios de possuir o ativo!
Então, o que exatamente uma aprovação faz? Aprovações dão aos contratos inteligentes a habilidade de interagir com seus tokens (ERC-20, NFTs, etc). Eles podem ser retirados à vontade, baseado em parâmetros estabelecidos no contrato inteligente.
Definir Aprovações Para Todos (SAFA)

Quando se trata de coleções NFT em padrões ERC-1155, ERC-721 ou ERC-721a, todas possuem o mecanismo de aprovação a seguir. Estes padrões normalmente possuem dois métodos, Aprovação e Aprovações para Todos (SAFA), porém infelizmente golpistas e marketplaces utilizam a mais perigosa, a segunda opção.
Aprovar Para Todos: Aprovam todos os ativos em uma determinada carteira para uma coleção NFT inteira em um único endereço (normalmente um contrato ou um marketplace NFT)
Aprovação: Aprova um único ativo em uma determinada carteira para uma coleção NFT em um único endereço (não usado normalmente com NFTs).
Os golpes relacionados com Aprovações giram em torno de duas coisas:
- Te direcionando para um website inseguro para aceitar uma transação com aprovações maliciosas que dá ao atacante acesso aos seus ativos.
- Te direcionando para um website inseguro para aceitar uma transação com uma assinatura maliciosa que utiliza aprovações legítimas(anteriormente aprovadas).
Nota: A razão pela que eles utilizam assinaturas ao invés de transações é porque muitas pessoas não sabem que seus ativos podem ser roubados com assinaturas maliciosas (onde você não paga taxas) que utilizam suas aprovações legítimas.
Consegue ver o padrão? Te levar para um website inseguro é a grande jogada aqui. No nosso artigo Carteiras para Cada ocasião nós reiteramos que ir em um website inseguro/desconhecido com sua Carteira de Vendas nunca deve acontecer, e ir em um website desconhecido com sua carteira Cofre (uma carteira que não possui aprovações) deve apenas realizar assinaturas sem taxas como descrito no artigo Assinando com Segurança 101.
Então, O que está Acontecendo Quando Você Aprova?
Então o que está realmente acontecendo quando você define uma aprovação? Nós estamos na verdade chamando o método “Aprovação” do mesmo jeito que faríamos no Etherscan (por falar nisso, nós possuímos um ótimo artigo sobre Básicos do Etherscan aqui). Vamos observar o contrato da Apecoin para ajudar a visualizar o que está acontecendo:

Toda vez que você faz uma aprovação, realmente o que você está fazendo é adicionando outro gastador autorizado para os ativos que estão na sua carteira. Por padrão, você, o dono da carteira, normalmente possui acesso para mandar/receber tokens dentro de sua carteira caso os tokens estejam conforme um padrão aceito como o ERC-20, ERC-721 ou ERC-1155. Entretanto, como nossos estudantes do 102 já sabem, você pode criar um contrato de token onde diferentes regras podem ser aplicadas😈.
Aqui está uma lista de como diferentes métodos de aprovações funcionam em cada tipo de contrato:
ERC-721 (Foto de Perfil/Coleção Única NFT):
Função: Aprovar
- Gastador: O gastador que você está dando acesso (como Opensea ou um marketplace)
- Token/TokenID: Qual tokenID você está dando acesso.
Exemplo: BAYC #4014
Função: SetApprovalForAll (Aprovar Para Todos)
- Operador: Isto é o mesmo que Gastador, que terá acesso aos seus tokens
- Aprovado: Isso é um simples verdadeiro/falso. Se aprovado, o Operador/Gastador terá acesso a todos os tokens daquela coleção(então se você possui vários BAYCs, todos eles).
Exemplos: BAYC, Azuki, Doodles
ERC-1155 (NFT Semi-Fungível):
Função: SetApprovalForAll (Aprovar Para Todos)
- Operador: Isto é o mesmo que Gastador, que terá acesso aos seus tokens
- Aprovado: Isso é um simples verdadeiro/falso. Se aprovado, o Operador/Gastador terá acesso a todos os tokens daquela coleção(então se você possui vários BAYCs, todos eles).
Nota: Não há nenhum método de aprovação no padrão ERC-1155. Isso significa que quando você faz uma aprovação em um contrato ERC-1155, você está aprovando para TODO aquele token. Para mim isso parece como um descuido, mas eu entendo.
Exemplos: Boring Security, Adidas: Into The Metaverse
ERC-20 (Tokens Fungíveis)
Função: Approve (Aprovar)
- Gastador: O gastador que você está dando acesso (como Opensea ou um marketplace)
- Quantidade: Quanto do token você está permitindo que o contrato utilize. A quantidade se mantém ativa e pode ser utilizada ao longo do tempo. Viciados em Dookey Dash podem lembrar de uma aprovação de 800 $APE sendo definida, e talvez em algum lugar de sua jornada vocês tiveram que fazer outra aprovação!
Função: IncreaseAllowance (Aumentar Limite) [Nem todos Tokens ERC-20 possuem isso].
- Gastador: O gastador que você está dando acesso (como Opensea ou um marketplace)
- Quantidade: O valor que está sendo aumentado do limite permitido.
Note: Increase Allowance pode muitas vezes ser utilizado quando não há nenhuma aprovação de gastos definida no endereço do gastador, permitindo-o funcionar como uma aprovação. Tome cuidado com isto!
Exemplos: Apecoin, Wrapped Ethereum, AAVE (Proxy)
Permit, Permit2 e “aprovações gasless”
Normalmente, contratos inteligentes precisam utilizar um dos métodos de aprovações acima para que possam interagir com os ativos da sua carteira. No mundo de taxas(gás) altas, isto é um problema, já que significa que para seus tokens interagirem com um contrato inteligente, como parte de um “acordo atômico”, duas transações são necessárias para realizar essas ações. Além disso, aprovações abertas podem criar um risco de segurança caso contratos antigos sofram algum exploit ou caso essas aprovações sejam utilizadas por usuários mal intencionados. Ai entra o Permit e o Permit2.
Permit é uma primitiva que existe como uma extensão do padrão ERC-20. Novos tokens podem adotar esse padrão como parte de seu contrato. Mesmo sendo conveniente, também pode ser assustador, já que significa que SEUS “tokens Permitíveis” podem ser aprovados com apenas uma simples assinatura gasless, aumentando o risco para a assinatura de mensagens que ferramentas como o revoke.cash não conseguem remover! Quer saber se você possui tokens que são “Permitíveis” por padrão? Alguns dos tokens que estão nessa lista são: $USDC, $stETH, $DAI e outros tokens DeFi como o $AAVE, $UNI e $BAL na rede da ETH. Há alguns repositórios que mostram quais tokens tem o permit integrado. Você pode comparar seus tokens com os tokens encontrados nessa lista ou nesta. Você pode aprender mais sobre o Permit neste incrível artigo da AfterDark Labs.
Permit2 por outro lado é algo que qualquer token pode utilizar. Ele só requer que você aprove aquele token primeiramente no contrato do Permit2. Permitindo que ele tenha os mesmos benefícios após a aprovação inicial, como por exemplo:
- Requisição de aprovações de tokens feitas por mensagens Gasless.
- Aprovação de tokens em massa (dar aprovações de múltiplos tokens de uma vez).
- Data de Expiração em aprovações.
- Revogação em massa de aprovações feitas pelo Permit2.
Você pode aprender mais sobre Permit 2 neste módulo criado por nossos amigos da Revoke.Cash ou no blog oficial da Uniswap Labs!
Algumas Formas Que esse Golpe pode Aparecer

Golpes com Aprovações são o tipo de golpe mais comum no espaço NFT, hoje. Este golpe normalmente pode aparecer em:
- Um golpe de Negociação de NFT, onde o golpista te atrai para um website de negociação falso para utilizar ou iniciar aprovações maliciosas.
- Um golpe de Airdrop de NFT, onde o golpista te atrai para o website de uma coleção falsa para utilizar ou iniciar aprovações maliciosas.
- Um website de um Derivativo NFT falso, onde o golpista tenta utilizar ou iniciar aprovações maliciosas.
- Um marketplace falso, onde…certo… você entendeu.

Acredito que você possa ver um padrão emergindo de todos esses golpes, onde aprovações (legítimas ou maliciosas) são utilizadas maliciosamente. Grande parte desses golpes também são Phishing. Talvez você pense que está na Opensea, mas dê uma olhada em nosso artigo “Phishing & Táticas por Golpistas” para aprender mais sobre as táticas sujas dos golpistas para te enganar e dar a eles os seus tokens! Quer aprender mais sobre aprovações ou acha que você pode ter muitas aprovações? Dê uma olhada neste artigo pela Revoke.Cash sobre revogação de aprovações!
Possui alguma questão ou gostaria de aprender mais sobre segurança na web3 e estar a par das informações de segurança, golpes e táticas? Junte-se a nós no discord em https://discord.gg/boringsecurity .


