我们的隐私系列第一部分探讨了“隐私”究竟是什么,区块链网络中的隐私与传统Web2隐私的不同之处,以及为何在区块链中实现隐私如此困难。本文的核心观点是,如果我们希望有一个能够灵活处理共享私密数据且不容易出问题的隐私系统,那么多方计算(MPC)可能是最好的选择。我们还会讨论MPC的发展情况和信任基础,介绍其他替代方案,比较它们的优缺点,并对整个行业做个简单的介绍。大家是否都在做同样的事情?继续阅读找出答案。特别感谢 Avishay (SodaLabs), Lukas (Taceo),Michael (Equilibrium), 和Nico (Arcium)对本文的贡献。
未来不必拘泥于过去
目前区块链的隐私基础设施主要用于一些特定的场景,比如私人支付和投票。这种视角比较狭窄,主要反映了区块链的现有应用(如交易、转账和投机)。正如Tom Walpo所言,加密货币面临着费米悖论:
除了提升个人自由,我们认为隐私是推动区块链设计超越目前投机应用的关键。许多应用需要一定的私密状态或隐藏逻辑才能正常运行:
隐藏状态:大多数金融应用至少需要对其他用户保密,而如果多人游戏中没有一些隐藏状态(例如,扑克游戏中每个人都能看到对方的牌),乐趣会大打折扣。
隐藏逻辑:有些应用需要隐藏部分逻辑,但仍允许他人使用,比如匹配引擎和链上交易策略等。
经验分析(来自Web2和Web3)显示,大多数用户不愿为额外的隐私支付更多或经历复杂的操作,我们也认同隐私本身不是卖点。但隐私确实能让新的、更有意义的应用在区块链上实现,帮助我们突破费米悖论。隐私增强技术(PETs)和现代密码学解决方案(“可编程密码学”)是实现这一目标的基石(详见 附录中的不同解决方案及其优劣对比)。
我们的观点所基于的三个假设
我们对区块链隐私基础设施未来发展的看法主要基于三个假设:
密码学将对应用开发者透明化:大多数开发者不愿意或不具备处理隐私所需的密码学知识。期望他们自己实现复杂的密码学方案或在公共链上创建私有应用是不现实的(例如Zcash 或 Namada) 。这种复杂性会限制开发者的创作空间。因此,密码学的复杂性应当被隐藏,对开发者透明化。可以通过可编程的隐私基础设施或“机密性即服务”来实现,这样可以将机密计算外包。
许多应用需要共享私有状态:很多应用需要隐藏的状态或逻辑才能正常运行。共享私有状态就是这种需求的一种表现,涉及多个参与者对同一私有数据进行计算。虽然可以依赖集中化的实体来处理,但我们更希望通过减少信任需求的方式来避免单点故障。仅靠零知识证明 (ZKPs) 无法实现这一点,我们还需要使用可信执行环境(TEE)、全同态加密(FHE)或多方计算(MPC)等工具。
更大的隐私集合能增强隐私:大多数信息泄露发生在进入或退出隐私集合时,因此应尽量减少这种情况。通过在同一区块链上构建多个私有应用,可以增加隐私集合中的用户和交易数量,从而增强隐私保护。
隐私基础设施的终极目标
基于以上假设,区块链隐私基础设施的终极目标是什么?是否有一种方法适用于所有应用?是否有一种隐私增强技术可以一统天下?
其实不然。不同的方法各有优缺点,目前已经出现了多种组合方式。我们总共识别了11种不同的方法(详见附录)。
目前,区块链隐私基础设施最流行的两种方法是使用零知识证明(ZKPs)和全同态加密(FHE)。然而,这两者都有一些基本问题:
基于ZK的隐私协议通过客户端证明提供强隐私,但无法实现多个参与者对同一私有数据的计算。这限制了开发者在应用设计上的灵活性。
FHE允许对加密数据和共享私有数据进行计算,但带来了谁拥有这些数据的问题,即谁持有解密密钥。这限制了隐私保护的强度和对未来隐私持续性的信任。
如果我们期望的最终状态是拥有一个能够处理共享私有数据且没有单点故障的可编程隐私基础设施,那么无论选择哪条路线,最终都指向多方计算(MPC):
请注意,尽管这两种方法最终在某些方面趋于一致,但MPC在不同场景中的应用各有侧重:
在ZKP网络中:MPC用于增强系统的表达能力,使其可以对共享的私有数据进行计算。
在FHE网络中:MPC用于提升安全性,通过将解密密钥分配给MPC委员会来增强隐私保护,而不是依赖单一的第三方。
虽然关于这些方法的讨论开始变得更加细致,但它们背后的保障机制仍未被充分研究。由于我们的信任假设最终依赖于MPC的信任假设,因此有三个关键问题需要考虑:
MPC协议在区块链中能提供多强的隐私保障?
该技术是否已经足够成熟?如果不成熟,主要的瓶颈是什么?
考虑到保障的强度和其带来的开销,与其他方法相比,这样做是否合理?
让我们更深入地探讨这些问题。
分析MPC的风险和弱点
在使用全同态加密(FHE)的解决方案中,我们常常需要问:“谁掌握了解密密钥?”如果答案是“网络”,那么接下来的问题是:“这个网络由哪些实际实体组成?”这个问题对于所有依赖某种形式MPC的应用场景都很重要。
MPC的主要风险在于合谋,即足够多的参与者恶意合作以解密数据或滥用计算资源。合谋可以在链下达成协议,只有当恶意方做出明显行为时才会被揭露(如勒索、凭空创造代币等)。显然,这对系统能提供的隐私保障有重大影响。合谋风险取决于以下因素:
协议能承受多少恶意参与者的阈值?
网络由哪些参与者组成,他们的可信度如何?
网络中参与者的数量及其分布——是否有常见的攻击途径?
网络是无许可的还是有许可的(基于经济利益还是声誉/法律)?
对恶意行为的惩罚是什么?合谋是否是博弈论中的最优结果?
1. MPC协议在区块链中的隐私保障有多强?
简而言之:虽然没有我们希望的那么强,但比仅依赖一个集中式第三方要好得多。
解密所需的阈值取决于选择的MPC方案,这主要是在活跃性(“确保输出交付”)和安全性之间的权衡。比如,N/N方案非常安全,但如果有一个节点离线就会崩溃;而N/2或N/3方案则更为稳健,但合谋的风险相对较高。
需要平衡的两个条件是:
秘密信息绝不能泄露(例如,解密密钥)。
秘密信息必须始终可用(即使有1/3的参与方突然离开)。
不同的实现会选择不同的方案。例如, Zama的目标是实现N/3方案,而Arcium目前在使用N/N方案,但未来也会支持更高活跃性保障和更大信任假设的方案。
在这种权衡中,一个折衷方案可能是混合解决方案:
由高信任委员会负责密钥处理,使用N/3阈值。
计算委员会采用轮换方式,使用N-1阈值(或者提供多种不同特性的计算委员会供用户选择)。
虽然理论上这很吸引人,但也带来了额外的复杂性,例如计算委员会如何与高信任委员会进行互动。
增强安全保障的另一种方法是在受信任的硬件中运行MPC,以确保密钥共享保存在安全的环境中,这样提取或使用密钥共享的难度就会增加,除了协议规定的用途外。至少Zama和 Arcium正在研究受信任执行环境(TEE)的方向。
更微妙的风险还包括社会工程等边缘案例,例如一位高级工程师在MPC集群中所有公司工作超过10至15年。
2、MPC技术是否足够成熟?如果不成熟,瓶颈在哪里?
从性能角度来看,MPC面临的主要挑战是通信开销。随着计算复杂度和参与节点数量的增加,通信开销也会相应增加(需要更多的双向通信)。对于区块链应用,这带来了两个实际问题:
小规模运营商集:为了控制通信开销,目前大多数现有协议都限制在小规模的运营商集。例如,Zama的解密网络最多支持4个节点(尽管他们计划扩展到16个)。根据Zama发布的初步基准测试,即使是4节点集群,解密也需要0.5到1秒(完整的端到端流程则需要更长时间)。另一个例子是Taceo为Worldcoin虹膜数据库实施的MP,参与方有3个(假设有2/3的参与方是诚实的)。
许可运营商集:在大多数情况下,运营商集是经过许可的。这意味着我们依赖声誉和法律合同,而不是经济或密码学的安全性。无许可运营商集的主要挑战在于无法确认参与者是否在链外合谋。此外,这还需要定期引导或重新分配密钥共享,以便节点能够动态地进出网络。虽然无许可的运营商集是最终目标,且正在研究如何将PoS机制扩展到阈值MPC(例如由Zama进行),但目前许可的方式似乎是最可行的选择。
替代方法
完整的隐私方案包括:
使用全同态加密(FHE)进行委托私有计算
使用零知识证明(ZKP)验证FHE计算的正确性
采用多方计算(MPC)进行阈值解密
每个MPC节点在受信任执行环境(TEE)中运行,以增强安全性
这种方案非常复杂,可能带来许多未解决的边缘案例,开销也很高,并且在可预见的未来可能不具备实际可行性。另一个风险是,叠加多个复杂概念可能会导致虚假的安全感。复杂性和信任假设越多,评估整体解决方案的安全性就越困难。
这样做值得吗?或许值得,但探索其他方法可能会在隐私保障稍弱的情况下,显著提高计算效率。正如 Seismic的Lyron所说——我们应该关注满足隐私需求和可接受权衡的最简单解决方案,而不是为了过度设计而过度复杂化。
1.直接使用MPC进行通用计算
如果零知识证明(ZK)和全同态加密(FHE)最终都依赖于多方计算(MPC)的信任假设,为什么不直接使用MPC进行计算呢?这是一个合理的问题,Arcium, SodaLabs(在Coti v2中使用)、Taceo和Nillion等团队正在尝试这样做。需要注意的是,MPC有多种形式,但在这里我们指的是基于秘密共享和伪装电路(GC)的协议,而不是利用MPC进行解密的FHE协议。
目前,MPC已经应用于简单的计算任务,如分布式签名和更安全的钱包,但将MPC用于更广泛的计算的主要挑战在于通信开销(该开销随着计算复杂性和参与节点数量的增加而增加)。
有一些方法可以降低开销,例如提前和离线进行预处理(即协议中最耗费资源的部分)——这是 Arcium和 SodaLabs正在探索的方向。计算将在在线阶段执行,这个阶段会使用一些在离线阶段产生的数据。这显著降低了整体通信开销。
SodaLabs提供的下表展示了在他们的gcEVM中执行不同操作码1,000次所需的初步基准时间(以微秒为单位)。虽然这是朝着正确方向的进展,但仍需大量工作以提高效率并扩展参与节点的数量。
基于ZK的方法的优势在于,你只在需要对共享私有状态进行计算的场景中使用MPC。相比之下,FHE与MPC的竞争更加直接,并且在很大程度上依赖于硬件加速。
2. 受信任执行环境
最近,受信任执行环境(TEE)重新引起了关注,它可以单独使用(如基于TEE的私有区块链或协处理器),也可以与其他隐私增强技术(PET)结合使用,例如基于零知识证明的解决方案(仅在共享私有状态上使用TEE进行计算)。
虽然TEE在某些方面更加成熟,并且性能开销较低,但它们也有一些缺点。首先,TEE的信任假设不同(1/N),并提供基于硬件的解决方案,而非软件。一个常见的批评是关于SGX(软件保护扩展)过去的漏洞,但需要注意的是,TEE并不等于Intel SGX。TEE还需要信任硬件提供商,而硬件成本高(大多数人无法承受)。一种降低物理攻击风险的解决方案可能是 在太空中运行 TEE,以处理关键任务。
总体来看,TEE似乎更适合用于证明或仅需短期隐私的应用场景(如阈值解密、暗池订单等)。对于需要永久或长期隐私的情况,其安全保障似乎不够吸引人。
3. 私有DAC及其他依赖受信任第三方实现隐私的方法
中介隐私可以保护用户的隐私,但这种隐私保障完全依赖于对第三方的信任(存在单点故障)。虽然这种方式类似于“Web2隐私”(来自其他用户的隐私),但通过额外的保障(如加密或经济保障)可以增强隐私保护,并允许对正确执行的验证。
私有数据可用性委员会(DAC)就是一个例子;DAC的成员在链外存储数据,用户信任他们能够正确存储数据并执行状态转移更新。另一种形式是Tom Walpo提出的特许序列器 。
虽然这种方法在隐私保障上存在较大妥协,但在成本和性能方面,它可能是低价值、高性能应用的唯一可行替代方案(至少目前如此)。例如,Lens Protocol计划使用私有DAC来实现私有数据流。在链上社交等用例中,目前隐私与成本/性能之间的权衡似乎是合理的(考虑到替代方案的成本和开销)。
4. 隐匿地址
隐匿地址能够提供类似于为每笔交易创建新地址的隐私保障,但这一过程在后台自动化处理,用户无需干预。有关更多信息,请参阅Vitalik 概述或对不同方法的深入分析。该领域的主要参与者包括Umbra 和Fluidkey。
尽管隐匿地址提供了一种相对简单的解决方案,但其主要缺点在于它们只能为交易(如支付和转账)提供隐私保障,而无法支持通用计算。这使得它们与前面提到的其他三种解决方案有所区别。
此外,隐匿地址提供的隐私保障强度不如其他替代方案。通过简单的聚类分析,匿名性可能被破坏,尤其是在进出转账金额差异较大时(例如,收到$10,000,但日常交易平均支出仅为$10-100)。隐匿地址的另一个挑战是密钥升级,目前需要为每个钱包单独处理(密钥存储汇总可能有助于解决这个问题)。从用户体验的角度来看,隐匿地址协议还需要账户抽象或支付方来覆盖费用,特别是在账户没有费用代币(如ETH)的情况下。
论点的风险
由于技术发展的快速变化和对不同解决方案的普遍不确定性,我们关于MPC(多方计算)作为最终解决方案的论点面临多重风险。以下是我们可能不需要以某种形式采用MPC的主要原因:
共享私有状态的重要性可能被高估:在这种情况下,基于ZK(零知识证明)的基础设施可能更具竞争力,因为它提供了更强的隐私保障和较低的开销。例如,私有支付协议Payy就展示了基于ZK的系统在特定用例中的良好表现。
性能与隐私保障之间的权衡可能不划算:有人可能认为,拥有2-3个授权方的MPC网络的信任假设与单一集中式参与者并无显著差异,而显著增加的成本和开销并不值得。这在许多应用,尤其是低价值且对成本敏感的应用(如社交或游戏)中可能是正确的。然而,对于许多高价值的用例,合作往往因为法律问题或协调摩擦而变得昂贵或不可能,MPC和基于FHE的解决方案在这些场景中可能更具优势。
专业化可能胜过通用设计:建立新链并吸引用户和开发者社区是困难的,因此通用隐私基础设施(如L1/L2)可能难以获得关注。此外,单一协议设计很难覆盖所有权衡。在这种情况下,能够为现有生态系统提供隐私(例如作为服务的保密性)或专门用例(如支付)的解决方案可能会更具竞争力。然而,这也可能给需要自行实现加密的应用开发者带来复杂性。
监管持续阻碍隐私解决方案的实验:这对构建隐私基础设施和具有隐私保障的应用程序的人来说是一个风险。非金融用例面临的监管风险较小,但在无许可隐私基础设施上构建内容的控制几乎不可能。我们可能会在解决技术问题之前先解决监管问题。
对于大多数用例,MPC和基于FHE的方案的开销仍然过高:MPC主要受到通信开销的制约,而FHE团队则依赖硬件加速来提高性能。如果我们推测ZK领域专用硬件的发展,生产就绪的FHE硬件可能需要比大多数人预期更长的时间。正在开发FHE硬件加速的团队包括Optalysys, fhela, 和 Niobium。
总结
最终,一个链条的强度取决于它最薄弱的环节。在可编程隐私基础设施中,如果希望能够处理共享的私有状态而没有单点故障,信任保障最终依赖于多方计算(MPC)。
虽然这篇文章似乎对MPC持批评态度,但实际上并非如此。MPC相比于目前依赖集中式第三方的状况,带来了显著的改善。我们认为,主要问题在于行业内存在一种虚假的信心,很多问题被忽视。我们应该直面这些问题,并关注潜在风险的评估。
然而,并不是所有问题都必须用同样的工具来解决。虽然我们相信MPC是最终的解决方案,但只要MPC驱动的解决方案成本仍然较高,其他替代方案也是可行的。我们始终应该考虑哪种方法最适合我们要解决的问题的具体需求和特性,以及我们愿意做出的权衡。
即使你拥有世界上最好的锤子,也并非所有问题都是钉子。
附录 1:区块链保护隐私的不同方法
隐私增强技术(PETs)旨在改善数据的存储、计算和通信等多个方面。它们是用来保护数据的技术解决方案。
区块链行业有许多相关的PET,其中最重要的包括ZKP(零知识证明)、MPC(多方计算)、FHE(全同态加密)和TEE(可信执行环境),以及隐秘地址等其他方法。
这些技术可以以不同的方式组合,以实现各种权衡和信任假设。此外,还有依赖可信第三方的解决方案,例如私有数据可用性委员会(DAC)。这些方案可以保护用户的隐私,但隐私保障完全依赖于对第三方的信任。这种方式类似于“Web2隐私”(用户之间的隐私),但可以通过额外的加密或经济保障来增强。
我们总共识别出了11种实现区块链网络隐私保障的方法。一些观察到的权衡包括:
可信隐私与信任最小化隐私(是否存在单点故障?)
硬件与软件的方法
隔离实例与多种PET的组合
L1与L2
新链与现有链的附加隐私(“作为服务的保密性”)
受保护集合的大小(多链 > 单链 > 应用 > 单一资产)
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!