Skip to content

Commit

Permalink
Merge pull request #104 from varun-doshi/main
Browse files Browse the repository at this point in the history
Fix Broken Link: Math Survival Kit
  • Loading branch information
krakhit authored Sep 29, 2024
2 parents f345621 + fbb8d1e commit 961217e
Show file tree
Hide file tree
Showing 57 changed files with 1,895 additions and 673 deletions.
Binary file modified .DS_Store
Binary file not shown.
20 changes: 20 additions & 0 deletions .github/workflows/linkcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: check markdown links

on:
pull_request:
push:
branches:
- master
schedule:
# Run everyday at 9:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07)
- cron: "0 9 * * *"

jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-quiet-mode: 'yes'
use-verbose-mode: 'yes'
26 changes: 26 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: publish

on:
push:
branches: [ "master" ]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install mdbook and mdbook-katex
uses: actions-rs/cargo@v1
with:
command: install
args: mdbook mdbook-katex

- name: Build html
run: mdbook build

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./book
7 changes: 7 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
message: "If you use this Ingopedia for your research, please cite it as below."
authors:
- family-names: "Ingonyama"
title: "Ingopedia"
version: 2
date-released: 2022-04-08
url: "https://ingonyama-zk.github.io/ingopedia/"
681 changes: 8 additions & 673 deletions README.md

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions book.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[book]
authors = ["Ingonyama"]
language = "en"
multilingual = false
src = "src"
title = "Ingopedia"

[output.html]
curly-quotes = true
git-repository-url = "https://github.com/ingonyama-zk/ingopedia"
edit-url-template = " https://github.com/ingonyama-zk/ingopedia/edit/master/{path}"

[output.html.print]
page-break = false

[preprocessor.katex]
after = ["links"]
Binary file added src/.DS_Store
Binary file not shown.
25 changes: 25 additions & 0 deletions src/Arithmzk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Arithmetization

