Module avid_m

Source
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ยง

AvidMCommit
Commit type for AVID-M scheme.
AvidMParam
Public parameters of the AVID-M scheme.
AvidMScheme
Dummy struct for AVID-M scheme.
AvidMShare
Share type to be distributed among the parties.
RawAvidMShare
Share type to be distributed among the parties.

Functionsยง

radix2_domain ๐Ÿ”’
Helper: initialize a FFT domain

Type Aliasesยง

Config ๐Ÿ”’
F ๐Ÿ”’
MerkleCommit ๐Ÿ”’
MerkleProof ๐Ÿ”’
MerkleTree ๐Ÿ”’