AvailabilityVerifiersis MainStorage, MApprovalChain, LibConstants¶
Committeecontract is a contract that the exchange service sends committee member signatures to attesting that they have a copy of the data over which a new Merkel root is to be accepted as the new state root. In addition, the exchange contract can call an availability verifier to check if such signatures were indeed provided by a sufficient number of committee members as hard coded in the
Committeecontract for a given state transition (as reflected by the old and new vault and order roots).
The exchange contract will normally query only one
Committeecontract for data availability checks. However, in the event that the committee needs to be updated, additional availability verifiers may be registered with the exchange contract by the contract
MainGovernance. Such new availability verifiers are then also be required to attest to the data availability for state transitions and only if all the availability verifiers attest to it, the state transition is accepted.
Removal of availability verifiers is also the responsibility of the
MainGovernance. The removal process is more sensitive than availability verifier registration as it may affect the soundness of the system. Hence, this is performed in two steps:
After the expiration of a VERIFIER_REMOVAL_DELAY time lock, actual removal may be performed by calling
The removal delay ensures that a user concerned about the soundness of the system has ample time to leave the exchange.