« Back to Glossary Index

CREATE2 (Opcode de Ethereum)

⚡ Definición Rápida

CREATE2 es un opcode de la Máquina Virtual de Ethereum (EVM) introducido en la bifurcación Constantinopla (2019). Permite desplegar un contrato inteligente en una dirección predecible y determinista sin necesidad de que el contrato exista previamente. Su dirección depende de: 0xFF + sender + salt + init_code hash. Es la base de wallets «counterfactual», fábricas deterministas y… ataques de phishing avanzados.

Términos relacionados: EVMsmart contractdirecciónhard forkblockchain


❓ ¿Qué es CREATE2 y por qué cambió las reglas del despliegue de contratos?

Imagina que quieres alquilar un local comercial, pero no quieres pagar el alquiler hasta que estés 100% seguro de que abrirás tu tienda. Sin embargo, necesitas que los clientes sepan de antemano dónde estará tu tienda para que confíen en ti. Normalmente, esto es imposible: necesitas el local para dar la dirección. CREATE2 hace exactamente lo contrario: te permite anunciar una dirección antes de que el contrato exista.

Antes de CREATE2, los contratos se desplegaban con CREATE (el opcode original). CREATE generaba una dirección basada en la dirección del remitente y su nonce (número de transacciones). Esto era impredecible: no sabías qué dirección obtendrías hasta el momento del despliegue. CREATE2 cambió las reglas al permitir que el desarrollador elija un valor arbitrario (salt) para determinar la dirección de antemano.

Para el ecosistema Ethereum, esto fue revolucionario. Permitió patrones de diseño como wallets contrafactuales (carteras que pueden recibir fondos antes de ser «activadas»), fábricas de contratos deterministas (intercambios como Uniswap V3 los usan para predecir direcciones de pools) y actualizaciones de contratos sin cambiar la dirección (usando proxies). Pero como toda herramienta poderosa, la comunidad también descubrió su lado oscuro: CREATE2 es hoy una de las técnicas favoritas de los estafadores para ocultar permisos maliciosos y ejecutar ataques de phishing imposibles de detectar con herramientas tradicionales.

Si aún no estás familiarizado con los smart contracts, te recomendamos leer nuestra introducción a ¿Qué es Blockchain? antes de profundizar.

📖 Definición Técnica

CREATE2 es un opcode de la Ethereum Virtual Machine (EVM) introducido en el hard fork Constantinople (bloque 7.280.000, febrero 2019). Su función es desplegar un nuevo contrato inteligente en la blockchain, similar a CREATE, pero con un mecanismo de determinación de dirección diferente y más flexible. La dirección del nuevo contrato se calcula como:

Donde:
0xFF es un prefijo único para evitar colisiones con CREATE.
sender_address es la dirección que invoca CREATE2.
salt es un valor de 32 bytes elegido arbitrariamente por el desarrollador.
init_code es el código de inicialización del contrato (constructor + bytecode).

La propiedad fundamental es que, si conoces sender, salt y init_code, puedes calcular la dirección del contrato antes de desplegarlo. El despliegue solo tendrá éxito si la dirección no está ya ocupada por otro contrato. CREATE2 es la base técnica de patrones como «counterfactual instantiation», «minimal proxies» (EIP-1167) y fábricas deterministas.


✅ Usos legítimos de CREATE2: La innovación que impulsa DeFi

CREATE2 no es intrínsecamente malicioso. De hecho, es la columna vertebral de algunos de los protocolos más confiables de DeFi.

1️⃣ Wallets Counterfactual (Contrafactuales)

Los contratos de wallet como Argent o Safe (antes Gnosis Safe) usan CREATE2 para permitir que un usuario genere una dirección sin pagar gas por el despliegue inicial. Puedes recibir fondos en esa dirección inmediatamente. Solo cuando quieras interactuar con ella (enviar transacciones, ejecutar recuperación social), pagas el gas para «despertarla». Esto reduce barreras de entrada y mejora la experiencia de usuario. Aprende más sobre wallets en nuestra comparativa de wallets.

2️⃣ Fábricas deterministas de pools (Uniswap V3)

