全面解析零知识证明:消解扩容难题 重新定义「隐私安全」
作为互联网世界的最小单元,人们为了获得互联网带来的便利,在参与线上生活、工作、交易的过程中不得不出让自己的隐私数据:必须在网站上输入信用卡号码,必须向房屋中介提供自己的银行信用记录,必须向银行提供身份证信息。除了个人,公司和机构也必须一直相互披露敏感信息才能开展业务。分享信息并接受其不安全感似乎被公认为社会运转过程中的必要牺牲。
零知识证明(zero-knowledge proof,本文中我们将之简称为 ZKP)的提出正是为了解决这样的困境。ZKP 本质上是让人们可以在不泄漏任何自己隐私信息的情况下,进行自我身份、权益的认证。
ZKP 目前的最佳实践在区块链领域。可扩展性问题一直是以太坊面临的最大困境之一,以 ZKP 为基础的 zk Rollup 技术被包括 Vitalik 在内的加密领袖一致看好的扩容路线,zk Rollup 在基于继承以太坊安全性的前提下,创建了更加高吞吐量、低费用的二层网络(Layer2)。ZKP 也因此备受关注。
尽管目前 ZKP 在现阶段更多地和区块链联系在一起,但它的应用场景不止于此。ZKP 以其独有的隐私性、准确性及可验证性,还将带来云计算、金融、线上投票、机器学习等多个领域的应用和创新。
我们相信 ZKP 是一项对未来商业非常重要的技术理论。如同所有带来科技领域变革的每一项革命性技术一样,在带来颠覆性改变之前,这些新兴技术在其早期总是经历狂热的炒作与泡沫的破裂。我们必须对其抱有审慎而乐观的态度,通过对其原理的把握,从而更好地应对周期的嬗变。
零知识证明是一个复杂的密码学概念。我们希望以一种浅显易懂的方式进行行业科普,让更多人理解零知识证明,这也是「海外独角兽」一直以来致力于促进“认知平权”的努力之一。
以下为本文目录,建议结合要点进行针对性阅读。
01. 什么是零知识证明?
02. 零知识的历史
03. 对隐私的取舍
04. 零知识证明的分类
05. 零知识证明的风险
06. 零知识系统的应用
01.
什么是零知识证明?
数据无处不在。姓名、出生日期、电子邮件地址、信用卡号码、我们在过去五年中居住的地址……这些只是我们个人海量信息中的一小部分,这些个人数据每天都被发送给不同的企业、社交媒体网站、客户经理,有时候,我们的数据也会被不法分子窃取。
这种状态带来的风险不言而喻:身份盗用、电子邮件泄露、数据泄露和其他形式的欺诈每年给个人和企业造成数百亿美元的损失,比防御和预防方面的支出高出几个数量级。更不用说处理后果的麻烦了。
作为现代互联世界的参与者,数据的扩散及其脆弱性已成为参与商业活动公认的成本:我们必须互相信任,必须在网站上输入信用卡号码,必须向房东发送信用记录,必须向银行提供社会安全号码。不仅仅是个人,公司和机构必须一直相互披露敏感信息才能开展业务。分享信息并接受其不安全感是社会运转的必要牺牲。
但是,如果有一种方法可以在不分享这些数据的情况下,以相同级别的信任和确定性进行交互和交易呢?这是可能的,我们将这种技术称之为“零知识证明”,这种技术非常复杂,被密码学家称为“火星数学”(moon math)。
工作原理
这种技术可以让人在不透露任何具体细节的情况下,证明他掌握这些信息。这里有一种简单的方式解释它的工作原理:
我和一位色盲朋友共同面对着桌子上的球,一个球是红色、一个球是绿色,除了颜色外其他方面看起来都相同。当我告诉他,它们是两种不同的颜色时,他并不确定是否能相信我。最终我们决定通过玩游戏来确定这两个球的确是不同的颜色:
他首先将两个球藏在自己背后;
随后他拿出一个球给我看;
然后他将这个球放回身后,再拿出另外一个球给我看,然后问:“我换球了吗?”
如果我们重复这个游戏足够多次,且每次我都回答正确,那么我就能够向他证明这些球是两种不同的颜色。更重要的是,在这个过程中,我除了回答“换过”、或者“没换过”之外,并没有透露任何其他信息,尤其是没有再对球的颜色本身进行争论。
零知识证明的原始论文中对于零知识证明这样定义:除了所讨论命题的正确性之外,没有传达任何额外的信息。
三个属性
一个零知识证明必须同时具备三个不同的属性:
完备性(Completeness):如果声明是真实的,并且用户都正确地遵循了规则,那么验证者将被说服,不需要任何人为的帮助。
健全性(Soundness):该证明技术可以确保信息的真实和有效性。如果证明者的声明是假的,验证者在任何情况下都不会被说服。
零知识(Zero-knowledge):在任何情况下,验证者都不会知道更多的信息。
02.
零知识的历史
“零知识证明”并不是最近才出现的全新概念,它是在 1980 年代由 MIT 的研究人员 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 设计并提出的。
在当时,Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 的研究重心和交互式证明系统相关。交互式证明系统中涉及到两方面的角色:
信息的证明者(prover)
信息的验证者(verifier)
通常都会假设证明者(prover)是不可信的,而验证者(verifier)为可信。这样设计系统的目标是:
验证者(verifier)能够被一个不可信的证明者说服、从而相信一个真实的陈述
证明者不可能说服验证者(verifier)相信不真实的陈述
可以想象一个场景:酒吧门口排了长长的队,如果这些排队者想要进入酒吧就必须向保镖证明其本人已经成年。那么排队者就是自己年龄的证明者(prover),保镖是验证者(verifier),但保镖并不知道他是否可以信任排队的人。
互动证明系统在这个场景的应用是,保镖需要明确排队者的年龄是否大于 18 岁,而排队者也需要向保镖证明这一点,那么在身份证信息的支持下,保镖能够对排队者的年龄进行判定、并最终决定对方是否可以进入酒吧。
Goldwasser、Micali 和 Rackoff 在此基础上提出了一个问题:如果保镖不仅不信任排队的人,并且排队者也不信任保镖,因为个人的身份证信息是十分敏感的,他们并不想将该信息直接给到一位素不相识的保镖,这种情况该如何处理?他们三人针对这个问题的解决方案其实就是“零知识证明”,即排队者无需告诉保镖自己实际出生日期,仍旧可以说服对方自己已经成年,并顺利进入酒吧。
1980~1990 年代期间,零知识证明在学术界得到了进一步的研究,但实际应用很少。直到 21 世纪,研究人员和企业家才开始将该理论应用于实践。
最早对零知识证明应用之一是 2000 年中左右的网络密码安全。当用户使用密码登录网站时,背后的实际过程是,用户在登录网站时需要输入自己密码,这些密码被发送到到网站的服务器,服务器再将密码压缩成一串 gobbledygook 字符串,系统再比较这个字符串是否和之前存储在系统中的 gobbledygook(一种经过加密的乱码) 字符串是否匹配。如果两个值相同,用户就能够成功登陆。
gobbledygook 的使用是为了对用户的原始密码进行保护:一旦有黑客获得系统中的 gobbledygook 字符串,也无法通过这串字符推导出真实密码,也就是说,用户密码并没有被明文存储。但是,这里仍有一个问题:即用户在登陆网站、输入明文密码,以及这些密码发送至服务器被转化成字符串之前的环节中仍旧存在密码泄漏的风险。
到了 2000 年代,使用零知识证明解决这种漏洞的协议被提出,出现了首批将 ZKP 应用于真实世界中的案例,尤其集中在身份验证方向的探索。但零知识的真正拐点发生在几年后。
在 2013~2014 年,零知识证明在另一个系统中找到了商业应用:加密货币。通常人们都认为加密货币是完全匿名的、具有强隐私性,也因此很多非法交易都选择通过加密货米进行。但实际上,这种匿名是相对的,从绝对性上,比特币和大多数其他加密货币的核心特征是,这些加密资产的流动都会被记录在区块链上、并被公开,非常容易被警方审查。
著名暗网“Silk Road(丝绸之路)”的破灭,以及 FBI 对 Colonial Pipeline 勒索软件的打击,足以证明比特币实际上是完全透明的,就像传统银行转账那样,所有资产的流动就会被记录,只不过传统银行采用的是中心化账本,交易记录并不对公众开放。而加密货币则是在去中心化的区块链上,每一笔交易都会向全网广播。
注:
2021 年 5 月 7 日,美国最大的燃油管道商 Colonial Pipeline 遭到勒索软件攻击,攻击者窃取了 Colonial Pipeline 100 GB 的数据,导致该公司暂停了所有的管道作业网络,并于晚间关闭一条主要的燃料传输管道。Colonial Pipeline 按照黑客要求以加密货币的方式支付了 75 比特币(440 万美元)的赎金后才得以重新启动作业。随后,FBI 根据被记录在链上的资产转移记录获取了勒索交易的证据、锁定了攻击者的身份,并对其进行制裁。
基于对比特币透明性的改进,出现了一种具备强隐私性的“匿名币”。
Zcash 是最早的“匿名币”。2013 年,约翰·霍普金斯大学的 Matthew Green、Ian Miers 和 Christina Garman 提出了使用零知识系统创建的 Zerocoin(一种隐私加密货币)。在此基础之上,该团队招募了 7 位创始科学家进一步完善该协议,创建了 Zcash。零知识证明使运行 Zcash 协议的计算机网络能够验证每笔交易是否有效(即,我的确拥有我发送给您的 10 个 Zcash),在保持了比特币一样的去中心化特性的同时,引入了更接近实物现金的隐私保护,可以说几乎完全不可追溯。
Zcash 和其他以隐私为导向的加密货币曾吸引过大量的注意力和金钱。在 2021 年的牛市中,Zcash 最高市值曾一度接近 40 亿美元。市场的高度关注、大量资金的涌入,都促进零知识在实践应用方面的飞速进展,并取得了一系列突破。
然而也因为这种隐私性,“隐私币”频频遭到各国监管的围追堵截:受 FATF 规则影响,2019 年时 Coinbase UK 下架了 Zcash,OKEx 韩国则下架了 Monero、Dash、Zcash、ZCache、Horizon 和 SuperBitcoin 等 6 种隐私货币。
注:
FATF,Financial Action Task Force,反洗钱金融行动工作组织,于 1989 年 7 月在法国成立,为世界上最重要的打击洗钱国际组织之一。
但隐私交易的需求是真实存在的,尤其是随着 DeFi 应用的爆发,这一需求愈发旺盛。
如何在链上交易中保护自己的交易策略不被他人知道,是交易员们最关心的议题之一,因为一旦自己的交易策略被他人追踪或模仿,将直接影响他们能否从市场上获得 alpha 收益。如果在中心化交易所做交易,则有被中心化交易所操纵的风险,但传统的去中心化交易所更是完全透明的,他们的交易策略可以被任何人查询、追踪。
零知识证明支撑的去中心化交易所则很好地满足了他们的需求,兼顾了去中心化和对隐私性的诉求。既没有中心化机构的操控,又无须暴露自己的交易记录和交易策略,较为有名的案例有 DeversiFi,它采用零知识技术提供商 StarkWare 的 StarkEx 服务,构建了具有高度隐私性的去中心化交易所。
因此,从近期行业最受关注的隐私项目来看,相比起隐私加密货币,在主流区块链上纳入隐私保护功能将会成为更为长期的趋势。新一代高效的零知识证明已经开发出来,解决了以前系统的笨重、繁琐、昂贵和有争议的设置等许多问题。这些系统的速度和可扩展性在不断优化中取得了巨大进步。一个新的和更大的建设者社区已经出现,零知识系统起飞的时刻终于来临。
03.
对隐私的取舍
人们对个人隐私的态度有两类:
放弃隐私,并假设他们所有的数据都可供真正想要的人使用
极度关心自己隐私
我们大多数人都属于第一个阵营。虽然没有人会承认自己愿意将隐私信息暴露给黑客,例如人们都保持着定期更新密码的习惯,但当每个人都有大量信息被存储到线上时,维护隐私的工作量就不只是更新密码那么简单了,有时候维护个人信息需要付出的成本会远高于人们的可承受范围。
换句话说,大多数人会愿意为了方便而牺牲隐私。
而零知识证明则有可能消除这种不必要的权益让渡和取舍,并转变人们关于隐私的思考范式。人们在面对涉及自己隐私的情况下会提出:“谁,在哪种情况下,需要多少信息?”这样的问题,而不再是一个非黑即白的决定。
在 ZKP 的帮助下,验证者(verifier)只需要了解自己想知道的关于证明者(prover)的事,而不需要知道对方所有信息,也不需要在服务器上存储所有数据,就能够完成验证工作。
ZKP 并不是以更少摩擦提供更多隐私的唯一潜在解决方案。也有其他的初创公司在尝试给出解决方案以保护更多的隐私,而不需要消费者的行为与体验发生太大改变。
Stytch 和 Magic 等公司通过为开发者提供工具包,将无密码身份认证潜入到产品中,以更安全的方式轻松验证用户身份,从而消除了过往需要用户输入密码才能登陆的需求,例如电子邮件认证、Google Authenticator 验证器、WhatsApp 链接等,而无需担心密码被盗。
Evervault 则为开发者构建加密基础设施,确保用户输入的任何数据当场自动加密,永远不会在公司的数据库中以未加密的形式存在。Evervault 完美地代表了新一代隐私技术的精神:
隐私是一项基本的期望和人权,但绝不应该造成任何摩擦或减慢技术进步的速度。
换句话说,人们不需要像过去那样必须在隐私问题上必须取舍。
零知识证明也在做这样的事情,但采用了不同的路径。
04.
零知识证明的分类
根据证明者(Prover)和验证者(Verifier)之间的交互方式和形态,零知识证明可被分为交互式零知识证明和非交互式零知识证明。
交互式零知识证明(Interactive zero-knowledge proofs):证明者和验证者需要进行多次互动,验证者会不断提出问题来挑战证明者,证明者则要不断回应这些挑战,直到验证者被说服。
但交互式零知识证明有两个明显的问题:
可移植性受限:交互式证明只对原始的验证者(verifier)有效,其他的验证者都不能信任这个证明。因此,一旦验证者发生变化,即便是相同的证明,证明者仍需要重复之前的整个过程;
不可扩展:交互式 ZKP 要求证明者和验证者同时在线,这使得整个过程无法扩展。
这就是为什么交互式零知识证明区块链对少数参与者而不是大群体更有效。为了解决交互式零知识证明面临的问题,非交互式零知识证明应运而生。
非交互式零知识证明(Non-interactive zero-kowledge proofs):证明者只需要在第一次向验证者发送一个证明,验证者可以随时对该证明信息进行验证,并且只需要验证一次就能够判定是否选择相信证明者。这种证明方式比交互式证明需要更多的算力来完成。
在交互式证明系统中,“证明者”和“验证者”必须同时在线,才能成功执行操作,这使得整个过程无法扩展。1986 年,Fiat 和 Shamir 发明了 Fiat-Shamir 启发式,将交互式零知识证明改为非交互式零知识证明。在这里,验证者被一个哈希函数替换,由于该哈希函数产生的数列具有随机性,证明者无法提前预知,那么只要证明者提供的哈希值是正确的,则通过证明。
非交互式证明的优势主要有:
可扩展:它不需要证明者或验证者一直在线
可移植:证明者一旦给出证明,就可以将其公开,面对不同的验证者不需要重复做证明
如果说交互式零知识证明像打电话,必须同步沟通,非交互式零知识证明则类似于一种特殊的留言系统,可以异步沟通,并证明其正确性。可以说,非交互式零知识证明是在不增加资源和成本的情况下向很多人证明你的声明的最佳方式。
目前非交互式零知识证明广泛应用于以太坊扩容领域,其中 StarkWare、zkSync、Polygon 旗下的 Hermez 等项目均采用基于非交互式的零知识证明技术。
05.
零知识证明的风险
零知识证明虽然功能强大,并且在不断迭代中,但也存在以下不足:
并非 100% 保证信息真实:即使证明者在说谎时通过证明的概率非常低,ZKP 也不能保证声明 100%有效。验证人说谎的概率在每一次迭代中都会减少,但它永远不可能达到零。因此,零知识证明并不是数学意义上的、严格遵循数理逻辑的证明,它是概率性的,而非确定性的。
计算强度:使用的算法计算强度大,因为它们需要证明者和验证者之间进行许多互动(在交互式ZKP 中),或者需要大量的计算能力(在非交互式 ZKP 中)。这使得 ZKP 不适合于低性能设备或移动设备。
06.
零知识系统的应用
我们从一个简单的例子开始,论述 ZKP 为何有价值以及它们如何工作,然后再转向一些更复杂的案例。
一个简单的例子:租公寓
有一对夫妻想要租一间公寓,按照要求房产经纪人要对租客进行信用检查,需要租客提供银行账单、收入证明以及社保号码等信息。
但因为租客才刚刚认识房屋中介 ,并不认为对方会妥善会保护自己的隐私。自然不想让房屋中介和其团队看到自己详细的财务状况,尤其是租客也无法确定房屋中介的信息系统是否足够安全,从而确保黑客不会获取这些数据。
这个时候就可以引入零知识的思想来解决上述问题。
假设公寓每月的租金为 1000 美元,根据中介要求,当租客需要证明自己的收入至少是月租金的40 倍才有资格租住这套公寓。以下是租客接受测试的方式:
中介设置了 10 个信箱,分别标记了从 1 万美元到 10 万美元的 10 个整数,每个信箱上都有一个钥匙和一个插槽。中介将这 10 个信箱放进房间的同时,毁掉了其中 9 个信箱的钥匙,然后只拿走了标有 4 万美元信箱的钥匙。
中介离开房间后,租客带着 10 张纸走进了房间,并根据每个信箱的数字是多于还是少于自己的实际资产,在纸上分别标记“+”或“-”,并将纸条放置在对应的信箱中。假设租客的年收入为 7.5 万美元,所以他们在整个过程中在“+”的单据放在前面 7 个信息中,将“-”放入最后三个信箱里。
租客离开房间后, 中介回到房间,并用手中的钥匙打开了 4 万美元对应的信箱,在箱子里找到一张标记有 “+” 的纸条,中介因此能够确认租客的收入符合标准、有资格租到这套公寓,与此同时,他并不知道对方的实际经济能力。
更复杂的例子
区块链隐私
在加密货币的世界中,上述互动方式已经成为可能。今天有一些项目致力于使用 ZKP 来证明交易者的信用评分。还有一些项目正在为面向 ZKP 的资产和交易建立新的、通用的平台。还有一些人仍然专注于将基于 ZKP 的隐私带到以太坊。以太坊创始人 Vitalik 认为:“零知识证明是最强大的隐私解决方案,尽管技术实现难度最高,但在保护以太坊网络的隐私性和安全性上,效果最佳。”
比特币和以太坊等公共区块链的透明度使交易能够公开验证。然而,它也意味着几乎没有隐私。零知识证明可以为公共区块链带来更多隐私,例如,加密货币 Zcash 是 zk-SNARKs 的第一个项目实践,这是一种非交互式零知识证明形式,可以为数字货币提供最强的隐私性。
这些创新有望向那些一直以来在加密世界之外的用户开放加密货币及其应用程序。今天,企业并不会使用稳定币来运行国际工资单,尽管它们比电汇更有效率;在去中心化金融协议利润丰厚且收益高的市场中,许多金融机构也不会来寻求 alpha 收益。造成这种情况的一个关键原因是,像这样的公司不能在互联网上四处散布他们的财务信息和交易历史,他们不得不担心数据隐私。
那么为什么这些企业不使用 Zcash 之类的产品呢?或者面向隐私的稳定币?因为,这些企业除了担心数据安全之外,还要担心合规性。他们不能使用一直处于隐私范围的东西,因为他们没有审计报告来证明他们正在向已知的交易对手付款,而不是受制裁的行为者或恐怖组织。
如今正在开发的 ZKP 最酷的地方在于,它们不仅具备隐私功能,而且还支持信息的选择性披露。因此,你现在可以想象一个稳定币产品,它可以同时满足公司的数据和合规性需求:发行人可以拥有完整的审计追踪并能够验证资产持有人的合规身份,但在其他大多数人看来,他们在匿名账户之间完全私密地转移资金。
区块链扩容
除了隐私和选择性披露问题的应用,零知识证明系统也被用于区块链扩容。
区块链扩容的一个主要问题是,随着时间的推移,区块链存储的数据量变得巨大。区块链是一种可公开验证的账本,记录了加密货币所发生的一切。因此,如果你想验证账本,必须将计算机同步到整个账本,一直追溯第一笔交易。对于许多普通用户而言,实际执行此操作的内存和带宽要求高得令人望而却步。
区块链利用 ZKP 来解决这个问题。整个交易历史可以压缩到一个单一的证明,只需要验证证明,而不需要验证整个账本。该证明的尺寸不会超过几条推文,任何人的硬件设备都可以完成。
ZKP 也是用来扩容以太坊的重要工具。
区块链扩容技术提供商 StarkWare 团队的 co-founder Eli Ben Sasson 曾任以色列理工学院的资深教授,也曾是 Zcash 的创始科学家。他发明了基于 zk STARK(一种非交互式证明)的 zkRollup 技术,以解决以太坊的扩容问题,提高以太坊的吞吐量并降低了交易费用。zkRollups 减轻了必须直接存在于区块链账本上的内容的负担,用更便宜、更轻量级的数据证明取代了以前需要上链的所有数据。
虽然围绕 ZKP 的许多创新都是在加密货币领域开创的,并且用于这项创新的大部分资金都来自于此,但其影响和应用范围更广。
非区块链应用
云计算:零知识证明(不涉及加密货币)可以使云基础基础设施变得更加安全。用户可以享受云计算服务,而无需将敏感的消费者数据暴露给云提供商。许多金融服务、政府等机构尤其厌恶数据安全风险,因而这些行业在采用托管云基础设施方面一直是出了名的落后者,以至于无法获得更低的成本和更便捷的用户体验。如果零知识的应用可以使这些行业开始与云提供商合作,而无需信任这些提供商,将会带来一场巨大的变革。
金融:2017 年客户遍及 40 多个国家的 ING 银行(International Nederlanden Group,亦名荷兰国际集团),通过 ZKP 的方式来让客户证明他们某一项指标满足要求。例如,抵押贷款申请人可以证明其收入在满足要求标准的范围区间,而无需透露其确切的工资。一年后,ING 又将该隐私解决方案推进一步,不仅可以验证数字,还可以验证其他类型的信息,例如,银行可以验证一个新客户是否居住在欧盟国家,而客户无需透露自己具体居住的国家。
线上投票:线上投票必须满足一系列要求,才能实现与传统纸质投票相同或更高等级的安全性。这些要求主要来自于四个方面:(投票人经过)身份认证、诚实性、隐私性和可验证性。ZKP 允许选民匿名投票,以这种方式可以证明该过程是正确的,验证他们的投票是否包含在最终计票中,并确保在计票过程中没有产生对选票的操纵。
机器学习:在训练一个机器学习模型的过程中,除了提供大量的数据,还要回答“我的模型输出的结果是可信的吗?”这一问题。最简单的方法是记录整个计算过程、并进行“倒算推演”的反向验证。虽然理论上可行,但实际中这类验证过程不仅工作量庞大,还会使得这个模型在使用中的可迁移性减弱,因为一旦涉及到新的数据输入都必须进行一次这个流程,并不利于机器学习的大规模普及和应用,并且也存在数据可数据和算法模型泄漏的风险。得克萨斯州立大学的张玉鹏博士在去年的一篇论文中指出,零知识证明也可以被引入到机器学习模型的训练过程中,可以在保护数据库数据和算法模型的基础上来更快地验证某次输出的结果是否准确、可信。
核裁军:2016 年在美国能源部(DOE)普林斯顿等离子体物理实验室(PPPL)进行了第一次物理零知识证明的实验演示,该实验允许核查人员确认一个物体是否是核武器,而无需记录、分享或披露内部机密工作。
......
这些只是无数可能性中的几个例子。零知识证明前景可期,但有时候短期内可能现实远远不及预期,毕竟有严峻的技术、经济和社会挑战需要解决,任重而道远。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场