Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Las auditorías detectan algunas clases de errores (patrones de ataque conocidos, errores de control de acceso, desbordamientos de enteros) y pierden otros (defectos en el diseño económico, manipulación teórico-de-juegos, errores de integración con otros programas). Los programas de Raydium han pasado múltiples rondas de auditorías cada uno; esta página las enumera y analiza qué verificó realmente cada auditoría.

Tabla de auditorías por programa

ProgramaAuditorFechaReporte
Order-book AMMKudelski SecurityQ2 2021Ver
Concentrated liquidity (CLMM)OtterSecQ3 2022Ver
Updated order-book AMMOtterSecQ3 2022Ver
StakingOtterSecQ3 2022Ver
Order-book AMM & OpenBook migrationMadShieldQ2 2023Ver
Constant-product AMM (CPMM)MadShieldQ1 2024Ver
Burn & Earn (liquidity locker)HalbornQ4 2024Ver
LaunchLabHalbornQ2 2025Ver
CPMM (update)Sec3Q3 2025Ver
CLMM update — Limit Order, Dynamic Fee, Single Asset FeeSec3Q2 2026Ver
Miembros del equipo de Neodyme también han realizado revisiones extensas mediante acuerdos de recompensa por errores. Todos los reportes de auditoría para los programas de Raydium están duplicados bajo github.com/raydium-io/raydium-docs/audit/. Cada auditor también publica en su propio sitio.

Qué cubren las auditorías

Una auditoría típica de Raydium (~3–6 semanas, 2 auditores) cubre:
  • Control de acceso — ¿está cada operación privilegiada correctamente protegida?
  • Aritmética — desbordamientos, subdesbordamientos, dirección de redondeo, precisión de punto fijo.
  • Validación de cuentas — ¿tiene cada cuenta el propietario, mint y autoridad correctos?
  • Patrones similares a reentrancia — ¿se actualiza el estado antes o después de un CPI?
  • Derivación de PDA — ¿son consistentes las semillas en todos los sitios?
  • Códigos y mensajes de error — ¿revierten las condiciones de error de forma limpia?
  • Calidad de código — Rust idiomático, código muerto, ramas inalcanzables.

Qué no cubren las auditorías

  • Teoría económica de juegos — por ejemplo, “¿si puedo crear 1000 pools gratis, puedo obstruir el router?”
  • MEV / ordenamiento — ataques sándwich, front-running mediante colusión de validadores.
  • Infraestructura fuera de cadena — confiabilidad de RPC, corrección de indexadores, frontend.
  • Integraciones con otros programas — errores que solo se manifiestan cuando se combinan con contratos específicos de préstamo, opciones o agregadores.
  • Comportamientos emergentes con el tiempo — ¿qué sucede después de 10 millones de posiciones? Las auditorías examinan casos de prueba a pequeña escala.
Por eso auditoría ≠ garantía de seguridad. Raydium complementa las auditorías con recompensas por errores, monitoreo e ingeniería defensiva.

Estado de resolución de hallazgos

Cada auditoría produce una lista de hallazgos (crítico / alto / medio / bajo / informativo), con conteos de severidad y estado por hallazgo (Corregido / Reconocido / No se corregirá). Los desgoses por hallazgo no se duplican aquí — lee cada reporte directamente a través de la tabla anterior.

Re-auditoría después de cambios significativos

Cuando un programa lanza una actualización significativa (nueva instrucción, nuevo campo de cuenta, nuevo soporte de extensión), Raydium encarga una re-auditoría. La revisión de Sec3 Q3 2025 de CPMM y la revisión de Sec3 Q2 2026 de CLMM (Limit Order, Dynamic Fee, Single Asset Fee) enumeradas en la tabla anterior son ambas re-auditorías de este tipo. El alcance de la re-auditoría es más estrecho (solo el diff), pero es genuinamente una re-auditoría — no solo una revisión de código. Los reportes para re-auditorías se anexan al reporte de auditoría primaria.

Verificación en cadena

El hash del programa desplegado debe coincidir con el hash del código auditado. Cualquiera puede verificar:
# Extrae el bytecode del programa desplegado.
solana program dump <PROGRAM_ID> program.so

# Compila el repositorio en el commit auditado.
git clone https://github.com/raydium-io/raydium-cp-swap
cd raydium-cp-swap
git checkout <audited_commit_hash>
anchor build --verifiable

# Compara.
sha256sum program.so target/deploy/raydium_cp_swap.so
Las compilaciones verificables de Anchor producen bytecode determinista; los hashes deberían coincidir exactamente. Si no coinciden, el programa desplegado no es el auditado — escala. Raydium publica los hashes esperados por despliegue en la sección de releases del repositorio.

Cómo leer un reporte de auditoría

Una breve guía para no-auditores:
  1. Ve directo al resumen de hallazgos — una tabla de conteos de severidad. Si el conteo de “Crítico” es >0 y ves estado “Abierto”, profundiza.
  2. Lee la descripción y estado de cada hallazgo. “Corregido en commit XYZ” significa resuelto; “Reconocido” significa que el equipo aceptó el riesgo; “Parcialmente corregido” vale la pena observar más de cerca.
  3. Escanea la sección de alcance. Si la auditoría no cubrió la instrucción o cuenta que te importa, la ausencia de hallazgos allí no es evidencia de seguridad.
  4. Lee rápidamente la sección de recomendaciones del auditor. A menudo más útil que los hallazgos — expone notas de “no pudimos probarlo formalmente pero estamos incómodos”.

Integración de recompensa por errores

Las auditorías se realizan pre-despliegue; las recompensas por errores se ejecutan continuamente post-despliegue. El programa de recompensa de Raydium (security/disclosure) cubre todo lo que hacen las auditorías más:
  • Ataques económicos que las auditorías no cubren.
  • Errores encontrados en nuevas integraciones.
  • Errores de implementación en SDKs y componentes fuera de cadena.
Un hallazgo de whitehats en el programa de recompensa típicamente recibe pago más rápido que esperar el siguiente ciclo de auditoría; los incentivos se alinean para divulgar rápidamente. El programa activo está alojado en Immunefi: immunefi.com/bug-bounty/raydium/information.

Incidentes históricos

Los programas de Raydium han tenido dos incidentes del mundo real notables:

Explotación de autoridad de pool (Diciembre 2022)

Qué: La clave privada de autoridad del pool de AMM v4 fue comprometida, permitiendo a un atacante drenar varios pools. Alcance: Gestión de claves operativas, no un error de programa. La auditoría no había marcado el código ya que el código era correcto; el proceso de gestión de claves fue el fallo. Corrección: Migración de multisig (todos los roles de autoridad trasladados a multisig de Squads); controles operacionales adicionales. Lección: Las auditorías no cubren la gestión de claves. Ver security/admin-and-multisig.

Congelación de integración de OpenBook (Enero 2023)

Qué: Una actualización del programa OpenBook cambió la semántica de cuentas; el crank MonitorStep de AMM v4 no podía liquidar PnL hasta que se lanzara un parche de AMM v4. Alcance: Error de integración — ningún programa fue incorrecto aisladamente. Corrección: Parche de AMM v4 y despliegue coordinado. Lección: Las auditorías del programa A no capturan errores en la integración del programa A con el programa B. La herramienta correcta es testing de integración + rollouts por fases.

Referencias

Fuentes: