MODELO DE CONFIANZA

Qué podés — y qué no podés — confiar

ChainMemory combina una API centralizada con verificación descentralizada. Entender los límites de confianza es crítico para evaluar si ChainMemory cumple tus requisitos de seguridad.

Tabla de garantías

PreguntaRespuestaCómo se aplica
¿Puede el operador borrar un evento después de registrarlo? Sí, de la base de datos Pero el ancla on-chain preserva el hash del estado. La eliminación es detectable: recalcular el hash de los eventos restantes produce una discrepancia con el hash anclado.
¿Puede el operador modificar un estado pasado? Sí, en la base de datos Pero cualquier modificación cambia el hash del estado. Comparar el hash recalculado contra el ancla on-chain revela manipulación inmediatamente.
¿Puede el operador falsificar un ancla? No Los anclas son transacciones on-chain. El smart contract registra el hash del estado de forma inmutable. Falsificar requiere controlar la blockchain — económicamente inviable con consenso PoA y múltiples validadores.
¿Puede un tercero verificar sin confiar en ChainMemory? El endpoint de verificación es público y sin autenticación. Cualquiera también puede leer el smart contract directamente usando Web3/Ethers.js.
¿Pueden otros usuarios leer mis memorias? No El contenido de las memorias está limitado al dueño de la API Key. Lo público on-chain es texto cifrado, no texto plano: descifrarlo requiere la llave derivada de la API Key del dueño.
¿Se almacena el texto plano de las memorias on-chain? No Lo que se escribe on-chain es el texto cifrado AES-256-GCM de cada memoria (MemoryV2.writeMemory), junto con su categoría, importancia y largo del texto plano. El texto plano nunca sale de la base de datos de la API, y sin la llave del dueño nadie puede descifrarlo — que es justamente lo que te permite recuperar una memoria años después desde otro dispositivo. El Project State consolidado se ancla solo como hash SHA3-256.
¿Pueden los validadores ver el contenido de las memorias? No Para un ancla de estado la carga es solo el id del proyecto y el hash. Para una memoria es texto cifrado AES-256-GCM más su categoría, importancia y largo: los validadores pueden ordenarla y validarla, no pueden leerla.
¿Qué pasa si ChainMemory se cae? Las memorias son temporalmente inaccesibles Pero todos los anclas on-chain siguen siendo verificables de forma independiente. La blockchain continúa operando incluso si la API está caída. Los usuarios pueden exportar sus datos en cualquier momento.

Niveles de confianza

Confianza total (criptográfica) Integridad del estado y timestamp. Una vez anclado, el hash en el bloque N es inmutable. Nadie — ni siquiera ChainMemory — puede alterar lo que fue registrado.
Confianza operacional (dependiente de la API) Almacenamiento de memorias, recuperación, inyección y consolidación. Estos dependen de que la API de ChainMemory esté disponible y sea honesta. El mecanismo de anclaje actúa como control: cualquier manipulación del lado del servidor es detectable.
Sin confianza necesaria Verificación independiente. Cualquiera con una librería Web3 puede leer el smart contract directamente y comparar hashes. Cero dependencia de la infraestructura de ChainMemory.

Soberanía — no-custodial

ChainMemory está migrando a un modelo no-custodial donde tu llave vive en tu cliente, no en el servidor. Vos firmás tus propias escrituras on-chain; el servidor guarda el texto cifrado y verifica las firmas, pero nunca tiene tu llave privada. Esto se probó de punta a punta — una memoria escrita 100% del lado del cliente, con el servidor sin tocar nunca la llave.

Qué significa no-custodial acá Las llaves se generan del lado del cliente y el servidor guarda solo tu dirección (POST /v1/keys/register-pubkey). El cliente firma y transmite cada escritura; el servidor solo adjunta el registro (POST /v1/memory/attach). Las API keys están cifradas en reposo (AES-256-GCM) con una master key fuera de la app.
En progreso Bóveda ciega: derivar la llave de cifrado de contenido de tu llave privada para que el servidor no pueda leer el contenido ni en teoría. La extensión Chrome publicada todavía firma del lado del servidor (custodial); el camino no-custodial llega en una versión nueva. La capacidad está probada y la migración está en curso.