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 -->