Owners: @Thomas Lavaur
Reviewers: 🟢@David Rusu 🟢@Giacomo Pasini 🟢@Álvaro Castro-Castilla 🟢@Mehmet
Introduction
This document aims to describe the native way in which information is represented within the Nomos system. This information is structured as notes, which are then used to generate various zero-knowledge proofs or to feed specific algorithms that demonstrate certain properties. This document will explain:
- What information they contain.
- How they are destroyed and created.
- How the different fields are derived.
- What their respective properties are.
These notes are spread across different zones and in the Mantle and can only reside in one place at a time. How notes are organized and how creation and destruction of notes are validated are detailed in Common Ledger Specification.
Finally, we will describe how notes are processed through various proofs, enabling:
- The transfer of (potentially private) information between users as they destroy and create notes.
- Common properties and representations of notes in all zones, providing cross-zone compatibility.
Overview
Note Overview
- Notes: Data is encapsulated in notes, distributed across partitions called zones. Each note is fungible and bound to its owner and the zone it resides in. Zones keep track of their notes using a UTXO model within their partition. Only the owner can consume a note which is used to build transactions and potentially creates new notes.
- Data: Notes contain data:
- $state$: Data attached to the note.
- $v$: Value associated with the note.
- $U$: Unit tied to the value.
- $nonce$: Arbitrary value to ensure the uniqueness of the notes.
- $ZoneID$: Identifier of the zone where the note resides.
- Units and Covenants: Each unit is cryptographically bound to covenants defined by its creator, dictating conditions for its creation, spending, and destruction.
- Zones: A zone is a set of notes having its own logic. Zone share the same properties concerning note management but can have various applications. Zones are described in Preliminary Research: Bedrock Mantle Specification (Native Zones).
Transaction Overview
- Transactions: A transaction is a request for the insertion and deletion of notes in the note set, and can also hold data used to interact with diverse applications.