本文探讨了构建完全安全的多方应用程序的挑战,以多方贸易信用清算(MTCS)为例,分析了多方计算(MPC)和全同态加密(FHE)等技术在安全性和活跃性之间的权衡。当前解决方案依赖于委托安全模型,但并不理想,作者认为,最终的解决方案是使用不可区分性混淆(iO)技术。
为什么我们(还)不能构建完全安全的多方应用
隐私和扩容探索
这篇文章由 PSE 研究员 Enrico Bottazzi 撰写。感谢 Pia Park 的讨论和审查。
在这篇文章中,我们将探讨为什么构建安全的多方应用程序在今天是不可能的。这些应用程序旨在计算来自不同方的输入上的函数,同时保持这些输入的私密性。我们将多方贸易信用清算(MTCS)作为一个例子,展示了由于安全性和活跃性之间的根本权衡,像多方计算和全同态加密这样的技术如何无法实现完全的安全性。目前的解决方案涉及一种委托安全模型,但这并不理想。是否有任何针对这个问题的强大补丁,或者我们是否必须等待不可区分性混淆?
多边贸易信用清算(MTCS)是由服务提供商运行的一个流程,它从公司网络收集贸易信用数据(即公司向另一家公司支付的义务),并检测可以从系统中移除的债务周期。这个过程为参与者节省了流动性,他们可以免于依赖昂贵的贷款来偿还债务。
MTCS 前后贸易信用网络
我们提出了一个 MTCS 协议,该协议保护公司敏感数据,例如义务金额或与其进行交易的公司的身份。结果发表在 Enrico Bottazzi、Chan Nam Ngo 和 Masato Tsutsumi 合著的论文 通过图匿名化和网络单纯形在 MPC 中进行多边贸易信用清算, 中。
尽管你可能这么认为,但我不是来庆祝我们的成果的。有兴趣了解我们如何降低安全最小成本流算法的渐近轮复杂度的好奇读者,我们热烈欢迎他们查阅论文。相反,我想把这个特定应用程序的特性抽象到任何安全的多方应用程序中,并分析诸如全同态加密(FHE)或安全多方计算(MPC)之类的技术,如何在安全性和活跃性之间的内在权衡下产生一个不完善的安全模型。
但是,并非所有的希望都破灭了:在我们达到 不可区分性混淆之前,我们提出了一些临时的补丁,它将一劳永逸地打破这种权衡,并允许我们构建完全安全的多方应用程序。
安全的多方应用程序是一种应用程序,其中必须计算来自不同方的输入上的函数,并且此输入应保持私有:每个参与方不应了解超出可以从其输入和函数输出中推断出的任何内容。请注意,此定义独立于用于构建此类应用的技术。
在现实世界中,这些应用程序通常是利用第三方来执行该函数,并且信任该第三方自己保留数据,并且不对其进行任何恶意操作。MTCS 也是如此:斯洛文尼亚自 1991 年以来一直在全国范围内运行它。该过程每月运行一次,由国家公司将其发票提交给政府机构,该机构通过访问整个贸易信用图来进行结算。低的参与率(2022 年为 1500 家公司,占总数的 0.2%)表明,斯洛文尼亚公司可能会更愿意自己保留其敏感的贸易信用数据,而不参与该过程,尽管它带来了好处。在下面的章节中,我们将迭代地尝试构建这种安全的多方应用程序,它不依赖于单个可信的第三方。
通过可信第三方进行 MTCS
MPC 允许 $n$ 方计算其组合私有输入上的函数,而无需相互披露。在其最安全的形式中,每个输入都分成 $n$ 份,以便任何 $n-1$ 份的组合都不会泄露有关基础信息的任何信息。通过让各方在每次执行乘法运算时交换信息,可以“隐蔽地”执行各种函数。在最强的安全假设下,只要一个参与者是诚实的,就可以保证执行函数的隐私性和正确性。从公司的角度来看,这是理想的:只要我保护好我的份额,就不会有人了解任何信息。
但细节决定成败!在一个有 $n$ 个参与者的协议中,需要存在 $n * (n-1) / 2$ 个通信信道才能正确地执行计算,这使得该系统对于成千上万家公司的网络来说效率极低(因此不切实际)。更重要的是,这些信道需要在整个协议期间保持活跃,以保证其最终性。任何恶意行为者都可以决定在算法执行过程中退出,使得其他人无法恢复其输出。
当涉及到对加密数据执行计算时,全同态加密(FHE)是另一种可能的解决方案。FHE 的心智模型很简单:任何不受信任的服务器都可以在加密数据上执行 $f$,而无需了解有关基础数据的任何信息。虽然 MPC 在信息论上是安全的,但在 FHE 中,数据的隐私受到解决特定数学问题的难度的保证。通过在服务器的操作之上添加一个 zkSNARK,可以用额外的成本来实现对正确计算的进一步保证。
但有一个警告:FHE 仍然需要某人持有解密密钥。将解密密钥的所有权外包给单个参与方并不是一个好主意,因为该参与方将拥有对每个加密数据的上帝模式读取权限。更安全的方法是在 $n$ 家公司之间运行一个分布式密钥生成(DKG)仪式,使用生成的加密密钥加密所有数据,将 $f$ 的计算外包给服务器,并要求公司再次聚在一起解密每个输出并将其传递给指定的接收公司。解密部分必须通过 MPC 完成。
这使我们遇到了之前遇到的相同问题:一个疏忽(或恶意)的公司丢失了其解密密钥份额,足以使整个协议停止。
鉴于 $n$ 个协议参与者之间需要交互,一个完美的安全模型“不要信任任何人,只信任你自己”存在局限性。鉴于安全 MTCS 协议应支持数万家公司,因此对于实际实例化来说,这种安全级别的代价太高了。Sora 将其描述为安全性和活跃性之间的权衡。
其中 x 轴表示基于活跃性假设的成功概率。来源:https://speakerdeck.com/sorasuegami/ideal-obfuscation-io
实际上,我们在论文中提出的解决方案并未实现完美的安全模型。相反,我们依赖于客户端到服务器的 MPC 协议,其中安全性(以及安全性)的计算被委托给三台服务器。最强的安全假设可以保证,只要至少有一台服务器是诚实的,公司数据的隐私就是安全的。但是,公司无法做太多事情来阻止服务器管理员秘密会面并收集其份额以重建任何涉及的数据。更糟糕的是,没有直接的方法可以检测到这种恶意行为,并让服务器对任何不当行为负责。
通过 MPC 进行 MTCS
有一组补丁旨在部分提高这种“不完善”的安全多方应用程序的安全性。最容易实现的是依赖于社会动态,并选择彼此之间存在利益冲突的代表,从而使得它们之间的勾结不太可能发生。例如,在论文中,我们提出了一种委托安全模型,其中三个服务器管理员是国家商会、税务机关和支付处理商。
更高级的实现需要服务器将其计算包装在 TEE 内部,以增加额外的安全层:要组装其份额,服务器必须首先打破 TEE 安全性。一种更理论的方法涉及叛徒追踪系统,以增加对行为不端的服务器的责任追究。
安全多方应用程序的最终目标是不可区分性混淆(iO),它承诺能够打破安全性和活跃性之间的权衡,通过消除在解密/输出重构阶段的任何交互需求。特别是,FHE 方案的解密密钥可以作为可信设置仪式的输出嵌入到混淆程序中:只要有一个参与者是诚实的,就没有人可以恢复密钥。混淆程序被设计为将 FHE 密文作为输入,以及一个证明,证明可以根据预定义的应用程序逻辑来解密该密文。该程序将验证该证明,并在成功验证后,输出密文的解密结果。由于混淆程序是公开的,因此可以由任何人执行解密,而无需持有密钥的各方之间的任何交互。
虽然目前还没有实际的 iO 实现,但其对安全多方应用程序的潜在影响是深远的。在 PSE,我们正在组建一个新的团队,以探索基于最新出版物的新方法来构建实用的 iO。
如果你是一位有兴趣做出贡献的研究人员,请联系我!你也可以加入我们全新的 PSE 论坛 中的讨论 🙌
________________________________________________________________________________________________________
PSE 是以太坊基金会的一个团队, 为扩展可编程密码学世界的人们构建免费资源。 在 pse.dev 了解更多信息,加入我们的 Discord,或 在 X 上关注我们。
________________________________________________________________________________________________________
_封面图片来源_
- 原文链接: mirror.xyz/privacy-scali...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!