PPoS / Consensus / DA

Research

  • Continued analysis of “safety and liveness” in a variant of the Ouroboros consensus algorithm. We reviewed the first paper, “Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol.” In addition to proving persistence and liveness properties, the paper also shows that these properties hold (with high probability) for “covert adversaries” who extend multiple chains without broadcasting. All proofs related to covert adversaries involve constants that need to be estimated. This work is summarized here.
  • Wrote a simplified version of the idealized consensus algorithm to be used in further analysis. Developed an algorithm to simulate mixing and broadcasting in the consensus algorithm based on generating random networks. This could provide more accurate latency estimates relevant to forking properties. This work is summarized here.
  • Worked through the adversarial analysis to understand how much power adversaries have in causing re-orgs on the blockchain.
  • Decided to merge the NomosDA Dispersal and Sampling page with the Verification page. This is almost finished, with the BLS explainer section still in progress.
  • Added further thoughts on EIP-1559.
  • Kicked off a document titled “Transaction Fees on Nomos,” which will summarize and define the three base layer markets: consensus, DA, and mixnet.

Development

  • PR #810 (Node) - Executor: Dispersal service mempool adapter.
  • PR #811 (Node) - Implemented a tiny executor HTTP client.
  • PR #812 (Node) - Executor: Dispersal service in executor node.
  • PR #814 (Node) - Executor: Dispersal HTTP endpoint.
  • PR #815 (Node) - Implemented executor sampling adapter.
  • PR #816 (Node) - Implemented executor verifier adapter.
  • PR #817 (Node) - Executor: Indexer types for different nodes.
  • PR #818 (Node) - Worked on testing/debugging the DA main test, created missing pieces, and refactored tests to include executors.

Mixnet

Research

  • Clarified the details of the Persistent Transmission Rate, specifically how often data messages (real and cover) are emitted and how frequently drop messages are generated. The spec document has been updated accordingly. However, some clarifications are still needed to implement the spec correctly, with ongoing discussions aiming to complete this by the end of the week.
  • Worked on finding the “sweet spot” between message dissemination latency, bandwidth, and network size. This required some design changes, summarized in this document. The conclusion is that we can propagate messages through the network using less than 1800 kbps for up to 6 seconds per hop (worst case scenario), assuming 225 ms instead of 300 ms for the average connection latency in a network of 10,000 nodes. This represents a solid result.
  • Began implementing these changes in the design documentation, leading to a major rewrite of the Tier 1 part. This rewrite not only addresses the design changes but also removes the “relayer” (an abstract message handler), opting instead for direct interaction with the upper tier of the design.

Development

  • Currently integrating the nomos-mix crate (which contains protocol details but needs updates) into the Nomos node codebase. Testing is still in progress. A PR is expected early this week. This integration is not blocked by ongoing discussions in the Research section, and the protocol details in the nomos-mix crate will be updated once discussions conclude.

Coordination Layer

Research

  • Continued preliminary research on global state representation, distinguishing between our needs for state representation and compression architecture.
  • Continued preliminary research on global state representation, analyzing the exact theoretical complexities of each approach.
  • Wrote the first conclusion of preliminary research on global state representation, suggesting we choose between validators holding the entire list and using an accumulator supporting non-membership proof with witness compression.
  • Reviewed this paper while evaluating different tree structures to avoid requiring validators to store all nullifiers. Notes are shared here. Unfortunately, this structure does not meet the desired feature.
  • Reviewed an issue related to FK20, which turned out not to be an issue. The necessary explanation is provided here.

Development

  • No updates this week.

Zone and Apps

Research

  • No updates this week.

Development

  • No updates this week.

Testnet and Tooling

Development

  • PR #813 (Node) - updated the benchmarks and added them to the CI.

Miscellaneous

  • We decided to split up the PCS content into several articles. The intro article is ready for publication and is awaiting the creation of a header by the comms team. The KZG article is also ready for publication, pending comms approval.