Uniswap V3 necesita crear un pool de liquidez único para cada par de tokens y cada rango de tarifa. Con CREATE2, la fábrica central (UniswapV3Factory) puede precalcular la dirección de cada pool basándose en tokenA + tokenB + fee. Esto permite que los usuarios interactúen con los pools usando direcciones predecibles sin necesidad de almacenar un registro enorme. La dirección de un pool es determinista y se puede calcular en el cliente. Para entender cómo funcionan los DEXs, lee: ¿Qué es un DEX?

3️⃣ Actualización de contratos sin cambio de dirección (Minimal Proxies EIP-1167)

CREATE2 se combina con el estándar de proxy minimalista (EIP-1167) para crear sistemas actualizables donde la dirección del contrato principal nunca cambia. El proxy redirige las llamadas a una implementación lógica que puede reemplazarse. CREATE2 permite precalcular la dirección del proxy antes de desplegarlo, lo que simplifica la migración.

4️⃣ Airdrops y reclamos predictivos

Los proyectos pueden anunciar una dirección CREATE2 donde los usuarios podrán reclamar tokens en el futuro. Los usuarios pueden verificar la dirección de antemano usando el init_code publicado. Esto elimina el riesgo de que el equipo del proyecto huya con los fondos (aunque no elimina el riesgo de que el contrato tenga errores).


⚠️ El lado oscuro: CREATE2 como herramienta de estafas y phishing

A partir de 2024-2025, los estafadores descubrieron que CREATE2 podía explotar la forma en que los humanos verifican las direcciones. Los ataques más comunes son:

🎣 1. Ataque de permiso oculto (Permission Drainer)

La estafa funciona así:

  • La víctima aprueba (approve) a una dirección que parece legítima (ej: «Uniswap Router») pero que aún no tiene contrato desplegado.
  • El estafador, usando CREATE2, precalculó que podrá desplegar un contrato malicioso exactamente en esa dirección en el futuro.
  • En el momento elegido (cuando hay suficientes fondos aprobados), despliega el contrato con CREATE2 y drena todos los tokens que la víctima había aprobado.

Las herramientas de seguridad tradicionales (como Etherscan) no muestran advertencias cuando apruebas a una dirección sin contrato. Después del ataque, parece que el contrato «siempre estuvo allí». Para evitar esto, nunca des permisos (approve) a direcciones que no hayas verificado que ya tienen un contrato legítimo desplegado.

🏦 2. Ataque de suplantación de Vault o Bridge

Un estafador anuncia un nuevo «bridge» o «vault de staking» con una dirección que aún no existe. La víctima confía porque la dirección parece generada por una fábrica conocida. Envía fondos a esa dirección (pensando que el contrato ya está activo). Los fondos quedan atrapados indefinidamente en una dirección sin código (EOA) o el estafador despliega el contrato malicioso después y reclama los fondos.

🪤 3. Reemplazo de token falsificado

El atacante despliega un token falso con el mismo símbolo y nombre que un token legítimo, usando CREATE2 con una dirección que se parece a la original (ej: dirección que difiere solo en los últimos caracteres, un ataque de «dirección de aspecto similar»). Luego engaña a la víctima para que apruebe transferencias falsas. Este ataque se ha vuelto especialmente común en redes como Base y Arbitrum. Aprende a detectar estafas similares en nuestra guía de phishing y dominios falsos.


🆚 CREATE2 vs CREATE: Comparativa técnica

CaracterísticaCREATECREATE2
Determinismo de dirección❌ Impredecible (depende del nonce del remitente)
📄 address = hash(sender, nonce)
✅ Predecible (calculable de antemano)
📄 address = hash(0xFF, sender, salt, init_code)
Control sobre la direcciónNinguno (el nonce se incrementa automáticamente)Completo (el desarrollador elige el salt)
¿Puede fallar el despliegue?Sí, si la dirección ya está ocupada (muy raro por diseño)Sí, si la dirección ya está ocupada (pero puedes cambiar el salt para evitarlo)
Uso típicoContratos estándar sin necesidad de predicciónFábricas deterministas, wallets contrafactuales, pools predecibles

