理解 zk-SNARKs 和 zk-STARKs 的区别

这篇具有很好参考价值的文章主要介绍了理解 zk-SNARKs 和 zk-STARKs 的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SNARK 和 STARK 是零知识证明技术,允许一方在不透露任何进一步信息的情况下向另一方证明陈述是真实的。

零知识证明 (ZKP) 引起了广泛关注,因其在增强安全性、保护用户隐私和支持第 2 层网络扩展方面都有很大的潜力。

ZKP 使一方能够向另一方证明声明是真实的,而无需透露任何其他信息。ZKP 既有利于增加隐私——因为它们减少了各方之间共享的信息量——也有利于可扩展性,因为它只需要证明而非整个数据集被验证,这样验证速度会更快。

两个最受关注的零知识证明系统是 SNARK 和 STARK。在本文中,我们将深入探讨它们是什么、它们如何工作以及它们的主要区别。

SNARK 是什么?

zk-SNARK 全称 Zero-Knowledge Succinct Non-interractive Argument of Knowledge(零知识简洁非交互式知识论证)——它们是在 2012 年由 Nir ​​Bitansky、Ran Canetti、Alessandro Chiesa 和 Eran Tromer 合著的一篇论文中介绍的。 SNARK 使一方能够在不泄露秘密的情况下向另一方证明他们知道秘密。

zk-SNARKs 可以作为零知识证明协议添加到分布式账本解决方案中,以增强隐私性和可扩展性。 Zcash 是 zk-SNARKs 的第一个广泛应用,应用该技术来创建屏蔽交易(shielded transaction),其中发送者、接收者和金额都是保密的。Zcash 中的屏蔽交易可以在区块链上完全加密,但仍然可以通过使用 zk-SNARKs 在网络的共识规则下验证为有效。

一些 SNARK 的一个重要属性是它们要求配置过程是可信任的——在这个过程中,隐私交易的证明和生成证明的密钥会被创建。如果在事件期间用于创建这个密钥的秘密没有被销毁,它们可能被用来创建虚假证明。在涉及加密资产的场景中,这将使参与者能够伪造交易或凭空铸造新通证。由于 SNARKs 固有的隐私性,所以无法验证伪造的证明是否确实是伪造的。

SNARK 的安全级别是通过为找到虚假陈述的证据而必须完成的工作量来衡量的。换句话说,如果 SNARK 在计算上无法产生令人信服的虚假陈述证明,那么它就是安全的。对于需要可信设置才能被认为是安全的 SNARK,仪式中至少有一名参与者必须生成并销毁一个 trapdoor,如果与其他 trapdoor 结合使用的话,否则就有可能危及 SNARK 的安全性。因此,受信任的设置通常需要许多参与者一起运行,以使这种情况发生的可能性足够低。

虽然可信设置仅在最初需要且仅适用于某些 SNARK,但基于 SNARK 的网络的用户必须相信可信设置的仪式(ceremony)已正确执行,并且秘密已被销毁并且不被创建事件的参与者持有。对这种仪式的依赖一直是一些 SNARK 的备受批评的领域,认为它是潜在的安全弱点。

一些 SNARK 的另一个限制是它们不被认为是抗量子的。 SNARK 的支持者认为,如果量子计算机开始对 SNARK 构成威胁,密码学领域将面临更大的问题。此外,一些 SNARK 可能会在未来升级为抗量子的。

STARK 是什么?

zk-STARK 全称 Zero-Knowledge Scalable Transparent Argument of Knowledge(零知识可扩展透明知识论证),是一种零知识证明系统,在 Eli Ben-Sasson、Iddo Bentov、Yinon Horesh 和 Michael Riabzev 于 2018 年发表的一篇论文中作为 SNARK 的替代方案被引入。正如论文中所述,STARK(更广泛地说,ZKP)可以为社会带来很大的好处:

