zCloak Network: 技术概述

zCloak Network 基于 Polkadot 网络提供零知识证明即服务。它启用了一种称为 Cloaking Space 的新计算范式,它为 Web 3.0 提供了一个私有且可扩展的计算环境。

zCloak Network 基于 Polkadot 网络提供零知识证明即服务。它启用了一种称为 Cloaking Space 的新计算范式,它为 Web 3.0 提供了一个私有且可扩展的计算环境。

背景:区块链状态

区块链本质上是一个复制的状态机。它从创世状态开始;它根据用户输入和一组规则更改其状态;然后它到达一个新的状态。控制状态如何变化的规则通常称为状态转换函数 (STF)。我们可以将这个过程写成如下:

STF(当前状态,输入数据)-> 新状态

请注意,STF 可以实现为链上逻辑(例如,用于代币转移)或用户定义的逻辑(在虚拟机上运行的智能合约)。

为了改变状态,人们将一些输入数据作为交易提交给区块链网络。该交易将由一组矿工 (PoW) 或验证者 (PoS) 进行验证,以确定其有效性。他们通过使用用户输入数据重新执行 STF 并相互比较结果来做到这一点。如果他们中的大多数人达成协议——即共识——链状态将被改变,交易将永久存储在区块链中。因此,任何新手都可以通过重新执行所有交易来独立生成区块链的当前状态。

重新执行的问题

几乎所有主要的公共区块链项目都广泛使用了重新执行的方法。这似乎是重新创建区块链世界状态和验证用户提交交易有效性的最直接方法。然而,这种方法有几个严重的缺点。

1)隐私。用户必须将其输入数据提交到公共网络,以便节点验证其交易的有效性。结果,输入数据和 STF 都向公众公开。如果我们要将区块链用于身份、医疗保健和金融等隐私敏感的应用程序,这是一个巨大的问题。必须有某种方法来使用这些私人数据,而无需将它们发送到区块链节点。

2)可扩展性。区块链网络的吞吐量通常以每秒交易数(TPS)来衡量。比特币的平均 TPS 为 5,以太坊为 15——远低于主流商业应用的要求。这部分是由于在每个节点中重新执行每个事务导致的计算开销。如果验证每笔交易所需的时间变短,网络的整体处理能力将大大提高。

3)计算限制。近年来,DeFi 应用在以太坊中蓬勃发展,这是有充分理由的——以太坊智能合约由于 gas 限制,最适合处理简单的逻辑/计算。如果一个人试图在智能合约中执行复杂的科学计算,gas 费将会爆炸式增长。更不用说在每个节点上重新执行这个计算了。这无疑限制了区块链中智能合约的功能。对于许多现实世界的用例和更复杂的计算,需要找到一种方法来规避这一限制。

4)状态爆炸。由于重新执行是恢复链状态的唯一方法,因此必须在所有节点上完整存储区块链的交易历史。对于像以太坊这样的慢速链,一个矿工节点已经需要数百 GB 的存储空间。对于像 Solana 这样的快速的,一年的交易历史需要几个 PB 的存储空间。渐渐地,小节点运行者将被迫退出网络,因为他们根本无法承担存储成本。因此,大玩家将控制网络,去中心化将因此受到伤害。因此,让人们在不增加硬件成本的情况下加入网络至关重要。

我们的解决方案:重新执行验证

上述问题均源于公有区块链使用的重执行模型。如果有一种方法可以在不重新执行的情况下验证计算的有效性(完整性)!

输入零知识证明 (ZKP)。

ZKP 是一种密码技术,具有两个有趣的特性——零知识和简洁性。一方面,您可以用它来证明您知道一个秘密,而无需透露有关该秘密的任何知识。另一方面,您可以验证一个大型而复杂的计算是否正确完成 – 也就是计算完整性 – 只需实际执行计算所需的一小部分努力。如果您查看我们在本文开头给出的函数,这意味着我们可以在不披露输入数据或计算过程的情况下证明 STF 执行的完整性。我们还可以在链下进行冗长而复杂的计算,只将简洁的证明留在链上供人们验证其完整性。这样,重新执行模型的问题就可以很容易地解决。

关于零知识证明

