Futuros
Acesse centenas de contratos perpétuos
CFD
Ouro
Plataforma única para ativos tradicionais globais
Opções
Hot
Negocie opções vanilla no estilo europeu
Conta unificada
Maximize sua eficiência de capital
Negociação demo
Introdução à negociação de futuros
Prepare-se para sua negociação de futuros
Eventos de futuros
Participe de eventos e ganhe recompensas
Negociação demo
Use fundos virtuais para experimentar negociações sem riscos
CFD
Derivativos de CFD sobre ações
Ações dos EUA
Acesse ações e ETFs reais dos EUA
Ações de Hong Kong
Negocie ações de qualidade listadas em Hong Kong
Ações da Coreia
SK Hynix
Negocie ações da Coreia reais e invista em ativos populares
Futuros de ações
Alta alavancagem, negociação 24/7
Ações tokenizadas
Respaldado por ativos de ações reais
IPO Access
Desbloqueie o acesso completo a IPO de ações globais
GUSD
3.8%
Cunhe GUSD para rendimentos de RWA do Tesouro
Atividades de ações
Negocie ações populares e desbloqueie airdrops generosos
Lançamento
CandyDrop
Colete candies para ganhar airdrops
Launchpool
Staking rápido, ganhe novos tokens em potencial
HODLer Airdrop
Possua GT em hold e ganhe airdrops massivos de graça
IPO Access
Desbloqueie o acesso completo a IPO de ações globais
Pontos Alpha
Negocie on-chain e receba airdrops
Pontos de futuros
Ganhe pontos de futuros e colete recompensas em airdrop
Investimento
Simple Earn
Ganhe juros com tokens ociosos
Autoinvestimento
Invista automaticamente regularmente
Investimento duplo
Lucre com a volatilidade do mercado
Soft Staking
Ganhe recompensas com stakings flexíveis
Empréstimo de criptomoedas
0 Fees
Penhore uma criptomoeda para pegar outra emprestado
Centro de empréstimos
Centro de empréstimos integrado
Centro de riqueza VIP
Planos premium de crescimento de patrimônio
Gate Wealth
Assuma o controle do seu futuro financeiro
Fundo Quantitativo
Estratégias quant de alto nível
Apostar
Faça staking de criptomoedas para ganhar em produtos PoS
Alavancagem Inteligente
Alavancagem sem liquidação
GUSD
3.8%
Cunhe GUSD para rendimentos de RWA do Tesouro
Promoções
Centro de atividade
Participe de atividades e ganhe recompensas
Indicação
200 USDT
Convide amigos para recompensas de ind.
Programa de afiliados
Ganhe recomp. de comissão exclusivas
Gate Booster
Aumente a influência e ganhe airdrops
Anúncio
Atualizações na plataforma em tempo real
Blog da Gate
Artigos do setor de criptomoedas
Serviços VIP
Grandes Descontos nas Taxas
Gerenciamento de ativos
Solução completa de gerenciamento de ativos
Institucional
Soluções de ativos digitais para empresas
Desenvolvedores (API)
Conecta-se ao ecossistema de aplicativos da Gate
Transferência Bancária OTC
Deposite e retire moedas fiat
Programa de corretoras
Mecanismos de grandes descontos via API
AI
Gate AI
Seu parceiro de IA conversacional para todas as horas
Gate AI Bot
Use o Gate AI diretamente no seu aplicativo social
GateClaw
Gate Blue Lobster, pronto para usar
Gate for AI Agent
Infraestrutura de IA, Gate MCP, Skills e CLI
Gate Skills Hub
10K+ habilidades
Do escritório à negociação: um hub completo de habilidades para turbinar o uso da IA
Quero compartilhar algo bastante importante que talvez você ainda não tenha entendido completamente — que é a vulnerabilidade de reentrancy em contratos inteligentes. Se você está desenvolvendo dapps ou trabalhando com blockchain, isso é um conhecimento obrigatório.
Qual é o problema básico da reentrancy? Ela ocorre quando um contrato inteligente chama outro contrato, e esse contrato pode fazer uma chamada de volta ao contrato original enquanto ainda está em execução. Um atacante pode explorar esse período para roubar fundos.
Imagine que o ContratoA tenha 10 Ether e o ContratoB tenha enviado 1 Ether para ele. Quando o ContratoB chama a função de saque, o ContratoA verifica se o saldo é maior que 0, e se for, envia Ether de volta. Mas aqui está o problema — o ContratoA só atualiza o saldo após enviar o dinheiro. Então, durante o envio, se o ContratoB tiver uma função fallback, ele pode chamar novamente a função de saque do ContratoA. Como o saldo ainda não foi atualizado, a verificação passa novamente, e ele recebe mais 1 Ether. Esse ciclo continua até que o ContratoA fique sem fundos.
Vou mostrar três maneiras de proteger o contrato contra esse tipo de ataque de reentrancy.
A primeira é usar o modificador nonReentrant. A ideia é bem simples — você bloqueia o contrato enquanto a função está sendo executada. Se alguém tentar chamar novamente essa função, a chamada será rejeitada porque o contrato está bloqueado. Você precisa executar todo o código primeiro e só então desbloquear, e nesse momento a verificação falhará se alguém tentar reentrar.
A segunda é usar o padrão Checks-Effects-Interactions. Em vez de atualizar o saldo após enviar o dinheiro, você atualiza imediatamente após a verificação, mas antes de fazer a transferência. Assim, mesmo que outro contrato chame de volta, o saldo já estará zerado, e a verificação falhará. Por isso, a ordem é muito importante — verificar primeiro, depois aplicar efeitos (atualizar saldo), e por último interagir com outros contratos.
A terceira é criar um guard global de reentrancy, especialmente útil quando você tem vários contratos interagindo entre si. Em vez de proteger cada função individualmente, você cria um contrato de guarda comum, que armazena o estado de bloqueio em um lugar central. Quando qualquer contrato tenta executar uma função protegida, ela verifica com esse guard. Se o guard indicar que o contrato está bloqueado, a transação é rejeitada. Essa abordagem é poderosa porque impede reentrancy não só dentro de um contrato, mas também entre múltiplos contratos.
Recomendo aplicar todas as três técnicas conforme a situação. Para funções de saque ou transferência de ativos, sempre use nonReentrant ou Checks-Effects-Interactions. E, se seu projeto tiver um sistema complexo de contratos, considere usar o GlobalReentrancyGuard como uma camada adicional de proteção.
Essa vulnerabilidade é uma das mais comuns e que causam grandes perdas, então entender bem o reentrancy é fundamental se você quer escrever contratos inteligentes seguros.