一位基因数据平台Monadic DNA的开发者,用刚发布的Stoffel MPC 0.1.0做了一次本地测试。100个模拟用户,在谁都拿不到别人完整基因型数据的前提下,联合算出了6个SNP位点的等位基因计数和一个加权分数。全程跑在同一台开发电脑上,数据是合成的,总耗时45.29秒。
这不是临床验证,也不是产品上线,只是一次概念验证(PoC)。它验证的方向很明确:基因研究未必要先把所有人的DNA收进一个中央数据库。但4个MPC节点其实全部跑在同一台电脑上,离一个由多家机构独立运营的生产网络,还差一大截。
100个客户端、4个节点,数据怎么流转
架构分三层。100个独立客户端进程各自代表一个模拟用户,本地生成6个SNP的秘密分享(share),直接发给4个MPC节点,不经过中央服务器。
协调器只做两件事:身份授权、节点发现。它不接收任何基因型数据,也不参与计算。私密加法程序用StoffelLang写成,跑在Stoffel的HoneyBadger后端上,最终只公开6个位点的汇总计数和一个加权分数,单个用户的输入从未单独暴露过。
作者提供的实测数字:
| 阶段 | 数值 | 说明 |
|---|---|---|
| 基础设施启动 | 28.26秒 | 拉起协调器和4个MPC节点容器 |
| MPC计算 | 6.17秒 | 100个客户端上线并完成6个SNP的聚合计算 |
| 全流程耗时 | 45.29秒 | 含结果校验和资源清理 |
| 客户端峰值内存 | 约1.29 GiB | 100个客户端进程总和 |
| 节点侧峰值内存 | 约62 MiB | 协调器+4个MPC节点容器总和 |
6个SNP的等位基因计数分别落在99到101之间,加权分数与独立计算的预期值完全一致。这不奇怪,数据是作者自己生成的合成基准。这次测试证明的是流程能跑通,不是计算精度有多高。
最值得盯的限制:节点独立,不是协议独立
4个MPC节点全部跑在同一台开发机上。 协议层面数据分片确实开了,但这不等于4家互不勾连的机构在运营一个真实网络。
MPC的隐私假设是"最多容忍一个节点故障或作恶",这个假设只有在节点真正独立时才立得住。作者自己也把"换到Stoffel提供的多节点集群上跑一次"列为下一步,而不是已经完成的事。
对比一下全同态加密(FHE):两条技术路线在信任模型上正好相反。
| FHE | MPC(本次测试) | |
|---|---|---|
| 计算方式 | 单一服务在密文上直接算 | 多节点各持分片协作算 |
| 需要在线协调 | 不需要 | 需要,且要同时在线 |
| 核心风险 | 谁掌握解密权 | 节点是否独立、是否合谋 |
MPC省掉了单一解密密钥,换来的代价是每次计算都要有多个足够独立、且必须同时在线的节点协作。这张协作关系网,比写代码难维护得多。
规模测试还暴露了一个基础设施细节。100个客户端同时连接协调器和4个节点,产生约500条连接。第一次让所有客户端同时启动,出现了TLS握手失败。最终靠把启动时间错开50毫秒解决——问题不在密码学计算,而在网络连接瞬间的压力。这类问题放到千人规模会更明显,这次测试完全没有验证过千人量级的表现。
另外一个不能忽略的风险:小样本、重复查询、群组重叠,仍可能让攻击者用差分推断反推出个人数据。MPC保护的是计算过程本身,不等于结果绝对安全。
谁该现在就动,谁该再等等
这次PoC对三类人的意义不一样,能做的动作也不一样。
| 对象 | 现在能做 | 现在别做 |
|---|---|---|
| 基因研究平台/消费级DNA产品负责人 | 把MPC架构列入候选技术栈,评估节点运营方案 | 别急着采购,更别把"零上传"当卖点写进宣传 |
| 隐私计算/医疗数据基础设施开发者 | 下载0.1.0本地复现,压测500连接量级的启动问题 | 别拿单机结果当生产性能基准去外推千人规模 |
| 已上传DNA给消费级检测服务的用户 | 保持观望 | 不必因为"隐私计算"字样,就觉得自己的数据安全性已经变了 |
对研究平台来说,真正要问清楚的是三件事:节点由谁运营、身份怎么签发、哪些聚合结果安全到可以公开。这些都是产品和基础设施决策,这次PoC没有回答,也不打算回答。
对开发者来说,能做的事更具体:先在本地把这套流程跑一遍,验证StoffelLang和HoneyBadger后端的接口是否稳定;再单独测试连接层,看500条并发连接在自己的部署环境里会不会重现TLS失败,提前准备错峰启动或连接池方案。这比等Stoffel官方放出多节点集群测试结果,更早能判断这套技术栈值不值得投入。
