Skip to content

Instantly share code, notes, and snippets.

@kariy
Last active May 4, 2023 20:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kariy/9349d0dca415434b3b9efcc30fc5c26b to your computer and use it in GitHub Desktop.
Save kariy/9349d0dca415434b3b9efcc30fc5c26b to your computer and use it in GitHub Desktop.

ZERO-KNOWLEDGE PROOF

🪅 General

[Recommended] Why and How zk-SNARK Works: Definitive Explanation

This paper aims to explain zk-SNARK construction in a simple and accessible way, using examples and answering common questions. Its contribution is a gradual increase in complexity to help readers understand without prior knowledge of cryptography or advanced math. The paper not only explains how zk-SNARK works, but also why it works and how it was developed.

  1. Introduction to ZK

  2. [MIT IAP 2023] Modern Zero Knowledge Cryptography

  3. Curated resources for ZK stuff by Ingonyama

  4. Awesome ZK

  5. ZKP Knowledge Base

An ongoing knowledge base for ZKP domain knowledge.

  1. https://www.zeroknowledgeblog.com
  2. R1CS: A Day in the Life of a few Equations

This explainer post focuses on one key part of the zkSNARK stack: the R1CS protocol. We will go through a simple example in great detail, with minimal skipping of steps, to make it straightforward to follow along.

  1. Quadratic Arithmetic Programs: from Zero to Hero
  2. Explaining Quadratic Arithmetic Programs

🪵 PLONK

  1. https://vitalik.ca/general/2019/09/22/plonk.html

  2. PLONK Algorithm Introduction

  3. PLONK Tutorial

  4. Awesome PLONK

  5. How PLONK works

Articles explaining the core ideas on how to prove a computation using PLONK.

  1. PLONK by Hand

A series of articles that explain how to execute a PLONK zero-knowledge proof system completely by hand.

🔫 HALO2

  1. The halo2 Book
  2. Zero Knowledge Proof — A Guide to Halo2 Source Code
  3. Awesome Halo2
  4. 0xPARC Halo2
  5. HALO Principle Explained

😳 Misc

  1. Demystifying recursive zero-knowledge proofs

Recursive zero-knowledge proofs are new cryptographic primitives relevant to the Anoma blockchain use case. In this article, we investigate the possible alternatives for verifying blockchain circuits efficiently. Our main interest is in estimating the efficiency of pairing-based constructions.

  1. The Anatomy of Proof Generation

We'll explore why proof generation is costly by breaking down its technical process and identifying its computations. Then, we'll consider ways to speed it up.


🧱 HASH FUNCTIONS

🐋 Poseidon Hash

  1. Poseidon Hash
  2. USENIX Security '21 - Poseidon: A New Hash Function for Zero-Knowledge Proof Systems
  3. Ingonyama Poseidon Hash

🧔‍♂️ Pedersen Hash

  1. Brief explanation of Pedersen Commitment
  2. Zero Knowledge Proofs: Example with Pedersen Commitments in Monero
  3. Starknet's Pedersen Hash
  4. Starknet's Javascript implementation

🧮 MATHEMATICS

  1. Mathematics and computer science notes

A collection of notes on various topics in the mathematics and computer science domain

  1. Number theory
  2. Exploring Elliptic Curve Pairings by Vitalik Buterin
  3. Elliptic Curve Cryptography: a gentle introduction

👾 RANDOM

  1. Remco's blog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment