Owner: @Marcin Pawlowski

Reviewers: 🟢@Alexander Mozeika 🟢@Mehmet 🟢@Daniel Sanchez Quiros 🔺@Álvaro Castro-Castilla

Introduction

The Nomos Data Availability (NomosDA or DA for short) service is a crucial component of the Nomos architecture, responsible for ensuring accessibility and persistence of the blockchain data. This document outlines the design of opinion-based rewarding mechanism that incentivises DA nodes to maintain consistent and high-quality service.

Our approach uses peer evaluation through a binary opinion system, where nodes assess the service quality of their counterparts across different subnetworks of DA. This mechanism effectively balances simplicity and effectiveness by integrating with the existing Nomos architecture while promoting decentralised quality control.

While the system has some limitations, including the subjectivity of node opinions and potential for dishonest evaluation, our design prioritises simplicity of practical implementation over other possible, but potentially more complex, validation schemes. The strength of the approach used comes from its economic design, which reduces possibilities for dishonest behaviour and collusion.

The following sections provide detailed explanations of the protocol's operation across multiple sessions, including how activity proofs are constructed and the mathematical framework used for reward distribution.

Terminology

Overview

We define an opinion-based rewarding mechanism for the NomosDA service that incentivizes nodes to maintain high quality service. The mechanism operates across three consecutive sessions:

The mechanism intentionally uses subjective node opinions rather than strict performance metrics. While this introduces some arbitrariness, it provides a simple and flexible approach that aligns with Nomos's architectural goals. The reward calculation method, which divides rewards based on the total number of nodes rather than just active ones, further discourages manipulation of the opinion system.

Protocol

  1. During the session $s$:
    1. The DA node performs a sampling for every new block $b$, where $b$ is the block number, it receives and for an old block $b-S$, where $b-S$ is the block number, for every new block received. Here $S=4320$ is the length of the session.
      1. The node selects at random (without replacement) 20 out of 2048 subnetworks (the motivation for selecting 20 can be found here: ‣). We note that the set of nodes selected does not have to be the same for old and new blocks.
      2. The node connects to a random node in each of the selected subnetworks. If a node does not respond to a sampling request, then another node is selected from the same subnetwork and the latter is repeated until success (or a specified limit is reached).
    2. During the sampling, the node measures the quality of the service provided by the selected nodes as defined below in Data Availability Sampling Quality of Service Measurement.
  2. During the session $s+1$:
    1. The DA node generates an Activity Proof that contains opinion vectors, where all of the DA nodes are opinionated by the node for a positive or negative quality of service for new and old blocks.
    2. The DA node sends an Active Message that is registered on the ledger and contains the node Activity Proof.
  3. During the session $s+2$ and after finalization of the session $s+1$:
    1. Every node that collected above Activity Threshold of positive opinions receives a fixed reward as defined in the ‣.
    2. The rewards are distributed by the Service Reward Distribution Protocol.