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