Building Blocks

Arbitrum is a technology suite designed to scale Ethereum by the use of Rollups. Rollup is a Layer 2 (L2) blockchain that processes transactions and handles smart contracts’ computation off of the main Ethereum chain, thereby improving scalability. Arbitrum Rollup posts raw transaction data and proofs to the Ethereum chain, ensuring verifiability and censorship-resistance. In another word, it relies on the Ethereum Chain for Data Availability (DA) and inherits its security. Nonetheless, posting all the transactions data on the Ethereum chain incurs non-negligible cost.

One way to side step the Ethereum’s DA cost is to leverage Arbitrum AnyTrust protocol, which relies on a permissioned set of parties called Data Availability Committee (DAC) to manage data availability in lieu of the Ethereum Chain. The Committee has N members, of which AnyTrust assumes at least two are honest. This means that if N - 1 Committee members promise to provide access to some data, at least one of the promising parties must be honest. Since there are two honest members, and only one failed to make the promise, it follows that at least one of the promisers must be honest — and that honest member will provide data when it is needed to ensure the chain can properly function. By introducing an additional trust assumption on the DAC, Anytrust protocol can reduces transaction fees significantly.

Nonetheless, such DAC is external to the Ethereum’s ecosystem, and requires an additional trust assumption. An Ethereum-alligned equivalence to such an external DAC is offered by EigenDA. The core insight of EigenDA is that the problem of data availability does not require independent consensus to solve. In building a decentralized transient data store for Ethereum rollups, Ethereum can be used for aspects of coordination required, and data storage can be handled by EigenDA operators directly.

EigenDA works on the basis of three components:

  • Operators

  • The Disperser (untrusted)

  • Retrievers (untrusted)

EigenDA operators are third-parties running the EigenDA node software, registered in EigenLayer with stake delegated to them. EigenDA operators are responsible for storing blobs associated with valid storage requests. Valid storage requests are requests where fees are paid and the provided blob chunk verifies against the provided KZG commitment and proof. In the case of a successful verification the operator stores the blob and signs a message with the KZG commitment and the chunk index they hold, and sends it back to the disperser. EigenDA operators are collectively trusted – when writing a blob to EigenDA clients must choose the exact threshold of stake with which they would like their blob to be stored.

The EigenDA disperser is an untrusted service hosted by EigenLabs which is responsible for interfacing between EigenDA clients, operators, and contracts. EigenDA clients make dispersal requests to the disperser, which Reed-Solomon encodes the blob, calculates the encoded blob's KZG commitment, and generates a KZG proof for each chunk. Then the disperser sends chunks, KZG commitment, and KZG proofs to operators, who return signatures. The disperser then aggregates these signatures and uploads it to Ethereum in the form of calldata to the EigenDA contract. This step is a necessary precondition for slashing operators for misbehavior.

The EigenDA retriever is a service that queries EigenDA operators for blob chunks, verifies that blob chunks are accurate, and reconstructs the original blob for the user. EigenDA hosts a retriever service but client rollups may also host their own retriever as a sidecar to their sequencer.

Last updated