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
Export as PDF
  1. Primitives
  2. Abstract Algebra
  3. Elliptic Curve

MSM

PreviousGLV DecompositionNextPippenger's Algorithm

Last updated 1 month ago

Multi-scalar multiplication (MSM) refers to calculating the following summation:

S=∑i=1nkiPiS = \sum_{i=1}^{n}k_iP_iS=i=1∑n​ki​Pi​

Or in other words, MSM calculates the sum of groups elements PPP multiplied by scalars kkk, where nnn is the total number of scalar ∗*∗ element multiplications.

In terms of elliptic curve operations, we use MSM to calculate the sum of point-scalar multiplications. Since point addition operations are cheap based on , operation on points are best reduced to a series of additions (and/or doubles since they are also additions). The most naive reduction method for this purpose is "," though numerous additional approaches have been discovered to further reduce the total number of addition and double operations.

Here is a list of current optimizations done on MSM:

  1. (MSM optimization)

    1. Reduces number of additions and doubles in comparison to ""

  2. (optimization on or other naive bucket methods)

    1. Using , the number of required buckets per window is reduced in half

  3. (optimization for batch elliptic curve point additions)

    1. When calculating batches of point additions at once, batch inversion can be utilized to reduce the number of required field inverse operations to 1.

  4. Montgomery Multiplication (optimization on field multiplications)

    1. Efficiently computes modular arithmetic using

  5. (optimization for point-scalar multiplication)

    1. GLV is often used to decompose MSM multiplications before running separate MSM's on the smaller parts. GLV generally reduces the total number of doubles operations needed; however, more significantly, if GLV is used before , the number of buckets required is reduced to 14\frac{1}{4}41​ of the original number.

I also recommend reading of the paper . This section provides a very solid overview on lines of research for MSM optimization as of 2023.

Written by of A41

the definition of elliptic curves
Double-and-add
Pippenger's Algorithm
Double-and-add
Signed Bucket Index
Pippenger's
NAF
Batch Inversion for Batch Additions
montgomery reduction
GLV Decomposition
Signed Bucket Indexes
section 1.1
Speeding Up Multi-Scalar Multiplication over Fixed Points Towards Efficient zkSNARKs
Ashley Jeong