“人们的个人信息,例如医疗和法医数据需要保持私有,这是一种人的尊严。但是,旨在保护隐私的面具也可能被委托数据的机构滥用以掩盖谎言和欺骗,从而不公正地伤害公民并削弱对中央机构的信任。零知识 (ZK) 证明系统是一种巧妙的加密解决方案,可以解决个人隐私和机构完整性之间的紧张关系,可以在不损害前者的情况下加强后者。”

STARK 支持 StarkWare 的可扩展性技术。通过使开发人员能够在链下进行存储和计算,STARK 提高了可扩展性,因为验证链下计算准确性的 STARK 证明可以由链下服务生成,然后发布在链上。

STARK 允许区块链将计算转移到某个链下 STARK 证明者,然后使用链上 STARK 验证者验证这些计算的完整性。 Layer-2 网络可以通过使用 STARKs 在单个批次中计算大量交易,然后使用单个 STARK 证明来确认交易在链上的有效性,从而实现可扩展性。批次中的所有交易均分担链上操作的成本,为第 2 层网络上的每笔交易提供低 gas 成本。

重要的是,由于验证者使用的随机性是公开可用的,并且可以在不依赖任何外部参数的情况下验证证明,因此 STARK 不需要可信设置仪式。

对比 SNARKs 和 STARKs

SNARKs 和 STARKs 都有各自的优势,两者之间的选择取决于用户的具体用例需求。同样重要的是要注意,SNARK 和 STARK 都是正在积极研究的尖端零知识证明技术,因此对它们进行比较还需要考虑该领域的持续进步和发现。

支持者认为 SNARK 更高效、更快速,因为它们可以在几毫秒内得到验证。然而,这种效率是有代价的,因为一些 SNARK 依赖的可信设置仪式,有安全薄弱的环节。这意味着证明中使用的初始参数必须在安全环境中生成,参数的任何泄露都可能导致安全漏洞。

STARKs 不需要可信设置,从而提供更强的安全性,但可能需要更长的时间来验证,因此被认为效率较低。 STARK 的证明数据的大小比 SNARK 的大,这意味着验证 STARK 可能比 SNARK 花费更多的时间并且消耗更多的 gas。另一方面,由于可以在不依赖任何外部参数的情况下验证 STARKs 的证明,因此 STARKs 比 SNARKs 更容易审计,尽管这可能取决于具体的实施方式。与大多数 SNARK 不同,STARK 依赖于被认为是抗量子的哈希函数。

SNARK 最初比 STARK 被更广泛采用的原因有几个,尽管其中一些具有与可信设置仪式相关的潜在安全缺陷。 SNARK 比 STARK 早六年开发,这有助于它们在采用方面领先一步。

零知识证明带来可扩展性的指数级增长

零知识证明是区块链生态系统的基础技术,有助于提升可扩展性,同时有助于保护个人隐私和机构的完整性。zk-SNARKS 和 zk-STARKS 处于这场革命的最前沿,它们都旨在解锁以前公链中无法实现的用例,激励创新并帮助创造更高效的全球经济。

欢迎关注 Chainlink 预言机并且私信加入开发者社区,有大量关于智能合约的学习资料以及关于区块链的话题!文章来源地址https://www.toymoban.com/news/detail-595555.html

