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

103 lines
98 KiB
HTML
Raw Normal View History

2023-10-12 17:14:42 +00:00
<!DOCTYPE html>
2023-10-23 17:19:30 +00:00
<html><head><title>2023-10-09 Nomos weekly</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="2023-10-09 Nomos weekly"/><meta property="og:description" content="Weekly update of &lt;project>."/><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="Weekly update of &lt;project>."/><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&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-10-09"><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,21.6
2023-10-12 17:14:42 +00:00
<hr/>
<h3 id="network-privacy-and-mixnet">network privacy and mixnet:<a aria-hidden="true" tabindex="-1" href="#network-privacy-and-mixnet" class="internal"> §</a></h3>
<h4 id="research">:research<a aria-hidden="true" tabindex="-1" href="#research" class="internal"> §</a></h4>
<ul>
<li>Derived asymptotic expressions for anonymity and communication failure probabilities, when taking into account certain values for population size and network size. Used simulations and analytic framework to study failure probabilities in mixnets of different sizes. Assuming delays between sending and receiving messages are independent random variables from the exponential distribution, derived probability distribution of latency. Main result: one cannot have both low probability of communication and low probability of anonymity failures. The probability of anonymity failure is decreasing with the number of layers but at the expense of increasing the latency.</li>
<li>Finalize research of network-level privacy solutions. Learned important information on: Framework for formalizing privacy, Nym and tokenomics of a Mixnet, Sphinx, and Loopix. Notes found at: <a href="https://www.notion.so/Network-Privacy-2dabf0aa878744e299b2ebb97120876f" class="external">https://www.notion.so/Network-Privacy-2dabf0aa878744e299b2ebb97120876f</a> (summaries still WIP).</li>
</ul>
<h4 id="development">:development<a aria-hidden="true" tabindex="-1" href="#development" class="internal"> §</a></h4>
<ul>
<li>Lock Overwatch to a specific revision in nomos: <a href="https://github.com/logos-co/nomos-node/pull/455" class="external">https://github.com/logos-co/nomos-node/pull/455</a>.</li>
<li>Implement and pipe services lifecycle handling in Overwatch: <a href="https://github.com/logos-co/Overwatch/pull/27" class="external">https://github.com/logos-co/Overwatch/pull/27</a>.</li>
<li>Bash is being replaced with python due to adding mixnet to docker. At the moment, small issues with node spawning order are being resolved (for tree overlay). ETA on finishing: beginning of this week.</li>
<li>Add API to return mempool item status: <a href="https://github.com/logos-co/nomos-node/pull/449" class="external">https://github.com/logos-co/nomos-node/pull/449</a>.</li>
<li>Make libp2p gossipsub settings configurable: <a href="https://github.com/logos-co/nomos-node/pull/454" class="external">https://github.com/logos-co/nomos-node/pull/454</a>.</li>
<li>Avoid temporary gossipsub errors when bootstrapping tests: <a href="https://github.com/logos-co/nomos-node/pull/442" class="external">https://github.com/logos-co/nomos-node/pull/442</a>.</li>
</ul>
<h3 id="testnet">testnet:<a aria-hidden="true" tabindex="-1" href="#testnet" class="internal"> §</a></h3>
<h4 id="development-1">development:<a aria-hidden="true" tabindex="-1" href="#development-1" class="internal"> §</a></h4>
<ul>
<li>Skeleton for nomos API service - <a href="https://github.com/logos-co/nomos-node/pull/451" class="external">https://github.com/logos-co/nomos-node/pull/451</a>.</li>
<li>Support generics for overwatch derive - <a href="https://github.com/logos-co/Overwatch/pull/26" class="external">https://github.com/logos-co/Overwatch/pull/26</a>.</li>
<li>Fix clippy warnings for rust 1.73 - <a href="https://github.com/logos-co/nomos-node/pull/452" class="external">https://github.com/logos-co/nomos-node/pull/452</a>.</li>
<li>Remove waku mentions from codebase - <a href="https://github.com/logos-co/nomos-node/pull/446" class="external">https://github.com/logos-co/nomos-node/pull/446</a>.</li>
<li>Improved integration tests.</li>
<li>Handle corner cases in the unhappy path: <a href="https://github.com/logos-co/nomos-node/pull/438" class="external">https://github.com/logos-co/nomos-node/pull/438</a>.</li>
<li>Add canonical ID to attestations and certificates: <a href="https://github.com/logos-co/nomos-node/pull/448" class="external">https://github.com/logos-co/nomos-node/pull/448</a>.</li>
<li>Add functionalities to nomos-cli: <a href="https://github.com/logos-co/nomos-node/pull/450" class="external">https://github.com/logos-co/nomos-node/pull/450</a>.</li>
</ul>
<h3 id="private-pos">private PoS:<a aria-hidden="true" tabindex="-1" href="#private-pos" class="internal"> §</a></h3>
<h4 id="research-1">research:<a aria-hidden="true" tabindex="-1" href="#research-1" class="internal"> §</a></h4>
<ul>
<li>Exploring multi-staking PPoS design for Carnot.</li>
<li>Idea: a slightly modified version of PoS, unknown how much funds a single validator has and validators are grouped by the amount of stake they have. This property gives validators group-based k-anonymity, where they are indistinguishable (on the stake level). This also enables us to assign the same voting power per each group of validators, which then can be reflected on the overlay structure.</li>
<li>Considering a couple of additional stake hiding/obfuscating techniques without making the initial design too complex. We incentivize/penalize validators based not on the voting power they represent but on the stake. We can have a system that diverges from an equality between voting power and stake, to a system that approximates the voting power based on the stake but the rewarding/penalization directly follows the stake.</li>
</ul>
<h3 id="data-availability">data availability:<a aria-hidden="true" tabindex="-1" href="#data-availability" class="internal"> §</a></h3>
<h4 id="development-2">development:<a aria-hidden="true" tabindex="-1" href="#development-2" class="internal"> §</a></h4>
<ul>
<li>DA nomos API based on the new skeleton: <a href="https://github.com/logos-co/nomos-node/pull/456" class="external">https://github.com/logos-co/nomos-node/pull/456</a>.</li>
<li>Add API to return DA blobs: <a href="https://github.com/logos-co/nomos-node/pull/453" class="external">https://github.com/logos-co/nomos-node/pull/453</a>.</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="{&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
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
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>No backlinks found</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">// quartz/components/scripts/quartz/components/scripts/callout.inline.ts
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>