zkTLS 简介
- 原文链接:medium.com/@0xzap...
- 译者:AI翻译官,校对:翻译小组
- 本文链接:learnblockchain.cn/article…
介绍
以太坊,作为去中心化应用的支柱,面临着超越每秒交易量和低交易成本的几个关键挑战。其中之一是去中心化应用对现实世界数据的有限访问,这限制了 dApp 的可能性和潜力。
如今,像 Chainlink 和 Pyth 这样的预言机在 DeFi 生态系统中发挥着至关重要的作用,主要通过提供可靠的价格数据。如果没有这些数据源,去中心化金融的能力将受到显著限制。
除了这些预言机,我们还有一些解决方案,例如 UMA 等乐观预言机和基于零知识证明的数据,如 zkPassport、PrivadoId、zkEmail 等,这些都扩展了可验证数据的范围。
然而,想象一下,如果用户能够为他们在互联网上访问的任何数据生成加密证明——特别是通过“TLS 连接”。这将彻底改变我们访问和验证数据的方式,极大地扩展 web2 和 web3 应用的潜力。
TLS
来源: https://images.app.goo.gl/EgRxTDEAHw4ZtS2X9
要理解 zkTLS,首先需要掌握 TLS 在网络安全中的作用。TLS 是将 HTTP 转换为 HTTPS 的技术,确保互联网通信的安全。
它确保两个通信应用之间的隐私和数据完整性,如果没有它,像登录凭据和信用卡详细信息这样的敏感数据将容易被拦截。我们将在后续文章中深入探讨 TLS 的工作原理。
zkTLS
现在,假设你可以为 TLS 会话生成证明。这意味着你基本上可以为互联网上发送的大多数数据生成证明。这些数据可能包括金融交易、个人消息、在线购买、访问数字内容、登录凭据、医疗数据等等。这种能力将极大地扩展中心化和去中心化系统的潜在应用,使我们今天所知的互联网变得更加可组合。
为实现这一目标,已经有不同的方法。目前,为 TLS 会话生成 ZK 证明的步骤如下:
- 首先,创建 TLS 会话的证明。目前,这可以通过多方计算、代理或受信环境来完成。
- 在证明创建后,生成一个零知识(ZK)证明来验证它,确保敏感数据保持私密。
注意: 值得一提的是,尽管我们称之为 zkTLS,但该协议并不是完全由零知识证明保护的。在这一点上,ZK 主要用于增强多方计算的安全性或生成具有隐私的证明以验证证明。在本文后面,我们将讨论每种方法的信任假设。
现在,让我们更详细地探讨每种解决方案。
MP-TLS(多方计算)
为了证明 TLS 会话,客户端(证明者)与公证人连接,并共同使用多方计算(MPC)和交互式零知识(IZK)协议,特别是加密电路和无关转移,生成一个共享公钥,该公钥将发送给服务器。该密钥在 TLS 握手期间用于创建预主密钥和会话密钥。会话密钥现在分为两部分——一部分由客户端持有,另一部分由公证人持有,从这里开始,所有与服务器的加密和解密都通过 MPC 和 IZK 完成。
在会话结束时,客户端创建对明文的认证承诺,公证人验证后签名,而无需查看实际数据。在此步骤之后,客户端可以生成一个 zkProof,仅揭示必要的信息。
优点:
- 由于使用了 MPC,安全性更高,确保数据因 IZK 而保持完全私密。
- 没有服务器阻止任何特定 IP 地址的风险
- 通过改进的加密协议(如 Quicksilver,这是一种基于 VOLE 的交互式零知识证明协议)可能提高效率和安全性。
缺点:
- 延迟敏感性:多方计算(MPC)的执行时间对延迟高度敏感。即使是小幅度的延迟增加也会显著影响完成 MPC 所需的总体时间,导致证明生成的不一致。因此,网络速度和客户端与公证人之间的物理距离是影响性能的关键因素。
- 数据大小限制:在 MPC 过程中,计算工作负载和交换的数据量随着被证明数据的大小显著增加。目前,隐私扩展探索团队的 TLS 公证人实现支持的数据大小约为 61 KB。
- 目前仅适用于 TLS 1.2
信任假设:
- 信任证明者不会与第三方公证人/验证者串通。
TLS 代理
TLS 代理充当客户端和服务器之间的中介,验证在其通信过程中交换的加密数据。它并不作为中间人(MitM)运作,因为它仅能访问加密数据。在会话结束后,客户端共享部分会话密钥,仅解密请求中非敏感的部分。然后,客户端为响应数据提供零知识证明,允许代理和其他人验证 TLS 会话的内容,而不暴露敏感信息。这种方法最初由 Reclaim Protocol 团队实施。
优点:
- 与 MP TLS 相比,延迟更低,更适合实时应用。
- 设置简化,因为它不需要复杂的加密协议。
缺点:
- 与 MP-TLS 方法相比,隐私性较低,因为代理将访问 TLS 会话中的某些数据
- 安全性低于 MP-TLS,因为它做出了网络拓扑假设,因此不推荐用于高价值交易。
- 如果代理服务器过载,可能成为瓶颈。
- 代理被服务器禁止的风险。
信任假设:
- 信任证明者不会与第三方代理串通。
受信执行环境(TEE)
TEE 是处理器内的一个安全区域,确保内部运行的数据和代码的完整性和机密性。当用于执行 TLS 时,TEE 可以安全地运行该协议,提供 TLS 会话的执行和内容证明。这种方法目前由 Clique 团队实施。
优点:
- 无需第三方公证人或代理来证明数据
缺点:
- 依赖于硬件,使其灵活性较低,并可能容易受到硬件特定攻击的影响。
- 在不同设备上的可用性有限,可能限制采用。
信任假设:
- 硬件安全性和证明过程可能有所不同。
zkTLS 的使用案例是什么?
所以,在经历了这一切之后,你可能会想,数据可移植的可能使用案例是什么?以下是我们团队计划探索的一些想法:
- P2P 广告市场: 我们可以创建一个点对点的“Facebook 广告”/“Google 广告”市场,参与者控制他们的数据。
- 粉丝证明: 一些平台,如 Spotify,不允许艺术家访问他们粉丝的数据。如果用户能够直接证明他们的“粉丝身份”,并从艺术家那里获得特权呢?
- AI 证明: AI 将持续存在,借助 zkTLS,我们可以使智能合约真正智能。通过证明对 GPT API、Claude API、Gemini API 和其他 AI 服务的 API 请求,我们现在可以使用这些证明触发链上操作。这可能解锁链上游戏 NPC、金融 AI 代理、AI 参与 DAO 投票等。
- 支付证明: 一种去中心化的点对点上链和下链方法,出售代币的人创建一个池并分享一个 Revolut 用户名。代币被锁定在智能合约中,直到有人提交 Revolut 的支付证明,允许付款人认领代币并完成交易。
- 财务证明: 我们在 web3 中试图解决的挑战之一是低抵押贷款。现在,通过信用评分、银行余额、收入和其他财务数据的证明,这不再只是一个梦想。
概述
以太坊当前在访问可验证的现实世界数据方面的限制有限制了我们可以构建的应用类型。然而,通过使用 zkTLS 证明 TLS 会话,我们现在可以验证互联网上大部分可访问的数据。
通过利用 zkTLS,开发者可以无缝地将 zkProof 生成集成到现有的 Web2 API 调用中,从而增强以太坊对各种 Web2 服务的访问。这一集成能够安全和私密地验证数据,而不改变最终用户体验或要求开发者进行重大调整。
总之,zkTLS 不仅是一个技术里程碑 — 它是朝着一个更安全和互联的数字世界的变革性飞跃。通过使以太坊能够验证和利用大量现实世界数据,zkTLS 为前所未有的应用打开了大门,这些应用可能会重塑行业并在数字时代重新定义信任。
参考文献:
- TLS Notary:
https://docs.tlsnotary.org/ - 安全多方计算的实用介绍: https://securecomputation.org/docs/pragmaticmpc.pdf
- 基于 VOLE 的 ZK
https://blog.chain.link/vole-based-zk/#quicksilver_protocol - Reclaim Protocol 白皮书
https://www.reclaimprotocol.org/whitepaper/ - 使用加扰电路的零知识
https://eprint.iacr.org/2013/073.pdf -
Brechy 提出的安全多方计算
https://mirror.xyz/privacy-scaling-explorations.eth/v_KNOV_NwQwKV0tb81uBS4m-rbs-qJGvCx7WvwP4sDg
*在 Twitter 上关注我们: **https://x.com/0xZapLab
我是 AI 翻译官,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。