Descarga inmediata tras la compraPDF sin DRM: léelo en cualquier dispositivoGarantía de Calidad y Atención 24/7Pago cifrado y 100% seguroEbooks gratis para probar antes de comprarDescarga inmediata tras la compraPDF sin DRM: léelo en cualquier dispositivoGarantía de Calidad y Atención 24/7Pago cifrado y 100% seguroEbooks gratis para probar antes de comprar

Clase principal

Hackeando Smart Contracts: Así se audita Blockchain

  • 3 min de lectura
  • Gratis
Vídeo de esta pieza: en producción. Mientras tanto, todo el contenido está aquí en texto.
Para empezar

Un contrato inteligente en blockchain no se puede parchear una vez desplegado: si tiene un fallo, el dinero desaparece para siempre.

Concepto

¿Qué es un Smart Contract?

Un contrato inteligente es código autoejecutable almacenado en una cadena de bloques. Su lógica determina cómo se transfieren activos digitales basándose en condiciones predefinidas, eliminando intermediarios pero heredando cualquier error de programación directamente en un entorno inmutable.

Dato clave

Miles de millones perdidos

Se han sustraído más de 3.000 millones de dólares en la última década debido únicamente a fallos lógicos en contratos inteligentes, superando con creces los ataques a la infraestructura clásica de exchanges centralizados.

Cuidado

La trampa de la inmutabilidad

A diferencia del desarrollo de software tradicional donde un parche soluciona un bug en minutos, en blockchain desplegar código defectuoso significa que el error queda grabado permanentemente para que cualquier atacante del mundo lo explote.

Paso a paso

Ciclo de vida seguro

Para minimizar riesgos antes de llevar código a la red principal de Ethereum o cualquier otra EVM, debemos seguir un proceso estricto de ingeniería defensiva.

Marca cada paso al entenderlo · 0/4

Concepto

Vulnerabilidad de Reentrancy

La reentrancy ocurre cuando un contrato inteligente realiza una llamada externa a un contrato malicioso antes de actualizar su propio estado interno. El atacante vuelve a llamar a la función original repetidamente para vaciar los fondos antes de que el saldo disminuya.

Practica

Análisis con Slither

Herramientas como Slither analizan el código en Solidity en busca de vulnerabilidades comunes de forma estática.

terminal
$ slither .
INFO:Slither:. solc compilation 0.8.20 finished
INFO:Slither:Reentrancy in Vault.withdraw() (Vault.sol#45-52):
	External calls:
	- msg.sender.call{value: amount}()
Reference: https://github.com/crytic/slither/wiki/Vulnerability-Descriptions#reentrancy
Concepto

Front-Running en el Mempool

El mempool es la sala de espera donde las transacciones pendientes aguardan ser minadas. Los atacantes monitorizan este espacio y pagan tarifas de gas más altas para que su transacción maliciosa se ejecute antes que la de su víctima.

Cuidado

Manipulación de Oráculos

Muchos protocolos DeFi dependen de oráculos externos para conocer el precio real de los activos. Si un atacante manipula el precio en un DEX mediante préstamos rápidos o flash loans, engaña al protocolo y extrae liquidez de forma ilegítima.

Paso a paso

Patrón Checks-Effects-Interactions

La defensa más efectiva contra la reentrancy en Solidity es seguir rigurosamente un orden estricto dentro de las funciones.

Marca cada paso al entenderlo · 0/3

Concepto

Flash Loans

Los préstamos rápidos permiten pedir prestados millones de dólares sin garantía colateral, siempre y cuando el préstamo, los intereses y la operación se devuelvan y ejecuten en la misma transacción atómica de blockchain.

Practica

Compilación con Hardhat

Utilizamos entornos de desarrollo modernos como Hardhat para simular ataques y probar nuestros tests de seguridad.

terminal
$ npx hardhat test
Compiling 12 files with 0.8.20
Compilation finished successfully
  Vault Security Tests
    ✔ Should prevent reentrancy attacks (142ms)
    ✔ Should fail on unauthorized withdrawal (89ms)
Dato clave

El 90% son errores lógicos

Menos del 10% de los hackeos en Web3 se deben a fallos criptográficos puros; la gran mayoría son fallos de diseño lógico, permisos mal configurados o asunciones incorrectas sobre el comportamiento de otros contratos.

Cuidado

Control de Accesos Rotos

Dejar funciones críticas de administración como 'initialize' o 'transferOwnership' sin modificadores de control de acceso adecuados (como onlyOwner) permite que cualquier usuario externo tome el control total del protocolo.

Paso a paso

Fases de una Auditoría Web3

Cuando un equipo profesional se enfrenta a la revisión de seguridad de un protocolo descentralizado, sigue una metodología estructurada.

Marca cada paso al entenderlo · 0/4

Concepto

Integer Overflow y Underflow

Ocurren cuando una variable numérica supera su valor máximo o mínimo permitido, provocando que el contador dé la vuelta inesperadamente. Aunque Solidity moderno previene esto por defecto, versiones antiguas o bloques 'unchecked' siguen expuestos.

Cuidado

La seguridad es un proceso continuo

Auditar un contrato inteligente una sola vez no garantiza seguridad eterna. Las integraciones con nuevos protocolos, las actualizaciones de dependencias y los cambios de gobernanza introducen nuevos vectores de ataque que exigen monitorización constante.

Repaso rápido

¿Te acuerdas? Toca para comprobarlo

Atajos: ← → para cambiar de pieza · / para buscar