roadmap/nomos/updates/2023-09-19.html

133 lines
102 KiB
HTML
Raw Normal View History

2023-09-26 19:35:46 +00:00
<!DOCTYPE html>
2023-11-13 19:11:42 +00:00
<html><head><title>2023-09-19 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-19 Nomos weekly"/><meta property="og:description" content="2023-09-19 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-19 Weekly update of Nomos."/><meta name="generator" content="Quartz"/><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&amp;family=sans-serif:wght@400;700&amp;family=sans-serif:ital,wght@0,400;0,600;1,400;1,600&amp;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-19"><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.5C25,2
2023-09-26 19:35:46 +00:00
<hr/>
<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>Review of the “Untraceable electronic mail, return addresses, and digital pseudonyms” paper. Review of the “The Loopix anonymity system” paper.</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>
</ul>
<h4 id="development"><code>development:</code><a aria-hidden="true" tabindex="-1" href="#development" class="internal"> §</a></h4>
<ul>
<li>Polishing mixnet to make it ready for the testnet:</li>
<li>Helping preparing mixnet deployments: <a href="https://github.com/logos-co/nomos-node/pull/408" class="external">https://github.com/logos-co/nomos-node/pull/408</a></li>
<li>Reviewed mixnet connection management</li>
<li>Refactor the libp2p network backend: <a href="https://github.com/logos-co/nomos-node/tree/libp2p-refactor-yjlee" class="external">https://github.com/logos-co/nomos-node/tree/libp2p-refactor-yjlee</a> and based on that prepare to measure the quality of unobservability - <a href="https://github.com/logos-co/nomos-node/issues/391" class="external">https://github.com/logos-co/nomos-node/issues/391</a></li>
<li>Block building: <a href="https://github.com/logos-co/nomos-node/pull/401" class="external">https://github.com/logos-co/nomos-node/pull/401</a></li>
<li>Fountain codes: <a href="https://github.com/logos-co/nomos-node/pull/407" class="external">https://github.com/logos-co/nomos-node/pull/407</a></li>
<li>Got the mixnet retry PR merged: <a href="https://github.com/logos-co/nomos-node/pull/386" class="external">https://github.com/logos-co/nomos-node/pull/386</a></li>
<li>Finish the concrete error implementation for mixnet and ready for merge: <a href="https://github.com/logos-co/nomos-node/pull/405" class="external">https://github.com/logos-co/nomos-node/pull/405</a></li>
<li>WIP: fan-in message passing model for mixnode: <a href="https://github.com/logos-co/nomos-node/tree/mixnet-fan-in" class="external">https://github.com/logos-co/nomos-node/tree/mixnet-fan-in</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>Testnet preparation: <a href="https://github.com/logos-co/nomos-node/pull/410" class="external">https://github.com/logos-co/nomos-node/pull/410</a></li>
<li>Testnet POC with libp2p merged: <a href="https://github.com/logos-co/nomos-node/pull/364" class="external">https://github.com/logos-co/nomos-node/pull/364</a></li>
<li>The POC for testnet using etcd and docker compose was reviewed and merged. The mixnet functionality will be added on top of this.</li>
<li>Simulation branch overlay with 1 committee fix: <a href="https://github.com/logos-co/nomos-node/pull/402" class="external">https://github.com/logos-co/nomos-node/pull/402</a></li>
<li>A bug where branch overlay results different from tree overlay with one committee blocked research team to use simulations results. Fixed it.</li>
<li>Improvements in CI:
<ul>
<li><a href="https://github.com/logos-co/nomos-node/pull/409" class="external">https://github.com/logos-co/nomos-node/pull/409</a></li>
<li><a href="https://github.com/logos-co/nomos-node/pull/411" class="external">https://github.com/logos-co/nomos-node/pull/411</a></li>
<li><a href="https://github.com/logos-co/nomos-node/pull/412" class="external">https://github.com/logos-co/nomos-node/pull/412</a></li>
</ul>
</li>
<li>Minor improvements to remove annoying red xs from our CI</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><strong>Shadows logic:</strong> Looking at how to describe the logic of the shadow in the most clear way: It will be divided into a set of modules, each module taking care of processing a separate communication channel.</li>
<li>All channels have their logic described in adequate modules and with references to self-descripting functions. However, some of them (like how exactly to aggregate votes) must yet to be defined.</li>
<li><strong>Hastiness issues:</strong> In short, the leader, in order to limit the cost of vote aggregation can decide to not to include votes from top committees (and root in particular). This is an acceptable strategy and will lead to a correctly formed aggregation proof. The proof will include a global threshold of votes from lower committees but not from the top committees (and root committee in particular). The impact of this leaders hastiness does not break the security of the protocol as a threshold of votes is correctly gathered. However, it may limit rewards from the top committees (and root in particular), as the votes from those committees may not be needed to reach the threshold. More on that under the issues section of the PPoS doc.</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>
<h4 id="research-2"><code>research:</code><a aria-hidden="true" tabindex="-1" href="#research-2" class="internal"> §</a></h4>
<ul>
<li>First stab at privacy solution for the network layer for consensus and DA: <a href="https://www.notion.so/Practical-Private-Addressing-Network-Privacy-Component-2-2b9b4923124a4fdb81dba5d2bba1d289?d=99166164267a46589c5715175e1b3657#5e27d2010d30468f9d8f0d0928b9c639" class="external">https://www.notion.so/Practical-Private-Addressing-Network-Privacy-Component-2-2b9b4923124a4fdb81dba5d2bba1d289?d=99166164267a46589c5715175e1b3657#5e27d2010d30468f9d8f0d0928b9c639</a></li>
<li>Init survey of SoA in network privacy alternative solutions</li>
</ul>
<h4 id="development-2"><code>development:</code><a aria-hidden="true" tabindex="-1" href="#development-2" class="internal"> §</a></h4>
<ul>
<li>DA nomos core kickstart, added different pieces that were missing for abstractions: <a href="https://github.com/logos-co/nomos-node/pull/390" class="external">https://github.com/logos-co/nomos-node/pull/390</a></li>
<li>Added attestation trait</li>
<li>Added certificate trait</li>
<li>Added DaProtocol trait that abstracts encoding/decoding, and put the pieces together for blob+attestation+certificate handling.</li>
<li>Refactored (moved and restructured) da modules</li>
<li>Refactor and improve common traits - <a href="https://github.com/logos-co/nomos-node/pull/395" class="external">https://github.com/logos-co/nomos-node/pull/395</a></li>
<li>Implement a simple da protocol with full replication - <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>Implement a command to disseminate blobs through the network - <a href="https://github.com/logos-co/nomos-node/pull/396" class="external">https://github.com/logos-co/nomos-node/pull/396</a></li>
<li>Added da-service to nomos node - <a href="https://github.com/logos-co/nomos-node/pull/404" class="external">https://github.com/logos-co/nomos-node/pull/404</a></li>
<li>Housekeeping:
<ul>
<li><a href="https://github.com/logos-co/nomos-node/pull/403" class="external">https://github.com/logos-co/nomos-node/pull/403</a></li>
<li><a href="https://github.com/logos-co/nomos-node/pull/388" class="external">https://github.com/logos-co/nomos-node/pull/388</a></li>
<li><a href="https://github.com/logos-co/nomos-node/pull/399" class="external">https://github.com/logos-co/nomos-node/pull/399</a></li>
</ul>
</li>
2023-10-25 18:50:16 +00:00
</ul></article></div><div class="right sidebar"><div class="graph "><h3>Graph View</h3><div class="graph-outer"><div id="graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:1,&quot;scale&quot;:1.1,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[]}"></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
2023-09-26 19:35:46 +00:00
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-25 18:50:16 +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="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:-1,&quot;scale&quot;:0.9,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[]}"></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 class><hr/><p>Created 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">// quartz/components/scripts/quartz/components/scripts/callout.inline.ts
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>