ZKP9 SNARKs based on Linear PCP (Pinocchio Groth16)

2023-11-01 18:36

本文主要是介绍ZKP9 SNARKs based on Linear PCP (Pinocchio Groth16),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ZKP学习笔记

ZK-Learning MOOC课程笔记

Lecture 9: SNARKs based on Linear PCP (Yupeng Zhang)

  • SNARKs learned so far
    在这里插入图片描述

  • Earliest Implemented SNARKs

    • Pros
      • Shortest proof size (3 elements [Groth16])
      • Fast verifier (bilinear pairing)
    • Cons
      • FFT and group exponentiations on the prover
      • Circuit-specific trusted setup
  • History of SNARKs
    在这里插入图片描述

9.1 Quadratic Arithmetic Program (QAP)

  • Recall: SNARKs for circuit-satisfiability
    在这里插入图片描述

  • Transcript/trace of Circuit

    • Interactive proof (lecture 4, slide 76): value of every gate
    • Plonk (lecture 5, slide 42): left input, right input, output of every gate
    • QAP: input + output of every multiplication gate
  • QAP

    • Ignore the output of the addition gates
      在这里插入图片描述

    • Labeling multiplication gates

    • Selector Polynomials

      • l i ( x ) l_i(x) li(x): is c i c_i ci the left input of gate 𝑗, for 𝑗 = 1,2,3?

        • Examples:
          在这里插入图片描述

          For l 1 ( x ) l_1(x) l1(x):

          • 3 is the left input of gate 1? Yes! -> 1
          • 3 is the left input of gate 2? No! -> 0
          • 3 is the left input of gate 3? No! -> 0
            在这里插入图片描述

          For l 3 ( x ) l_3(x) l3(x):

          • 1 is the left input of gate 1? No! -> 0
          • 1 is the left input of gate 2? No! -> 0
          • 1 is the left input of gate 3?
            • Yes! -> 1
            • Because “1” is the input of the addition gate, and the addition gate is the left input of gate 3
              在这里插入图片描述
      • Properties of the selector polynomials
        在这里插入图片描述

      • More Selector Polynomials

        • r i ( x ) r_i(x) ri(x): is c i c_i ci the right input of gate 𝑗, for 𝑗 = 1,2,3?
          在这里插入图片描述

        • o i ( x ) o_i(x) oi(x): is c i c_i ci the output of gate 𝑗, for 𝑗 = 1,2,3?
          在这里插入图片描述

      • Master polynomial
        在这里插入图片描述

      • Vanishing polynomial
        在这里插入图片描述

  • Circuit-SAT to QAP [GGPR13, PGHR13]
    在这里插入图片描述

在这里插入图片描述

  • The table is sparse.

9.2 From QAP to SNARK

  • Probabilistically Checkable Proofs (PCP)
    在这里插入图片描述

  • IPCP [Kalai-Raz’08] and IOP [Ben-Sasson-Chiesa-Spooner’16]
    在这里插入图片描述

  • Polynomial IOP [Bünz-Fisch-Szepieniec’20]
    在这里插入图片描述

  • Linear PCP [Ishai-Kushilevitz-Ostrovsky’07]
    在这里插入图片描述

  • QAP and Linear PCP
    在这里插入图片描述

    • We don’t use random checks.
  • Key Generation

    • The c i c_i ci and q ( x ) q(x) q(x) are private
    • The selector polynomials and the vanishing polynomial are public.
    • The circuit can be pre-processed. (The preprocessing phase is circuit-dependent)
      在这里插入图片描述
  • Prove
    在这里插入图片描述

  • Verify
    在这里插入图片描述

  • Towards the real protocol

    • Q1: How to make sure π 1 \pi_1 π1 is computed from g l i ( τ ) g^{l_i(\tau)} gli(τ)

      • Solution: Knowledge of Exponent assumption (KoE) or Generic Group Model (GGM)

      • Recall: KoE
        在这里插入图片描述

      • Recall: GGM
        在这里插入图片描述

    • Q2: how to make sure the same c c c is used in π 1 \pi_1 π1, π 2 \pi_2 π2 and π 3 \pi_3 π3?

      • Solution
        在这里插入图片描述
    • Q3: What about public input and output?
      在这里插入图片描述

      • I m i d I_{mid} Imid: secret witness
      • I i o I_{io} Iio: public input and public output
  • Putting everything together
    在这里插入图片描述

  • Properties of SNARK [PGHR13]
    在这里插入图片描述

