本文介绍了零知识证明(ZKP)的两种主要类型:zkSNARKs 和 zkSTARKs。zkSNARKs 依赖于可信设置,验证速度快,但安全性依赖于设置的安全性。zkSTARKs 不需要可信设置,具有更高的透明性和可扩展性,但计算开销可能更大。它们都是在不泄露信息的前提下,验证信息有效性的强大工具。
博客 — Gelato 大学
超越基础:zkSNARKs vs. zkSTARKs
零知识证明 (ZKP) 是一种密码学协议,允许一方(证明者)向另一方(验证者)证明给定的陈述是真实的,而无需泄露除陈述本身有效性之外的任何其他信息。 有关零知识证明的更多信息,请查看我们的终极初学者指南此处。
ZKP 主要有两种类型:STARKs(可扩展的透明知识论证)和 SNARKs(简洁的非交互式知识论证)。 这两种类型都使用复杂的数学算法,使证明者能够证明陈述的真实性,而无需向验证者泄露任何其他信息。
zkSNARKs,代表零知识简洁非交互式知识论证,是一种密码学证明系统,允许证明者说服验证者某个陈述是真实的,而无需泄露关于该陈述本身的任何信息,除了它是真的这一事实。
zkSNARKs 包含四个关键组成部分,让我们用下面的例子来讨论它们:
Alice 想要向 Bob 证明她知道 16 的平方根,而不透露实际的平方根。
Alice 将问题编码为一个等式:x^2 - 16 = 0。 只有当 Alice 知道 x 的正确值(即 4,16 的平方根)时,该等式才成立
Bob 选择一个秘密,称之为 's'。 Alice 证明该等式在 's' 处成立,而无需透露 x。 这简化了问题并减少了验证所需的信息
Alice 和 Bob 使用一种秘密语言(加密),允许他们处理问题而不透露 x。 这让他们可以用隐藏的数字进行数学运算,因此 Alice 可以向 Bob 展示该等式在秘密语言中对 x 有效
Alice 通过将加密值与随机数相乘来隐藏它们。 这可以防止 Bob 了解实际的平方根,但他仍然可以检查原始等式是否成立。
// 这是示例代码块
function example() {
// 这是一个注释:示例函数
console.log("Hello, world!"); // 打印问候语
}
ZK SNARK 还使用可信设置过程来生成系统正常工作所需的某些密码学密钥或参数。在上述示例的上下文中,假设要设置这个游戏,Alice 和 Bob 需要制定一些特殊的规则。 他们都邀请一些他们信任的人来帮助他们制定规则。 这些人一起合作制作一些 Alice 和 Bob 可以在游戏中使用的秘密代码。 一旦他们有了代码,Alice 就可以向 Bob 证明她知道 16 的平方根,而无需告诉他它是什么。
由于这涉及多个贡献者提供随机信息以创建参数,因此确保没有人知道完整的集合。 但是,如果设置受到威胁,整个系统也可能受到威胁。
现在让我们分解每个部分,以更清楚地了解 ZK SNARK 零知识允许证明者向验证者证明陈述的有效性,而无需泄露任何其他信息。
简洁意味着证明非常短,并且可以由验证者非常快速地检查。 非交互式意味着证明者和验证者只需要交互一次即可证明该陈述。
论证:证明者生成一个 zk-SNARK 证明来证明对一个陈述的了解,该陈述满足可靠性要求。 这确保了攻击者几乎不可能产生一个被验证者接受为有效的虚假证明。
(知识):证明者说服验证者他们拥有一些秘密信息,但不透露它是什么。 证明者只有在可以访问该秘密的情况下才能生成零知识证明。
这代表零知识可扩展透明知识论证,是 zk-SNARK 协议的最新变体。
zk-STARKs 不依赖于可信设置。 相反,它们使用公开可用的随机性来设置生成和验证其证明所需的参数。 这意味着 ZK-STARKs 更加透明,并且不需要对特定个人或方生成其证明的任何信任。
它们有两个主要优点: 可扩展性:ZK-STARKs 可以处理非常大的计算,开销极小,并且不需要可信的设置阶段,
透明度:ZK-STARKs 更加透明,因为它们使用一种任何人都可以验证的生成重要信息的方式,而不是依赖一组人一起来生成它。
总之,零知识证明,包括 STARKs 和 SNARKs,是增强各个行业隐私和安全性的强大工具。
它们允许验证信息,而无需公开陈述有效性之外的更多细节,这使它们成为保护敏感信息的重要解决方案。 随着区块链技术和去中心化系统的采用持续增长,零知识证明有望在未来发挥更大的作用。
Gelato 是一个 Web3 云平台,支持开发人员创建自动化的、无 gas 的和链下感知的 Layer 2 链和智能合约。 400 多个 web3 项目多年来一直依赖 Gelato 来促进 DeFi、NFT 和游戏领域的数百万笔交易。
[Gelato RaaS:] (https://www.notion.so/gelato-network/Gelato-Rollup-as-a-Service-ad0945b62d59484bb6486c8edbdfa5fa) 只需单击一下,即可使用原生账户抽象和所有 Gelato 中间件部署你自己的定制 ZK 或 OP L2 链。
[Web3 Functions:] (https://docs.gelato.network/developer-services/web3-functions) 通过运行去中心化的云函数,将你的智能合约连接到链下数据和计算。
[Automate:] (https://docs.gelato.network/developer-services/automate) 通过以可靠、对开发人员友好和去中心化的方式自动执行交易来自动化你的智能合约。
[Relay:] (https://docs.gelato.network/developer-services/relay) 通过易于使用的 API,让你的用户可以访问可靠、强大且可扩展的无 gas 交易。
[Account Abstraction SDK:] (https://docs.gelato.network/developer-services/account-abstraction) Gelato 与 Safe 合作构建了一个成熟的 Account Abstraction SDK,结合了 Gelato 行业最佳的无 gas 交易能力和行业最安全的智能合约钱包。
订阅我们的新闻通讯并打开你的 Twitter 通知,以获取有关 Gelato 生态系统的最新更新! 如果你有兴趣成为 Gelato 团队的一员并构建互联网的未来,请浏览空缺职位并在此处申请 here。
- 原文链接: gelato.cloud/blog/types-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!