签名承诺账本与见证保护
说明 AeroNyx 如何用一个协调器、经审计的跟随节点、固定见证人和故障关闭租约验证只追加的加密承诺账本,同时不宣称公链共识。
AeroNyx 已为加密 MemChain 记录运行签名、只追加的承诺账本。账本证明顺序与完整性,但基础设施仍无法读取记忆内容。它是协议完整性机制,不是公链。
协议不变量: 协调器、跟随节点、见证人、后端和官网只能处理密文承诺与有界运行证据;不得接收记忆明文、解密密钥、所有者关系或社交图谱。
当前生产架构
当前部署由一个承诺协调器和三个经审计的跟随/见证节点组成。协调器排序不透明承诺;跟随节点独立验证区块祖先关系与签名,保存签名检查点证据,并签发短期生产租约。在见证假设成立时,这能防止回滚和复制协调器并行写入。
| 角色 | 职责 |
|---|---|
| 客户端 | 在本地加密并签名记忆;密钥不进入节点基础设施。 |
| 协调器 | 仅在完整性与权限门禁通过后,将不透明承诺写入签名区块。 |
| 跟随/见证节点 | 验证历史、保存签名观测、提供检查点并签发有时限的租约。 |
| 后端/官网 | 只发布聚合健康度,不发布哈希、签名、身份、端点、所有者或内容。 |
截至 2026 年 7 月 16 日,四个上报节点验证了相同的高度 33 历史,共覆盖 8,339 笔不透明承诺:一个协调器、三个跟随节点;协调器持有 3/3 运行时见证租约。这是带日期的运行观测,当前状态请查询公开 API。
写入与验证流程
- 客户端在本地加密并签名可记忆记录。
- 协调器只追加不透明承诺和排序元数据。
- 每次追加都验证上一签名区块并更新本地签名高水位锚点。
- 跟随节点拉取有界分页,验证祖先关系与签名,并保存检查点证书。
- 只有所有配置的运行时见证人都为同一租约实例授权时,协调器才生产新区块。
启动与运行时门禁
系统有意使用两种独立控制:启动检查点在公开监听器打开前检测回滚;运行时租约防止两个复制的协调器同时继续生产。
- 启动阈值: 协调器打开 UDP、TUN 或 API 监听器前,三个固定见证人中至少两个必须返回不同且有效的签名证据。
- 运行时租约: 三个配置见证人必须全部为活动协调器签发短租约。部分续租进入降级状态;权限到期后停止生产。
- 恢复: 见证网络恢复后,完整的新租约轮次恢复生产权限,并增加聚合恢复计数。
失效模型
| 条件 | 必需行为 |
|---|---|
| 一个见证人未续租 | 报告 renewal_degraded,在现有租约仍有效时重试。 |
| 租约到期 | 设置 production_permitted=false,对新承诺生产故障关闭。 |
| 签名远端状态更高 | 停止启动,因为本地状态可能已回滚。 |
| 签名历史分叉 | 停止启动并要求运营者调查,绝不自动合并冲突历史。 |
公开可观测性
隐私安全聚合接口为 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、区块哈希、签名、见证人身份、端点、所有者、密文正文、明文、路由、客户端元数据、钱包级流量与社交图谱。承诺计数证明系统执行了工作,但不能说明记忆内容或创建者。
它不是什么
- 不是无许可共识、拜占庭最终性或分叉选择。
- 不是代币账本、智能合约平台或权益证明系统。
- 不证明所有主机或见证人都诚实。
- 不允许基础设施读取或搜索记忆明文。
常见问题
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