LogoLogo
LogoLogo
  • Introduction
    • About Us
    • Notations & Definitions
      • MPC
      • ZK
    • Contribute to this Site!
  • Primitives
    • Multiplication
      • Karatsuba Multiplication
      • Toom-Cook Multiplication
    • NAF (Non-adjacent form)
    • Chinese Remainder Theorem (CRT)
    • Euclidean Algorithm
      • Extended Euclidean Algorithm
      • Binary Euclidean Algorithm
      • Extended Binary Euclidean Algorithm
    • Coding Theory
      • Linear Code
    • Number Theoretic Transform
    • Abstract Algebra
      • Group
        • -Morphisms
        • Batch Inverse
      • Elliptic Curve
        • Weierstrass Curve
          • Coordinate Forms
          • Fast Elliptic Curve Arithmetic and Improved WEIL Pairing Evaluation
        • Edwards Curve
          • Coordinate Forms
          • Twisted Edwards ↔ Short Weierstrass Transformation
        • Batch Inverse for Batch Point Additions
        • Scalar Multiplication
          • Double-and-add
          • GLV Decomposition
        • MSM
          • Pippenger's Algorithm
          • Signed Bucket Index
          • CycloneMSM
          • EdMSM
          • cuZK
        • 2-Chain and 2-Cycle of Elliptic Curves
    • Encryption Scheme
      • ElGamal Encryption
    • Modular Arithmetic
      • Modular Reduction
        • Barrett Reduction
        • Montgomery Reduction
      • Modular Inverse
        • Bernstein-Yang's Inverse
    • Multiset Check
    • Sumcheck
    • Commitment Scheme
      • Fflonk
      • SHPlonk
      • Zeromorph
  • MPC
    • Yao's Garbled Circuits
    • GMW
    • BMR
  • ZK
    • Arithmetization
      • R1CS
      • PLONK
      • AIR
    • Folding
      • LatticeFold
      • Nova
        • Nova over Cycles of Curves
    • Lookup
      • Lasso
      • LogUp-GKR
    • SNARK
      • Groth16
      • HyperPlonk
      • Spartan
        • SPARK
    • STARK
      • Additive NTT
      • Basefold
      • Binius
      • Brakedown
      • CircleSTARK
      • FRI
        • FRI Security Features and Optimizations
      • DEEP FRI
      • STIR
      • WHIR
    • Distributed ZK
      • Ryan's Trick for Distributed Groth16
  • Application
    • zkLogin
    • zkHoldem
    • zkTLS
      • DECO
      • Proxying is enough
  • zkVM
Powered by GitBook
On this page
  • Sets and Groups #
  • Vectors #
  • Sampling #
  • Assertions #
  • Hash Functions #
  • Special Functions
  • Others
  • References #
Export as PDF
  1. Introduction

Notations & Definitions

PreviousAbout UsNextMPC

Last updated 27 days ago

This page is a glossary for notation and concepts present in the documentation.

Sets and Groups

  • Z\mathbb{Z}Z is the set of integers, {…,−2,−2,−1,0,1,2,… }\{\dots, -2, -2, -1, 0, 1, 2, \dots\}{…,−2,−2,−1,0,1,2,…}.

  • N\mathbb{N}N is the set of integers greater than or equal to 0, {0,1,2,… }\{0,1,2,\dots\}{0,1,2,…}.

  • [n][n][n] is the finite set of integers {1,…,n}\{1, \dots ,n\}{1,…,n}.

  • Zn\mathbb{Z}_nZn​ are the integers modulo nnn, a set associated with the equivalence classes of integers {0,1,…,n−1}\{0,1, \dots ,n−1\}{0,1,…,n−1}.

  • Zn∗\mathbb{Z}_n^∗Zn∗​ is the multiplicative group of integers modulo nnn: an element eee from Zn\mathbb{Z}_nZn​ is in Zn∗\mathbb{Z}_n^∗Zn∗​ iff gcd⁡(e,n)=1\gcd(e,n)=1gcd(e,n)=1, that is Zn∗={e∈Zn:gcd⁡(e,n)=1}\mathbb{Z}_n^* = \{e \in \mathbb{Z}_n: \gcd(e, n) = 1 \}Zn∗​={e∈Zn​:gcd(e,n)=1}. When nnn is prime, then Zn∗={1,…,n−1}\mathbb{Z}_n^* = \{1, \dots, n-1\}Zn∗​={1,…,n−1}.

  • Fp\mathbb{F}_pFp​ is the finite field of order ppp; when ppp is a prime number, these are the integers modulo ppp, Zp\mathbb{Z}_pZp​; when ppp is a prime power qkq^kqk, these are .

  • ∣S∣|S|∣S∣ is the order of a set SSS, i.e., its number of elements. For example, ∣Zn∗∣=Φ(n)|\mathbb{Z}_n^*| = \Phi(n)∣Zn∗​∣=Φ(n), and for a prime nnn, ∣Zn∗∣=n−1|\mathbb{Z}^*_n| = n - 1∣Zn∗​∣=n−1.

  • L\mathcal{L}L: An evaluation domain, typically used in FFT-based polynomial commitment schemes (e.g., domains of size a power of two).

  • R\mathcal{R}R: A relation or constraint system, such as an R1CS (Rank-1 Constraint System).

  • RS\mathsf{RS}RS: Reed-Solomon codes.

