GUÍA DE AUDITORÍA
Una de las capacidades más poderosas de ChainMemory es permitir auditorías verificables de decisiones de proyecto asistidas por IA — sin exponer el contenido privado de las conversaciones.
Dos niveles de auditoría
Nivel 1 — Auditoría externa (sin acceso del dueño)
Cualquiera puede verificar que un estado de proyecto fue anclado en un momento específico, sin ver qué contiene. Es como ver un sello notarial cerrado — sabés que existe, no sabés qué dice adentro.
Lo que un auditor externo ve (público, on-chain):
| Dato | Visible | Revela contenido? |
|---|---|---|
| state_hash | ✓ Público | No — SHA3-256 es irreversible |
| tx_hash | ✓ Público | No — solo prueba que la transacción ocurrió |
| block_number | ✓ Público | No — solo prueba cuándo se ancló |
| project ID (hasheado) | ✓ Público | No — el nombre del proyecto está hasheado |
| número de versión | ✓ Público | No — solo muestra cuántas consolidaciones hubo |
| Contenido de memorias | ~ El texto cifrado sí está on-chain | No — AES-256-GCM, ilegible sin la llave del dueño |
| Detalle de decisiones | ✗ Privado | Nunca on-chain |
| Project State | ✗ Privado | Nunca on-chain |
Nivel 1 — Endpoint público
GET /v1/project/nova-logistics/state/anchor
Respuesta:
{
"project": "nova-logistics",
"projectId": "0x77f7d980...", // hasheado — nombre original no se revela
"version": 5,
"state_hash": "a7b3c9f2e1...", // prueba que el estado existió, no revela contenido
"anchor": {
"status": "anchored",
"tx_hash": "0xce55a800...",
"block_number": 125000,
"contract": "0xa7A8BA51...e7875"
}
}
a7b3c9f2e1... fue registrado en el bloque 125000 de la blockchain ChainMemory. Nada sobre el contenido se revela. No se necesita API key.
Nivel 2 — Auditoría con disclosure selectivo (el dueño comparte datos)
El dueño del proyecto elige qué compartir con el auditor. El auditor verifica los datos compartidos contra la prueba on-chain. Esta es la auditoría poderosa: demostrás que los datos son auténticos sin intermediarios.
El dueño controla exactamente qué se revela:
| Nivel de disclosure | Qué ve el auditor | Caso de uso |
|---|---|---|
| Solo estado | Decisiones, hitos, riesgos, stack — sin texto de conversaciones | Due diligence de inversores |
| Estado + memorias seleccionadas | Decisiones con extractos de conversaciones de soporte | Revisión de compliance |
| Exportación completa | Todas las memorias, estado completo, historial completo | Auditoría interna, descubrimiento legal |
Proceso de auditoría paso a paso
Ejemplo: NovaTech, una startup construyendo un SaaS de logística. Después de 4 meses usando ChatGPT y Claude alternadamente, el CTO necesita demostrar trazabilidad del proyecto a inversores.
El dueño exporta el Project State
El CTO llama a la API con su key y exporta el estado JSON:
bash
curl -H "x-api-key: cto-api-key" \
https://api.chainmemory.ai/v1/project/nova-logistics/state
Resultado: 12 decisiones activas, 3 reemplazadas, 8 hitos completados, 2 riesgos abiertos. El CTO comparte este JSON con el inversor.
El auditor calcula el hash
El inversor guarda el JSON recibido como state.json y calcula el state hash. El hash es SHA3-256 sobre un prefijo de dominio (CM_PROJECT_STATE_V<schema_version>) más la forma canónica del objeto state (claves ordenadas recursivamente, separadores compactos, UTF-8, campo state_hash excluido). El verificador de referencia abierto lo hace en un comando — solo librería estándar de Python, sin dependencias:
bash
curl -sO https://docs.chainmemory.ai/verify_state.py
python3 verify_state.py state.json
# computed state_hash : 0xa7b3c9f2e1d4...
# declared state_hash : 0xa7b3c9f2e1d4... -> MATCH
# on-chain state_hash : 0xa7b3c9f2e1d4... -> ON-CHAIN MATCH
El verificador son ~90 líneas de código auditable: recomputa el hash de forma independiente y además lo contrasta contra el ancla pública on-chain. No requiere confiar en ChainMemory.
El auditor verifica contra la blockchain
El inversor llama al endpoint público de verificación (no necesita API key):
bash
curl https://api.chainmemory.ai/v1/project/nova-logistics/state/anchor
# Retorna: state_hash: "a7b3c9f2e1d4..."
Si los hashes coinciden: el estado es auténtico y no fue modificado desde la fecha de anclaje.
El auditor rastrea una decisión específica (opcional)
Si el CTO también compartió acceso a memorias, el inversor puede profundizar en cualquier decisión:
Decisión d005: "Migrar de REST a GraphQL" tiene evidence: ["#45", "#67", "#82"]. El inversor recupera esas 3 memorias:
- Memoria #45 — Sesión con ChatGPT discutiendo cuellos de botella de performance de la API
- Memoria #67 — Sesión con Claude comparando trade-offs REST vs GraphQL
- Memoria #82 — Decisión final documentada con justificación
Cada memoria tiene su propio hash SHA-256 de su texto, sin separador de dominio — no confundir con el hash SHA3-256 con dominio del Project State. Contenido verificado, procedencia confirmada.
Garantías de privacidad durante la auditoría
La garantía crítica: el dueño siempre controla el disclosure.
- Los inversores ven decisiones e hitos — no las conversaciones crudas de IA que las produjeron
- La blockchain prueba autenticidad sin revelar contenido
- El texto de memorias (contenido real de conversaciones) solo es visible si el dueño lo exporta explícitamente
- El registro on-chain contiene hashes más el contenido cifrado de las memorias — aunque la blockchain sea pública, sin tu llave nada de eso es legible
- Ningún tercero, incluyendo ChainMemory mismo, puede forzar el disclosure del contenido de memorias