零知识证明:身份隐私中的ZK_区块链:ZKP

在区块链世界中,身份可以以多种方式表现出来。真实世界的实体(如人或组织)可以在一个或多个区块链上采用不同的形式,区块链上的一个身份可以代表几个真实世界的实体。这样的身份可以通过拥有私钥、拥有特殊类型的NFT、参与某种类型的 DeFi 等进行建立。

图1:数字身份演示

这种通用且灵活的身份概念可以实现前所未有的用例和体验——但我们也同时需要注意隐私。一个人的身份可能是以一种特定的方式相互关联的多种事物,但只有其中的某一部分可能在一个环境中才是最重要的。例如,一场只允许BAYC NFT持有者参加的音乐会的组织者并不真正关心你拥有哪一个NFT,只要你至少拥有其中一个就可以。参加DeFi会议可能要求去年你在某个DeFi交易所借出了5万个代币,但不确切说明借出了多少、参与了多长时间等。

Polygon Zero宣布其零知识验证系统Plonky2已开源:8月17日消息,Polygon 旗下零知识技术开发商 Polygon Zero(原 Mir)在其社交平台宣布其零知识验证系统 Plonky2 已开源。

此前报道,1 月 11 日,Polygon Zero 宣布推出递归 SNARK 解决方案 Plonky2,并可与以太坊兼容。官方介绍,使用 Plonky2,用户可以在笔记本电脑上仅 0.17 秒内生成递归零知识证明,比目前的速度快了近 100 倍。[2022/8/17 12:30:17]

零知识(ZK)证明可以真正实现这样的用例,同时为相关实体提供数学上可证明的隐私。为了进一步阐述这一点,让我们回到前一段的两个例子。对于第一个例子,ZK证明将表明一个想要参加音乐会的人P知道一个地址A的密钥,该地址属于BAYC NFT持有者的10,000个地址集。进一步分解:

两位数学家因对零知识证明的研究获得数学界大奖阿贝尔奖:据DeepTech深科技消息,近日,备受瞩目的数学界大奖阿贝尔奖公布两名获奖者,一位是匈牙利数学家拉兹洛?洛瓦兹(László Lovász),一位是以色列计算机科学家阿维?威格森(Avi Wigderson)。两位数学家因为对零知识证明的研究,而获此殊荣。曾经让纯数学家看不起的零知识证明,却获得了数学界举足轻重的阿贝尔奖。正如颁奖词所说:“表彰其在理论计算机科学和离散数学方面做出的杰出贡献,以及在将之塑造为现代数学中心领域中发挥的主导作用。”零知识证明比起其他复杂算法更为简单,但这两位数学家对于零知识证明的研究,不仅对现代数学核心计算有重大贡献,还有巨大的现实意义:其一,零知识证明对数字货币的认证意义重大;其二,零知识证明还可以用于人的身份验证,即在不透露密码的前提下,验证方通过一系列问题来让对方提供 “我知道正确密码”,或在信息安全领域,提供 “我就是本人” 的证明。[2021/5/2 21:16:57]

公共输入是在链中某一特定NFT的所有地址的集合S;;

StarkWare零知识证明验证程序ethSTARK已通过PeckShield安全审计:8月11日消息,区块链安全公司PeckShield官方宣布,StarkWare公司零知识证明验证程序ethSTARK已通过其全面安全审计服务。

ethSTARK是一个以太坊基金会支持的,由StarkWare公司开发的零知识证明(ZKP,Zero Knowledge Proof) 验证程序,它实现了比现有ZKP算法更快的验证速度,进一步提升了StarkWare在零知识证明领域的技术影响力。[2020/8/11]

私人输入P为密钥sk1;

我们想在ZK中证明的是,从sk派生的地址在集合S中。

在零知识学术文献中,这种证明通常被称为成员证明。有几种方法可以生成这样的证明。如果集合不是太大,可以使用RSA累加器。

声音 | 数字资产研究院郭宇:区块链的信任需要结合共识算法、零知识证明和形式化验证:12月22日,数字资产与区块链年会(2019)暨中国投资协会数字资产研究中心成立大会在京举办。数字资产研究院学术与技术委员郭宇演讲中表示,区块链网络的吞吐率低下的核心原因是网络宽带限制,提高出块速度是此前比较流行的解决方案,但这种做法会导致区块链分叉,甚至可能威胁区块链系统安全。郭宇认为,要在不降低安全性的前提下,提高区块链吞吐率的解决方案是零知识证明。郭宇指出,区块链系统的可信实际上包括三方面:共识算法提供区块链协议信任,零知识证明提供数据信息和计算完整性,形式化验证保证计算逻辑可信。区块链的信任需要共识算法、零知识证明和形式化验证三者的结合。(新浪财经)[2019/12/23]

