MemChain 与 Blind Vault:存储什么、不存储什么
MemChain 将 Nyxi AI 记忆加密保存在你的设备上,并且只有在记忆功能开启且 VPN 已连接期间,才会向所连接的节点发送一份尽力而为的加密副本。Blind Vault 已在节点中实现,但默认禁用且应用未使用;AeroNyx 不提供任何备份或存储产品。
MemChain 是 Nyxi AI 背后的记忆系统。它默认关闭;当你开启它时,记忆首先加密存储在你的设备上,并且只有在你连接到隐私网络期间,才会有一份尽力而为的加密副本发送到 AeroNyx 节点。Blind Vault 是节点软件中一个独立的加密对象存储。它默认禁用,官方应用也不使用它。AeroNyx 不提供备份或云存储产品。
概览
| 组件 | 运行位置 | 当前状态 | 保存内容 |
|---|---|---|---|
| 你设备上的 MemChain | AeroNyx 应用 | 可用。在你开启记忆功能之前处于关闭状态 | 加密的记忆记录及其元数据 |
| 节点上的 MemChain 副本 | 你的 VPN 连接所使用的节点 | 尽力而为。仅在记忆功能开启、VPN 已连接且该节点接受密封记录时 | 密文以及下文列出的元数据 |
| 旧版 MemChain 只追加文件 | 节点 | 为兼容性而保留的旧格式 | Fact 和 Block 记录,其中可能包含节点可读取的字段 |
| 记录承诺账本 | 节点 | 自 2026-07-13 起冻结 | 仅签名承诺,从不包含记忆内容。请参阅 签名承诺账本 |
| Blind Vault | 节点软件 | 已实现,默认禁用,应用未使用 | 无任何生产用途的数据 |
你设备上的 MemChain
在你于应用中开启记忆功能之前,它一直处于关闭状态。关闭期间,应用不会形成任何记忆,也不会向节点发送任何内容。
记忆功能开启后,应用会保留每一轮已完成的 Nyxi AI 对话,并可能从中提取简短的事实,例如某项偏好或即将到来的预约。
- 提取过程对 AeroNyx 并不保密。 为了提取事实,应用会将该轮对话文本经由 AeroNyx 后端发送给 AI 模型。这与 Nyxi AI 对话使用的是同一条路径。它不是端到端加密的。
- 设备上的存储是加密的。 每条记录都使用 AES-256-GCM 密封。密钥由你的 P2P 身份密钥派生,从不存储或发送到任何地方。本地数据库保存密文以及记录的时间戳、层级、来源模型、标签和项目标签。明文仅在应用处于解锁状态并使用它时存在于内存中。
- 回忆以本地为先。 应用搜索自己的副本,离线时同样可用。只有在本地副本仍在填充期间,它才会向节点查询。
- 删除以本地为先。 当你要求应用忘记某件事时,它会删除本地记录。如果你处于离线状态,它会将节点上的删除操作排入队列,并在你下次连接时发送。
由于密钥来自你的身份密钥,任何持有该密钥的人都可以解密你的记忆。如果密钥丢失且无法恢复,任何人都无法解密这些记忆,包括 AeroNyx。
节点上的可选副本
只有在以下条件全部满足时,应用才会尝试将每条新记录的副本发送到节点:
- 记忆功能已开启。
- VPN(隐私网络)已连接。
- 你所连接的节点接受密封记录。该功能在节点软件中默认关闭。
请求在加密的 VPN 隧道内部发送到节点位于隧道地址上的 MemChain API。节点看到的是你的 VPN 虚拟地址,而不是你的公网 IP。每条记录都使用你的 P2P 身份密钥签名,以便节点核验其所有者。
节点能看到和不能看到的内容:
| 项目 | 节点能否看到? |
|---|---|
| 记忆内容(对话文本、事实文本、记录内的时间戳) | 不能。只有 AES-256-GCM 密文 |
| 你的 P2P 身份公钥(记录所有者) | 能 |
| 记录时间戳、记忆层级、来源模型名称 | 能 |
| 主题标签(对于提取的事实:该事实所涉及的人或事物的小写名称) | 能 |
| 提取的事实的项目标签 | 能,当该事实带有项目标签时 |
| 搜索令牌 | 带密钥的 HMAC 令牌。节点无法逆推它们,但能看到同一令牌何时再次出现 |
| 嵌入向量 | 不能。向量保留在设备上 |
该副本为尽力而为。如果上传失败,应用会忽略该错误,你设备上的副本仍是权威副本。节点不会将你的记录复制到其他节点。该副本不是备份,AeroNyx 也不承诺保留它。有关数据处理承诺,请参阅 信任中心。
节点侧的 MemChain 存储
节点在两个位置保存 MemChain 数据:
- 密封记录存入节点的 SQLite 数据库(
memchain.db),该数据库以 WAL 模式打开,并设置synchronous = NORMAL。节点存储上述密文和元数据,无法解密其内容。 - 旧版只追加文件(
.memchain)以长度前缀格式保存较早的 Fact 和 Block 记录。每条记录上限为 10 MiB。该文件中的 Fact 字段可能可被节点读取,因此不得将其描述为密文历史。
运营者可以在不打印任何内容的情况下检查旧版文件:
sudo aeronyx-server memchain verify-aof --config /etc/aeronyx/server.toml
该命令只报告汇总计数,如果发现不完整的末尾记录,则会以错误退出。它不会读取密封记录数据库或承诺账本。
Blind Vault
Blind Vault 是一个节点组件,用于在匿名、自认证的租约下存储由客户端加密的对象。客户端通过兑换一次性凭据获得租约,节点只在其自己的 SQLite 数据库中存储密文。它从不与 MemChain 或聊天共享该数据库。
当前状态:
- 它默认禁用(
[blind_vault] enabled = false和public_api_enabled = false)。 - 官方应用不使用它,AeroNyx 后端也不签发 Blind Vault 凭据。
- 它不是备份或存储服务。请勿依赖它保存你的任何数据。
准入凭据的说明见 盲签名凭证与匿名访问凭据。
崩溃恢复
| 存储 | 进程崩溃或重启后 | 突然断电后 | 数据损坏时 |
|---|---|---|---|
节点密封记录数据库(SQLite WAL,NORMAL) | 已提交的写入得以保留 | 最近的提交可能丢失 | 适用 SQLite 完整性规则 |
| 旧版只追加文件 | 重新打开文件时会截断不完整的最后一条记录,修复结果会同步到磁盘 | 最近的追加可能丢失,因为写入会被刷新但不会执行 fsync | 一条完整但校验失败的记录会阻止启动。该文件会被保留以供调查,而不会被截断 |
Blind Vault(SQLite WAL,NORMAL) | 已提交的对象和租约得以保留。重试同一次写入是幂等的 | 最近的提交可能丢失 | 适用 SQLite 完整性规则 |
恢复只能还原磁盘上已有的内容。它无法重建丢失的身份密钥或内容密钥,也无法恢复从未上传过的节点副本。
本页未声称的内容
- AeroNyx 不提供加密备份或云存储。
- 记忆提取对 AeroNyx 而言不是端到端加密的。
- 节点副本不会被复制,也不保证会被保留。
- MemChain 和 Blind Vault 都不是区块链,也都不提供全局共识。
常见问题
AeroNyx 会在其服务器上存储我的 Nyxi 记忆吗?
加密的记忆存储位于你的设备上。只有在记忆功能开启、VPN 已连接且该节点接受密封记录期间,节点才会获得一份加密副本。另外,从某一轮对话中提取事实时,该轮文本会经过 AeroNyx 后端,方式与 Nyxi AI 对话相同。
节点运营者能读取我的记忆吗?
不能。运营者无法读取记忆内容,因为节点只存储 AES-256-GCM 密文,且从不会收到密钥。运营者能看到部分元数据:你的 P2P 身份公钥、时间戳、记忆层级、来源模型、主题标签、项目标签以及带密钥的搜索令牌。
连接 VPN 会上传我的记忆吗?
只有在记忆功能开启时才会。记忆功能关闭时,不会形成或上传任何内容。记忆功能开启时,新记录会以尽力而为的方式复制到所连接的节点,且仅在该节点接受密封记录时进行。
Blind Vault 是我聊天或记忆的备份吗?
不是。Blind Vault 在节点软件中默认禁用,官方应用不使用它,AeroNyx 也不提供任何备份或存储产品。
如果我丢失了身份密钥会怎样?
任何人都无法再解密你的记忆。记忆密钥由你的 P2P 身份密钥派生。如果你无法恢复该密钥,设备上的副本和节点上的副本都无法打开。
<!-- faq:end -->