Owners: @Giacomo Pasini
Reviewers: 🔺@David Rusu 🔺@Álvaro Castro-Castilla 🔺@Thomas Lavaur 🔺@Mehmet
The Bedrock Mantle layer is the foundation of the Nomos architecture, on top of which the Nomos ecosystem can grow and flourish. However, it is not the place where most of the activity will happen. Instead, different portions of the ecosystem, which we will call Zones, will focus and specialize on different services and functions and attract the relevant user base. The Bedrock Mantle layer's main purpose is to provide the tools to build and manage these zones and coordinate communications.
In order for this layer to remain lightweight, it focuses on data availability and verification rather than execution. In particular, Sovereign Zones will be able to post their data and receive a guarantee that it will be available for their clients to read (through Data Availability Network Specification). Native Zones on the other hand will be able to define their state transition function (STF) and prove to the Bedrock layer their correct execution.
In the Nomos ecosystem, we see the opportunity for many different zone design choices to arise and flourish. Namely, there are two approaches to building Zones on Nomos:
This document specifies how zones can interact with the Bedrock Mantle layer to perform their functions.
At a high level, there are two main operations: create and update, which rather unsurprisingly describe how a zone first appears in the Nomos ecosystem and how it can evolve and perform its functions.
Internally, native zones have the following components:
An important aspect of Native zones is that they are permissionless: everybody can update the state of a zone as long as it follows the zone rules. A consequence of this is that we need to make sure that the data needed for the continuation of zone activity is available, as to prevent situations where a malicious actor updates of a zone and delete all of the data, impairing future progress. To avoid this, every update will check the availability of the necessary data to continue execution, as defined in the zone STF.