Expand description
This module implements the AVID-M scheme, whose name came after the DispersedLedger paper https://www.usenix.org/conference/nsdi22/presentation/yang.
To disperse a payload to a number of storage nodes according to a weight
distribution, the payload is first converted into field elements and then
divided into chunks of k
elements each, and each chunk is then encoded
into n
field elements using Reed Solomon code. The parameter n
equals to
the total weight of all storage nodes, and k
is the minimum collective
weights required to recover the original payload. After the encoding, it can
be viewed as n
vectors of field elements each of length equals to the
number of chunks. The VID commitment is obtained by Merklized these n
vectors. And for dispersal, each storage node gets some vectors and their
Merkle proofs according to its weight.
Modulesยง
- config ๐
- This module configures base fields, Merkle tree, etc for the AVID-M scheme
- namespaced
- This file implements the namespaced AvidM scheme.
- proofs
- This module implements encoding proofs for the Avid-M Scheme.
Structsยง
- AvidM
Commit - Commit type for AVID-M scheme.
- AvidM
Param - Public parameters of the AVID-M scheme.
- AvidM
Scheme - Dummy struct for AVID-M scheme.
- AvidM
Share - Share type to be distributed among the parties.
- RawAvidM
Share - Share type to be distributed among the parties.
Functionsยง
- radix2_
domain ๐ - Helper: initialize a FFT domain
Type Aliasesยง
- Config ๐
- F ๐
- Merkle
Commit ๐ - Merkle
Proof ๐ - Merkle
Tree ๐