Vectors

  • a∈Zqn\bm{a} \in \mathbb{Z}_q^na∈Zqn​ is a vector (a1,…,an)(a_1, \dots ,a_n)(a1​,…,an​) with ai∈Zqa_i \in \mathbb{Z}_qai​∈Zq​ for all iii.

  • c⋅ac \cdot \bm{a}c⋅a denotes the scalar product (c⋅a1,⋯ ,c⋅an)(c \cdot a_1, \cdots ,c \cdot a_n)(c⋅a1​,⋯,c⋅an​).

  • ⟨a,b⟩\lang \bm{a}, \bm{b} \rang⟨a,b⟩ denotes the inner product ∑i=1n=ai⋅bi\sum_{i = 1}^n = a_i \cdot b_i∑i=1n​=ai​⋅bi​

In protocol specifications, we will often need to uniformly sample elements from sets. We will use the following notation:

We will use assertions in protocol descriptions. When the assertions do not hold, the protocol must abort to avoid leaking secret information.

Special Functions

Others

Sampling

x←$Xx \stackrel{\$}{\leftarrow} Xx←$X, where xxx is uniformly sampled from the set XXX.

Assertions

a=?ba\stackrel{?}=ba=?b, requires a=ba=ba=b, and aborts otherwise

a>?ba \stackrel{?}> ba>?​b, requires a>ba>ba>b, and aborts otherwise

a∈?Sa \stackrel{?}\in Sa∈?​S, requires that aaa is in the set SSS, and aborts otherwise.

Hash Functions

Hash(⋅)\mathsf{Hash}(\cdot)Hash(⋅) is a cryptographically secure domain-separated hash function.

Hash(⋅)[0:k]\mathsf{Hash}(\cdot)[0:k]Hash(⋅)[0:k] is a cryptographically secure domain-separated hash function with specific output-size of kk-bits.

deg⁡(f)\deg(f)deg(f): The degree of a polynomial fff, i.e., the highest exponent with non-zero coefficient in fff.

log⁡x\log xlogx: The logarithm of xxx (base context-dependent, often base 2 in crypto).

max⁡(x1,…,xn)\max(x_1, \dots, x_n)max(x1​,…,xn​): The maximum of a set of values.

min⁡(x1,…,xn)\min(x_1, \dots, x_n)min(x1​,…,xn​): The minimum of a set of values.

gcd⁡(n,m)\gcd(n,m)gcd(n,m) is the positive of integers nnn and mmm; when gcd⁡(n,m)=1\gcd(n,m)=1gcd(n,m)=1

, nnn and mmm are said to be coprime.

φ(n)\varphi(n)φ(n) is Euler’s ; for n≥1n \ge 1n≥1, it is the number of integers in {1,…,n}\{1, \dots ,n\}{1,…,n} coprime with nnn.

A Montgomery form of a∈ZNa \in \mathbb{Z}_Na∈ZN​ is represented by aˉ=aRmod  N\bar{a} = aR \mod Naˉ=aRmodN, given a modulus NNN and a Montgomery radix RRR such that gcd⁡(N,R)=1\gcd (N, R) = 1gcd(N,R)=1.

References

#
#
#
#
https://www.zkdocs.com/docs/zkdocs/notation/
#
Galois fields
#
greatest common divisor
totient function