Básico
Spot
Opera con criptomonedas libremente
Margen
Multiplica tus beneficios con el apalancamiento
Convertir e Inversión automática
0 Fees
Opera cualquier volumen sin tarifas ni deslizamiento
ETF
Obtén exposición a posiciones apalancadas de forma sencilla
Trading premercado
Opera nuevos tokens antes de su listado
Contrato
Accede a cientos de contratos perpetuos
CFD
Oro
Plataforma global de activos tradicionales
Opciones
Hot
Opera con opciones estándar al estilo europeo
Cuenta unificada
Maximiza la eficacia de tu capital
Trading de prueba
Introducción al trading de futuros
Prepárate para operar con futuros
Eventos de futuros
Únete a eventos para ganar recompensas
Trading de prueba
Usa fondos virtuales para probar el trading sin asumir riesgos
Lanzamiento
CandyDrop
Acumula golosinas para ganar airdrops
Launchpool
Staking rápido, ¡gana nuevos tokens con potencial!
HODLer Airdrop
Holdea GT y consigue airdrops enormes gratis
Pre-IPOs
Accede al acceso completo a las OPV de acciones globales
Puntos Alpha
Opera activos on-chain y recibe airdrops
Puntos de futuros
Gana puntos de futuros y reclama recompensas de airdrop
Inversión
Simple Earn
Genera intereses con los tokens inactivos
Inversión automática
Invierte automáticamente de forma regular
Inversión dual
Aprovecha la volatilidad del mercado
Staking flexible
Gana recompensas con el staking flexible
Préstamo de criptomonedas
0 Fees
Usa tu cripto como garantía y pide otra en préstamo
Centro de préstamos
Centro de préstamos integral
Centro de patrimonio VIP
Planes de aumento patrimonial prémium
Gestión patrimonial privada
Asignación de activos prémium
Quant Fund
Estrategias cuantitativas de alto nivel
Staking
Haz staking de criptomonedas para ganar en productos PoS
Apalancamiento inteligente
Apalancamiento sin liquidación
Acuñación de GUSD
Acuña GUSD y gana rentabilidad de RWA
Promociones
Centro de actividades
Únete a actividades y gana recompensas
Referido
20 USDT
Invita amigos y gana por tus referidos
Programa de afiliados
Gana recompensas de comisión exclusivas
Gate Booster
Aumenta tu influencia y gana airdrops
Anuncio
Novedades de plataforma en tiempo real
Gate Blog
Artículos del sector de las criptomonedas
Servicios VIP
Grandes descuentos en tarifas
Gestión de activos
Solución integral para la gestión de activos
Institucional
Soluciones de activos digitales: empresas
Desarrolladores (API)
Conecta con el ecosistema de aplicaciones Gate
Transferencia bancaria OTC
Deposita y retira fiat
Programa de bróker
Reembolsos generosos mediante API
AI
Gate AI
Tu compañero de IA conversacional para todo
Gate AI Bot
Usa Gate AI directamente en tu aplicación social
GateClaw
Gate Blue Lobster, listo para usar
Gate for AI Agent
Infraestructura de IA, Gate MCP, Skills y CLI
Gate Skills Hub
+10 000 habilidades
De la oficina al trading, una biblioteca de habilidades todo en uno para sacar el máximo partido a la IA
GateRouter
Elige inteligentemente entre más de 40 modelos de IA, con 0% de costos adicionales
Quiero compartir algo bastante importante que quizás aún no comprendes completamente: la vulnerabilidad de reentrancy en contratos inteligentes. Si estás desarrollando dapps o trabajando con blockchain, esto es un conocimiento imprescindible.
¿En qué consiste el problema básico de reentrancy? Ocurre cuando un contrato inteligente llama a otro contrato, y ese contrato puede volver a llamar al contrato original mientras aún está en ejecución. Los atacantes pueden aprovechar este período para robar fondos.
Imagina que ContractA tiene 10 Ether y ContractB ha enviado 1 Ether a ese contrato. Cuando ContractB llama a la función de retiro, ContractA verifica si el saldo es mayor que 0, y si lo es, envía Ether de vuelta. Pero aquí está el problema: ContractA solo actualiza el saldo después de enviar el dinero. Entonces, durante el envío, si ContractB tiene una función fallback, puede volver a llamar a la función de retiro de ContractA. Como el saldo aún no se ha actualizado, la verificación pasará de nuevo, y recibirá otro Ether. Este ciclo continúa hasta que ContractA se quede sin fondos.
Voy a mostrarte tres formas de proteger el contrato contra este tipo de ataque de reentrancy.
La primera forma es usar el modificador nonReentrant. La idea es muy simple: bloqueas el contrato mientras la función se está ejecutando. Si alguien intenta volver a llamar esa función, será rechazado porque el contrato está bloqueado. Debes ejecutar todo el código y luego desbloquearlo, y en ese momento la verificación fallará si alguien intenta reentrar.
La segunda forma es usar el patrón Checks-Effects-Interactions. En lugar de actualizar el saldo después de enviar fondos, lo actualizas inmediatamente después de la verificación, pero antes del envío. De esta manera, incluso si otro contrato llama de nuevo, el saldo ya será 0, y la verificación fallará. Por eso, el orden es muy importante: primero verificar, luego aplicar efectos, y finalmente interactuar con otros contratos.
La tercera forma es crear un guardia global de reentrancy, especialmente útil cuando tienes múltiples contratos que interactúan entre sí. En lugar de proteger cada función individualmente, creas un contrato guardia compartido que mantiene el estado de bloqueo en un lugar central. Cuando cualquier contrato intenta ejecutar una función protegida, verifica con este guardia. Si el guardia indica que el contrato está bloqueado, la transacción se rechaza. Este método es muy potente porque previene reentrancy no solo en un contrato, sino entre varios contratos.
Te recomiendo aplicar las tres técnicas según la situación. Para funciones de retiro o transferencia de fondos, siempre usa nonReentrant o Checks-Effects-Interactions. Y si tu proyecto tiene un sistema complejo de contratos, considera usar un GlobalReentrancyGuard como capa adicional de protección.
Esta es una de las vulnerabilidades más comunes que causa pérdidas significativas, por lo que entender bien la reentrancy es fundamental si quieres escribir contratos inteligentes seguros.