P2P Privacy
§
Research
§
- Improved the simulation to avoid out-of-memory (OOM) issues—an unexpected bug. If we run heavy simulations with 90+ processes on the server, the total usage of system memory is very high, and OOM occurs after 10+ hours. We modified the handling of intermediate results to minimize memory usage.
- Measuring the Message Dissemination Time by Queue Type (Session 2.1) - because the session 2.1 simulations are too slow, we are profiling the internal behaviour of the simulation to find if something is wrong. So far, everything looks fine. The amount of computations looks correct. But, there are still more things that we need to check at the moment.
- Working on reducing the time complexity of the experiments from the parameters perspective and prepared reduced parameters for session 2, called 2.1. Afterwards, designed Session 3, and Session 4 for evaluating the behavior of a node with non-homogeneous peering degree. Finally, defined experiment 5 which should deprecate all previous experiments as it simulates most closely the behavior of the network. Relevant document.
- Designed a responsive version (two flavors) of the queuing mechanism, that alters the probability of releasing the message from the queue when the same message is received from another queue by the node. This is a more elegant solution which should deprecate all others if performing well (delay and statistically wise). Relevant document.
- Started drafting some high-level requirements for the pay-per-mix design. Heavy work in progress - relevant document.
- Analysis of the queuing system in the Nomos Mixnet node: continued with the analysis of the FIFO (First In First Out) attack where two sender nodes, observed by an adversary, send messages through kkk mix nodes to the receiver node, corrupted by the adversary. Considered a scenario when a message is delayed by the sender node by 1qS\frac{1}{q_S}qS1 (on average) and by the mix node by 1qM\frac{1}{q_M}qM1 (on average). Here qSq_SqS and qMq_MqM are, respectively, probabilities of removing a message from the out-queue of sender and mix nodes. Computed the probability of success of the FIFO attack for different ratios ρ=qSqM\rho = \frac{q_S}{q_M}ρ=qMqS. The probability of success of the FIFO attack approaches the lower bound 12\frac{1}{2}21, where the adversary doesn’t have any advantage over random guessing, with an increasing number of mix nodes kkk much faster for higher values of ρ\rhoρ. However, even for higher values of ρ\rhoρ the probability of success of the FIFO attack is increasing if the difference in latencies of connections, of two sender nodes to the first mix node, is greater than some threshold. This work is summarized in this document.
Development
§
Data Availability
§
Research
§
Development
§
- PR #688 - Finished implementing/fixing the DA network dispersal layer: implemented executor behavior, implemented validator behavior and implemented interaction test for both behaviors.
- (WIP) PR #689 - Finished implementing/fixing the DA network sampling layer.
- (WIP) PR #690 - DA Mock network service for CLI app: all parts (services, adapters, etc.) are defined and interconnected, finishing up mock implementations. Progress is a bit slower than initially anticipated with the CLI App.
PPoS/Consensus
§
Research
§
- Concluded that Caulk is not that interesting for improving proof of membership.
- Finalized the section about “Follow the Protocol” on the wealth concentration work.
- Dropped the analysis of the PoV based on PoL analysis.
- PoV spec: The main motivation for implementing Caulk was its fast update process. We examined how many operations are required for Merkle-tree updates at specific depths and compared this with point addition and multiplication on the Caulk side. For Caulk, if the updates are to be made, this value is added linearly to the process, whereas this isn’t necessary for Merkle-tree. It was observed that at 2122^{12}212 notes, the values are almost equal, and even at 2202^{20}220 notes, the difference isn’t significant. For this reason, we agreed that itisn’t necessary to spend too much time on Caulk. Additionally, for Caulk, the proof of Pedersen equivalence would also disadvantage us in terms of proof size and constraints. The spec work for PoV has been completed. This is the latest version using a Merkle tree.
Development
§
Coordination Layer
§
Research
§
- PR #15 - Added strong zone notes validation by zone ID.
- PR #16 - Added metadata to zone notes to allow for correct funds/state note validation.
- PR #19 - Refactored zone auth.
- PR #20 and PR #22 - Added support for atomic transactions.
- Created a table for notable zkVMs in the literature, currently filling in the details by reviewing the designs.
- Added the necessary details and definitions for ZCash in the relevant document.
- PR #21 - Integrated the zone deposit scenario.
- PR #23 - User side of the atomic transfer transaction.
- PR #24 - Full atomic transfer transaction.
- With the previous three PRs (in combination with previous work), we’ve got the full atomic transfer transaction working end-to-end! We still need to do some performance work to ensure executors can build a transaction within the 20s target block time (current proof time is ~400s).
Development
§
Testnet + Insights
§
Development
§
Research
§
Development
§
Miscellaneous
§