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.
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.
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.