今天,ZKP 通常有两种风格——zk-SNARK 和 zk-STARK。本文不会深入探讨他们的技术细节,但StarkWare 已经给出了很好的总结。一般来说,众所周知,zk-STARK 比 zk-SNARK 具有以下优势。

1) 与 zk-SNARK 相比,zk-STARK 的证明生成和验证效率要高得多。

2) zk-STARK 使用诸如抗碰撞哈希之类的密码原语,而不是 zk-SNARK 中使用的离散对数和椭圆曲线。因此,众所周知,STARK 能够抵抗即将到来的量子计算机,而 SNARK 则不然。

3) zk-STARK 是透明的,因为它不需要大多数 zk-SNARK 所要求的可信设置。这对于去中心化和增强安全性来说是个好消息。

但是与 zk-SNARK 相比,zk-STARK 有一个缺点——STARK 证明的大小(20-200 KB,取决于计算的复杂性)通常大于 SNARK 证明(大约 1KB)。这使得将 STARK 证明直接存储在区块链上变得不太方便。但是在 zCloak Network 中,我们无论如何都不会将 STARK 证明存储在区块链上——在一篇关于 zCloak Network 架构的文章中对此进行了更多说明——所以这个限制对我们的项目没有影响。因此,我们留下了 zk-STARK 的所有优点。

通过使用 zk-STARK,我们可以生成用于执行 STF 的 ZKP。无需重新执行,第 3 方可以简单地执行证明验证来检查我们的 STF 计算的完整性。这种对重新执行的验证方法是高效且可扩展的。它还可以隐藏 STF 的输入数据,从而保护用户隐私。

有趣的是,这种方法不仅对解决公共区块链中的隐私和可扩展性问题有效,而且还为世界上从未见过的全新一代计算打开了大门。

隐藏空间:一种新的计算范式

在大数据和云计算时代,人们习惯了集中式的计算方式。您将您的个人数据(例如您的身份证、收入、健康记录甚至面部特征)发送到第 3 方服务器。这些第 3 方将使用您的数据运行一些计算,然后根据他们的计算结果为您提供一些服务。从社交媒体到金融服务提供商,这就是现状。

坏消息是,在此过程中,您的个人数据可能会在未经您同意甚至不知情的情况下被披露、滥用或出售。这以前发生过,而且每天都在发生。所以我们不禁要问:人们可以将他们的数据用于计算/分析/模型运行而不将它们发送给第三方吗?理想情况下,我们希望我们的数据在外人不可见的环境中存储和处理——比如在Cloaking Space中。

答案是肯定的,使用我们上面讨论的 ZKP 验证方法。在 Cloaking Space 中,您可以控制自己的数据,并且可以在不发送数据的情况下运行各种计算。请注意,存储在 Cloaking Space 中的数据不仅仅是您设备上的一些任意数据,而是由一些可靠的网络/组织证明以保证其真实性。计算类型的范围可以从区块链的常规 STF、银行贷款的收入检查到通过机场检查站检查您的面部特征。除了检查您的数据是否符合特定标准外,计算还检查您的数据证明的有效性。

请注意,在隐形空间中,我们的工作方向与大数据和云计算相反——我们启用了自我主权数据和隐形计算。底线是,您的数据永远不必再离开您。暴露给外界的所有信息是 1)您的计算结果和 2)证明您的计算完整性的 ZKP。

用户自主数据和隐蔽计算的隐蔽空间的想法是新颖且有用的,但实际实现并不那么简单。具体来说,需要考虑为通用计算生成 ZKP 的难度。ZKP 领域的一个众所周知的事实是,您需要为每个算法生成一个证明电路(对于 SNARK)或一个 AIR(代数中间表示,对于 STARK)。在我们的例子中,这意味着需要为用户希望执行的每一种计算类型编写 AIR。毫无疑问,这是一个耗时的过程,需要对 ZKP 理论和相关数学工具有专业程度的理解。如果只有一种方法可以为普通应用程序开发人员自动化此过程!

为了解决这个问题,我们在 zCloak Network 中采用了一个名为Distaff VM的 zk-STARK 虚拟机。虚拟机的好处是我们可以使用单个 AIR 来验证其完整的指令集,避免为用户希望执行的每个计算编写 AIR 的麻烦。在这方面,Distaff VM 类似于StarkWare 开发的Cairo VM 。对于在 Distaff VM 上执行的任何程序,都会生成一个 STARK 执行证明。然后,任何人都可以使用该证明来验证程序是否正确执行,而无需知道程序的输入甚至程序本身。因此,应用程序开发人员可以专注于他们的业务逻辑,而不用担心为他们的算法编写一个 STARK 证明。

