面向加密且可问责协同编辑的平台(OSDI 2026)

原题:Acumen: A Platform for Encrypted and Accountable Collaborative Editing

一句话总结:Acumen 针对恶意 relay 和恶意协作者,把基于 CRDT 的协同编辑状态用加密累加器做常量空间指纹、用 placeholder 隐藏历史字符、用二阶异步垃圾回收控制存储,使新成员能验证强快照一致性且不获得旧编辑历史;在 25 个用户同时以 60 WPM 输入时仍保持毫秒级延迟。

问题与动机

云端协同编辑需要让多方合并并发更新,但端到端加密会阻止服务器读取和整理编辑内容。Acumen 研究的是更严格的去中心化场景:客户端保存本地状态,relay 只转发密文;relay 可以恶意丢弃、重排或分发消息,最多 n−1 个客户端也可以任意偏离协议。

作者希望同时提供内容和访问模式保密、恶意更新下的 fork-causal consistency(分叉因果一致性)、实时处理,以及动态邀请成员。动态成员尤其困难:新成员需要证明收到的快照确实来自一条一致的历史,却不能拿到已删除字符和完整编辑日志。论文指出 Snapdoc 的快照检查允许攻击者删去真实状态的任意子集,并且其 Treedoc 路径长度会泄露访问模式。

关键观察 / 隐含假设

  • 观察 1:Treedoc 的完整根路径会把访问模式编码进密文大小。 末尾连续插入会形成线性路径,平衡编辑的路径约为对数长度;因此不同编辑轨迹产生不同大小的更新(§5.1)。
    • 依赖假设:攻击者能观察网络消息大小,但不在模型中利用编辑发生时间。
    • 可能失效场景:若流量填充、批处理或时间模式也泄露信息,固定路径只能消除一种侧信道。
  • 观察 2:验证快照不必重放完整历史,但必须证明重建状态与签名状态描述一致。 用户状态的 operation set 和 Treedoc 节点集合可由 Merkle-tree accumulator 表示为常量空间根值;新成员可从不可信快照重建集合并比较累加器(§5.2.2)。
    • 依赖假设:哈希具备抗碰撞性,累加器更新和状态描述签名的实现正确。
  • 观察 3:普通 CRDT 垃圾回收与快照验证存在循环依赖。 删除某项前必须确认所有用户都不再需要它,但快照又需要足够数据重建每个用户的状态(§5.3.4)。
    • 可能失效场景:长期离线成员会压低因果稳定边界,使 secondary object 长期保留历史,实际存储未必接近当前文档大小。

核心方法

Acumen 以 operation-based CRDT 和 Treedoc 为文档表示。每个更新携带 version vector 与每个用户的 history hash chain;接收者只有在因果依赖齐全、历史哈希前缀一致时才应用更新(§4.1–§4.2)。这使恶意用户的 equivocation 形成可检测的分叉,而不会静默合并冲突历史。

为隐藏访问模式,Acumen 将 Treedoc 的完整路径替换为仅包含父节点 disambiguator 的固定长度路径。该设计依赖系统已经要求的 reliable causal broadcast,因此没有额外引入新的消息排序机制(§5.1)。操作哈希先对字符数据使用带随机 nonce 的 PRF,删除后的操作和节点保留中间数据哈希;观察者无法从状态指纹反推出字符内容(§4.1.1、§5.2.3)。

快照包含当前 operation set、Treedoc 对象以及每个用户签名的 state descriptor。descriptor 记录 version vector、历史哈希和两个累加器。验证者按每个用户的版本向量重建其状态,检查部分执行合法,再将缺失操作应用到重建状态,最后确认结果等于快照(图 3)。对于快照中已删除、但某用户尚未看到删除操作的字符,系统发送没有 data 和 rand 的 placeholder。placeholder 与真实对象具有相同哈希,但在后续删除时行为相同,因此同时满足累加器相等和历史隐私(§5.2.3)。

垃圾回收维护 primary 和 secondary 两份 operation set/Treedoc。primary 按本地因果稳定性删除操作和 tombstone,并在父节点也是 tombstone 时 flatten 内部节点。secondary 使用从各用户最新 descriptor 推导出的二阶垃圾回收 version vector,尽可能保留可重建其他用户状态所需的数据。作者用该“二阶”协议打破“为了创建快照而不能回收”的循环(§5.3.4)。

设计取舍

  • 取舍 1: 累加器使快照验证不随集合大小增长,但每次更新需要约 2·λ 次哈希评估和哈希表插入(§6.1)。系统把计算开销从传输和历史重放转移到客户端状态维护。
  • 取舍 2: primary/secondary 双份状态保留了快照能力,却增加内存、实现和回收协议复杂度。论文证明了其在给定因果稳定条件下的强最终一致性,但没有给出长期离线、成员频繁加入退出时的存储上界。
  • 边界条件: 协议适合有可靠因果广播和可信公钥基础设施、且接受者能获得完整快照对象的部署。DoS、编辑时序攻击和成员撤销后的更广泛密钥生命周期不在目标范围内(§3.1)。

