Data availability

Your users need to know that they have control over their funds, and that they can retrieve their funds at any time, in case your application is not functioning correctly.

To facilitate this self-custody, StarkEx-powered applications must make their users' data always available.

Data availability means that the full state tree is always available, which provides users with the security of knowing that if StarkEx ever stops functioning, they can prove custody of their funds.

Volition

StarkEx supports Volition to make data available. Volition enables two sets of vaults to provide data availability as follows:

ZK-Rollup

Vault balances are published on-chain as calldata. The ZK-Rollup provides built-in trustlessness.

Vault range: 263, 263+231

Validium

Data is available off-chain. The Data Availability Committee (DAC) stores Validium vaults' balances, providing a trusted solution to make your users’ data available.

Vault range: 0, 231

One application can support both ZK-Rollup and Validium vaults. Assets can be transferred between the different vault ranges.

The vault size results in the following:

  • Each signature has 64 bits allocated for vaults.

  • When depositing to a ZK-Rollup vault, the 63rd bit of vaultId must be on. The roots of both vault trees are updated when UpdateState is called. The updated balances of rollup vaults are also emitted on-chain as calldata.

An escape hatch is checked against the tree in which the escaped vault is located.