到了这里,关于理解 zk-SNARKs 和 zk-STARKs 的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ZoKrates+Remix在线实现zkSNARK零知识证明

    引言:在之前的文章里,我介绍了利用circom和snarkjs实现zkSNARK零知识证明,包含了snarkjs的使用步骤,并且我的毕业论文也全部采用snarkjs实现zkSNARK算法。 不过snarkjs里的signal信号的概念和高级语言变量之间的差别有点大,很多运算操作都不能直接进行,而且在执行circom库里的

    2024年02月06日
    浏览(33)
  • 零知识证明从0到1,ZK简介

    最初在1980年提出,由Shafi Goldwasser, Silvio Micali和Charles Rackoff。刚开始叫做交互式证明系统(Interactive proof system)。 Prover和Verifier之间交换信息,让Verifier相信某种statement是真的。 Completeness:诚实的Prover最后会让Verifier相信这个statement。 Soundness:只有statement是真的时候,才能让Ve

    2023年04月08日
    浏览(31)
  • ZooKeeper(zk)与 Eureka 的区别及集群模式比较分析

    作者:zhaokk 在分布式系统中,服务注册与发现是一项至关重要的技术,它能够有效地管理和维护服务实例的状态,提供负载均衡和高可用性支持。ZooKeeper(以下简称 zk)和 Eureka 都是广泛应用于服务注册与发现领域的工具,本文将对它们的特点进行比较分析,重点关注 CAP 理

    2024年02月12日
    浏览(43)
  • css基础知识二十:说说对Css预编语言的理解?有哪些区别?

    一、是什么 Css 作为一门标记性语言,语法相对简单,对使用者的要求较低,但同时也带来一些问题 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 Css 编写经验而很难写出组织良好且易于维护的 Css 代码

    2024年02月16日
    浏览(44)
  • vue基础知识五:请描述下你对vue生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别呢?

    一、生命周期是什么 生命周期(Life Cycle)的概念应用很广泛,特别是在政治、经济、环境、技术、社会等诸多领域经常出现,其基本涵义可以通俗地理解为“从摇篮到坟墓”(Cradle-to-Grave)的整个过程在Vue中实例从创建到销毁的过程就是生命周期,即指从创建、初始化数据

    2024年02月12日
    浏览(50)
  • 深入探索STARK的安全性和可靠性——STARKs全面安全分析

    non-interactive STARKs,起源于Interactive Oracle Proofs (IOPs),然后通过random oracle模式转换为非交互式。 StarkWare团队 ethSTARK Documentation – Version 1.2(2023年7月)论文做了更新,给出了完整具体的random oracle模式下的ethSTARK安全性分析。本文对该论文的更新做了解释。 STARK proof system (Scala

    2024年02月03日
    浏览(45)
  • FRI及相关SNARKs的Fiat-Shamir安全

    本文主要参考: Alexander R. Block 2023年论文 Fiat-Shamir Security of FRI and Related SNARKs Albert Garreta 2023年9月在ZK Summit 10上分享 ZK10: Fiat-Shamir security of FRI and related SNARKs - Albert Garreta (Nethermind) 评估参数用的Sagemath code见: https://github.com/alexander-r-block/FRI-Parameter-Testing-Sagemath 何为FRI-based SN

    2024年02月03日
    浏览(34)
  • ZK-C3595、ZK-C35100、ZK-C40100、ZK-C40110超越离合器

    ZK-A3072、ZK-A3080、ZK-A4090、ZK-A3595、ZK-A35100ZK-A40100、ZK-A40110、ZK-A3072、ZK-C3080、ZK-C4090、ZK-C3595、ZK-C35100、ZK-C40100、ZK-C40110单向离合器(超越离合器) MG300M1300MG400、M1400MG500、M1500MG600、M1600MG700、M1700MG750、M1750MG800、M1800MG900、M1900、MG1000、M11000、MG1100、M11100、MG1200、M11200、MG1300、M11300逆

    2024年02月12日
    浏览(39)
  • ​【指针和数组区别与理解】超万字

    指针 指的是指针变量,不是数组,指针变量的大小是4/8个字节,是专门来存放地址的。 数组 也不是指针,数组是一块连续的空间,存放一组相同类型的数据的。    没有关系,但是它们之间有比较相似的地方 结论:指针和数组指向或者表示一块空间的时候,访问方式是可以

    2024年02月07日
    浏览(43)
  • 彻底理解数组指针和指针数组的区别

    数组指针和指针数组有什么区别? 数组指针: 本质是一个指针,指向了一个数组 ,数组中的每个元素都是某种数据类型的值(比如 int 类型)。 数组指针也称 行指针 ,也就是说,当指针p执行p+1时,指针会指向数组的下一行,如: 指针数组: 本质是一个数组,该数组中的

    2024年02月02日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包