-
Notifications
You must be signed in to change notification settings - Fork 85
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #104 from varun-doshi/main
Fix Broken Link: Math Survival Kit
- Loading branch information
Showing
57 changed files
with
1,895 additions
and
673 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
Oops, something went wrong.