Expand description
§Feldman’s Verifiable Secret Sharing (VSS) Module
This module implements Feldman’s Verifiable Secret Sharing scheme, an extension of Shamir’s Secret Sharing (SSS) that adds a layer of verifiability to the shared secrets. In Feldman’s VSS, commitments to the coefficients of the polynomial used in Shamir’s scheme are publicly shared. These commitments enable any party to verify their shares without revealing the secret or the coefficients of the polynomial.
The key functionalities include:
- Generation of shares based on a secret.
- Creation of public commitments to the polynomial’s coefficients.
- Verification of shares against the public commitments.
- Reconstruction of the secret from a subset of shares using Lagrange interpolation.
This module requires Polynomial, mod_exp, lagrange_interpolation_zero and potentially other utility functions
from the utils module for its operations.
Structs§
- FeldmanVSS
Params - Represents the public parameters for the Feldman VSS scheme.
Functions§
- reconstruct_
secret - Reconstructs the secret from a set of shares using Lagrange interpolation at zero. This function is a critical part of Shamir’s Secret Sharing, enabling the recovery of the secret from a minimum number of shares without revealing the shares themselves.
- verify_
share - Verifies a share against the public commitments using the Feldman Verifiable Secret Sharing scheme. This function checks if a share is valid by verifying that g^share equals the product of the commitments raised to the power of their respective indices, all operations performed modulo q.