2023-09-26 19:35:46 +00:00
<!DOCTYPE html>
2023-10-09 15:50:45 +00:00
< html > < head > < title > 2023-09-26 Nomos weekly< / title > < meta charSet = "utf-8" / > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" / > < meta property = "og:title" content = "2023-09-26 Nomos weekly" / > < meta property = "og:description" content = "2023-09-26 Weekly update of Nomos." / > < meta property = "og:image" content = "https://roadmap.logos.co/static/og-image.png" / > < meta property = "og:width" content = "1200" / > < meta property = "og:height" content = "675" / > < link rel = "icon" href = "../../static/icon.png" / > < meta name = "description" content = "2023-09-26 Weekly update of Nomos." / > < meta name = "generator" content = "Logos Roadmaps" / > < link rel = "preconnect" href = "https://fonts.googleapis.com" / > < link rel = "preconnect" href = "https://fonts.gstatic.com" / > < link href = "../../index.css" rel = "stylesheet" type = "text/css" spa-preserve / > < link href = "https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" rel = "stylesheet" type = "text/css" spa-preserve / > < link href = "https://fonts.googleapis.com/css2?family=IBM Plex Mono&family=sans-serif:wght@400;700&family=sans-serif:ital,wght@0,400;0,600;1,400;1,600&display=swap" rel = "stylesheet" type = "text/css" spa-preserve / > < script src = "../../prescript.js" type = "application/javascript" spa-preserve > < / script > < script type = "application/javascript" spa-preserve > const fetchData = fetch ( ` ../../static/contentIndex.json ` ) . then ( data => data . json ( ) ) < / script > < / head > < body data-slug = "nomos/updates/2023-09-26" > < div id = "quartz-root" class = "page" > < div id = "quartz-body" > < div class = "left sidebar" > < h1 class = "page-title" > < a href = "../.." > Logos Collective Project Roadmaps< / a > < / h1 > < div class = "spacer mobile-only" > < / div > < div class = "search" > < div id = "search-icon" > < p > Search< / p > < div > < / div > < svg tabIndex = "0" aria-labelledby = "title desc" role = "img" xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 19.9 19.7" > < title id = "title" > Search< / title > < desc id = "desc" > Search< / desc > < g class = "search-path" fill = "none" > < path stroke-linecap = "square" d = "M18.5 18.3l-5.4-5.4" > < / path > < circle cx = "8" cy = "8" r = "7" > < / circle > < / g > < / svg > < / div > < div id = "search-container" > < div id = "search-space" > < input autocomplete = "off" id = "search-bar" name = "search" type = "text" aria-label = "Search for something" placeholder = "Search for something" / > < div id = "results-container" > < / div > < / div > < / div > < / div > < div class = "darkmode" > < input class = "toggle" id = "darkmode-toggle" type = "checkbox" tabIndex = "-1" / > < label id = "toggle-label-light" for = "darkmode-toggle" tabIndex = "-1" > < svg xmlns = "http://www.w3.org/2000/svg" xmlnsXlink = "http://www.w3.org/1999/xlink" version = "1.1" id = "dayIcon" x = "0px" y = "0px" viewBox = "0 0 35 35" style = "enable-background:new 0 0 35 35;" xmlSpace = "preserve" > < title > Light mode< / title > < path d = "M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5 S0 . 672 , 19 , 1 . 5 , 19h3C5 . 328 , 19 , 6 , 18 . 328 , 6 , 17 . 5z M7 . 5 , 26c-0 . 414 , 0-0 . 789 , 0 . 168-1 . 061 , 0 . 439l-2 , 2C4 . 168 , 28 . 711 , 4 , 29 . 086 , 4 , 29 . 5 C4 , 30 . 328 , 4 . 671 , 31 , 5 . 5 , 31c0 . 414 , 0 , 0 . 789-0 . 168 , 1 . 06-0 . 44l2-2C8 . 832 , 28 . 289 , 9 , 27 . 914 , 9 , 27 . 5C9 , 26 . 672 , 8 . 329 , 26 , 7 . 5 , 26z M17 . 5 , 6 C18 . 329 , 6 , 19 , 5 . 328 , 19 , 4 . 5v-3C19 , 0 . 672 , 18 . 329 , 0 , 17 . 5 , 0S16 , 0 . 672 , 16 , 1 . 5v3C16 , 5 . 328 , 16 . 671 , 6 , 17 . 5 , 6z M27 . 5 , 9 c0 . 414 , 0 , 0 . 789-0 . 168 , 1 . 06-0 . 439l2-2C30 . 832 , 6 . 289 , 31 , 5 . 914 , 31 , 5 . 5C31 , 4 . 672 , 30 . 329 , 4 , 29 . 5 , 4c-0 . 414 , 0-0 . 789 , 0 . 168-1 . 061 , 0 . 44 l-2 , 2C26 . 168 , 6 . 711 , 26 , 7 . 086 , 26 , 7 . 5C26 , 8 . 328 , 26 . 671 , 9 , 27 . 5 , 9z M6 . 439 , 8 . 561C6 . 711 , 8 . 832 , 7 . 086 , 9 , 7 . 5 , 9C8 . 328 , 9 , 9 , 8 . 328 , 9 , 7 . 5 c0-0 . 414-0 . 168-0 . 789-0 . 439-1 . 061l-2-2C6 . 289 , 4 . 168 , 5 . 914 , 4 , 5 . 5 , 4C4 . 672 , 4 , 4 , 4 . 672 , 4 , 5 . 5c0 , 0 . 414 , 0 . 168 , 0 . 789 , 0 . 439 , 1 . 06 L6 . 439 , 8 . 561z M33 . 5 , 16h-3c-0 . 828 , 0-1 . 5 , 0 . 672-1 . 5 , 1 . 5s0 . 672 , 1 . 5 , 1 . 5 , 1 . 5h3c0 . 828 , 0 , 1 . 5-0 . 672 , 1 . 5-1 . 5S34 . 328 , 16 , 33 . 5 , 16z M28 . 561 , 26 . 439C28 . 289 , 26 . 168 , 27 . 914 , 26 , 27 . 5 , 26c-0 . 828 , 0-1 . 5 , 0 . 672-1 . 5 , 1 . 5c0 , 0 . 414 , 0 . 168 , 0 . 789 , 0 . 439 , 1 . 06l2 , 2 C28 . 711 , 30 . 832 , 29 . 086 , 31 , 29 . 5 , 31c0 . 828 , 0 , 1 . 5-0 . 672 , 1 . 5-1 . 5c0-0 . 414-0 . 168-0 . 789-0 . 439-1 . 061L28 . 561 , 26 . 439z M17 . 5 , 29 c-0 . 829 , 0-1 . 5 , 0 . 672-1 . 5 , 1 . 5v3c0 , 0 . 828 , 0 . 671 , 1 . 5 , 1 . 5 , 1 . 5s1 . 5-0 . 672 , 1 . 5-1 . 5v-3C19 , 29 . 672 , 18 . 329 , 29 , 17 . 5 , 29z M17 . 5 , 7 C11 . 71 , 7 , 7 , 11 . 71 , 7 , 17 . 5S11 . 71 , 28 , 17 . 5 , 28S28 , 23 . 29 , 28 , 17 . 5S23 . 29 , 7 , 17 . 5 , 7z M17 . 5 , 25c-4 . 136 , 0-7 . 5-3 . 364-7 . 5-7 . 5 c0-4 . 136 , 3 . 364-7 . 5 , 7 . 5-7 . 5c4 . 136 , 0 , 7 . 5 , 3 . 364 , 7 . 5 , 7 . 5
2023-09-28 20:05:05 +00:00
< hr / >
2023-09-26 19:35:46 +00:00
< h3 id = "network-privacy-and-mixnet" > < code > network privacy and mixnet:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#network-privacy-and-mixnet" class = "internal" > §< / a > < / h3 >
< h4 id = "research" > < code > research:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#research" class = "internal" > §< / a > < / h4 >
< ul >
< li > With the assumption that nodes of a mixnet are selected without replacement, we performed analysis with Byzantine node presence (for specific widths and lengths). This gives the probability that there is at least one path where all nodes are Byzantine (“anonymity” failure)< / li >
< li > Evaluation in the “Loopix” paper used the mixnet with n1=2 and L=5< / li >
< li > Conclusion: probability of anonymity failure decreases when increasing length and increases with increasing width< / li >
< li > Notes provided in the overleaf document < a href = "https://www.overleaf.com/read/rybwvjftfrrg" class = "external" > https://www.overleaf.com/read/rybwvjftfrrg< / a > < / li >
< li > Discussions on how to model the network privacy for analysis; viability of the embedded mixnet design< / li >
< li > Notes (WIP): < a href = "https://www.notion.so/Network-Privacy-2dabf0aa878744e299b2ebb97120876f" class = "external" > https://www.notion.so/Network-Privacy-2dabf0aa878744e299b2ebb97120876f< / a > < / li >
< / ul >
< h4 id = "development" > < code > development:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#development" class = "internal" > §< / a > < / h4 >
< ul >
< li > Making integration tests work with FlatOverlay and RandomBeacon:
< ul >
< li > < a href = "https://github.com/logos-co/nomos-node/pull/425" class = "external" > https://github.com/logos-co/nomos-node/pull/425< / a > < / li >
< li > < a href = "https://github.com/logos-co/nomos-node/pull/426" class = "external" > https://github.com/logos-co/nomos-node/pull/426< / a > < / li >
< / ul >
< / li >
< li > Some integration tests are randomly failed. Debugging them: < a href = "https://github.com/logos-co/nomos-node/pull/437" class = "external" > https://github.com/logos-co/nomos-node/pull/437< / a > < / li >
< li > Refactoring libp2p network layer: < a href = "https://github.com/logos-co/nomos-node/pull/417" class = "external" > https://github.com/logos-co/nomos-node/pull/417< / a > < / li >
< li > Add missing error handlings in mixnet: < a href = "https://github.com/logos-co/nomos-node/pull/436" class = "external" > https://github.com/logos-co/nomos-node/pull/436< / a > (+ more coming soon)< / li >
< li > Trying to enable gathering metrics for libp2p (but needs to be discussed about how this can be used with our existing metrics service): < a href = "https://github.com/logos-co/nomos-node/pull/431" class = "external" > https://github.com/logos-co/nomos-node/pull/431< / a > < / li >
< li > New mixnet message handle PR: < a href = "https://github.com/logos-co/nomos-node/pull/435" class = "external" > https://github.com/logos-co/nomos-node/pull/435< / a > < / li >
< li > QC checks: < a href = "https://github.com/logos-co/nomos-node/pull/430" class = "external" > https://github.com/logos-co/nomos-node/pull/430< / a > < / li >
< / ul >
2023-09-28 20:05:05 +00:00
< hr / >
2023-09-26 19:35:46 +00:00
< h3 id = "testnet" > < code > testnet:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#testnet" class = "internal" > §< / a > < / h3 >
< h4 id = "development-1" > < code > development:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#development-1" class = "internal" > §< / a > < / h4 >
< ul >
< li > TreeOverlay in Nomos node:
< ul >
< li > < a href = "https://github.com/logos-co/nomos-node/pull/415" class = "external" > https://github.com/logos-co/nomos-node/pull/415< / a > < / li >
< li > < a href = "https://github.com/logos-co/nomos-node/pull/423" class = "external" > https://github.com/logos-co/nomos-node/pull/423< / a > < / li >
< / ul >
< / li >
< li > After adding tree overlay to Nomos node, integration tests started failing. Main reason was that the leader didn’ t spawn in time and nodes failed to send their votes. This mainly affected the happy path test. Work will be merged once the issues are fixed.< / li >
< li > Testnet with mixnode: WIP< / li >
< li > Work on the mixnet node in testnet continues. Ongoing inter-team discussions in regards to how we should monitor and extract info from the network. The PR for libp2p metrics might be the way to go.< / li >
< li > CI chores: < a href = "https://github.com/logos-co/nomos-node/pull/432" class = "external" > https://github.com/logos-co/nomos-node/pull/432< / a > < / li >
< / ul >
2023-09-28 20:05:05 +00:00
< hr / >
2023-09-26 19:35:46 +00:00
< h3 id = "private-pos" > < code > private PoS:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#private-pos" class = "internal" > §< / a > < / h3 >
< h4 id = "research-1" > < code > research:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#research-1" class = "internal" > §< / a > < / h4 >
< ul >
< li > Add missing function descriptions and finalize structure definitions.< / li >
< li > Defined/redefined structures used in all algorithms that required a rewrite.< / li >
< li > Updated the terminology and made the Shadows name obsolete, and now they are called Validators (for synchronization with other PoS designs).< / li >
< li > The validators logic was redesigned, improved and updated accordingly.< / li >
< li > The same was with the ledger/transactions part, and now they form a complete logic.< / li >
< li > Readability: the specification part was updated. The rest of the document is out of sync and needs to be revised as the focus was put on the specification.< / li >
< li > Critical analysis: an issue was identified and described (under the issues section) that touches on a problem where insufficient number of votes are aggregated and the need for an additional voting round before commencing an overlay tree reconstruction. This can be mitigated with an additional votes collection from late voters (before the tree timeout) or increased level of votes that are collected during initial voting collection.< / li >
< li > Review of the Delegation and Validation rewards document by Frederico.< / li >
< / ul >
2023-09-28 20:05:05 +00:00
< hr / >
2023-09-26 19:35:46 +00:00
< h3 id = "data-availability" > < code > data availability:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#data-availability" class = "internal" > §< / a > < / h3 >
2023-09-28 20:05:05 +00:00
< h4 id = "development-2" > < code > development:< / code > < a aria-hidden = "true" tabindex = "-1" href = "#development-2" class = "internal" > §< / a > < / h4 >
2023-09-26 19:35:46 +00:00
< ul >
< li > Dissemination ready
< ul >
< li > < a href = "https://github.com/logos-co/nomos-node/pull/416" class = "external" > https://github.com/logos-co/nomos-node/pull/416< / a > < / li >
< li > < a href = "https://github.com/logos-co/nomos-node/pull/400" class = "external" > https://github.com/logos-co/nomos-node/pull/400< / a > < / li >
< li > < a href = "https://github.com/logos-co/nomos-node/pull/404" class = "external" > https://github.com/logos-co/nomos-node/pull/404< / a > < / li >
< / ul >
< / li >
< li > Mempool for certificates in progress< / li >
< / ul > < / article > < / div > < div class = "right sidebar" > < div class = "graph" > < h3 > Graph View< / h3 > < div class = "graph-outer" > < div id = "graph-container" data-cfg = "{"drag":true,"zoom":true,"depth":1,"scale":1.1,"repelForce":0.5,"centerForce":0.3,"linkDistance":30,"fontSize":0.6,"opacityScale":1,"showTags":true,"removeTags":[]}" > < / div > < svg version = "1.1" id = "global-graph-icon" xmlns = "http://www.w3.org/2000/svg" xmlnsXlink = "http://www.w3.org/1999/xlink" x = "0px" y = "0px" viewBox = "0 0 55 55" fill = "currentColor" xmlSpace = "preserve" > < path d = "M49,0c-3.309,0-6,2.691-6,6c0,1.035,0.263,2.009,0.726,2.86l-9.829,9.829C32.542,17.634,30.846,17,29,17
s-3.542,0.634-4.898,1.688l-7.669-7.669C16.785,10.424,17,9.74,17,9c0-2.206-1.794-4-4-4S9,6.794,9,9s1.794,4,4,4
c0.74,0,1.424-0.215,2.019-0.567l7.669,7.669C21.634,21.458,21,23.154,21,25s0.634,3.542,1.688,4.897L10.024,42.562
C8.958,41.595,7.549,41,6,41c-3.309,0-6,2.691-6,6s2.691,6,6,6s6-2.691,6-6c0-1.035-0.263-2.009-0.726-2.86l12.829-12.829
c1.106,0.86,2.44,1.436,3.898,1.619v10.16c-2.833,0.478-5,2.942-5,5.91c0,3.309,2.691,6,6,6s6-2.691,6-6c0-2.967-2.167-5.431-5-5.91
v-10.16c1.458-0.183,2.792-0.759,3.898-1.619l7.669,7.669C41.215,39.576,41,40.26,41,41c0,2.206,1.794,4,4,4s4-1.794,4-4
s-1.794-4-4-4c-0.74,0-1.424,0.215-2.019,0.567l-7.669-7.669C36.366,28.542,37,26.846,37,25s-0.634-3.542-1.688-4.897l9.665-9.665
C46.042,11.405,47.451,12,49,12c3.309,0,6-2.691,6-6S52.309,0,49,0z M11,9c0-1.103,0.897-2,2-2s2,0.897,2,2s-0.897,2-2,2
S11,10.103,11,9z M6,51c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S8.206,51,6,51z M33,49c0,2.206-1.794,4-4,4s-4-1.794-4-4
s1.794-4,4-4S33,46.794,33,49z M29,31c-3.309,0-6-2.691-6-6s2.691-6,6-6s6,2.691,6,6S32.309,31,29,31z M47,41c0,1.103-0.897,2-2,2
2023-10-05 20:37:51 +00:00
s-2-0.897-2-2s0.897-2,2-2S47,39.897,47,41z M49,10c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S51.206,10,49,10z">< / path > < / svg > < / div > < div id = "global-graph-outer" > < div id = "global-graph-container" data-cfg = "{"drag":true,"zoom":true,"depth":-1,"scale":0.9,"repelForce":0.5,"centerForce":0.3,"linkDistance":30,"fontSize":0.6,"opacityScale":1,"showTags":true,"removeTags":[]}" > < / div > < / div > < / div > < div class = "toc desktop-only" > < button type = "button" id = "toc" > < h3 > Table of Contents< / h3 > < svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "fold" > < polyline points = "6 9 12 15 18 9" > < / polyline > < / svg > < / button > < div id = "toc-content" > < ul class = "overflow" > < li class = "depth-0" > < a href = "#nomos" data-for = "nomos" > nomos:< / a > < / li > < li class = "depth-1" > < a href = "#network-privacy-and-mixnet" data-for = "network-privacy-and-mixnet" > network privacy and mixnet:< / a > < / li > < li class = "depth-1" > < a href = "#testnet" data-for = "testnet" > testnet:< / a > < / li > < li class = "depth-1" > < a href = "#private-pos" data-for = "private-pos" > private PoS:< / a > < / li > < li class = "depth-1" > < a href = "#data-availability" data-for = "data-availability" > data availability:< / a > < / li > < / ul > < / div > < / div > < div class = "backlinks" > < h3 > Backlinks< / h3 > < ul class = "overflow" > < li > < a href = "../../nomos/monthly-reports/2023-sept" class = "internal" > 2023 September Nomos Monthly Report< / a > < / li > < / ul > < / div > < / div > < / div > < footer > < hr / > < p > Created by Logos with < a href = "https://quartz.jzhao.xyz/" > Quartz v4.1.0< / a > , © 2023< / p > < ul > < li > < a href = "https://github.com/logos-co/roadmap" > GitHub< / a > < / li > < li > < a href = "https://discord.com/invite/logos-state" > Discord Community< / a > < / li > < / ul > < / footer > < / div > < / body > < script type = "application/javascript" > / / q u a r t z / c o m p o n e n t s / s c r i p t s / q u a r t z / c o m p o n e n t s / s c r i p t s / c a l l o u t . i n l i n e . t s
2023-09-26 19:35:46 +00:00
function toggleCallout() {
const outerBlock = this.parentElement;
outerBlock.classList.toggle(`is-collapsed`);
const collapsed = outerBlock.classList.contains(`is-collapsed`);
const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight;
outerBlock.style.maxHeight = height + `px`;
let current = outerBlock;
let parent = outerBlock.parentElement;
while (parent) {
if (!parent.classList.contains(`callout`)) {
return;
}
const collapsed2 = parent.classList.contains(`is-collapsed`);
const height2 = collapsed2 ? parent.scrollHeight : parent.scrollHeight + current.scrollHeight;
parent.style.maxHeight = height2 + `px`;
current = parent;
parent = parent.parentElement;
}
}
function setupCallout() {
const collapsible = document.getElementsByClassName(
`callout is-collapsible`
);
for (const div of collapsible) {
const title = div.firstElementChild;
if (title) {
title.removeEventListener(`click`, toggleCallout);
title.addEventListener(`click`, toggleCallout);
const collapsed = div.classList.contains(`is-collapsed`);
const height = collapsed ? title.scrollHeight : div.scrollHeight;
div.style.maxHeight = height + `px`;
}
}
}
document.addEventListener(`nav`, setupCallout);
window.addEventListener(`resize`, setupCallout);
< / script > < script type = "module" >
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark'
mermaid.initialize({
startOnLoad: false,
securityLevel: 'loose',
theme: darkMode ? 'dark' : 'default'
});
document.addEventListener('nav', async () => {
await mermaid.run({
querySelector: '.mermaid'
})
});
< / script > < script src = "https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/copy-tex.min.js" type = "application/javascript" > < / script > < script src = "../../postscript.js" type = "module" > < / script > < / html >