Owner: 🔴 @Daniel Sanchez Quiros

Reviewers: 🟡@Daniel Kashepava 🔴@Álvaro Castro-Castilla 🟡@Gusto Bacvinka

Introduction

Abstract

Data Availability (DA) is a fundamental part of the Nomos blockchain. This document specifies how we implement DA in Nomos, defines the protocol for dispersal and sampling, including message definitions, introduces the notion of DA subnets, and presents an algorithm which assigns nodes to these subnets.

Context

DA is an integral part and essential element of the Nomos blockchain design. DA as such is just an abstract concept. We could define it as follows:

<aside> 💡 **Data Availability describes the guarantee that the data which conformed a data blob is indeed available to all participants of the blockchain network for verification (validators and light clients).

In the first place, it is a test performed by validators to reach a local opinion in order to validate. In the second place, it allows light clients to verify the data availability on their own without the need to trust the network (and without downloading full blobs).**

</aside>

This document specifies how in the Nomos project we intend to implement DA, that is, what the project will do to ensure the guarantee.

For the overall architecture of Nomos, of which this specification is a drill-down component, please refer to ‣.

General Considerations

DA‘s primary responsibility is to provide assurance to any participating node in the network that a given piece of data is available. Most importantly, we emphasize that DA’s main focus is to guarantee said assurance, and not retrievability (download of data) - although implicitly the proof that data is available gives a client confidence that it could download it..

Why is this subtle distinction important? Because the main use case of DA is not the actual distribution or retrieval of data, but rather to provide proof that it is possible should it be necessary. For example, a node claims that a blob of data can be found on-chain. For this we don’t need to download the actual data. A confirmation that it is actually there, is enough (and therefore reduces bandwidth requirements).

This is what DAS (Data Availability Sampling) provides, which was published in this paper. In a nutshell, this probabilistic approach formulates that, given a set of components, by sending a small number of sampling requests with a defined set of cryptographic elements about some data to DA nodes, the requester can, with a very high mathematical probability, infer from the responses if the data in question is retrievable. This is specifically of high interest for light nodes, which do not have the means to ascertain by themselves this type of queries, as, per definition, they don’t possess all chain data.

What is this “set of components”?

Central in Preliminary Research: NomosDA Cryptographic Details [OLD] is the usage of Reed-Solomon error codes. They extend the original data by by a configurable amount (we choose an expansion factor of 2). By subsequently applying cryptographic techniques described therein, we can achieve that