EigenDA Managed Contracts
This page describe EigenDA contracts that are manage by EigenDA related actors (see the exact roles). For EigenDA-related contracts that are managed by rollups, see the rollup managed contracts page.
Middlewares Contracts
EigenDA Specific Contracts
The smart contracts can be found here.
EigenDACertVerifier
Contains a single function verifyDACertV2 which is used to verify certs
. This function’s logic is described in the Cert Validation section.
EigenDAThreshold Registry
The EigenDAThresholdRegistry contains two sets of fundamental parameters:
/// @notice mapping of blob version id to the params of the blob version
mapping(uint16 => VersionedBlobParams) public versionedBlobParams;
struct VersionedBlobParams {
uint32 maxNumOperators;
uint32 numChunks;
uint8 codingRate;
}
/// @notice Immutable security thresholds for quorums
SecurityThresholds public defaultSecurityThresholdsV2;
struct SecurityThresholds {
uint8 confirmationThreshold;
uint8 adversaryThreshold;
}
The securityThresholds are currently immutable. These are the same as the previously called liveness and safety thresholds:
- Confirmation Threshold (fka liveness threshold): minimum percentage of stake which an attacker must control in order to mount a liveness attack on the system.
- Adversary Threshold (fka safety threshold): total percentage of stake which an attacker must control in order to mount a first-order safety attack on the system.
Their values are
defaultSecurityThresholdsV2 = {
confirmationThreshold = ??,
adversaryThreshold = ??,
}
A new BlobParam version is very infrequently introduced by the EigenDA Foundation Governance, and rollups can choose which version they wish to use when dispersing a blob. Currently there is only version 0 defined, with parameters:
versionedBlobParams[0] = {
maxNumOperators = ??,
numChunks = 8192,
codingRate = ??,
}
The five parameters are intricately related by this formula which is also verified onchain by the verifyBlobSecurityParams function:
numChunks⋅(1−100γ∗codingRate)≥maxNumOperators
where $\gamma$ = confirmationThreshold - adversaryThreshold
EigenDARelayRegistry
Contains EigenDA network registered Relays’ Ethereum address and DNS hostname or IP address. BlobCertificate
s contain relayKey
(s), which can be transformed into that relay’s URL by calling relayKeyToUrl.
EigenDADisperserRegistry
Contains EigenDA network registered Dispersers’ Ethereum address. The EigenDA Network currently only supports a single Disperser, hosted by EigenLabs. The Disperser’s URL is currently static and unchanging, and can be found on our docs site in the Networks section.