MSM
Last updated
Last updated
Multi-scalar multiplication (MSM) refers to calculating the following summation:
Or in other words, MSM calculates the sum of groups elements multiplied by scalars , where 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.
(MSM optimization)
Reduces number of additions and doubles in comparison to ""
(optimization on or other naive bucket methods)
Using , the number of required buckets per window is reduced in half
(optimization for batch elliptic curve point additions)
When calculating batches of point additions at once, batch inversion can be utilized to reduce the number of required field inverse operations to 1.
Montgomery Multiplication (optimization on field multiplications)
Efficiently computes modular arithmetic using
(optimization for point-scalar multiplication)
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 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