Skip to main content
Esta página es el registro canónico de la revisión de seguridad externa sobre los componentes de Intention. Dice qué se ha auditado, qué está en revisión y, algo igual de importante, qué no se ha auditado todavía.

Estado actual

El puente entre cadenas es el componente bajo revisión de seguridad externa. El alcance cubre los contratos en la cadena externa y la infraestructura de firma que hay detrás: la custodia, la verificación de firmas, la ruta de retiro en dos fases y su periodo de disputa, y la propagación del conjunto de validadores a través de la frontera entre cadenas. El puente se priorizó a propósito. Es el único componente cuyo modelo de seguridad no es el de la propia red: la mitad se ejecuta en otra cadena, con sus propios validadores y sus propios modos de fallo, y es donde un compromiso se traduce de forma más directa en fondos perdidos. El resto del protocolo es verificable reejecutando bloques; un contrato de puente en una cadena externa, no. El auditor y el informe se publicarán aquí al terminar, con el alcance y los hallazgos.
Esta es la única auditoría externa en curso ahora mismo. Los demás componentes (el kernel de ejecución, el consenso y la cámara de compensación) están cubiertos por los controles internos que se describen más abajo, no por una revisión externa. La ausencia de una auditoría publicada no es prueba de la ausencia de defectos. Júzgalo en consecuencia, sobre todo antes de mainnet.

Cómo leer un informe cuando se publique

Una auditoría útil responde a tres preguntas: qué entraba en el alcance, qué examinaron realmente los revisores y qué queda abierto en el momento de publicar. Cada informe publicado aquí hará las tres explícitas.
  • El alcance es un hash de commit más una lista enumerada de componentes. Un archivo o un contrato que no aparezca en la lista no se auditó.
  • Los hallazgos se categorizan por severidad. Los hallazgos con riesgo aceptado llevan la justificación y los controles mitigantes, en lugar de omitirse.
  • El diff desde la auditoría se sigue por separado. Cualquier cambio posterior a la auditoría que toque código auditado queda señalado, para que puedas saber si el informe publicado sigue describiendo el sistema en funcionamiento.
Ese último punto es el que más a menudo falta en otros sitios. Una auditoría describe un commit concreto. El código que se ha movido desde entonces es código que nadie revisó, y un informe que no lo dice exagera lo que cubre.

Revisión continua

Las auditorías puntuales se apoyan en controles que se ejecutan de forma continua:
  • Controles de revisión en cada cambio del kernel, del consenso y del puente.
  • Fuzzing y pruebas basadas en propiedades contra las máquinas de estado de casación, de riesgo y de compensación, incluidas comprobaciones de determinismo que reejecutan bloques confirmados y comparan los resultados byte a byte.
  • Pruebas diferenciales entre compilaciones independientes del motor: una divergencia se trata como un fallo de consenso, no como un test que falla.
  • Recompensas por errores públicas para cobertura externa continua.

Qué leer a continuación

Recompensas por errores

Alcance, severidades y cómo reportar una vulnerabilidad.

Advertencias de riesgo

Qué sigue expuesto, dicho sin rodeos.

Puente

El componente en revisión, y dónde están sus supuestos de confianza.

Hitos

Qué está entregado y qué depende de las fechas que vienen.
Las preguntas sobre el alcance de una auditoría o sobre un hallazgo concreto van a contact@intention.xyz. Las divulgaciones de vulnerabilidades deben seguir el proceso de la página de recompensas por errores en lugar de plantearse aquí.