本文转载自 Proof Street,这是一家专注于隐私保护计算的独立出版物,涵盖 ZK、FHE、MPC、TEE 和去中心化身份。原文于 2026 年 8 月 12 日以 "Confidentiality compared: what four privacy architectures promise" 为题发表。经作者许可,作为 Zcash Community Grant #339 的一部分在此转载。作者:Stephen Webber。
7 月下旬,Zama 在 Ethereum 主网上启用了一个保密询价交换场所,目前处于私测阶段,并计划于 9 月公开发布。它使交易者能够提交加密的交易意图,从而隐藏交易数量、滑点容忍度以及交易方向。
这依赖于一小段精心设计的流程。交易者存入两笔保密转账,其中一笔携带实际资产,另一笔则用于相反方向的一侧且金额为零,因此观察者只会看到一个双向流动、规模被隐藏的动作,无法判断这是买单还是卖单。白名单做市商会解密该意图,只能看到规模而看不到方向,并为买卖两侧同时报价。密封竞价拍卖在链上完成结算,且只有中标的做市商才会知道交易究竟往哪个方向移动。最终结果是:在公有链上执行了一笔大额交换,而交易之外没有任何单一方能拼凑出完整图景。
Zama 将该产品描述为端到端保密,但这种保密性究竟意味着什么?这里的保密性要求贯穿整条操作链都具备保密性,因此公众看到的是一种信息,落标者看到的信息更多,因为他们为报价而解密了交易规模,而中标者看到的信息则更多。简单说,序列中的每一个阶段之所以如此,都是因为有人对“谁需要知道什么,以及何时知道”做出了决定。把保密性概括成“谁都看不到任何东西”固然很好听,但在现实中根本行不通。保密性必须被结构化安排,而且必须遵循一个顺序。
有意思的是,在这次发布近十年前,Zcash 就已经在公有区块链上提供了第一个保密结算层,利用零知识证明隐藏交易的发送方、接收方和金额,同时向所有人证明该交易是有效的。在此后的十年里,“保密”这个形容词逐渐被用于至少四类不同的技术家族:shielded transactions、全同态加密、多方计算,以及可信执行环境。如今,这四类家族中的产品都已投入生产,其中有些甚至运行在同一条链上。那么,罐头里到底装的是什么?
这四类家族针对四个不同的问题给出了不同且有时彼此重叠的答案,而由于每种答案现在都以产品形式交付,真正的任务就变成了:搞清楚你实际面对的到底是哪一种问题。
任何关于保密性的声明,剥开外衣之后,都必须回答四个问题。隐藏的是什么数据?对谁隐藏?在数据生命周期的哪个阶段隐藏?以及,要让这种保证成立,必须信任什么?
举个例子,还是看这个交换场所。它必须隐藏金额、方向和滑点。那为什么不隐藏资产交易对?Zama 表示未来版本也会把这一点隐藏起来。对谁隐藏:对公众和抢跑机器人是完全隐藏,对报价做市商是部分隐藏,对中标做市商则隐藏得最少。在什么阶段隐藏:在报价和拍卖期间隐藏,并在结算时按设计进行披露。以及你需要信任谁:这种保证建立在 FHE 本身、智能合约以及一个门限式密钥管理系统之上,该系统的运营方不能发生超过门限的串通。根据其 litepaper,不存在任何单一方能够接触到解密密钥。
这是一种在不广播交易策略的前提下执行大额交易的设计。做市商之所以能看到规模,是因为不知道规模就无法给出报价。中标者之所以会知道方向,是因为结算确实需要这一点。
这个例子表明,那种听起来像二元判断的说法,仿佛某样东西要么保密、要么不保密,实际上会被拆解成一份“排除时间表”。而实现这些听起来相同的声明,路径却可能截然不同。