✅ Guía práctica: Cómo protegerte de estafas con CREATE2

  • 1. Nunca approves tokens a una dirección sin contrato: Antes de dar permiso (approve) a un contrato (Router, Bridge, Vault), verifica en Etherscan que ya haya código desplegado en esa dirección. Si ves «No Contract» o «EOA», desconfía inmediatamente. Herramientas como MetaMask pueden integrar advertencias, pero no siempre son suficientes.
  • 2. Verifica el init_code publicado: Los proyectos legítimos que usan CREATE2 suelen publicar su init_code y salt en su documentación. Calcula la dirección tú mismo o usa herramientas como create2-calculator para confirmar que coincide.
  • 3. Desconfía de direcciones que parecen «correctas» pero no tienen transacciones: Un contrato legítimo con CREATE2 suele tener transacciones de despliegue. Si una dirección «premium» (ej. mirando los primeros ceros) no tiene actividad pero te pide aprobación, es una red flag. Para profundizar en seguridad de wallets, lee nuestra Guía de Seguridad Crypto.
  • 4. Usa revocadores de permisos periódicamente: Herramientas como Revoke.cash o Etherscan Token Approval Checker te permiten ver y revocar todos los approves, incluyendo los hechos a direcciones sin contrato (que luego podrían ser desplegadas con CREATE2).
  • 5. En DeFi, prefiere interfaces conocidas y verifica las direcciones manualmente: No confíes en enlaces de Telegram o Discord que te pidan «aprobar para reclamar un airdrop». Copia las direcciones de contratos exclusivamente de sitios oficiales (docs, GitHub verificado, Twitter oficial).
  • 6. Estate atento a «permisos de gas cero»: Algunos ataques CREATE2 piden approves con límite type(uint256).max (infinito). Revísalos siempre en la ventana de confirmación de tu wallet. Si ves un límite excesivo, revoca. Aprende a saber si tu wallet está comprometida.

🔮 El futuro: CREATE2 en wallets y mejoras de seguridad

  • EIP-7523 (Detección de CREATE2 en wallets): Propuesta para que wallets como MetaMask o Rabby muestren advertencias explícitas cuando un usuario aprueba a una dirección sin contrato o generada con CREATE2 que aún no ha sido desplegada.
  • Ethereum Object Format (EOF): La próxima gran actualización de la EVM planea cambios en CREATE2 que podrían limitar su uso malicioso, aunque no eliminarlo.
  • Herramientas de análisis on-chain predictivo: Empresas de seguridad como Halborn o Trail of Bits están desarrollando rastreadores que alertan sobre direcciones CREATE2 «dormidas» que podrían activarse con intenciones maliciosas basándose en patrones de approves acumulados.
  • Regulación MiCA y responsabilidad de los exchanges: La normativa europea podría exigir a los exchanges centralizados verificar la legitimidad de las direcciones CREATE2 antes de permitir retiros hacia ellas, lo que reduciría el vector de ataque. Conoce el marco: ¿Qué es MiCA?

🎯 Conclusión: CREATE2 es una herramienta, no un exploit

CREATE2 ejemplifica perfectamente la dualidad de la tecnología blockchain: una innovación elegante que habilita nuevos paradigmas de diseño (wallets contrafactuales, fábricas deterministas) y que al mismo tiempo puede ser explotada por actores maliciosos para ejecutar estafas difíciles de detectar. Como usuario, no necesitas convertirte en un experto en opcodes de la EVM, pero sí necesitas entender una regla de oro: nunca des permisos (approve) a una dirección que no tenga un contrato desplegado y verificado. CREATE2 no es el problema; la confianza ciega en direcciones preanunciadas es la vulnerabilidad. Mantenerse escéptico, verificar los contratos en exploradores y revocar permisos periódicamente son hábitos que convertirán esta poderosa herramienta de estafadores en una molestia irrelevante.

❓ Preguntas Frecuentes sobre CREATE2


📚 Recursos para profundizar en CREATE2


📋 ¿Por qué confiar en esta definición? Cada término de la Cryptopedia sigue una metodología de verificación con fuentes primarias, whitepapers y legislación oficial. Conoce nuestro proceso →


⚠️ Disclaimer: Este artículo es educativo e informativo. No constituye asesoramiento financiero, legal ni de seguridad. CREATE2 es un opcode técnico de la EVM; su uso malicioso no es una vulnerabilidad de Ethereum, sino un abuso de un diseño legítimo. Siempre verifica las direcciones de los contratos antes de aprobar permisos y utiliza herramientas de revocación periódicamente. Ante la duda, consulta con especialistas en seguridad blockchain.

📅 Actualizado: Mayo 2026
📖 Categoría: Infraestructura Blockchain / Ejecución y EVM

« Volver al Glosario
Scroll al inicio