Nimbalyst 同步与安全架构解析:CollabV3 端到端加密与零知识同步机制
【免费下载链接】nimbalystNimbalyst - The open-source visual workspace for Claude Code, Codex, and OpenCode. Run multiple coding agents in parallel, edit their work visually in markdown, mockups, and diagrams, and track tasks. Free, MIT-licensed desktop app for macOS, Windows, Linux, with mobile companion for iOS and Android.项目地址https://gitcode.com/gh_mirrors/ni/nimbalyst点击查看免费下载Nimbalyst是一款开源的可视化 AI 编码工作区支持并行运行 Claude Code、Codex、OpenCode 等多个编码代理。它的CollabV3 同步系统使用端到端加密AES-256-GCM与零知识架构让桌面端、iOS、Android 设备实时协作而服务器永远只能看到一堆天书般的密文——看不到你的一字一句。这篇文章用大白话拆解这套同步与安全架构的运作原理。图Nimbalyst 多代理会话工作区左侧是同步过来的 AI 会话列表中间是代理的代码修改为什么需要零知识同步想象一下你在公司电脑上让 AI 修 bug回到家想用 iPad 继续查看进度或者出门在外用手机给桌面端排一条待办指令。这就要求会话数据能在多台设备间实时同步。但同步意味着数据要经过服务器。如果服务器能直接读到你的代码和对话就等于把家钥匙交给了快递员。Nimbalyst 的解法是加密只在你的设备上发生服务器只是一个加密信封搬运工。这套系统由文档 SYNC_ARCHITECTURE.md 和 SECURITY_REVIEW.md 完整描述核心就两句话端到端加密消息内容在发出去之前就加密只有持有密钥的设备能解密️零知识服务器不持有你的根密钥数据库里全是密文理论上服务器零知情整体架构一个哑巴中转站Nimbalyst 的同步链路长这样┌─────────────┐ ┌─────────────────┐ ┌─────────────┐ │ 桌面端 │◄──────►│ CollabV3 服务器 │◄──────►│ 移动端 │ │ (Electron) │ WSS │ (Cloudflare │ WSS │ (iOS/Android)│ └─────────────┘ │ Durable Objects)│ └─────────────┘ │ └─────────────────┘ ▼ ┌─────────────┐ │ 本地 SQLite │ ← 本地数据库永远是数据权威来源 │ (PGLite) │ └─────────────┘几个关键设计传输协议WebSocketWSS长连接实现毫秒级实时推送服务器形态Cloudflare Durable Objects SQLite只存加密数据块本地优先桌面端用内嵌数据库 PGLite 存储断网时自动降级为纯本地模式重连后补齐缺失消息绝不丢数据图同步到各设备的 AI 会话列表——桌面端的每一条会话都能在手机上看到CollabV3 协议两类房间与追加式消息CollabV3 是一个追加式append-only消息协议对话像日志一样只增不改天然适合 AI 会话这种线性对话场景。客户端与服务器之间有两类 WebSocket 连接房间用途连接时机会话房间Session Room同步单条会话的消息打开某会话时按需连接索引房间Index Room同步会话列表、项目列表、待执行指令开启同步后保持常连典型消息类型包括append_message把一条加密后的消息追加到会话message_broadcast服务器把其他设备的消息实时广播过来index_update/index_broadcast会话列表的增改与推送device_announce设备报到让其他设备知道你的手机也在线了一个很实用的场景手机上打字 → 排入待办队列 → 桌面端收到推送 → 自动替你发送给 AI → 结果再同步回手机。整个指令流转全程走加密通道。端到端加密的四个关键环节这是全文的精华。Nimbalyst 用业界标准的四步流程保证只有你自己能读1️⃣ 密钥种子只出生在你的设备上首次开启同步时设备本地随机生成32 字节256 位的加密密钥种子encryptionKeySeed。它是整条加密体系的根密码通过操作系统钥匙串macOS Keychain / Windows DPAPI / iOS Keychain / Android Keystore加密存储永不上传服务器——只有认证令牌authToken会发给服务器用于身份验证移动端配对时通过二维码本地扫描传递绝不经过网络相关实现见 CredentialService.ts。2️⃣ 密钥派生PBKDF2 磨出 AES 密钥密钥种子不能直接当密钥用需要加工。Nimbalyst 使用PBKDF2密钥派生函数参数值作用算法PBKDF2行业标准密钥派生盐值Saltnimbalyst:{userId}每用户唯一防彩虹表攻击迭代次数100,000 次大幅增加暴力破解成本哈希SHA-256安全哈希函数输出256 位 AES-GCM 密钥用于所有消息加解密这段逻辑放在共享运行时 encryptionKey.ts确保 Electron 桌面端、Node 无头宿主、原生 iOS 客户端用 CryptoKit 独立实现同一套参数派生出逐比特一致的密钥——否则解密就会得到一堆乱码。3️⃣ 消息加密每条消息独立加锁每条消息用AES-256-GCM单独加密且每次都用全新的随机 12 字节 IV初始化向量。GCM 模式还自带完整性校验标签——谁要是篡改了密文解密端立刻能发现。加密了什么消息正文、工具调用名、附件信息、隐藏标记、会话标题、排队指令。没加密什么时间戳、消息方向用户/AI、消息序号——这些结构元数据仅用于排序和路由。加密入口在 CollabV3Sync.ts密钥初始化流程在 SyncManager.ts。4️⃣ 防重复稳定同步 ID同一条消息在多次同步中不能被存两遍。Nimbalyst 用会话ID 时间戳 方向 内容前100字符做 SHA-256 哈希取前 16 字节作为稳定消息 ID天然去重。零知识到底意味着什么我们把服务器能看到与看不到的边界列清楚数据服务器可见说明消息正文 / 工具调用 / 附件❌AES-256-GCM 密文会话标题、排队指令❌安全审计后已补齐加密曾是明文已修复团队成员的文档内容与编辑操作❌文档级密钥 CRDT 加密用户 ID✅JWT 解析用于房间路由时间戳、消息方向、序号✅仅用于同步排序数据大小、活跃时间✅可推断你在何时干活 零知识 ≠ 绝对隐身。服务器看不到你说了什么但能看到你什么时候说了多少条。这是端到端加密的通用边界Nimbalyst 在其 SECURITY_REVIEW.md 中对此有诚实的审计记录包括会话标题与排队指令从明文升级为端到端加密的修复过程。身份层面服务器用Stytch B2BJWT JWKS 签名验证确认你是谁而密钥种子层面确认只有你能解密——认证与授权分离且 Stytch 的 secret key 只存在于服务器端客户端永远拿不到。手机配对密钥过二维码不过网络给新设备解锁数据的过程是零知识架构最优雅的体现桌面端生成二维码内含 userId、认证令牌与加密密钥种子手机扫码密钥直接面对面写入手机的安全存储两台设备从此共享同一根密钥各自本地派生出相同的 AES 密钥之后所有消息用同一把钥匙加解密图同步看板视图——所有设备的会话状态实时汇聚看板状态也由索引房间同步注意二维码有效期只有15 分钟且传输走的是相机本地扫码密钥从不经过网络传输。团队模式ECDH 密钥信封 Yjs 无冲突合并个人同步用的是一把钥匙开到底团队协作则更进一步。根据 Collaboration/README.mdECDH P-256 密钥交换每位成员持有一对身份密钥公钥注册在服务器。组织加密密钥通过**密钥信封key envelope**机制用成员公钥包裹分发——服务器只看到一堆信封不知道里面是什么Yjs CRDT多人同时编辑 Markdown 文档时编辑操作是加密的但 Yjs 冲突无自由数据结构保证离线各自改、上线自动合并、永不冲突信任复核门远端成员的编辑实时可见但在你明确接受之前不会写入磁盘——加密防服务器复核门防不怀好意的协作者详见 realtime-document-collaboration.md 的完整威胁模型分析。本地数据断网也照常工作同步是完全可选的功能。桌面端的数据权威永远在本地 PGLite 数据库未开启同步应用照常使用同步失败自动退回本地模式断网期间操作排队重连后批量补齐启动时增量同步Delta Sync只拉取本地缺失的消息分批限流绝不全量重传图本地 PGLite 数据库的表结构——ai_sessions、ai_agent_messages 等表是同步的数据基础结构与 nimbalyst-schema.prisma 对应安全设计速查清单 ✅把整套Nimbalyst 同步与安全架构浓缩成一张清单设计点实现端到端加密AES-256-GCM每消息独立随机 IV密钥派生PBKDF2 SHA-25610 万次迭代用户级盐值密钥存储OS 钥匙串Keychain/DPAPI/Keystore非明文文件密钥分发二维码本地扫码15 分钟过期不经网络身份认证Stytch B2B JWTJWKS 签名验证短时效令牌密钥隔离根密钥种子永不出设备secret key 只在服务器完整性GCM 认证标签 稳定消息 ID 去重防重放优雅降级断网转本地、操作排队、重连自动补齐给普通用户的一句话总结你开启同步的那一刻Nimbalyst 就在你的设备上造了一把只属于你的钥匙此后服务器经手的只是上锁的箱子开箱权自始至终在你手里。这正是零知识同步的精髓。 延伸阅读同步架构设计文档、同步与安全审计报告、团队协作架构、移动端同步本地测试指南赞分享【免费下载链接】nimbalystNimbalyst - The open-source visual workspace for Claude Code, Codex, and OpenCode. Run multiple coding agents in parallel, edit their work visually in markdown, mockups, and diagrams, and track tasks. Free, MIT-licensed desktop app for macOS, Windows, Linux, with mobile companion for iOS and Android.项目地址https://gitcode.com/gh_mirrors/ni/nimbalyst点击查看免费下载相关推荐Happy Server 自托管部署指南零知识端到端加密同步后端的架构与实践Happy Server 自托管部署指南零知识端到端加密同步后端的架构与实践 Happy Server 是 happy 项目中面向开源端到端加密 Claude人工智能AI AgentAI 应用移动开发CLI后端Notesnook 同步机制深度解析端到端加密、实时同步与合并冲突处理Notesnook 同步机制深度解析端到端加密、实时同步与合并冲突处理 Notesnook 是一款完全开源、端到端加密的笔记应用仓库根目录 README.m前端移动开发桌面应用应用安全Seafile 同步客户端守护进程架构解析文件同步、增量传输与加密机制Seafile 同步客户端守护进程架构解析文件同步、增量传输与加密机制 导读 Seafile 是一款开源云存储系统本仓库承载的是其 同步客户端守护进程sy存储数据同步创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考