使用RSA累加器,集合S可以用一个短值表示——成员证明也很短。在S中添加或删除地址的代价也很低,与累计值的数量无关。然而,在最坏的情况下,累积集合S和产生证明所花费的时间可能与S的大小成线性关系(实际的时间范围取决于设置的具体情况,甚至可能是恒定时间)。这里还有另一个问题:我们不仅想证明某个地址A在集合中,而且还想证明A是从sk派生出来的。我们可以为前者设计自定义 ZK 协议(例如,离散对数知识) ,但通用的ZK系统通常最适合后者。另一个问题是以一种有效的方式将三个组件粘合在一起(成员关系、离散日志和哈希的原像)。

动态 | 德勤在企业区块链产品中添加零知识证明隐私技术:德勤(Deloitte)周二在阿姆斯特丹举行的ZKProof社区活动上宣布,已在其企业区块链产品中增加了零知识证明隐私技术。德勤与以色列的零知识证明专家QEDIT合作,帮助用户控制区块链共享有关他们所获得的证书和资格的数据。(coindesk)[2019/10/29]

上面提到的第二个用例比第一个要复杂一些。有兴趣参加DeFI会议的人需要表明他们向区块链发送了交易tx(如以太坊),该区块链在DeFI合约中调用了借贷功能,比如 DF。他们还需要表明,tx转了至少5万个代币,并且它被添加到对应于 2021 年开始和结束的两个区块之间的区块链中。现在,根据区块链,一年内可能会生成数十万区块。每个区块包含的所有交易的哈希(通常称为交易哈希)。ZKP 可以用来表明 tx 被“包含”在某个区块 B 的交易哈希中——而不显示 tx 本身——但这会揭示比预期的还要多的信息。在极端情况下,如果 B 只包含合约 DF 的一笔交易,那么 ZKP 是没有意义的。理想情况下,我们希望证明 tx 包含在2021 年的其中一个区块的交易哈希中。

生成一个包含2021年以来所有区块(或至少有一些DF交易的区块)的Merkle树,并证明包含tx的区块只是Merkle树的叶子之一,这将是一个更具可扩展性的方法。对于这个问题:

公共输入是 2021 年以来所有区块集合的Merkle 根(或至少是它们的正确子集),和合约DF的代码(通过链上的合约地址引用);

私人输入是用于签署 tx的密钥 sk,tx本身,包含tx的区块B,以及B在Merkle树中的路径;

我们想要证明的是:sk 用于签署 tx,tx 包含在 B 中,B 是 Merkle 树的一部分,tx 调用 DF 中的适当函数,并且 tx 转了至少5万个代币(其他tx 的参数应保持隐藏状态)。

我们只是触及了可以在不同用例中进行的大量身份验证的皮毛,ZK语句已经开始显示出一些复杂性。事实上,一旦我们开始更具体地思考,它们会变得更加复杂(诚然,上面关于DeFi会议参与问题的语句相当简单)。其中的复杂性包括:

DF不是直接调用的,而是通过另一个合约或一系列合约进行调用的;

tx包含在区块链中,但对DF的状态没有预期的效果;

会议关心的是以今天的利率借出的实际美元数量,而不是代币。

不过我们不必太担心。ZKP的美妙之处在于,几乎任何你能想到的语句都可以在零知识中被证明(确切地说,任何可以在多项式时间内被验证的关系也可以在零知识中被证明)。虽然 ZKP 的非交互式版本最适合解决 L1 上的机密性、隐私、状态增长、完整性等问题,但交互式证明对于需要基于区块链的身份断言的许多应用程序可能很有意义。

图 2:ZKP 交互式版本示例

上述音乐会入场的例子可以用来说明这一点。对于NFT所有权的ZK成员证明,只需要一个确定的验证者,而不是典型的 L1 设置中的数百或数千个身份不明的验证者。证明者可以主动与验证者接触,并在会话过程中交换多条消息,从而摆脱了非交互式ZK证明固有的复杂性。事实上,证明不必很短,验证者的复杂度也不必很低,因此可以充分探索 ZK-SNARK(最流行的非交互式证明系统,也有简洁的证明)之外的 ZK 证明范围。我们将能够使用具有更好的证明复杂性、底层安全假设等的证明系统。

请参阅下表,了解不同证明系统的高级比较。当我们沿着表格往下看时,证明复杂度和安全性假设变得越来越好,而证明大小变得越来越差。虽然基于mpc的ZK证明系统提供了最好的证明复杂性,并且具备无需信任的设置,但证明是交互式的并且仅适用于特定的验证者(证明者与之交互的那个),所以当身份断言必须对链下的特定一方做出判断时,这可能就不是问题。(ZK证明系统的其他一些特征,如后量子安全性,在表中没有体现。)

表 1:不同证明系统的高级比较

总之,世界上的身份不一定是基于区块链的,也不一定是基于非区块链的。展望未来,它们当然可以是两者的结合——这将使保护隐私的身份断言变得更加有趣!

Source:https://medium.com/delendum/zk-in-identity-980493401d80

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-7:151ms