一笔 shielded Zcash 交易会隐藏发送方、接收方和金额。保持公开的是证明:一个零知识论证,任何运行节点的人都可以验证,证明这笔被隐藏的交易遵守了规则。被屏蔽的资金以加密 note 的形式存在,每个 note 都是一条关于金额及其所有者的私密记录,在链上只表现为一个密码学承诺。花费一个 note 时会公布一个 nullifier,这个值能防止同一个 note 被重复花费,同时又不会暴露它究竟是哪一个 note。这意味着网络能够在始终不知道具体有哪些资金发生移动的情况下拒绝双花,因此花费行为不会留下将一笔交易关联到另一笔交易的轨迹。证明的职责,是在不披露任何相关数量的前提下,证明花费者拥有该 note、交易的数值保持平衡,以及没有任何 ZEC 被创造或销毁。
这种设计最鲜明的特性,在你思考“必须信任什么”时体现得最明显。没有哪个委员会可以解密一笔 shielded 交易,没有哪个运营者集合的串通门限会成为关键,也没有哪个硬件厂商的认证必须被相信。留在信任基础中的,只有数学以及编码这些规则的电路是否正确。对于那些威胁模型包含基础设施本身、可能受到施压的运营者、或可能被攻破的厂商的人来说,这份简短的清单本身就是产品。
事实上,这个信任基础最近刚在生产环境中经历了一次考验。5 月 29 日,正在为 Shielded Labs 审计的安全研究员 Taylor Hornby 发现 Orchard 池的证明电路存在一个健全性缺陷,该缺陷自该池于 2022 年上线以来一直存在。根据 Shielded Labs 的披露,这个缺陷可能允许有人在 Orchard 内部铸造无限量的伪造 ZEC,而且不会在链上留下任何痕迹。
紧急修复在五天内完成:Orchard 于 6 月 2 日暂停,随后于 6 月 3 日通过修正后的电路恢复。ZODL 的修复说明将影响描述得比 Shielded Labs 更窄一些,认为风险是池内双花,而不是伪造供应量,并报告称用户隐私和总供应上限未受影响。
之后上线的是可验证性的重建。Ironwood 于 7 月 28 日作为 NU6.3 激活,它会永久封存 Orchard 池,在修正后的电路上开启一个全新的池,并以独立审计和形式化验证工作作为支撑;同时,它会将所有流出的资金都引导通过一个 turnstile,该机制会把提款额限制在可验证进入的数量之内,从而在不查看任何人交易内容的情况下,恢复每一位用户独立核查流通供应量的能力。这一事件正是信任基础账本发挥作用的体现。当电路正确性失效时,补救手段是数学和迁移,而不是某个委员会的自由裁量权;而其影响范围之所以被限制住,是因为这种架构早在数年前就已在池边界内建了可审计性。
而 shielding 用这种最小信任基础换来的能力,是有意保持狭窄的。被隐藏的状态是一笔支付,也就是价值从一方转移到另一方。这里没有供多方共同计算的共享加密状态,没有保密合约逻辑,也没有加密订单簿。
FHE 允许在密文上直接运行计算。在 Zama 的协议中,也就是目前已在 Ethereum 上线的版本,余额和转账金额会以加密句柄的形式存在于链上,遵循草案中的 ERC-7984 standard;协处理器在链下执行加密算术;而解密则需要一个由独立密钥管理运营者组成的法定人数,在主网上线时为 13 个组织,这些组织因其声誉和运营投入而被选中,因此不存在任何单一方可以读取这些数据。正因如此,加密订单簿或保密借贷池才成为可能:多方的隐藏状态可以在共享合约逻辑内部进行组合。
但密钥管理委员会怎么办?总得有人能够解密,否则这些数据就无法使用。对此,这种设计的回应是:让“这个人”变成一组独立运营者构成的门限,而不是单一托管方;并通过直接写入合约本身的访问控制,来治理谁可以解密哪些数值,这种机制还可以扩展到指定方,例如审计方。这是一种委托机制,其合规含义属于本系列下一篇文章要讨论的内容。对于评估解决方案的人来说,关键问题在于,这个委员会的构成、激励和门限是否符合其威胁模型。
多方计算会把数据拆分成多个份额,分发到独立节点上,这些节点共同计算结果,而不由任何一个节点重构输入。Soda Labs 联合创始人兼 CEO Avishay Yanai 这样描述生产环境中的优质 MPC 设计:该公司的garbled-circuit virtual machine 已在 COTI 网络的生产环境中,对加密数值执行兼容 EVM 的合约逻辑。依他所言,好的 MPC 设计应当确保无论是观察者、运行计算的节点,还是供应商,任何单一方都看不到明文输入或中间状态;每个人只能看到披露策略赋予他们看的内容。这种保证只依赖于“不发生串通”,而这种假设是可以通过工程和合同来构建的,例如让运营者位于不同司法辖区、不同云平台之上,并接受独立审计,同时让串通行为承担法律责任。在这里,密码学的职责,用他的话说,是大幅降低信任而不是消除信任,以达到与机构对清算所所赋予信任相当的程度。如果发生超过门限的串通,隐私会被破坏,但正确性不会,因为在具备公开可审计性的设计中,外部验证者仍然可以在不参与计算的情况下检查上报的结果是否正确。
需要注意的是,这样的观察者仍然能看到一笔交易发生了、发生在何时、针对的是哪个合约、由谁提交,以及批次大小和费用。参与计算的节点还可能知道执行了哪个函数以及其吞吐模式。时间相关性也是一个需要考虑的问题,因为即使金额不泄露,活动水平也可能泄露信息。而且,无论应用输出什么明文内容,重复的小规模披露都可能逐渐形成可供有心人观察的模式。“这就是承诺的边界,”他澄清道,因此评估者应当要求供应商明确画出这条边界。没有任何一种计算模型能够修复这样的问题:例如,由已被攻破的客户端提交明文。协议只会忠实地对它收到的内容进行计算。谁与谁通信是传输层问题,而合规性则是政策问题而不是机制问题:“没有任何密码学会替你做这个判断。”
Garbled-circuit 设计以常数轮次运行,并且会在输入出现之前就预先计算好沉重的密码学材料,这正是它能够承载交易速率工作负载的原因;相比之下,secret-sharing 协议每次操作都要为网络往返付出代价。而且依 Yanai 所言,一些 MPC 家族只能保护数值本身,却无法隐藏“发生了某种计算”这一事实;而 garbled-circuit 设计则可以把保护范围扩展到交易对手地址和资产类型。不过,对于本文这类比较而言,这一家族最关键的性质在于:MPC 既是一种独立架构,同时又是其他家族中的一种组成成分。FHE 部署下的门限密钥委员会本身就是一种多方计算。依照 Yanai 的表述,评估者需要问的问题是:“我的委员会到底在做什么,而我又在它之外额外付出了什么代价?”如果无论如何都需要这个委员会,那么直接让计算本身在 MPC 中执行,就可以移除一层昂贵的外层结构。
还值得澄清的是,人们经常用同一个缩写来指代两种截然不同的产品。托管型 MPC 会把一个签名密钥拆分给多个参与方,因此其中任何一个都不能单独签名;它保护的是一个秘密,而其中涉及的联合计算只是一次固定操作,其产出是一份签名。计算型 MPC 则是在始终保持数据隐藏的前提下运行通用程序逻辑,并涉及多方输入、任意合约逻辑以及持续运行。二者的共同点是数学原理。但从操作层面看,前者用于密钥管理,后者则是一种保密执行环境。
TEE 是处理器中的一个硬件隔离区域,它会让数据在内存中保持加密,并屏蔽操作系统、hypervisor 以及机器运营者的访问;而远程认证则允许外部方验证其中运行的究竟是什么代码。这种设计换来了密码学家族往往需要付出高昂代价才能获得的两样东西:通用性与速度。一个 enclave 运行普通程序的成本接近普通环境,这也是为什么 TEE 成为主要云厂商大多数保密计算方案以及越来越多链基础设施的锚点。
其信任基础正是这种交换的代价,因为这种保证的强度只取决于硬件厂商的设计与供应链、认证基础设施,以及 enclave 对侧信道提取攻击的抵抗能力,而这类攻击早已有长期公开的历史。TEE 设计者对这本账比他们的批评者更清楚。选择这种架构,意味着经过权衡后下注:相信硬件信任加认证,是以真实速度运行真实工作负载所应支付的合适代价;而对许多部署来说,确实如此。
Shielded Zcash 能否服务于保密交易场所这一用例?不能,但这并不是缺陷。一个 RFQ 场所代表的是在合约逻辑之下的共享加密状态,是多方的隐藏意图在一个本身也以盲态运行的拍卖中进行组合。这更适用于像 MPC 这样的东西:在频繁交互之下维护共享私密状态,比如订单簿、轧差周期。Shielding 并没有这样的底层承载;它所隐藏的状态是一笔两方之间的支付。这个场所本身更适合 FHE 或 MPC,而且值得注意的是,当 Zama 构建它时,它所交付的保密性是一份面向白名单、已识别做市商的披露时间表,而这对于机构交易来说是必要的。但这与 shielded transaction 所提供的是不同的产品:后者提供的是一种没有白名单、也没有任何一方最终会知道你交易方向的保密性。
那企业支付和薪资呢?这是每一家 FHE 和 MPC 供应商如今都在争夺的市场,而这恰恰正是 shielding 最初被打造出来要解决的问题:金额隐藏、交易对手隐藏、有效性公开。原则上,shielded chain 是目前可获得的最强信任基础答案,没有委员会、没有供应商、没有运营者集合。实际中,企业支付市场的竞争取决于支付 rails、ERC-20 集成、现有托管方、现有合规工具以及稳定币计价,而 shielded Zcash 提供的是另一条链上的另一种资产。但就问题形态而言,它是非常契合的,只是还在等待集成。密码学本身能够做到,因此现实中的顾虑主要在于其周边技术栈与什么相连接。
同样值得关注的是另外三大家族所提供、而 shielding 并不提供的一点:一个可以被强制要求配合的主体。门限委员会可以收到法院命令,enclave 厂商可能因其签名密钥而被传唤,运营者集合也处在特定司法辖区之下。对于需要合规路径的机构来说,委员会本身也许就是产品。但从另一个角度看,它同时也是脆弱性所在。
如果我们再次回看上文讨论的这些案例,就会看到一幅彼此重叠的图景。大多数 FHE 部署的底层,都有门限 MPC 作为解密层。零知识证明会在 FHE 消费加密输入之前对其进行认证;而在 garbled-circuit 系统中,也可以在事后进行认证,从而赋予用户一种不依赖网络可用性的强制退出机制,这种做法借鉴自 rollup 架构。TEE 会以纵深防御的形式出现在 MPC 节点之中,Zama 的密钥管理节点会在硬件 enclave 内运行其所分担的计算,而 TEE 也越来越多地承载那些最终保证本质上仍是密码学的系统中的 prover 和 builder。五年后再写这样的比较,也许会发现这些接缝已经很难定位了。但组合只会沿一个方向发生。
这也是为什么,对于评估者来说,那个更持久的问题形式根本不是“哪一种技术”最好。真正该看的,是保密性如何被分阶段安排、什么被排除在外,以及这种排除由什么来执行。可能是数学和电路正确性,可能是一个委员会的不串通,可能是诚实节点的门限,也可能是某家厂商的 silicon。阅读任何保密性声明时,都去追问:隐藏了什么、对谁隐藏、隐藏到什么时候、凭谁的话算数。这样一来,你就会明白。
披露:本文获得了 Zcash Community Grant 资助。ZCG 在发表前并未审阅或批准本文。Proof Street 的资助承诺列在其资助页面上。
相关页面: Shielded Pools (Using_Zcash) · Viewing Keys · Start_Here 中“谁能看到什么”页面 —— 替换为精确的 wiki 路径