前几天我拿一台旧安卓机测试零知识证明生成,心态一开始挺乐观:现在手机都能剪4K视频了,生成个证明应该也不离谱吧?结果现实给了我一记轻轻的耳光。不是完全不行,而是“能跑”和“好用”之间,隔着发热、内存、等待时间,还有用户那点可怜的耐心。
手机端生成证明,真的可行吗?
答案是:小电路可行,复杂场景别硬上。
比如最简单的范围证明,证明“我的年龄大于18岁”“某个检测值在正常区间内”,这类电路规模不大,在中高端手机上跑起来没问题。我用一台骁龙8系手机测过,WebAssembly 版本生成一个 Groth16 证明,大概在 3到8秒之间,手机会微微发热,但还能接受。
可一旦证明逻辑变复杂,比如要验证多项医疗指标、签名、时间戳、哈希路径,证明时间就开始飙。十几秒还算温柔,半分钟以上用户基本就开始怀疑 App 卡死了。更麻烦的是内存,有些证明过程会吃掉几百 MB RAM,低端机直接闪退,真的很尴尬。
手机端最大的敌人不是算力,是体验
很多技术讨论喜欢盯着 TPS、Gas、曲线算法,但放到手机上,我觉得最致命的是三个小东西:
- 电量掉得明显,用户会心疼
- 机身发烫,像在偷偷挖矿
- 页面没反馈,用户以为系统坏了
我之前试过在页面上只放一个“正在生成证明”的 loading,结果测试同事等了12秒就退出了。他说:“我以为它死了。”后来我加了进度提示、预计剩余时间、后台继续生成,体验立刻好很多。技术没变,但用户没那么焦虑了。
哪些证明适合放在手机端?
我个人比较认可这种边界:隐私特别敏感、计算又不重的证明,适合在手机端生成。
比如:
- 证明自己拥有某个凭证,但不暴露身份证号
- 证明年龄、会员资格、某项指标是否达标
- 证明本地数据与某个承诺值匹配
这些场景里,原始数据不离开手机,心理安全感很强。尤其是医疗、身份认证、钱包登录这类场景,用户天然不想把数据传到服务器,手机端证明就很香。
但如果是大型模型推理结果证明、复杂病历规则校验、批量交易证明,我劝你别折磨手机。交给服务器、TEE、GPU 节点,或者做成混合方案,会现实很多。
我更看好“手机签名 + 云端证明”
一个比较顺手的方案是:手机本地保存隐私数据或密钥,只负责授权、签名、生成轻量承诺;真正重的证明生成放到可信服务器或去中心化证明网络。服务器看不到原文,只处理加密输入或承诺数据。
这有点像外卖:菜谱和口味你定,厨房帮你炒。你不用自己在手机壳后面架个煤气灶。
当然,这种方案要把权限、日志、可验证输入设计清楚,不然云端偷偷换参数,用户也不知道。所以最好让手机端保留最终确认环节,比如展示“你正在证明:血钾值处于正常范围,有效期24小时”,让用户点一下确认。
现在能不能用于生产?
能,但要挑场景。别幻想所有证明都在手机上丝滑完成。2024年以来,移动端 WASM、Rust、硬件加速库确实进步很快,像 Semaphore、Polygon ID 这类身份相关证明已经有不少移动端实践。但真实落地时,设备差异太大:旗舰机像高铁,千元机像绿皮车,还可能半路没电。
所以我的判断很简单:如果证明能在主流手机上 10秒内完成、内存低于300MB、失败可重试,那就值得放到手机端试试。超过这个线,别逞强,用户不会夸你密码学优雅,只会给你打一星。

骁龙8系跑3-8秒还行,但千元机用户直接劝退了
加进度提示确实有用,不然干等太折磨人😂
有没有人试过在Redmi上跑?会不会直接闪退?