9.3 Other variants

  • Rank-1-Constraint-System (R1CS)

    • QAP
      在这里插入图片描述

    • R1CS:
      在这里插入图片描述

      • Advantages
        • Can support generalized constraints or gates
        • more convenient to use in practice
      • Matrix View of R1CS
        在这里插入图片描述
  • Groth16
    在这里插入图片描述

    • Combine the π 3 \pi_3 π3, π 4 \pi_4 π4, π 5 \pi_5 π5 of [PGHR13] together
      • α \alpha α and β \beta β are secret keys in the trusted key generation, and g α g^\alpha gα and g β g^\beta gβ are public parameters for the prover and the verifier
      • π 3 \pi_3 π3: move the Σ i = 1 m c i × o i ( x ) \Sigma_{i=1}^m c_i \times o_i(x) Σi=1mci×oi(x) to the right side of the equation -> Σ i = 1 m c i × o i ( x ) + V ( x ) q ( x ) \Sigma_{i=1}^m c_i \times o_i(x) + V(x)q(x) Σi=1mci×oi(x)+V(x)q(x)
    • Change the keygen accordingly
    • Proof size: 3 group elements, 144 bytes
    • Verifier time: 1 pairing equation
  • Achieving Zero-Knowledge

    • The above is not zero-knowledge, because the adversary can infer some information by brute force attack.
    • Solution: add some random values (times the vanishing polynomial)
      • The [PGHR13] version:
        在这里插入图片描述

这篇关于ZKP9 SNARKs based on Linear PCP (Pinocchio Groth16)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/324933

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

理解分类器(linear)为什么可以做语义方向的指导?(解纠缠)

Attribute Manipulation(属性编辑)、disentanglement(解纠缠)常用的两种做法:线性探针和PCA_disentanglement和alignment-CSDN博客 在解纠缠的过程中,有一种非常简单的方法来引导G向某个方向进行生成,然后我们通过向不同的方向进行行走,那么就会得到这个属性上的图像。那么你利用多个方向进行生成,便得到了各种方向的图像,每个方向对应了很多

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

Android Studio打开Modem模块出现:The project ‘***‘ is not a Gradle-based project

花了挺长时间处理该问题,特记录如下:1.背景: 在Android studio 下导入一个新增的modem模块,如MPSS.DE.3.1.1\modem_proc\AAA, 目的是看代码方便一些,可以自由搜索各种关键字。但导入该项目时出现了如下错误: The project '***' is not a Gradle-based project.造成的问题: (1) project 下没有代码,而

SIM(Search-based user interest modeling)

导读 我们对电商场景兴趣建模的理解愈发清晰:1. 通过预估目标item的信息对用户过去的行为做search提取和item相关的信息是一个很核心有效的技术。2. 更长的用户行为序列信息对CTR建模是非常有效且珍贵的。从用户的角度思考,我们也希望能关注用户长期的兴趣。但是当前的search方法无论是DIN和DIEN都不允许我们在线对一个超长的行为序列比如1000以上做有效搜索。所以我们的目标就比较明

零知识证明-ZK-SNARKs基础(七)

前言 这章主要讲述ZK-SNARKs 所用到的算术电路、R1CS、QAP等 1:算术电路 算术运算电路 1>半加器:实现半加运算的逻辑电路 2>全加器:能进行被加数,加数和来自低位的进位信号相加,并根据求和结果给出该位的进位信号 说明:2进制加,低位进位 相当于 结果S为 = A+B+C(地位进位) 高位进位 = A+B+C(地位进位) 三个中 有最少2个为1 高位就有进位了 【1】 方程转算

【CSS渐变】背景中的百分比:深入理解`linear-gradient`,进度条填充

在现代网页设计中,CSS渐变是一种非常流行的视觉效果,它为网页背景或元素添加了深度和动态感。linear-gradient函数是实现线性渐变的关键工具,它允许我们创建从一种颜色平滑过渡到另一种颜色的视觉效果。在本篇博客中,我们将深入探讨linear-gradient函数中的百分比值,特别是像#C3002F 50%, #e8e8e8 0这样的用法,以及它们如何影响渐变效果。 什么是linear-g

Segmentation简记-Multi-stream CNN based Video Semantic Segmentation for Automated Driving

创新点 1.RFCN & MSFCN 总结 网络结构如图所示。输入视频得到图像分割结果。 简单粗暴

Attribute Recognition简记1-Video-Based Pedestrian Attribute Recognition

创新点 1.行人属性库 2.行人属性识别的RNN框架及其池化策略 总结 先看看行人属性识别RNN结构: backbone是ResNet50,输出是每一帧的空间特征。这组特征被送到两个分支,分别是空间池化和时间建模。最后两种特征拼接。然后分类(FC)。 LSTM关注帧间变化。受cvpr《Recurrent Convolutional Network for Video-Based Person