¿Qué es Veilo?
Veilo es un protocolo de privacidad en Solana que permite transacciones anónimas mediante zero-knowledge proofs (ZKP). Usa un sistema de nullifiers para prevenir double-spending sin revelar la identidad del remitente.
"Find Critical Vulnerabilities in Veilo Mainnet Smart Contracts for Fund Loss"
— Superteam Bounty · VeiloLayer · 2,000 USDC · 82 submissions
Mi enfoque de auditoría
En lugar de buscar bugs superficiales, modelé el sistema completo como un adversario:
- Mapeo de vectores de ataque — ¿Qué puede romper un actor malicioso?
- Análisis de nullifiers — ¿Hay colisiones? ¿Se puede reutilizar un nullifier?
- Verificación ZKP — ¿La proof verification tiene edge cases no cubiertos?
- Flujo de fondos — ¿Hay caminos no intencionados para extraer valor?
Hallazgos principales
1. Análisis del sistema de nullifiers
Los nullifiers son el corazón de la privacidad Veilo. Si dos transacciones generan el mismo nullifier, una es rechazada — pero ¿qué pasa si un atacante puede predecir o forzar colisiones? Revisé el esquema de derivación para garantizar resistencia a ataques de preimagen.
2. Verificación de rangos en ZKP
Las proofs pueden verificar que un valor está en un rango sin revelarlo, pero si el circuito no impone correctamente los límites, un atacante puede generar proofs válidas para valores fuera de rango — resultando en creación de tokens de la nada.
3. Condiciones de carrera en el commitment scheme
Entre el momento en que un usuario genera un commitment y cuando se incluye on-chain, existe una ventana donde un frontrunner puede observar la transacción pendiente y sustituirla por la suya propia. Analicé mitigaciones como commitments con nonce vinculado a la cuenta del remitente.
Lo que aprendí
Auditar un protocolo de privacidad real en mainnet te obliga a pensar como atacante sofisticado. No es "¿funciona?" sino "¿cómo se rompe esto de formas que el diseñador no anticipó?".
La experiencia fue intensa: 82 personas compitiendo por el mismo bounty, cada uno buscando el ángulo que nadie más vio. Aunque no todo hallazgo se traduce en payout, el aprendizaje de seguridad ofensiva en DeFi no tiene precio.
🔗 Ver análisis completo en GitHub → | 🔗 Ver bounty en Superteam →