Skip to content

Commit ef0f377

Browse files
rkuhnwill-break-it
authored andcommitted
update Logbook
1 parent 9dfe2f2 commit ef0f377

File tree

1 file changed

+39
-13
lines changed

1 file changed

+39
-13
lines changed

Logbook.md

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Leios logbook
22

3+
## 2025-02-16
4+
5+
### DeltaQ Update
6+
7+
The `topology-checker` has been upgraded with a new option to perform a ΔQSD analysis:
8+
it will extract inter-node latencies from the given topology, classify them into near/far components, and use these to build a parameterised ΔQ model.
9+
This model is then fitted against the distribution of minimal completion latencies as obtained with the Dijkstra algorithm, averaging over the distributions obtained by using each node as starting point.
10+
The resulting completion outcome is plotted to the terminal together with the extracted completion latency distribution to give a visual impression of the quality of the model fit.
11+
12+
Learnings from this exercise:
13+
14+
- latencies within the topologies examined (from the topology generator as well as the “realistic” set from the Rust simulation) very clearly consist of differing near/far components (there’s a “knee” in the graphs)
15+
- latency-weighted Dijkstra shortest paths are _extremely long_ in terms of hop count, much longer than I expected (mean 4–5, max 8 for the topology-100; min 8, max 20 for the “realistic” topology)
16+
- composing a ΔQ model as a sequence of some number of near hops (with early exit probabilities) and some number of far hops (also with early exit) yields models that roughly fit the overall shape, which is dominated by the `far` component of latencies, but there always is a significant deviation at low latencies
17+
- the deviation is that observed completion starts out much slower than the model would predict, so the model goes faster first, then “pauses” for 100ms or so, crossing the observed CDF again, then catching up — thereafter the high latency behaviour works out quite well
18+
19+
My hope had been to use a model that can be understood behaviourally, not just statistically, so that the resource usage tracking features of the `delta_q` library could be brought to bear.
20+
**This has not yet been achieved.**
21+
While the timeliness graph can be made to match to some degree, doing this results in a ΔQ expression for which at least I no longer understand the load multiplication factors that should be applied — in other words, how many peer connections are supposedly used at each step of the process.
22+
The remaining part of this week’s plan was to be able to use the fitted model to obtain a formula for creating such models algebraically;
23+
this has been put on hold because it seems easier to just generate a topology with the desired properties and then use the `topology-checker` to get the corresponding ΔQSD model.
24+
25+
In any case, the `topology-checker` now outputs the fitted ΔQSD model in the syntax needed for the `delta_q` web app, so that you can directly play with the results.
26+
327
## 2025-02-14
428

529
### Formal methods
@@ -49,17 +73,17 @@ Here's a snapshot of one recent proposal, but much discussion is underway.
4973

5074
- Every 90 days, as part of its operational certificate each SPO includes a commitment to Leios keys: let's say that Leios keys evolve every epoch or KES period, so we'd need 18 or 60 commitments, respectively. This commitment is only 124 bytes if KZG commitments are used.
5175
- Before the start of a new key evolution period, each SPOs diffuses a message opening their keys for the new period.
52-
- This message would have to be 316 bytes:
53-
- 28 bytes for the pool ID
54-
- 96 bytes for the public key
55-
- 96 bytes for the opening
56-
- 2 * 48 = 96 bytes for the proof of possession
57-
- 316 bytes/pool * 3000 pools = 948 kB would have to be stored permanently, so that syncing from genesis is possible.
58-
- This is a lot of data to squeeze into RBs.
59-
- However, It's not clear if it is safe to put it into IBs or a non-RB block.
60-
- Instead of storing this on the ledger, would could a single SNARK attest to the following?
61-
- Input is (ID of key evolution period, pool ID, public key)
62-
- Output is whether the proof of possession exists.
76+
- This message would have to be 316 bytes:
77+
- 28 bytes for the pool ID
78+
- 96 bytes for the public key
79+
- 96 bytes for the opening
80+
- 2 * 48 = 96 bytes for the proof of possession
81+
- 316 bytes/pool * 3000 pools = 948 kB would have to be stored permanently, so that syncing from genesis is possible.
82+
- This is a lot of data to squeeze into RBs.
83+
- However, It's not clear if it is safe to put it into IBs or a non-RB block.
84+
- Instead of storing this on the ledger, would could a single SNARK attest to the following?
85+
- Input is (ID of key evolution period, pool ID, public key)
86+
- Output is whether the proof of possession exists.
6387
- Certificates are really small because we've already recorded the proofs of possession at the start of the key evolution period.
6488

6589
### Certificate CPU benchmarks as a function of number of voters
@@ -82,8 +106,9 @@ A recipe for parallelizing parts of the certificate operations has been added to
82106
### Rust simulation
83107

84108
Updated event format to more closely match standards:
85-
- Timestamps are in seconds instead of nanoseconds.
86-
- CPU subtasks have a duration attached to the "started" event, and no "finished" event.
109+
110+
- Timestamps are in seconds instead of nanoseconds.
111+
- CPU subtasks have a duration attached to the "started" event, and no "finished" event.
87112

88113
Started tracking vote bundle sizes to display in visualization.
89114

@@ -115,6 +140,7 @@ The [BLS benchmarking Rust code for Leios](crypto-benchmarks.rs/) was overhauled
115140
- Benchmarks for the inputs to the Leios and Haskell, Rust, and DeltaQ simulations.
116141
- CBOR serialization and deserialization of Leios messages.
117142
- Command-line interface (with example) for trying out Leios's cryptography: create and verity votes, certificates, etc.
143+
118144
* Document specifying the algorithms and tabulating benchmark results.
119145

120146
Note that this BLS scheme is just one viable option for Leios. Ongoing work and ALBA, MUSEN, and SNARKs might result in schemes superior to this BLS approach. The key drawback is the need for periodic registration of ephemeral keys. Overall, this scheme provides the following:

0 commit comments

Comments
 (0)