--- title: 2024-07-29 Nomos weekly tags: - nomos-updates date: 2024-07-29 lastmod: 2024-07-29 draft: false description: Weekly update of Nomos project tracking: https://www.notion.so/Project-Tracking-4fb69250b0114573a71c57882165eec3 --- ## `P2P Privacy` ### `Research` - Ran the [initial simulation](https://www.notion.so/DEPRECATED-Queuing-Mechanism-Comparison-8cad882fadc5431f95e38d45825ed41b?pvs=4) to compare queuing mechanisms, but found that it's better to design a specifically targeted simulation (which focuses only on queuing mechanisms) instead of using the full-cycle simulation (which simulates the full features of the protocol). - We prepared the [simulation strategy](https://www.notion.so/Nomos-Mix-Queueing-Mechanism-Experimentation-Methodology-d629af5a2d43473c9ec9ba191f6d904d?pvs=4), and simplified the simulator according to the strategy (maximizing code reuse). The simulation results can be found in the [Queuing Mechanism: Message Dissemination Time Experiments](https://www.notion.so/Queuing-Mechanism-Message-Dissemination-Time-Experiments-076335ac85fe4f30959bb2995cd3ac20?pvs=4), though this report is not the final version. The result consists of the largest set of data (It took 48h+). More analysis needs to be done on the result data to make a decision on the queuing mechanism and recommended parameters. So far, we found that the Noisy Coin Flipping Queue shows the optimal dissemination time compared to other queuing mechanisms, but we don't want to jump to conclusions. Other aspects besides dissemination time need to be tested. - In the process of enabling better progress with simulations and analytical work, wrote a methodology [document](https://www.notion.so/Nomos-Mix-Queueing-Mechanism-Experimentation-Methodology-d629af5a2d43473c9ec9ba191f6d904d?d=ca68dcc24ba64f608126870f6079c809#3e26a04da87a447f9c1c774f9a326ac2) that will guide our efforts in understanding the queueing mechanism's impact on the network and its general properties. - Analysis of the queueing system in the Nomos Mixnet node: considered a message going through k nodes where the queuing system of each node delays the message. Assuming that a message is removed with probability q from the queue, the probability distribution of the total delay is the negative binomial. From this follows that the average total delay is \frac{k}{q}​. Calculated the upper bound on the probability that the total delay is greater than the average \frac{k}{q} by the factor 1 + \epsilon. The upper bound suggests that the mentioned probability is a monotonic decreasing function of k, q, and \epsilon. The aforementioned work is summarized in [Notion](https://www.notion.so/Analysis-of-the-Nomos-Mixnet-Anonymous-Communication-AC-System-c97d73a7b8894cf7830e8345f0cc37a4?pvs=4#77b9f7d7aab14b689ea8117e509c51a6). ### `Development` - No updates this week. ## `Data Availability` ### `Research` - Draft version of DA [technical specification](https://www.notion.so/DA-Technical-Specification-c6664294d630470ba20aefb21a218f8c?d=fcf77e324acb48388b306c1701526cd6#f99988582bc74e08a50bb17b380b9b87) added. ### `Development` - [PR #678](https://github.com/logos-co/nomos-node/pull/678) DA Protobufs: DA Prost integration merged - generates rust structures for protofiles as a build step. - [PR #681](https://github.com/logos-co/nomos-node/pull/681) DA Protobufs: DA Network message types merged - Dispersal, Replication, and Sampling protocols defined as protofiles and exposed as a module in `nomos-da/network/messages`. - [PR #679](https://github.com/logos-co/nomos-node/pull/679) CI Improvements - DA Indexer integration tests improvement merged - Integration test now better determines when to expect a specific `blob_id` in a block received via the network. This test will be used with the new DA dispersal protocol. - Researching attacks on DAS; understanding better the interactions between DAS and consensus, MEV, and the properties of our current design - [summary](https://www.notion.so/DAS-Fork-choice-31b1d709c95a457c9400ace689f1d649). - [PR #680](https://github.com/logos-co/nomos-node/pull/680) - started implementing DA network stack: sketched up crates, created basic structure for 3 subprotocols (dispersal, replication, sampling), implemented Replication subprotocol (non-working, we have a bug). Also added base contract for the DA networking layer on the nomos node. That way we can start integrating it into the DA services. - [PR #683](https://github.com/logos-co/nomos-node/pull/683) - added DA network adapter trait in mempool (first step in adapting the mempool to continuously sample and verify). ## `PPoS/Consensus` ### `Research` - [PR #10](https://github.com/logos-co/nomos-pocs/pull/10) - 1st Proof of Validator PR in Circom with Merkle tree. - Extended the Proof of Validator [specification](https://www.notion.so/Proof-of-Leadership-Specifications-894a869ea4e4484c8a3b6af9bdb89443). - Continuation on reporting on studies 1 and 2 of the wealth concentration work (also redoing certain figures and improving the way results are compared) - [results and report](https://www.notion.so/Does-Crypsinous-Leader-Election-Function-lead-to-wealth-concentration-in-PoS-b81f07a791b745438443f51f00ac258f?pvs=4#1df422f6cc204cb8b362f41cda260b8b) are getting in shape. - [PR #9](https://github.com/logos-co/nomos-pocs/pull/9) - Proof of Leadership spec implementation in risc0. - Worked on the [Caulk library](https://github.com/caulk-crypto/caulk/tree/main) to understand the details of the Caulk Rust implementation. There was an error when the prover was run multiple times during the proof verification process. This error was fixed. Additionally, benchmarked the proof and verification performances for different elliptic curves. The results are added to the [spec document](https://www.notion.so/Proof-of-Validator-Specification-5cd02f594d4d4a66be5e9f1ebf95d7d8). ### `Development` - No updates this week. ## `Coordination Layer` ### `Research` - The circuit design and details used in the Zcash spec were reviewed. Sprout and Sapling circuits are older designs. The Orchard circuit is the most current version, and its cryptographic structure is already the design we are using as a reference. Relevant notes were added to this [document](https://www.notion.so/ZCash-Circuit-Design-2c1f31a465dc44b884bfef20bfb1508f). - [PR #8](https://github.com/logos-co/nomos-pocs/pull/8) - Nomos native zone deposit tx. - WIP: Nomos native zones bridge deposit. - [PR #11](https://github.com/logos-co/nomos-pocs/pull/11) - added death constraints to the transfer scenario; in this scenario, we don't do any interesting account abstraction so the death constraints are proofs of no-ops. With this change, CL is "feature complete" for the purposes of the PoC. ### `Development` - No updates this week. ## `Testnet + Insights` ### `Development` - [PR #682](https://github.com/logos-co/nomos-node/pull/682) CI Improvements - Protoc build deps for testnet and Jenkins CI merged. - [PR #684](https://github.com/logos-co/nomos-node/pull/684) Rust 1.80 (opened, not merged yet) - added an `allow[dead_code]` for `Nonce` in consensus for Clippy. Unused methods in da libp2p will be handled in separate PRs. ## `User Tools` ### `Research` - No updates this week. ### `Development` - No updates this week. ## `Miscellaneous` - No updates this week.