Owner: @Daniel Sanchez Quiros

Reviewers: 🟢@Álvaro Castro-Castilla 🟢@Gusto Bacvinka 🟢@Daniel Kashepava 🟢@Marcin Pawlowski 🟢@Mehmet

Introduction

NomosDA sampling is a sub-protocol for Data Availability Sampling (DAS), used to confirm data availability without downloading the entire dataset. In DAS, sampling clients conduct rounds of random sampling across various NomosDA subnetworks to verify available data segments. Each successful sample from a subnetwork incrementally boosts confidence in the data's availability. Once validators reach a predefined confidence threshold, the data is deemed available.

This document will describe the details of the abstracted NomosDA sampling sub-protocol, including:

Overview

For the first working version of the NomosDA protocol, we chose to implement the simplest solution possible. Therefore, the NomosDA sampling protocol v1 consists of 20 random samples from the 2048 available subnetworks, with 1 share per subnetwork**.**

The sampling process has several stages:

  1. Triggering the sampling process. Discusses the scenarios that would prompt a client to engage in sampling.
  2. Sample selection. The sampling selection algorithm randomly chooses from whom to sample using a curated list of subnetworks.
  3. Sample retrieval and verifying samples. Once a sample is selected, a request is made to the corresponding subnetwork peer.
  4. Stopping the sampling process. The protocol requires either a sampling failure or a threshold of samples to have been verified successfully for a node to stop the sampling process.

Construction

Triggering the Sampling Process

We have two main cases in which the availability of a blob is needed: