ZK、MPC等原语假设已经被实际测试、优化,被认为是安全有效的,已经进入实用范围。MPC可以解决“百万富翁问题”,FHE可以对加密数据进行计算,IO可以使两个函数或计算变得晦涩难懂。PSE和0xPARC等多个团队正在探索可编程加密技术,以提高隐私保护、安全保证、声明验证、加密工具的数量。
原文标题:Beyond Zero-Knowledge: What’s Next in Programmable Cryptography?
原文作者:kichong
原文来源:Mirror
编译:Lynn,火星财经
这篇文章由kichong撰写,并得到了sinu和jmall的有用反馈和评论。
MPC、FHE、iO。如果这些字母组合对您来说没有什么意义,那么您来对地方了。这篇文章试图在高层次上回顾零知识(ZK)边界之外的可编程密码学世界。
其目的是让人们认识到 ZK 只是不断变化的加密原语、技术和协议格局的一部分。剩下的东西比一般密码学好奇的人意识到的更强大、更私密、更令人困惑。
这篇文章不做出任何主张、结论或预测。这不是深入研究。充其量,这只是在寻求密码学圣杯时的非正式的表面浏览。
虽然加密技术已经存在了数千年,但可编程密码学是一项现代技术。被描述为“通用密码学……[或]一种用于声明的表达语言”,它的想法是,像 ZK 证明这样的密码原语可以变得足够灵活和适应性强,以便开发人员可以在其之上编写几乎任何功能。从某人点击网站上的按钮到保证加密操作安全性的数学证明,可能存在一条完整的逻辑链。
https://youtu.be/qAfprVCBhdQ?t=1024
传统密码学依赖于固定的功能集,这需要熟练的密码学家为每种新机制构建专门的系统,而可编程密码学可以让开发人员以更接近他们已经理解的语言部署密码属性和功能。它为非密码学专家的开发人员提供了更熟悉的界面。
ZK 证明最初是在 1989 年被构想出来的,但直到 2012 年发现一种称为zk-SNARK的 ZK 证明时,它仍然主要停留在理论上。这个新原语允许 ZK 证明证明或验证几乎任何函数或任意计算。
自从 zkSNARKS 成为可能以来,资源和人才纷纷涌入构建 zCash、zkRollups、zkEVM 以及许多其他以字母 z 开头的应用程序。事实证明,像以太坊这样的去中心化系统以及一般的区块链是让人们对密码学感兴趣的完美动机,将曾经不切实际的研究领域转变为具有实际最终用户应用程序的活跃生态系统。
无法保证多方计算 (MPC)、完全同态加密 (FHE)和不可区分混淆 (iO)会遵循与 ZK 相同的路径,随着时间的推移变得更加实用、优化和通用。但在这个早期阶段,这当然是可能的。
如果您将可编程密码学视为一种数字计算机,建立在允许某些属性和保证的某些假设之上,那么我们仍然处于硬件阶段。我们仍在积极寻找为这台新计算机构建逻辑门或电路的最佳方法。
为了更好地理解可编程密码学的总体情况,我们首先粗略地估计 MPC、FHE 和 IO 相对于 ZK 以及彼此之间的关系。在本节以及之后的所有部分中,我们将权衡细微差别、精确性和形式,以支持简单性和可访问性。
理解密码学的最简单方法是了解哪些信息被隐藏或保密。以及系统证明或揭示了什么。
您还可以将这些系统中的每一个视为假想的共同朋友的代表。维基百科称这位朋友为“托尼”。托尼永远不会犯错,清廉,而且完全值得信赖。托尼的工作是保守秘密。在下表中,将“私有元素”视为托尼可以信任保守的秘密,将“用例”视为托尼可以相当好地执行的任务,将“实用性”视为托尼今天可以如何熟练地执行这些任务。
上表旨在为可编程密码学的不同领域提供一个粗略的概念。现在,让我们更深入地回顾一下 MPC、FHE 和 iO 的用途以及每个领域的一些有趣的花絮。
多方计算(MPC)允许多方共同计算一些商定的函数,而不向其他参与者透露任何数据。使用 MPC,相同的计算适用于每个人的数据,但各方的输入都是保密的。中间值也将保密。最后仅显示输出。
与 ZK 不同,MPC 是协作的。它允许不同的各方在相同的计算上进行协作,每个人贡献自己的数据,以获得每个人都想要的共同结果。
我们可以在 AI 系统的背景下比较 ZK 和 MPC,以获得更多背景信息。ZK 擅长验证或验证来自真人或个人手机的数据。MPC 更适合训练 AI 系统,因为不同的个人、团体或组织可以与 AI 系统共享敏感数据,但相信这些数据不会泄露给其他任何人。
1982 年,安德鲁·姚 (Andrew Yao)提出了 MPC ,用于解决一个名为“百万富翁问题”的思想实验,即两个百万富翁想知道谁更富有,而不告诉对方自己有多少钱。解决方案是使用乱码电路,根据密码学概念的频繁解释者 Vitalik Buterin 的说法,这也是了解 MPC 的最基本方法之一。
【在了解乱码电路之前,需要先了解一下一般的算术电路是什么。如果您对电路概念不熟悉,这里有一个简单的解释。]
MPC 是一个多步骤的交互式过程,百万富翁#1(爱丽丝,乱码者)必须首先创建电路,输入她的净资产,然后将其转换为乱码或加密形式,然后再将其传递给百万富翁#2(鲍勃,评估者) )。当鲍勃接触到电路时,他的工作就是添加自己的净资产,然后评估或运行电路以确保其正确。最后,鲍勃解密了最终的输出,例如,得知爱丽丝更富有,但从未得知爱丽丝实际上更富有,而且他不应该做出假设。
百万富翁问题和乱码电路作为解决方案对于 MPC 的早期发展至关重要。但其应用受到限制。该问题的一个更复杂和细致的版本称为“社会主义百万富翁问题”,它检查两个百万富翁是否同样富有,而不是揭示哪一个有更多的钱。这种微妙的差异显着扩展了 MPC 功能,但需要更复杂的加密解决方案和技术,超出了本文的范围。
完全同态加密 (FHE) 允许对加密数据进行计算。它可以对加密数据执行某种功能,就像数据未加密一样。该函数的输出只能由拥有密钥的一方解密。如果我们将加密视为隐藏秘密的黑匣子,那么 FHE 可确保数据以及对该数据的计算保留在该黑匣子内。
尽管没有像 MPC 的百万富翁问题这样著名的思想实验,FHE 确实解决了一个基本的安全弱点:“在处理数据之前需要解密”。
https://www.zama.ai/post/the-revolution-of-fhe
在人工智能环境中,FHE 将对用户(密钥持有者)和人工智能系统之间的所有数据进行加密。用户与系统正常交互,但用户可以确信人工智能从未“了解”有关所提供数据的任何信息。整个交互将被加密。人工智能永远不会知道你输入或询问的内容、发送的图片或发送者,但仍然可以做出响应,就好像它确实知道这些信息一样。
如果成功,FHE 将成为最强大的隐私保护技术之一。谁知道呢?10 年后,我们甚至可能拥有 FHE-EVM。
与 MPC 和 ZK 相比,FHE 目前处于理论性较强或实用性较差的一端。直到 2009 年 Craig Gentry弄清楚如何处理噪音时,这项技术才被认为是可行的。
FHE 操作的计算量非常大,因为在加密过程中添加了“噪声”以增强安全性。FHE 中的噪声是在将明文(未加密数据)转换为密文(加密数据)之前添加到明文(未加密数据)中的一个小的随机值。每次操作都会增加噪音。虽然加法和减法运算导致的噪声增长可以忽略不计,但乘法的计算成本更高,这会导致显着的噪声增长。因此,随着程序复杂性的增加,噪声(容纳噪声所需的空间和处理噪声所需的计算资源)就会积累。
Gentry 的突破是一种称为引导的技术,该技术可以减少噪音并允许对 FHE 系统中的加密数据进行更多计算。Bootstrapping 获取密文并对其进行同态解密,这意味着降低加密数据的噪声水平,而不会实际泄露其内容。结果是预定义噪声低得多的密文,从而使我们能够进一步计算密文。一般来说,自举可以让我们避免随着计算复杂性的增加而需要更大的噪声增长空间。我们可以将空间限制为几个操作,并重复引导以计算任意大的计算,而不会影响原始数据。
根据 FHE 方案,引导可能需要几分钟或几毫秒。如果引导速度较慢,则可以通过一次将其应用于多个密文来分散计算成本。如果引导速度更快,通常需要权衡一次仅处理小块明文(通常是 8 位)以保持效率。
如果FHE将计算的所有元素变成黑匣子,那么iO将计算本身变成黑匣子。
不可区分性混淆(iO)被认为是理论可能性领域内最强大的密码系统。在一篇文章中,iO 被描述为“可以构建几乎所有其他加密协议的主工具”,并被密码学专家称为“皇冠上的宝石”和“统治它们的一个加密原语”。
Amit Sahai 是一位以向孩子们解释 ZK 证明而闻名的教授,也是设计一种基于有充分根据的假设构建 iO 的方法的研究人员之一,他表示,iO 的工作原理与以前的密码系统完全不同。IO 假设对手已经可以读懂你的想法(比喻你的计算机)。你的秘密已经众所周知,所以无法隐藏。你唯一能做的就是混淆对手已经看到的东西。
https://youtu.be/v2RR_c5hn1E
iO 的目的是让两个函数或计算同样晦涩难懂。如果你将两个计算变成彼此无法区分的形式,那么你就可以隐藏程序的工作原理。如果您无法区分两个程序之间的差异,则您不知道正在执行这两个程序中的哪一个,并且无法从任何一个程序中推断出任何信息,除了它们都执行相同的功能之外。这两个程序都采用相同的输入并产生相同的输出,但 iO 做到了这一点,所以没人能弄清楚它是如何实现的。
使用 iO,您可以隐藏每种类型函数的结构,包括几乎所有构成密码学的函数。换句话说,通过模糊几乎所有内容,您可以实现最通用的可编程密码学,可以在其上对其他原语进行编程。
从技术上讲,有一个比 iO 还要大的黑匣子。它的字面意思是黑盒混淆。但那仍然是不可能的。
直到 2013 年 Garg、Gentry、Halevi、Raykova、Sahai、Waters 提出多线性地图之前,没有人知道如何构建 iO 。计算机程序可以像拼图一样被分解,然后使用多线性映射来模糊。被遮蔽的部分可以被重新组装以实现与原始程序相同的功能,而无需透露其内部工作原理。
多线性映射是椭圆曲线密码学 (ECC )中使用的双线性映射或配对的推广。虽然双线性映射是BLS 签名等现有加密方案的基础,但它们对于 iO 来说不够复杂或表达不够。虽然多线性映射可以处理 iO,但这种新开发的代数结构很容易受到攻击并且不安全,因此依赖多线性映射通常不能令密码学家满意。场上再次陷入僵局。
然后,在 2020 年,Jain、Lin 和 Sahai 提出了一个解决方案,虽然不寻常且新颖,但对于密码学家来说足够简单,可以推理,并且该版本的 iO 可以构建在更多的基础上,而不是依赖于新开发的假设(如多线性映射)标准且有充分根据的假设已经研究了几十年,例如带错误学习(LWE)。有了这一最新突破,iO 再次变得可行。圣杯仍然触手可及。
每个密码系统都由不同的数学假设和密码技术组成。没有任何一项突破可以解决系统中的所有问题。相反,发现遵循一系列不可预测的小步骤和大飞跃,改变现有的假设和技术,进而带来更多的突破和发现。每一项有效的发现,都有更多的无效。
在 iO 的演讲中,Sahai 将这个领域描述为“未驯服的荒野”,甚至不清楚什么是不被理解的以及什么是需要解决的正确问题。
像PSE这样的团队主要致力于可编程密码学的实践或应用方面,专注于 ZK 和 MPC 等原语,其假设有充分的依据,这些假设已经过实际测试,相对优化,并被认为是安全有效的。虽然还有很多优化的地方,但 ZK 现在已经牢牢地进入了实用范围。但也有一段时间,ZK 被限制在未开化的荒野中。
为了最大限度地增加全世界可以使用的隐私保护、安全保证、声明验证、加密工具的数量,我们至少应该眯着一只眼睛盯着即将发生的事情,因为没有人可以预测什么10年后将实用化。
Sahai 的演讲引用了Steven Weinberg 2003 年《自然》杂志上一篇名为《四个黄金教训》的文章,该文章强调了解决当前不切实际问题的另一个原因。
“20 世纪 60 年代末,当我在麻省理工学院任教时,一名学生告诉我,他想研究广义相对论,而不是我正在研究的基本粒子物理领域,因为前者的原理众所周知。 ,而后者对他来说似乎是一团糟。让我震惊的是,他刚刚给出了一个完全充分的理由去做相反的事情……我的建议是去解决混乱的问题——这就是行动所在。”
包括PSE和0xPARC在内的多个团队正在探索可编程加密技术,它们是 2023 年 11 月 16 日至 17 日在土耳其伊斯坦布尔举行的为期2 天的可编程加密会议活动的联合组织者。
过来打个招呼吧!
或者在 Discord 上在线查找PSE。