Data availability

In order to provide redundancy and trustlessness, StarkEx-powered applications must make their users' data always available.

Data availability ensures that the state you store in your users' vaults is perfectly synchronized with the state that StarkEx stores.

ZK-Rollup provides built-in trustlessness, and data is available on-chain as calldata. With Validium, the Data Availability Committee (DAC) provides a trustless solution to make your users’ data available off-chain.

Batch state approval (ZK-Rollup and Validium)

StarkEx does not submit a new state to the blockchain without your signed approval of the state. So every time that a new batch of transactions is ready, you must query StarkEx’s availability gateway, compute the new state, and approve it.

In order to help you integrate this step into your process, StarkWare provides a reference implementation of code that queries and computes the state, known as the Committee Service. You can use this code as is or modify it. Alternatively, you can write your own code. The code repository also includes a hook you can use to add your own validation code to check additional conditions on the state.

You can run this code natively, or in a container, as described in the repository documentation.

About The Data Availability Committee (Validium only)

A DAC is a group of individuals or organizations. The members of the DAC commit to providing StarkEx-powered applications with redundancy and trustlessness in storing data and ensuring that data is always available.

StarkEx does not submit a new on-chain state without the DAC’s signed approval.

DAC members install and run an implementation of the Committee Service, which does the following:

  • validates the data availability of a batch in a StarkEx instance

  • sends signed approval of the batch to StarkEx.

This service ensures that the state you store in your database, such as the state of your users’ vaults, is perfectly synchronized with the state that StarkEx stores.

Members keep copies of the off-chain data, and return that data to the public domain if StarkEx Operators do not service their users’ withdrawal requests. In such a case, the Application Smart Contract (ASC) stops accepting new state updates. The only action it allows is direct withdrawals of funds by users who are able to provide a Merkle proof for the latest state.

If you do not set up a DAC for an application using Validium, your application cannot be decentralized.

For information on StarkEx’s default Data Availability Committee members and more information on Data Availability, see StarkWare’s website.

To be a DAC member, you need to install the Committee service and connect your server.

To set up a new DAC, you need to contact prospective members of your DAC.