实验与结果

  • 在 5 用户、182,315 次插入和 77,463 次删除的 Automerge 研究论文编辑轨迹上,Acumen 与 Automerge 的本地操作处理时间均低于 1 ms;Snapdoc 的插入/删除时间随历史增长,在约 850 次编辑后接近 200 ms(§6.1、表 6)。
  • 同一轨迹下,Acumen 和 Automerge 的更新大小基本保持常量;Snapdoc 的更新大小随历史线性增长,约 1,000 次编辑(约 200 个单词)时已达到 7 MB(§6.1、图 7)。
  • 在删除 90% 字符的快照工作负载中,Acumen 相比 Snapdoc 的加载时间提升从一个数量级接近两个数量级;1,000 次编辑时快照大小达到约三个数量级的差异(§6.2、图 8)。
  • 在每个客户端通过 relay 传输约 800 字符摘要的网络测试中,Acumen 延迟保持个位数毫秒;扣除网络基线后,平均协议开销少于 1 ms,用户数增加时吞吐仍达到每秒数百次操作(§6.3、表 7)。
  • 端到端压力测试显示 25 个用户各自以 60 WPM 同时输入时,延迟和可用性没有明显退化(摘要;§6.3)。

论断—证据表

论断证据评测边界置信度
固定长度 Treedoc 表示消除了路径长度造成的访问模式和带宽增长§5.1;图 75 用户、前 1,000 次 Automerge 轨迹编辑;时序泄露未覆盖
快照验证能在不暴露历史字符的情况下检查强快照一致性定义 1、图 3、定理 1;§5.2.3依赖累加器抗碰撞、签名和形式化协议假设;实验未直接测攻击成功率
二阶垃圾回收可避免状态随编辑历史无限增长§5.3.4;图 8最多 10 用户、最多 1,000 次操作、0%/90% 删除;离线和大规模成员变动未测
系统满足实时协同编辑吞吐§6.3 表 7;摘要c2-standard 客户端/relay、单文档、约 800 字符摘要;未覆盖多租户隔离和真实网络抖动

批判性分析

论证链条

论文的主链条较完整:固定路径处理消息大小泄露,累加器和 descriptor 处理无历史快照验证,placeholder 处理历史隐私,二阶回收处理状态膨胀。附录给出 FCC、快照一致性和垃圾回收 SEC 的证明草图。实验也分别拆分了处理时间、更新大小、快照规模和网络吞吐。

仍有一个外推跳步:强快照一致性主要由协议证明支撑,实验没有构造恶意 relay、恶意快照发送者或多次快照加入来测试拒绝行为。性能结论则来自单文档和短编辑轨迹,不能直接推出生产环境中的多文档、多租户结论。

假设压力测试

协议依赖可靠因果广播、可信 PKI 和安全群组消息层。relay 可以阻断通信但系统不防 DoS;长期不在线用户会阻止更激进的全局回收。Treedoc 结构本身仍泄露因果顺序相关的结构信息,固定路径没有隐藏这一点。论文还明确不处理 timing attack,因此“访问模式保密”只适用于消息内容和大小所定义的范围。

实验可信度

Automerge trace 提供了长历史和删除密集场景,适合检验历史增长;Snapdoc 是安全性和快照功能的直接基线,Automerge 则代表无安全开销的 CRDT 基线。网络实验采用单独的 200-byte 更新转发基线,能估计协议计算成本,但该基线不执行 CRDT 语义,不能替代一个同等功能的安全编辑系统。用户数最多 25,快照实验最多 10 用户、1,000 操作,规模覆盖有限。

系统性缺陷

双份状态、累加器哈希表、版本向量和安全群组消息共同增加了客户端内存与运维复杂度。论文测量了正常处理时间,却未报告内存上界、回收暂停、密钥轮换、成员撤销、崩溃恢复或多租户资源隔离。恶意客户端可以制造大量合法编辑;由于 DoS 是非目标,协议不说明如何限制此类资源消耗。

局限与后续工作

  • 局限 1: 性能评测规模和工作负载较窄,尚未覆盖真实长时间协作、多人频繁离线、复杂富文本结构或多个文档并发。
  • 局限 2: 访问模式保密不包含编辑时序,也无法隐藏 Treedoc 因果结构;这两个泄露面需要独立的流量整形或结构隐藏设计。
  • 后续工作 1: 在包含离线成员、加入/撤销循环和网络抖动的长时间 trace 上,测量 secondary object 的峰值存储、回收滞后和快照大小,并给出随成员数与历史长度变化的上界。
  • 后续工作 2: 对恶意快照、equivocation、重放和部分网络阻断建立攻击基准,报告验证失败检测率、额外通信和恢复路径。

相关