MemChain et stockage chiffré

AeroNyx17 juin 20265 min de lecture84 vues

MemChain est la mémoire local-first et client-sealed d’AeroNyx : l’appareil conserve une mémoire chiffrée utile et un nœud configuré garde du ciphertext qu’il ne peut déchiffrer.

MemChain est la couche de mémoire privée AeroNyx pour humains, applications et agents autonomes. Le parcours de production est local-first : l’appareil conserve le store chiffré et réalise le rappel; un nœud configuré peut garder une copie sealed signée par le propriétaire pour synchronisation et reprise. La revendication node-blind concerne uniquement les records chiffrés avant remember_sealed, pas tous les modes cognitifs ou historiques.

Promesse produit

Quatre promesses vérifiables : stockage sealed sans content key côté nœud; rappel offline si le record existe localement; clés dérivées de l’identité P2P et signature owner; séparation entre stockage et AI brain choisi. AeroNyx ne possède aucune master recovery key. Chain décrit relations et ordre de l’état mémoire, pas une chaîne de tokens ni une blockchain publique généraliste.

Couches implémentées

CoucheRôleFrontière
Device storeAES-256-GCM, embeddings sealed, BM25/vector localSeul le processus déverrouillé lit le plaintext
Sealed MPIremember_sealed, recall/forget/status authentifiésLe nœud garde le ciphertext signé sans le déchiffrer
MemChain standardCognition Local/P2P/SaaS, graph/vectorCertains déploiements lisent des records; hors promesse stricte
Commitment ledgerOrdre signé, follower recovery, pinned witnessEngagement sur record IDs opaques

Blind storage est config-gated.

Mémoriser, stocker, rappeler

  1. Mémoriser : un AI turn autorisé est distillé, chiffré AES-256-GCM, adressé et signé sur l’appareil; le chat P2P n’est pas ingéré automatiquement.
  2. Stocker : SQLite local est écrit d’abord; le même objet opaque est envoyé best-effort si sealed storage est actif.
  3. Rappeler : keyword, vector, temps, layer, project et signaux structurés sont fusionnés localement; seuls les hits choisis sont déchiffrés.

La reprise exige la même identité récupérable et des données déjà synchronisées.

Contrat node-blind strict

Le nœud recalcule le record ID sur owner/timestamp/layer/tags/source/ciphertext, vérifie Ed25519 et stocke le ciphertext tel quel, sans déchiffrer, rechiffrer ni signer. Keyed hashes, client vectors, opaque edges/provenance et project label/hash sont optionnels. C’est node-blind, pas une preuve zero-knowledge : vector similarity et labels plaintext peuvent révéler une structure.

Métadonnées visibles du nœud

Le nœud voit owner public key, timing, taille, count, layer/source, record IDs, forme du graphe opaque et champs optionnels project/vector/keyed terms, plus quota/error agrégés. Sont interdits memory plaintext, content keys, raw tokens, identity seed, AI prompt, chat plaintext, DNS, destinations, historique et wallet traffic. La confidentialité du contenu n’assure pas l’unlinkability owner ni l’anti-corrélation réseau.

Rappel chiffré local-first

Le store Rust local écrit uniquement ciphertext sur disque. Unlock dérive une clé domain-separated depuis l’identité P2P active, construit l’index RAM et déchiffre les hits à la demande; embeddings/snapshots sont aussi sealed. Lock retire l’état utilisable. BM25/vector fusion et règles de temps/layer/project/réconciliation sont déterministes et n’appellent pas un nouveau LLM. L’écriture locale est autoritative, le nœud secondaire.

Relation avec chat, identité et routage privé

Le chat chiffré transporte du E2E ciphertext sans créer de mémoire. Les AI turns n’entrent qu’avec activation utilisateur. Perdre tout le matériel identity supprime la capacité de déchiffrer; AeroNyx n’a pas de clé maître. Privacy networking protège le transport, MemChain l’état choisi. Un journal brut doit rester un historique chiffré opt-in distinct.

Agents et frontière du fournisseur de modèle

Blind storage et cognitive processing sont séparés. Un worker n’accorde pas de lecture au blind node. Un modèle local reste dans la frontière locale; un provider externe lit le plaintext prompt envoyé et représente une confiance distincte. Timeout, limits, cooldown, fallback ou TEE ne rendent pas cet appel E2E encrypted. UI et Agent API doivent indiquer le modèle destinataire et recueillir le consentement.

Commitment ledger et witnesses

Rust implémente signed append-only commitments, bounded follower sync, local anchors, checkpoint certificates, pinned witnesses et leases optionnels. Strict startup peut exiger plusieurs pins avant les listeners. Cela détecte rollback/fork/divergence/equivocation; ce n’est ni permissionless consensus, public finality, leader election, token execution, ni preuve de possession payload. Fonctionnalités default-off/config-controlled.

Langage de benchmark

Les tests internes LongMemEval-S de juillet 2026 ont mesuré 95–99% retrieval hit et 2–5 ms node-side recall dans leur configuration. La qualité dépend du modèle, extraction, dataset, appareil, corpus et chemin local/node. Retrieval ne nécessite pas une nouvelle inférence LLM. Ne pas revendiquer SOTA, industry-best, formal zero knowledge, reprise garantie ou projections comme résultats; publier date/config/model.

Observabilité sûre

Nodeboard/health montre seulement enabled/configured, encrypted count/bytes, quota/cleanup, commitment height/audit, follower freshness, carrier recovery, witness counts/threshold agrégés et buckets latency/error. Interdits : owner key, record ID, project, blind term, vector, edge, checkpoint hash/signature, witness identity/endpoint, ciphertext/plaintext/prompt et historique par utilisateur.

Maturité et non-revendications

Implémenté : device encrypted store, identity unlock, local hybrid recall, sealed write/recall/forget, owner signature, opaque search, storage-root attestation. Config-gated : public blind storage, remote owner, coordinator/follower, witnesses, threshold, lease. Confiance séparée : cognition lisible, SuperNode, providers. Non revendiqué : stockage par tous les nœuds, chaîne globale, consensus permissionless, tokens, durabilité universelle, anonymat metadata ou résistance à un client compromis.

Frontière de confidentialité

Le client choisit la mémoire, chiffre avant upload, conserve la content key et déchiffre localement quelques hits. Le nœud authentifie owner, conserve/ordonne l’état opaque, répond au retrieval autorisé et publie la santé agrégée; il ne lit ni transforme le contenu. Un AI externe peut recevoir du plaintext pertinent. Sans identity key, AeroNyx ne peut restaurer la mémoire.

Spécifications associées