P2P Privacy

Research

  • PR #98: Updated/refined the mixnet executable spec according to the newly written (WIP) spec. It’s being reviewed at the moment and is soon to be merged.
  • PR #104: Modified the Sphinx encoding to support an arbitrary length of mix route and arbitrary maximum size of payload. Now we can let nodes select the length of mix nodes (not to exceed the max limit) and encapsulate a message larger than 1K (hardcoded in Loopix Sphinx) into a single Sphinx packet, while ensuring that all Sphinx packets have the same size.
  • PR #105: Updated the simulation according to the newly written (WIP) spec. Also made it accept different randomness seeds for each module to make each of them deterministic independently. This is the first working version, which we can extend over and over.
  • Worked on the level 1 messaging noise generation section, focused mostly on the motivational part at the moment. It’s noteworthy that the effectiveness of the mechanism is tightly coupled with the application of the queuing mechanism. Currently working on a better way of presenting the whole motivation. However, this does not block defining the noise generation mechanism, which is the next thing to do.
  • Looked at ways to model the queuing mechanism (temporal mix). Our current approach is to treat it as a timed pool mix, which is well studied and provides us with analytical tools that we can use. However, later on, it was realized that it might not be the best model to use as we are deviating from a general mix to a task-specific mix which we might not be able to reflect using the timed pool mix. Nevertheless, it still looks like a good starting point that we can modify for our particular needs.
  • Reviewed mixnet gadget specification, and consequently decided on how to move forward with simulations and further implementation.
  • Started an analysis of the queuing system: in particular, considered the random process (outlined in this document) which governs the out-queue of a single connection. The latter is a variant of the pool mix and we have set up an analytical framework, based on previous studies such as the paper “Towards an Information Theoretic Metric for Anonymity,” which will allow us to study statistical properties of out-queues. The summary can be found in this document.

Development

  • No updates this week.

Data Availability

Research

  • PR #672: Added the verifier benchmarks. The data from benchmarks can be seen in this Notion document.
  • WIP: Started the libp2p nomos DA subnetworks implementation document.
  • PR #100, direct DA connection protocol: Defined the executor to DA node direct connection message types using protobuf. The code is targeting the da-poc branch in Nomos Spec to be used with subnets PoC.
  • PR #99: Finalized the first version of the Runnable DA nodes PoC (ready for review).

Development

  • No updates this week.

PPoS/Consensus

Research

  • Added the Proof of Leadership specification to Notion. The first implementation in Circom, the one with sha256 (that didn’t take review into account) can’t be executed right now due to hardware requirements—however, this will be solved with the machine the team can now use. The implementation with the Anemoi hash function (that takes reviews into account => Taylor of order 2, more note inputs etc.) is not released yet.
  • WIP: Finalizing studies 1 and 2 of the wealth concentration work. Results and report about wealth concentration can be found here but still not in a readable format.
  • WIP: Continued implementing the Python code to analyze the selfish behavior when choosing the fork rule. This is created by adapting the Cryptarchia spec from the nomos-spec repository.

Development

  • No updates this week.

Coordination Layer

Research

  • Had a deep dive into Preconfirmations and Based Sequencing and created this document based on it.
  • PR #102: Implemented the nullifier proof (as part of the implementation of the user side of the cross zone atomic transfer PoC).
  • PR #103: Set up the infrastructure for using risc0 for CL proofs and integrating the nullifier proof from PR #102 with the CL. The nullifier proof takes about 5 seconds on a local MacBook (without Groth16 wrapping).
  • WIP: Started a design of a trustless bridge for user-zone funds.

Development

  • No updates this week.

Testnet + Insights

Development

  • PR #673: Added a base debug span, consensus, and da-verifier span for tracing logs.
  • Investigated minor CI issues and made a temporal fix for Nomos Node to build with libp2p and rustls (discussion in the relevant PR #673). For now, the rustls version is pinned, will be reverted after this issue is resolved.

User Tools

Research

  • Started the nomos-lib document (main document to abstract what we need for different binaries external to the nomos-node).
  • Started the nomos-cli document (first approach to interact with the nomos network).

Development

  • No updates this week.

Miscellaneous

  • Listed future research projects, as Key Differentiators of Nomos vs other projects, document.
  • Updated the nomos-pm repository issues for the insights dashboard.