MemChain et stockage chiffré
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
| Couche | Rôle | Frontière |
|---|---|---|
| Device store | AES-256-GCM, embeddings sealed, BM25/vector local | Seul le processus déverrouillé lit le plaintext |
| Sealed MPI | remember_sealed, recall/forget/status authentifiés | Le nœud garde le ciphertext signé sans le déchiffrer |
| MemChain standard | Cognition Local/P2P/SaaS, graph/vector | Certains déploiements lisent des records; hors promesse stricte |
| Commitment ledger | Ordre signé, follower recovery, pinned witness | Engagement sur record IDs opaques |
Blind storage est config-gated.
Mémoriser, stocker, rappeler
- 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.
- Stocker : SQLite local est écrit d’abord; le même objet opaque est envoyé best-effort si sealed storage est actif.
- 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.