- **General**
- [Arithmetic Circuits: A survey](https://www.cs.tau.ac.il/~shpilka/publications/SY10.pdf)
- [Complexity Zoo](https://complexityzoo.net/Complexity_Zoo)
- [Arithmetization schemes for snarks](https://blog.lambdaclass.com/arithmetization-schemes-for-zk-snarks/)
- [Grobner basis used in circuits](https://hackmd.io/25ZAEomYRjKEsHi61CbWiw?view)
- [Circomscribe - learn circom](https://www.zksecurity.xyz/blog/posts/circomscribe/)
- **R1CS constraint system**
- [Daira Hopwood - Efficient R1CS circuits: Video](https://www.youtube.com/watch?v=Uug5p05_wqs)
- [Quadratic Arithmetic programs R1CS 0 to H - Vitalik Buterin](https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649)
- [Aleo - Basics of R1CS Zero Knowledge Proofs: How Cryptographers can prove anything](https://www.youtube.com/watch?v=55t-UANj7k4)
- [Alex Pinto - Constraint system for snarks](http://coders-errand.com/constraint-systems-for-zk-snarks/)
- [Alex Pinto - How to build QAP](http://coders-errand.com/how-to-build-a-quadratic-arithmetic-program/)
- [Alex Pinto - Vanishing polynomial for QAP](http://coders-errand.com/the-vanishing-polynomial-for-qaps/)
- [QAP from zero to hero: Vitalik](https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649)
- [R1CS workshop - Mir](https://github.com/mir-protocol/r1cs-workshop/blob/master/workshop.pdf)
- **Plonkish arithmetization** [Refer to Plonk](./protocolszk.md)
- **AIR Arithmetization**
- [AIR to RAPs - Gabizon](https://hackmd.io/@aztec-network/plonk-arithmetiization-air)
- [AIR-Multivariate Sumcheck - W.Borgeaud](https://solvable.group/posts/air-multivariate-sumcheck/)
- [AIR assembly Bobbin Threadbare](https://docs.zkproof.org/pages/standards/accepted-workshop3/proposal-airAssembly.pdf)
- **Customizable Constraint system CCS**
- [CCS: Customizable constraint systems for succinct arguments](https://eprint.iacr.org/2023/552)
- [A multivariate AIR using Superspartan- Borgeaud](https://solvable.group/posts/super-air/)
159 changes: 159 additions & 0 deletions src/Glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# Glossary

[A](#a) [B](#b) [C](#c) [D](#d) [E](#e) [F](#f) [G](#g) [H](#h) [I](#i) [J](#j) [K](#k) [L](#l) [M](#m) [N](#n) [O](#o) [P](#p) [Q](#q) [R](#r) [S](#s) [T](#t) [U](#u) [V](#v) [W](#w) [X](#x) [Y](#y) [Z](#z)

## A

**ASIC (Application-Specific Integrated Circuit)** - A specialized integrated circuit designed for a specific application or function, offering optimized performance and efficiency by implementing dedicated hardware tailored to that specific task.

**Authentication** - The process of verifying the identity of a user, device, or system to ensure that it is genuine and authorized to access certain resources or information.

**Aurora** - Aurora is a Zero Knowledge Proof system that combines zk-SNARKs and Bulletproofs to achieve compact proofs for general-purpose computations.

**AuroraLight** - AuroraLight is an improvement over Aurora that achieves faster prover times and smaller proof sizes while maintaining its generality and security properties.

## B

**Bulletproofs** - Bulletproofs are a non-interactive Zero Knowledge Proof construction that enables efficient verification of range proofs and arithmetic circuits.

## C

**Cryptography** - The practice and study of secure communication techniques, including encryption, decryption, and various cryptographic protocols.

**Completeness** - The property of a Zero Knowledge Proof protocol that guarantees an honest prover can convince a verifier of a correct statement.

**Commitment Scheme** - A cryptographic protocol that enables a party to commit to a value without revealing it and later prove the committed value's consistency.

**Computational Zero Knowledge** - The lowest level of security among the three types of Zero Knowledge proofs, ensuring that an efficient computational algorithm cannot distinguish between valid and invalid proofs within a reasonable amount of time.

## D

## E

## F

**Fiat-Shamir Heuristic** - A technique used to transform an interactive Zero Knowledge Proof into a non-interactive form by simulating the verifier's challenges.

**FPGA (Field-Programmable Gate Array)** - A reconfigurable integrated circuit that can be programmed and reprogrammed to perform a wide range of tasks, offering flexibility and customization for various applications without requiring a fixed design.

**Fractal** - Fractal is a non-interactive Zero Knowledge Proof system that allows for scalable and efficient verification of statements in a distributed setting.

## G

**Groth16** - Groth16 is a non-interactive Zero Knowledge Proof system that utilizes elliptic curve pairings to achieve succinctness and efficient verification.

## H

**Homomorphic Encryption** - A form of encryption that allows mathematical operations to be performed on encrypted data without decrypting it.

**Hardware Acceleration** - The use of specialized hardware components or instructions to perform computations more efficiently than software-based approaches.

**Halo** - Halo is a recursive proof composition technique that enables the construction of compact Zero Knowledge Proofs for general arithmetic circuits.

**Hyrax** - Hyrax is a Zero Knowledge Proof system that provides efficiency and succinctness for verifying arithmetic and boolean circuit satisfiability.

## I

**Interactive Proof** - A Zero Knowledge Proof where the prover and verifier engage in multiple rounds of communication to establish the validity of the proof.

## J

## K

## L

**Ligero** - Ligero is a Zero Knowledge Proof system designed specifically for blockchain applications, offering low computational and storage requirements for verification.

## M

**Marlin** - Marlin is a Zero Knowledge Proof system that leverages recursive composition to construct large-scale Zero Knowledge Proofs with low proof sizes and verification times.

**Merkle Tree** - A tree data structure in cryptography that enables efficient verification of the integrity and membership of data elements.

**Multi-party Computation (MPC)** - A cryptographic protocol that enables multiple parties to jointly compute a function over their private inputs while preserving the privacy of those inputs, allowing them to collectively obtain the desired result without revealing individual data to each other.

## N

**Non-interactive Proof** - A Zero Knowledge Proof where the prover generates a single proof without any interaction with the verifier.

**NTT (Number Theoretic Transform)** - A mathematical technique used for efficient polynomial multiplication and fast Fourier transforms in various applications such as signal processing, error correction codes, and cryptography.

## O

## P

**Pairing-Based Cryptography** - A cryptographic approach that leverages mathematical pairings to perform various operations and enable advanced cryptographic protocols.

**Perfect Zero Knowledge** - A level of security provided by a Zero Knowledge proof where the verifier gains no additional knowledge about the secret information being proved, except for the validity of the statement.

**Plonk** - Plonk (Permutation-based SNARK) is a Zero Knowledge Proof system that utilizes permutation arguments to achieve succinctness and efficiency.

**Privacy** - The state of being free from unauthorized intrusion, surveillance, or disclosure of personal or sensitive information.

**Proof Of Knowledge** - A cryptographic concept where a prover demonstrates possession of certain information or knowledge to a verifier without revealing the actual information.

**Prover** - The entity in a Zero Knowledge Proof protocol that possesses knowledge of a secret and aims to prove its knowledge to the verifier.

**Pseudorandom Function** - A pseudorandom function (PRF) is a deterministic function that takes an input and produces an output that appears random, even though it is generated by a deterministic algorithm, making it indistinguishable from a truly random function for practical purposes.

## Q

**QAP (Quadratic Arithmetic Programs)** - QAP is a method to represent arithmetic circuits as quadratic polynomials, commonly used in Zero Knowledge Proof systems for efficient proof generation and verification.

## R

**R1CS (Rank-1 Constraint Systems)** - R1CS is a mathematical framework used in Zero Knowledge Proof systems to represent computational problems as sets of constraints.

**Redshift** - Redshift is a Zero Knowledge Proof system designed for blockchain applications, offering scalability, efficiency, and post-quantum security.

**Ring Signature** - A cryptographic digital signature scheme that allows a user to sign a message on behalf of a group (or ring) of potential signers, while maintaining the privacy of the actual signer's identity within the group.

## S

**Security** - The protection of hardware, software, and data from unauthorized access, theft, damage, or disruption, aiming to maintain confidentiality and integrity.

**Side-channel Attacks** - Attacks that exploit unintended information leakage, such as timing, power consumption, or electromagnetic radiation, to infer secret information.

**Statistical Zero Knowledge** - A level of security offered by a Zero Knowledge proof where the verifier cannot distinguish between a valid proof and a false proof, except with an extremely low probability.

**Sonic** - Sonic (Scalable, Non-Interactive, and Compact) is a Zero Knowledge Proof system that offers scalability and efficiency for verifying large computations.

**Soundness** - The property of a Zero Knowledge Proof protocol that ensures an honest prover cannot convince a verifier of an incorrect statement.

**Spartan** - Spartan is a Zero Knowledge Proof system that achieves transparency, scalability, and post-quantum security without requiring a trusted setup.

**Supersonic** - Supersonic is a Zero Knowledge Proof system that provides high-performance and efficient verification of arithmetic circuits and boolean satisfiability.

## T

**Trusted Execution** - The execution of a program or process in a secure and isolated environment, protecting it from tampering and unauthorized access.

**Trusted Setup** - The process of generating initial parameters for a Zero Knowledge Proof protocol, ensuring that they do not reveal any secret information.

## U

## V

**Verifier** - The entity in a Zero Knowledge Proof protocol that challenges the prover's claim and verifies the validity of the proof without gaining knowledge of the secret.

## W

**Witness Indistinguishable Proof** - A cryptographic proof that guarantees that given two valid proofs for the same statement, it is computationally infeasible for an adversary to distinguish which proof corresponds to the true witness.

## X

## Y

## Z

**Zero Knowledge Proof** - A cryptographic protocol where a prover can demonstrate knowledge of a secret without revealing the secret itself, convincing the verifier of its validity.

**Zero Knowledge Property** - The property of a Zero Knowledge Proof protocol that assures the verifier learns no additional information about the secret beyond its validity.

**Zk-rollups** - zk-rollups, short for Zero-Knowledge Rollups, are Layer 2 scaling solutions for blockchain networks that utilize zero-knowledge proofs to aggregate and validate multiple transactions off-chain, improving scalability and reducing transaction fees while maintaining the security and trustlessness of the underlying blockchain.

**zk-STARKs** - Zero-Knowledge Scalable Transparent Arguments of Knowledge (zk-STARKs) are Zero Knowledge Proofs that achieve transparency and scalability without a trusted setup.

**zk-SNARKs** - Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs) are Zero Knowledge Proofs that provide succinctness and non-interactivity.

**ZPU** - A Zero Knowledge Processing Unit (ZPU) is an application-specific integrated circuit (ASIC) designed to accelerate zero-knowledge proof computations and enhance the efficiency of cryptographic protocols.
9 changes: 9 additions & 0 deletions src/HE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Fully Homomorphic Encryption

## [Articles](./introfhe.md)

## [Schemes](./schemesfhe.md)

## [Libraries](./fhelibraries.md)

## [Mathematics](./mathfhe.md)
Loading

0 comments on commit 961217e

Please sign in to comment.