zkPass 如何运作?3P-TLS + 混合 ZK 打造零知识预言机

zkPass 如何运作

zkPass 是预言机协议,使私有互联网数据能够在链上进行验证。zkPass 建立在由 3P-TLS 和混合 ZK 技术组成的 zkTLS 之上,提供工具和应用程式,用于安全、可验证的数据共享,并保证来自任何 HTTPS 网站的隐私和完整性,而无需 OAuth API。

zkPass 如何运作?整体架构与核心概念

zkPass 整体结构

zkPass 如何运作?理解其架构需要先认识三个核心角色:P(证明者/个人)、V(验证者/商业/zkPass 节点)、S(TLS 伺服器/数据源)。在传统的数据验证过程中,证明者将信息提交给验证者,验证器会撷取此数据,并与 DataSource 协作执行验证检查。这种模式存在三大问题:证明者面临泄露过多个人资讯的风险;数据源虽然可信但无法提供个性化验证服务;验证者掌握所有客户的私人数据,存在巨大的数据泄露潜在风险。

zkPass 提出了革命性的解决方案,将证明者定位在验证器和数据源之间。与传统方法不同,证明者使用他们的访问令牌直接从数据源中定位和检索数据,随后生成零知识证明(ZKP)供验证者检查。此过程确保验证者仍然不知道证明者的个人资讯。这种架构整合了 3P-TLS、MPC(多方计算)和混合 ZK(零知识)技术。

核心技术组件

3P-TLS:基于椭圆曲线 DH 协议的三方传输层安全性,结合 MPC 和 Oblivious Transfer(OT)防止作弊

混合 ZK:结合互动式 ZK(VOLE-ZK 23)和非互动式 ZK(SNARK/Circom)的双层证明系统

zkSBT:基于 ERC998 可组合 NFT 标准的灵魂绑定代币,储存主要声明和查询声明

3P-TLS 和 MPC:三方握手的技术突破

zkPass 3P-TLS 和 MPC

zkPass 如何运作的第一个关键在于 3P-TLS 协议。传输层安全性(TLS)是 HTTPS 的安全通讯协定,几乎所有资料来源都支援。zkPass 基于椭圆曲线 DH 协议构建了 3P-TLS 协议,并将其与 MPC 和 Oblivious Transfer 相结合,实现三方安全通信。

第一阶段:三方握手 P、V 和 S 共同产生会话金钥,P 和 V 各自获得这些密钥的份额。这是使用 Paillier 加密演算法实现的,该演算法提供加法同态。预主钥匙分为两部分,P 和 V 各获得一半,而 S 则保留完整的前主钥匙。为了防止客户端伪造虚假网站,客户端会要求服务端归还证书,确保对资料来源的信任。

第二阶段:金钥交换与 MPC P 和 V 进行 MPC 计算加密金钥(enc_key)和消息验证码金钥(mac_key)。关键设计在于 V 只拥有 mac_key 的一部分且没有 enc_key,这确保 V 无法访问用户的私人信息。相反,P 持有 mac_key 的一部分,可以访问特定身份信息但无法篡改,任何篡改都可以通过 mac_key 验证消息真实性来检测。

第三阶段:标准 TLS 与 ZKP 准备 应用程式资料遵循标准 TLS 通讯协定程序,P 和 V 交换金钥,为即将到来的涉及零知识证明的阶段做准备。zkPass 的 MPC 演算法在通讯时间、杂凑函数和记忆体操作方面进行了重大优化,效率提高了三倍以上。采用新的 AES128 证明方法,将区块数量减少了 300 倍,Garbler/Evaluator 执行时间提高了十倍。具体来说,zkPass 采用 Silent OT 进行 OT 操作,利用堆叠 GC 减小乱码电路的大小,大大缩短了整个 MPC 进程的运行时间。

混合 ZK:互动式与非互动式的完美结合

zkPass 混合 ZK

zkPass 如何运作的第二个关键在于混合零知识方法。zkPass 协议的最后一步涉及客户端生成零知识证明,区块链上的智能合约对其进行验证。这种混合方法结合了互动式和非互动式 ZK 协议的优势。

互动式零知识(IZK):VOLE-ZK 23 zkPass 利用基于 VOLE 的交互式 ZK 协议进行身份验证,确保资料来自精确的资料来源并保护其免受客户端篡改。VOLE-ZK 23 协议是一个「提交和证明」框架,证明者(P)和验证者(V)共同产生大量 VOLE 实例,每个实例都满足线性公式「m = k + w * delta」。P 将该公式的某些组成部分作为承诺,V 包含其余组件。

这种线性度是解决方案具有成本效益的关键原因,使其有别于 SNARK 等其他高次多项式解决方案。P 只需要将两个栏位元素传输给验证器,然后 V 使用其 VOLE 参数验证相关性。此阶段有五个主要限制,确保请求使用加密金钥加密、必须使用使用者的存取权杖产生请求、用户必须拥有加密金钥才能解密回应、用户无法改变响应、以及响应数据必须遵守范本中概述的特定条件。

优化技术 zkPass 进行了多项优化以增强协议的实用性。引入 SoftSpoken 降低约 50% 的网路开销并加速 VOLE 生成。利用 VOLE 的加法同态特性,将 XOR 和 INV 门的承诺降至零。对于涉及相同操作的特定用例,可以重复使用 VOLE 参数,将乘法运算转换为加法运算,这被称为「多数据信号输入」,类似于 CPU 架构中的 SIMD。

非互动式零知识(NIZK)随后从 IZK 证明过渡到 NIZK 证明,目的是隐藏实际的模板模式,使用户能够有选择地透露证明以供任何一方公开验证。采用 SNARK 框架,特别是 Circom。一旦客户端成功通过 IZK 验证,节点就会为结果提供签名,客户端将结果及其相关签名插入默克尔树中,并更新 SBT 合约中的根。当客户端需要证明结果时,只需提供零知识证明,证明结果是默克尔树中的一片叶子,并且已经由节点签名。

zkSBT:可组合的灵魂绑定代币系统

zkPass 的 zkSBT 架构

zkPass 如何运作的第三个关键在于 zkSBT 架构。zkPass 坚持 ERC998 标准,一种可组合的 NFT 标准。tSBT 代表法律身分、社交网路和财务资讯等类别,dSBT 包含用户声称的实际凭证。这些宣告有两种类型:主要宣告和查询宣告。

主要索赔涉及用户在执行 MPC 后从数据源获取其私人数据,例如国家/地区、年龄、性别和政府网站的其他信息。根据这些资料建构索赔树,每个节点代表其子节点的杂凑值。使用 babyjub 签名添加随机数以阻止详尽的攻击,将主声明树的根哈希存储在 dSBT 中,必须由智能合约生成并验证树正确性的零知识证明。

查询宣告方面,例如判断使用者的年龄是否大于 18,使用者只需要提供证明,证明代表其年龄的叶子包含在树状结构中,且此叶子的值大于 18。用户可以直接将此证明传输给验证者,验证者可以执行链上函数来验证证明。这确保用户的实际私人数据对所有相关方保持隐藏,只有资料查询的陈述式会选择性地揭露给特定验证者。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)