zCloak 网络

zCloak 网络将为 Cloaking Space 构建必要的 ZKP 相关基础设施。主要组件包括钱包应用程序/扩展、基于底层的区块链和激励 ZKP 服务提供商网络。

1) zCloak 钱包。Cloaking Space 概念将作为移动应用程序和浏览器扩展来实现。用户将他们的个人数据作为自主数据存储在钱包中。各种应用程序的程序都可以导入到钱包中,并且可以使用钱包中的 Distaff VM 证明生成器执行隐藏计算。计算最终会得到一个结果和一个 ZKP,它可以安全地发送给外部各方以换取服务。

例如,您可以将银行的贷款程序导入您的钱包。您将您的个人数据输入程序,结果将与证明一起生成。您将此结果和证明发送回银行,然后他们会知道您是否有资格获得贷款以及您应该获得多少。在整个过程中,您的数据永远不会离开您,因此无需担心任何隐私泄露。请注意,接收端可以只是一个智能合约,而不是现实世界的银行。许多有趣的 DeFi 应用程序都可以通过这种方法解锁。为保证输入数据的真实性,我们会将用户数据存储为经过认证的凭证或直接从其他区块链聚合数据。我们一直与我们的生态系统合作伙伴密切合作,例如KILT Protocol在钱包应用程序中对自我主权数据的记录。

2) zCloak 区块链。zCloak 区块链是使用Substrate框架构建的。它可以轻松地与 Polkadot/Kusama 网络中的其他平行链进行互操作。zCloak 区块链的主要功能包括协调 ZKP 服务提供商的工作、结算 ZKP 服务费的支付、设置智能合约以响应用户计算结果、处理网络治理以及作为 Polkadot/Kusama 中其他平行链的端口或其他公有区块链,如以太坊、BSC 和 Solana 等。

最终,zCloak Network 将采用 ZKP 即服务(ZKPaaS)的商业模式。其他区块链中的应用程序可以使用 zCloak 网络中构建的 ZKP 基础设施为其用户提供隐私/可扩展性相关功能。这可以帮助现有的区块链项目创建大量新的用例。

3) ZKP 服务网络。将围绕 zCloak 区块链组织一个去中心化的服务网络,用于 ZKP 的存储和验证。

如上所述,与 SNARK 证明相比,STARK 证明的大小更大——直接存储在区块链上效率不高。由于 STARK 证明主要由散列组成,它只能用于验证计算的完整性,不会泄露任何有意义的用户信息。因此,用户可以将 STARK 证明存储在 IPFS 网络等公共去中心化存储中,并在 zCloak 区块链上使用其CID引用此证明。zCloak Network 将为用户 STARK 证明的存储提供基本的 IPFS 基础设施。此外,arweaveCrust等现有的公共 IPFS 服务也可以用于此目的。

实际上,STARK 证明的接收方可能没有配备必要的工具来独立验证 STARK 证明。在这种情况下,将激励一组 STARK 证明验证者节点为 zCloak 网络的用户提供证明验证服务。当用户试图向接收方证明某事时,证明验证者将从公共 IPFS 网络获取证明,检查用户证明的有效性并在 zCloak 区块链中标记他们的结果。接收方将能够根据其 CID 和验证者网络给出的标志来判断用户证明的有效性。将采用质押/削减机制,以确保验证者诚实、正确地进行验证工作。

总之,zCloak 网络将提供所有必要的构建块来实现 Cloaking Space 概念——构建一种由 zk-STARK VM for Web 3.0 提供支持的私有且可扩展的新型区块链。

英文原文链接:https://zcloaknetwork.medium.com/zcloak-network-a-technical-overview-254e59a8d1c2

所有文章未分类项目介绍

zCloak Network 与 Litentry 合作在 Web 3.0 中进行隐私保护

2022-8-25 18:13:58

所有文章未分类项目介绍

浏览器中的 ZKP?你说对了!

2022-8-25 18:39:38

搜索