Kit de herramientas basado en Rust para desarrollar contratos inteligentes en Ethereum, con Forge, Cast, Anvil y Chisel para crear, probar e interactuar con cadenas EVM.
crytic/echidna
Echidna es un fuzzer basado en Haskell que prueba smart contracts de Ethereum con secuencias de llamadas para vulnerar invariantes definidas por el usuario o aserciones de Solidity.
- Estrellas
- 3,189
- Forks
- 437
- Issues abiertos
- 107
- Último commit
- hace 21 horas
¿Qué es?
Echidna es una herramienta de fuzzing y pruebas basadas en propiedades para smart contracts de Ethereum. Genera secuencias de llamadas basadas en la gramática a partir de la ABI de un contrato y comprueba invariantes definidas por el usuario —funciones con el prefijo echidna_ que devuelven un bool— o instrucciones assert() de Solidity. Cuando encuentra una secuencia que invalida una propiedad, la informa y puede reducir el caso de prueba para facilitar su análisis.
La herramienta admite varios modos de prueba, entre ellos pruebas de propiedades, aserciones, pruebas al estilo de Foundry, verificación al estilo formal de transacciones individuales, detección de desbordamientos de enteros, optimización de valores de retorno int256 y exploración enfocada únicamente en la cobertura. Funciona con contratos compilados con Foundry, Hardhat y Truffle mediante crytic-compile, y usa Slither para extraer información antes del fuzzing. Los resultados se pueden mostrar en una interfaz interactiva de terminal, como texto sin formato o en JSON; también se puede guardar un corpus que maximiza la cobertura y anotarlo en el código fuente.
Funciones clave
- 01Genera secuencias de llamadas adaptadas a la ABI y al código fuente de un contrato.
- 02Prueba invariantes booleanas con el prefijo echidna_ y aserciones de Solidity.
- 03Reduce los casos de prueba que fallan para facilitar su análisis.
- 04Informa la cobertura de líneas con anotaciones en el código fuente.
- 05Admite resultados en texto, JSON y una interfaz interactiva de terminal.
- 06Se integra con proyectos de Foundry, Hardhat y Truffle mediante crytic-compile.
Casos de uso
- Detectar infracciones de invariantes en contratos de protocolos DeFi antes de su despliegue.
- Comprobar si los contratos de tokens tienen errores de saldo o desbordamiento.
- Ejecutar pruebas de propiedades de smart contracts en un workflow de GitHub Actions.
- Reproducir ejemplos de investigación sobre fuzzing en contratos de Solidity.
Inicio rápido
- 1
Instalar Echidna con Homebrew (macOS / Linux)
brew install echidna - 2
Ejecutar Echidna en el contrato de ejemplo del README
echidna tests/solidity/basic/flags.sol
Antes de usarlo
- La compatibilidad con Vyper es limitada.
- La compatibilidad con algunas bibliotecas para las pruebas es limitada.
- Para instalar Echidna se necesita Slither, una dependencia adicional que hay que configurar.
- Actualmente, las imágenes de contenedor solo se pueden compilar en sistemas x86.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es echidna?
- Echidna es un fuzzer basado en Haskell que prueba smart contracts de Ethereum con secuencias de llamadas para vulnerar invariantes definidas por el usuario o aserciones de Solidity. Echidna es una herramienta de fuzzing y pruebas basadas en propiedades para smart contracts de Ethereum. Genera secuencias de llamadas basadas en la gramática a partir de la ABI de un contrato y comprueba invariantes definidas por el usuario —funciones con el prefijo echidna_ que devuelven un bool— o instrucciones assert() de Solidity. Cuando encuentra una secuencia que invalida una propiedad, la informa y puede reducir el caso de prueba para facilitar su análisis.
- ¿echidna es gratuito? ¿Qué licencia tiene?
- echidna es open source bajo la licencia AGPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿echidna sigue mantenido?
- Mantenimiento activo. El último commit de echidna fue el 5 nov 2026.
- ¿Para qué puedo usar echidna?
- Detectar infracciones de invariantes en contratos de protocolos DeFi antes de su despliegue. Comprobar si los contratos de tokens tienen errores de saldo o desbordamiento. Ejecutar pruebas de propiedades de smart contracts en un workflow de GitHub Actions. Reproducir ejemplos de investigación sobre fuzzing en contratos de Solidity.
- ¿Cómo se instala echidna?
- Instalar Echidna con Homebrew (macOS / Linux): brew install echidna Ejecutar Echidna en el contrato de ejemplo del README: echidna tests/solidity/basic/flags.sol
- ¿Dónde consigo echidna?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/crytic/echidna
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Entorno de desarrollo de Ethereum para compilar, desplegar, probar y depurar smart contracts y dapps.
Implementación en Go de la capa de ejecución de Ethereum, que funciona como nodo full o archive y ofrece acceso JSON-RPC y herramientas para desarrolladores.
Solidity es un lenguaje de programación de tipado estático y orientado a contratos para crear contratos inteligentes en la plataforma Ethereum.
La segunda edición de «Mastering Ethereum», un libro sobre desarrollo en Ethereum, smart contracts y la tecnología subyacente de la red.
Nodo core y contratos de Chainlink para operar una red de oráculos descentralizada que lleva datos del mundo real y computación off-chain a los smart contracts.