PPoS / Consensus / DA

Research

  • Finished the PoV integration specification (added some details, fixed the validity period of a PoV, and added new diagrams). Currently under review.
  • Studied the EIP-1559 papers, focusing on the transaction fee market and block rewards.
  • Analyzed “safety and liveness” in a variant of the Ouroboros consensus algorithm: Identified materials relevant to the “safety” and “liveness” properties of Cryptarchia, a variant of the Ouroboros Crypsinous consensus protocol. In the Ouroboros family (Ouroboros → O. Praos → O. Genesis → O. Crypsinous), the so-called “persistence” and “liveness” properties of the transaction ledger are proven. These properties are variants of the “safety and liveness” typically proven in BFT PoS protocols. The core mathematical tool used in the persistence and liveness proofs involves mapping (forked) chains to trees, which are then converted to a ternary string. This work is summarized in this (WIP) document.
  • NomosDA explainer series (draft): Completed the NomosDA docs Encoding page.
  • NomosDA explainer series (draft): Continued work on the NomosDA docs Dispersal and Sampling page.
  • PCS Comparison for DA blog post is in progress.
  • Simulation and analysis of Cryptarchia improvements: We modeled and started analyzing Cryptarchia improvements. The report is available here.

Development

  • PR #795 (Node) - Completed the implementation of the Executor network service.
  • PR #801 (Node) - DA Executor HTTP API: Implemented the reuse of common parts to handle node-related requests and added the ability to allow custom executor request handling. Also, working on similar changes for node and executor config files.
  • PR #805 (Node) - Added a DA Replication Membership test.
  • PR #806 (Node) - Implemented the Dispersal service (encoding + dispersal).
  • PR #808 (Node) - Implemented the reconstruction algorithm from the original pieces.

Mixnet

Research

  • Held internal discussions to define the details of the Nomos Mix protocol, especially regarding the role of Tier-1: Persistent Mix and the range where Tier-2: Temporal Mix is used. The output of the discussion is summarized in the discussion notes. Further discussion is still needed to solidify the first working version with low latency and bandwidth. Because of this, we couldn’t proceed with development as we aimed to clarify the protocol before starting any significant Rust codebase changes. Now that the major components of the Mix protocol are clear, we will begin writing the implementation while improving the specification documents. We will work on both spec writing and implementation in parallel, given our schedule.
  • Developed a simple “calculator” to show the theoretical limits associated with bandwidth, latency, and network size. Based on the discussions, we decided to increase the mix network’s bandwidth allowance. We also aim to find a “sweet spot” between message dissemination latency, bandwidth, and network size. Additionally, the GTR part of the design needs to be revised in terms of bandwidth and latency.
  • Pushed the documentation effort forward, completing the last part of the core mix architecture, the cover traffic. The “core” defines the basic mechanisms that make the design work, without any incentives yet.

Development

  • No updates this week.

Coordination Layer

Research

  • Reviewed current methods for global state representation, including sparse Merkle trees, indexed Merkle trees, Verkle trees, and MMR structures. We prepared this report and concluded that previous schemes were complementary, not concurrent. In cases where the proposer cannot store the entire list of nullifiers, we may use a Bloom filter to check if commitments have already been consumed and apply a specific compression mode, such as Merkle trees, to compress it.

Development

  • No updates this week.

Zone and Apps

Research

  • No updates this week.

Development

  • No updates this week.

Testnet and Tooling

Development

  • PR #804 (Node) - Removed Graylog from Docker Compose configuration as the code will later be updated to use OTLP tracing format. WIP: Refactoring nomos-log to nomos-tracing, which will be composable with different layers: tracing, logging, metrics, and profiling.

Miscellaneous

  • No updates this week.