Introduction
Distributed key generation is an interesting key generation mechanism that exploits the Shamir Secret Sharing (SSS) scheme in a nested manner to create a ceremony where no trusted dealer is required to generate the actual shares of a private key.
Lagrange Interpolation
SSS exploits Lagrange interpolation, which states that one can uniquely determine a polynomial
of degree at most
The interpolating polynomial is then:
Hence, we have derived a unique polynomial of degree at most
Shamir Secret Sharing With Trusted Dealer
Before we move on to the DKG, consider that a trusted dealer generates a random polynomial of degree
at most
where
For each of the
To recover
However, reconstruction only needs the constant term
Here, the Lagrange coefficient is:
(The value
After all contributing participants provide their weighted shares, the secret is recovered as:
Thus secret
Distributed Key Generation
In DKG, we remove the role of the dealer entirely. Instead, only share holders participate in a key-generation ceremony to eventually calculate the shares of a private key unknown to all parties.
This time, instead of a dealer randomly generating a degree-
For reasoning about the resulting shares, define the aggregate polynomial:
Performing DKG is equivalent to performing a SSS with
The final secret is the sum of the constant terms of the individual polynomials:
Party
Thus, each party has received their secret shares.
It works because the eventual result is the same as performing the SSS ceremony with function
The recovery of the secret