Thanks to visit codestin.com
Credit goes to github.com

Skip to content

MuhtasimTanmoy/zk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zero Knowledge (ZK)

A curated collection of notes, lectures, bootcamps, and experiments focused on Zero-Knowledge Proofs (ZKPs), proving systems, and applied cryptography.
This repository documents my deep dive into — from theory and math foundations to practical implementations and performance benchmarks.

Session Notes

Focused notes and summaries from my study sessions and research.

Lectures

Lectures and summaries from leading cryptographers and researchers.

Experimental Implementation

Hands-on prototypes and implementations exploring ZK systems.

Bootcamps

ZK-VM

ZK-VM stands for Zero-Knowledge Virtual Machine. It proves that the program was executed correctly.

Pipeline

  • Computation
  • Algebraic Circuit
  • R1CS
  • QAP
  • Linear PCP
  • Linear Interactive Proof
  • zkSNARK

Steps for generating proof in ZK-VM

  • zk-SNARKs cannot be applied to any computational problem directly; rather, you have to convert the problem into the right “form” for the problem to operate on. The form is called a “quadratic arithmetic program” (QAP)
  • The program is usually written in user-friendly languages like Solidity, Rust, Noir, etc.
  • To prove the program, it should be compiled to bytecode.
  • The compiler converts the source code to bytecode.
  • Bytecode looks more cryptic than high-level languages.
  • When the bytecode is compiled, it is executed inside of the VM. That is, the VM takes a list of instructions and executes them one by one. A result of this execution is called “execution trace.”
  • The execution trace contains a list of opcodes that were executed for a specific invocation of a program.
  • Prover takes the execution trace and checks that the bytecode (of a certain instruction set) was executed correctly.
  • The proof input contains program inputs and outputs. So the prover can put these specific inputs in the provided constraints and check that they result in specific outputs.
  • Verifier is an algorithm that verifies the proof. eg. smart contract

(Relation, Witness)

-- [Arithmatisation] --> Zero Check

-- [PIOP] --> Polynomial Identity

-- [PCS]--> Interactive Argument

-- [Fiat Shamir Transform]--> Non Interactive Argument

Arithmatisation

  • R1CS
  • AIR
  • Plonkish
  • Layered Arithmatic Circuit

IOP

  • Plonk
  • GKR (Sumcheck)
  • Spartan (Sumcheck)
  • Ligero

PCS

  • Hash Based

    • Ligero
    • FRI
    • STIR
    • WHIR
    • Brakedown
  • ECDL Based

    • KGZ
    • IPA
    • Hyrax
  • Lattice Based

    • Greyhound

Proving Schemes

SNARK (IOP + PCS)

STARK

Incrementally Verifiable Computation / Folding Scheme Protocols

Lookup Argument

Others

About

All things ZK !

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published