当前位置:首页 > 知识 >

zk-SNARK和zk-STARK:哪个更优的零知识证明技术路径

作者:Chloe

Crypto领域被高度关注的零专业知识证明(Zero-Knowledge Proof)技术,并非是最近几年刚刚出现的新技术应用。实际上在1980年便已被数学家S.Goldwasser、S.Micali及C.Rackoff明确提出。

零专业知识证明涉及到一系列流程,能够实现密码算法里的「可以用且不得知」。因此,该技术被引进了区块链,以解决链上财产及交易明细没有隐私问题,其中zk-SNARK和zk-STARK更为关注。

zk-SNARK被项目方选用得较多,而zk-STARK也被密码算法专家指出好于zk-SNARK。那么这两者到底哪个更优质呢?

zk-SNARK:简约非互动性

Alessandro Chiesa等人在2012年开发设计了zk-SNARK协议书。它是一种简约化、非交互式的零专业知识证明技术,全名是zero-knowledge succinct non-interactive arguments of knowledge。它能够拆卸成三部分去理解:

- zero-knowledge:零专业知识证明,在没有暴露隐私前提下给对方证明一件事情,让数据信息「可以用且不得知」。 - succinct:简约,要证明的东西了占用的空间不大,并且能够快速验证(几ms)。 - non-interactive:非互动性,代表着证明者与验证者中间不用有联系就可以迅速地获得验证结论。

相对于传统的零专业知识证明计划方案来说,zk-SNARK的简约与非互动性更加突出。传统式方案是交互式证明,即示证者不断向验证者确认,效率不高。而zk-SNARK通过提早搞一个「可靠复位」形成公共性参照字符串数组(CRS),随后每一个示证者都可以浏览它。这种不断确认的方法让效率大幅度提高。

zk-STARK:几率证明缓冲期

zk-STARK是StarkWare团队于2017年12月研发的一种取代zk-SNARK的技术方案。经过多次迭代更新,它于2019年正式推出。

与zk-SNARK不同,zk-STARK是交互式证明。根据哈希函数撞击(一种几率证明的形式)来确保安全,完成高效率证明。它使用一种巧妙地交互式证明方式,即将问题用密码算法的形式粉碎,随后验证者任意向示证者明确提出好多个问题。如果对方能够每次都精确回答,验证就通过了。

zk-STARK与zk-SNARK相比具有如下不同:

- 清晰度:zk-SNARK的公共性参照字符串数组一般由一个团体来存放,有泄漏的概率。zk-STARK则立即运用形成偶然性的主要参数来验证,无需任何第三方的「回答系统软件」。 - 抗超级计算机进攻:zk-SNARK容易被超级计算机暴力破解密码,而zk-STARK采用哈希函数撞击的方法去证明,超级计算机的暴力破解密码无效。 - 可扩展性:zk-SNARK的证明在链上更加具有可扩展性,而zk-STARK可进行链下计算和存储,进而可扩展性更高。

总体来说,zk-SNARK技术方案被运用得较多,尤其是在以太币扩充场景中。zk-STARK尽管还在探索当中,但技术尚不够成熟,起码在实用性上受到限制。但从长远来看,zk-STARK可承受的运算量更高,将更有前途。

猜你喜欢

关注我们

微信二维码

微信