zk-snark之R1CS->QAP

前言

想学习zk-snark算法的读者可能大多都读过V神的文章(https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649)总共分为三个部分,细致而全面的讲解了zk-snark算法的基本数学原理及思想,想要看懂还是需要花费一些时间和心思的;同时,可能也有一部分读者会从zcash的官网上找到zk-snark算法原理的介绍(https://z.cash/technology/zksnarks/)。虽然两者阐述zk-snark算法的方式不一样,但是其算法核心还是一致的。        
本人以V神文章中的例子为模板(x^3 +x +5 = 35),总结了一下两者产生QAP的过程,方便读者理解R1CS->QAP的具体过程。

建议

建议阅读本篇文章的读者应先熟悉以下几个知识点:        
1. 算术电路的概念及生成规则        
2. R1CS的概念        
3. QAP的概念       
4. 零知识证明的基本思想       
5. 拉格朗日多项式插值
**并结合第一小节给的链接来理解两者各自的QAP计算过程及其异同点**

总结&对比

在这里插入图片描述

图中:淡青色部分为Zcash的处理过程;淡蓝色部分为V神讲解的处理过程,淡橙色部分为两者的公共部分。
**需要注意的是**:
1. 算术环路的线条的序号标记方式不是唯一的,图中的标记方式是对应了V神版本里的多项式的生成结果
2. 两者的关系可以这么理解:V神的介绍描述的是如何把多个线性约束绑定再一起,变成一个约束,这其实是GGPR13论文的主要思想,即QAP\QSP算法的由来;Zcash官网上的介绍是直接使用了QAP算法。

欢迎读者留言交流_

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值