簽名承諾帳本與見證保護
說明 AeroNyx 如何以一個協調器、經審核的跟隨節點、固定見證人與 fail-closed 租約驗證只追加的加密承諾帳本,同時不宣稱公鏈共識。
AeroNyx 已為加密 MemChain 記錄運行簽名、只追加的承諾帳本。帳本證明順序與完整性,但基礎設施仍無法讀取記憶內容。它是協議完整性機制,不是公鏈。
協議不變量: 協調器、跟隨節點、見證人、後端與官網只能處理密文承諾及有界運行證據;不得接收記憶明文、解密金鑰、所有者關係或社交圖譜。
目前生產架構
目前部署由一個承諾協調器與三個經審核的跟隨/見證節點組成。協調器排序不透明承諾;跟隨節點獨立驗證區塊祖先關係與簽名,保留簽名檢查點證據,並核發短期生產租約。在見證假設成立時,這能防止回滾與複製協調器平行寫入。
| 角色 | 職責 |
|---|---|
| 客戶端 | 在本機加密並簽名記憶;金鑰不進入節點基礎設施。 |
| 協調器 | 僅在完整性與權限門檻通過後,把不透明承諾寫入簽名區塊。 |
| 跟隨/見證節點 | 驗證歷史、保留簽名觀測、提供檢查點並核發有時限租約。 |
| 後端/官網 | 只發布聚合健康度,不發布 hash、簽名、身分、端點、所有者或內容。 |
截至 2026 年 7 月 16 日,四個上報節點驗證了相同的高度 33 歷史,共覆蓋 8,339 筆不透明承諾:一個協調器、三個跟隨節點;協調器持有 3/3 運行時見證租約。這是帶日期的運行觀測,當前狀態請查詢公開 API。
寫入與驗證流程
- 客戶端在本機加密並簽名可記憶記錄。
- 協調器只追加不透明承諾與排序 metadata。
- 每次追加都驗證上一個簽名區塊並更新本機簽名高水位錨點。
- 跟隨節點拉取有界分頁,驗證祖先關係與簽名,並保留檢查點證書。
- 只有所有設定的運行時見證人都為同一租約實例授權時,協調器才生產新區塊。
啟動與運行時門檻
系統刻意使用兩種獨立控制:啟動檢查點在公開 listener 開啟前偵測回滾;運行時租約防止兩個複製的協調器同時持續生產。
- 啟動閾值: 協調器開啟 UDP、TUN 或 API listener 前,三個固定見證人中至少兩個必須回傳不同且有效的簽名證據。
- 運行時租約: 三個設定見證人必須全部為活動協調器核發短租約。部分續租進入降級狀態;權限到期後停止生產。
- 恢復: 見證網路恢復後,完整的新租約輪次恢復生產權限,並增加聚合恢復計數。
失效模型
| 條件 | 必要行為 |
|---|---|
| 一個見證人未續租 | 回報 renewal_degraded,並在既有租約仍有效時重試。 |
| 租約到期 | 設定 production_permitted=false,對新承諾生產 fail closed。 |
| 簽名遠端狀態更高 | 停止啟動,因為本機狀態可能已回滾。 |
| 簽名歷史分歧 | 停止啟動並要求營運者調查,絕不自動合併衝突歷史。 |
公開可觀測性
隱私安全聚合接口為 GET https://api.aeronyx.network/api/privacy_network/vpn/public/network-stats/,位於 data.protocol_status.memory_chain。
{
"mode": "signed_commitment_ledger",
"status": "witness_protected",
"verified_nodes": 4,
"coordinator_nodes": 1,
"follower_nodes": 3,
"max_verified_tip_height": 33,
"max_verified_commitment_count": 8339,
"max_granted_witnesses": 3,
"max_required_witnesses": 3,
"network_consensus": "not_claimed"
}
上面的 JSON 是一次已驗證生產觀測範例,不是寫死承諾。節點持續上報時,計數與租約剩餘時間會變化。
節點 heartbeat 為營運者上報以下租約健康欄位;公開接口只提供聚合計數:
coordinator_lease_state, coordinator_lease_granted_witnesses,
coordinator_lease_required_witnesses, coordinator_lease_seconds_remaining,
coordinator_lease_production_permitted, coordinator_lease_last_attempted_at,
coordinator_lease_last_renewed_at, coordinator_lease_last_failure_at,
coordinator_lease_renewal_failures_total, coordinator_lease_consecutive_failures,
coordinator_lease_recoveries_total.
隱私邊界
中心化/公開契約明確排除記錄 ID、區塊 hash、簽名、見證人身分、端點、所有者、密文正文、明文、路由、客戶端 metadata、錢包級流量與社交圖譜。承諾計數證明系統執行了工作,但不能說明記憶內容或建立者。
它不是什麼
- 不是無許可共識、拜占庭最終性或分叉選擇。
- 不是代幣帳本、智能合約平台或權益證明系統。
- 不證明所有主機或見證人都誠實。
- 不允許基礎設施讀取或搜尋記憶明文。
常見問題
AeroNyx 現在有區塊了嗎?
有。承諾子系統使用簽名區塊排序不透明的加密記錄承諾;但不應把它描述成公鏈或全網共識網路。
見證人離線會怎樣?
既有權限仍有效時,部分續租會顯示為降級;若租約到期前仍未取得全部設定見證人的新授權,新承諾生產會自動停止。
見證人能讀取 MemChain 記憶嗎?
不能。見證人只驗證簽名承諾結構與租約歸屬,不會收到記憶明文或解密金鑰。
相關文檔:記憶鏈與加密儲存 與 去中心化隱私節點維運。
<!-- aof-semantic-integrity-v1:start -->驗證本地追加式歷史
目前 AeroNyx 去中心化節點可以檢查本地 MemChain 追加式檔案,而不輸出任何記憶內容。這是重新啟動、升級、鏡像恢復與事故審查的本地完整性門檻。
驗證器檢查什麼
- 規範且有上限的記錄 framing;單筆解碼記錄最大 10 MiB。
- 獨立 Fact 與 Block 內每個 Fact 的內容仍與其內容派生
fact_id一致。 - 每個 Block 的 Merkle root 與其中依序保存的 Fact 標識完全一致。
- 連續 Block 的高度連續,且 previous-Block hash 連結一致。
- 檔案結束於完整記錄邊界;不完整物理尾端會個別回報。
唯讀命令
使用設定路徑,或明確指定路徑執行:
sudo aeronyx-server memchain verify-aof \
--config /etc/aeronyx/server.toml
sudo aeronyx-server memchain verify-aof \
--path /var/lib/aeronyx/.memchain
| 欄位 | 含義 |
|---|---|
valid_bytes | 完整且通過語義驗證的記錄所涵蓋的位元組數。 |
fact_records / block_records | 獨立 Fact 記錄與 Block 記錄;Block 內的 Fact 不重複計數。 |
last_block_height | 最後一個有效本地 Block 的高度。 |
torn_tail_bytes | 最後一筆有效記錄後的不完整物理位元組;零表示乾淨。 |
status | verified 表示本次觀察到的整個檔案通過本地掃描。 |
升級與恢復門檻
- 替換 binary 前執行
verify-aof,並在命令稽核中保留聚合結果。 - 驗證新 binary,並在重新啟動服務前用它執行同一唯讀掃描。
- 重啟後確認 replay 恢復至相同或更高高度,再執行節點健康檢查。
- 完整記錄若語義驗證失敗,必須停止並保留證據;不得截斷或自動合併。
證明邊界
命令僅輸出路徑與聚合計數,不輸出 Fact 內容、記錄標識、Block hash、簽名、擁有者、見證身分、端點、路由或解密金鑰。Mirror 或 Full node 同步後可獨立驗證同一份本地位元組,而不知道加密記憶內容。
此掃描不取代 Block 簽名驗證、見證憑證、執行期租約、分叉選擇或共識。乾淨的 AOF 證明本地結構完整性,不證明所有基礎設施參與者皆誠實。
實作路徑:
crates/aeronyx-server/src/services/memchain/aof.rscrates/aeronyx-server/src/main.rs