roadmap/nomos/updates/2024-03-04.html

128 lines
117 KiB
HTML
Raw Normal View History

2024-03-05 20:33:21 +00:00
<!DOCTYPE html>
2024-03-07 19:44:34 +00:00
<html><head><title>2024-03-04 Nomos weekly</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="2024-03-04 Nomos weekly"/><meta property="og:description" content="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="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/2024-03-04"><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.636,21.636,25,17.5,2
2024-03-05 20:33:21 +00:00
<h3 id="research"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research" class="internal"> §</a></h3>
<ul>
<li>Started rewriting the “Populating mixnet” <a href="https://www.notion.so/Mixnet-with-Staking-c8ec3bfd461f4989b3ebbcf4b4b15324#2e57424c79bd44b19c4c4dd624f544b2" class="external">document</a>, leading to the creation of a new document that combines both previous mixnet-related documents. Initial editing was done, a couple of minor sections have been added, and an additional section has been created that discusses a couple of cryptoeconomical problems requiring more investigation - WIP.</li>
<li>Mixnet Incentivization: started a new <a href="https://www.notion.so/Mixnet-Incentivization-6db9731a221b49878224afd916e2b3ac" class="external">document</a> that will contain the understanding of the mixnet incentivization problem.</li>
<li>Analysis of the fraction of compromised paths in the mix network: In the regime of a finite number of layers and very large width, the variance is vanishing, and the fraction of compromised paths, alpha, becomes deterministic. This, however, is no longer true when the number of layers and width of layers are both large. For this regime derived an analytic (asymptotic) expression for the probability that <span class="math math-inline"><span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal" style="margin-right:0.0037em;">α</span></span></span></span></span> belongs to some interval <code>[alpha_0, alpha_1]</code>. Verification of this <a href="https://www.overleaf.com/project/64ff35bb625e39b2cad298e5" class="external">analytic result</a> by simulations is in progress, and the summary is <a href="https://www.notion.so/Analysis-of-failures-in-the-mix-network-feeef349720842759c59785af71c7c59?pvs=4" class="external">here</a>.</li>
</ul>
<h3 id="development"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development" class="internal"> §</a></h3>
<ul>
<li>Mixnet network backend skeleton - <a href="https://github.com/logos-co/nomos-node/pull/586" class="external">PR</a>.</li>
<li>Libp2p stream read/write - <a href="https://github.com/logos-co/nomos-node/pull/587" class="external">PR</a>.</li>
<li>Emitting packets from mixclient using libp2p stream - <a href="https://github.com/logos-co/nomos-node/pull/588" class="external">PR</a>.</li>
<li>Handle outputs from mixnode using libp2p stream/gossipsub - <a href="https://github.com/logos-co/nomos-node/pull/589" class="external">PR</a>.</li>
<li>Refactor Poisson distribution implementation - <a href="https://github.com/logos-co/nomos-node/pull/590" class="external">PR</a>.</li>
<li>Mix client Poisson emission - <a href="https://github.com/logos-co/nomos-node/pull/591" class="external">PR</a>.</li>
<li>Mix node packet handling - <a href="https://github.com/logos-co/nomos-node/pull/592" class="external">PR</a>.</li>
<li>Mix Packet / Fragment logic - <a href="https://github.com/logos-co/nomos-node/pull/593" class="external">PR</a>.</li>
<li>Move FisherYates to nomos-utils - <a href="https://github.com/logos-co/nomos-node/pull/594" class="external">PR</a>.</li>
<li>Mixnet topology - <a href="https://github.com/logos-co/nomos-node/pull/595" class="external">PR</a>.</li>
<li>Mix client/node unit tests <a href="https://github.com/logos-co/nomos-node/pull/596" class="external">PR</a>.</li>
<li>Note on the PRs above: tests will fail because the whole implementation has been split into small PRs. All tests will pass at the last PR that will be opened.</li>
<li>Taking some time to refactor network adapter codes that are tightly coupled with only the libp2p network backend.</li>
</ul>
<h2 id="testnet"><code>testnet</code><a aria-hidden="true" tabindex="-1" href="#testnet" class="internal"> §</a></h2>
<h3 id="development-1"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-1" class="internal"> §</a></h3>
<ul>
<li>WIP: Integration for explorer - <a href="https://github.com/logos-co/nomos-node/pull/603" class="external">PR</a> (marked as WIP since one of the unit tests is failing).</li>
</ul>
<h2 id="cryptarchia"><code>cryptarchia</code><a aria-hidden="true" tabindex="-1" href="#cryptarchia" class="internal"> §</a></h2>
<h3 id="research-1"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research-1" class="internal"> §</a></h3>
<ul>
<li><a href="https://www.notion.so/Nomos-Tokenomics-Design-Canvas-e62e78ee0f8c4a719d1f6ffb08574241" class="external">Tokenomics design canvas</a> has been updated with additional clarifications regarding the “Light node” role (both Zone verifiers and providers of replication).</li>
<li><a href="https://www.notion.so/Stake-Relativization-65f5ed5522b64c36b625652023318d88#1c0df180a7dc45108c2f4aa6a8a256f2" class="external">Stake relativization</a> has been updated as part of the Cryptarchia specification.</li>
<li>Started the Block rewards <a href="https://www.notion.so/Block-rewards-01d08f7a371e4b348ec022e6416e991f" class="external">document</a> to discuss and propose solutions to rewarding new block proposals.</li>
</ul>
<h3 id="development-2"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-2" class="internal"> §</a></h3>
<ul>
<li>Merged all PRs for Cryptarchia <a href="https://github.com/logos-co/nomos-node/pull/600" class="external">here</a> and <a href="https://github.com/logos-co/nomos-node/pull/583" class="external">here</a>.</li>
</ul>
<h2 id="data-availability"><code>data availability</code><a aria-hidden="true" tabindex="-1" href="#data-availability" class="internal"> §</a></h2>
<h3 id="research-2"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research-2" class="internal"> §</a></h3>
<ul>
<li>Several libraries were reviewed for the implementation of RS encoding. The usage of FFT in the implementation was examined. In the initial stage, details on how the implementation can be carried out were outlined <a href="https://www.notion.so/RS-Encoding-28aa2466d53e4f4eb19ed57c90020db8" class="external">here</a>.</li>
</ul>
<h3 id="development-3"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-3" class="internal"> §</a></h3>
<ul>
<li>KZG core functionality (working version) has been implemented - <a href="https://github.com/logos-co/nomos-specs/pull/73" class="external">PR</a>.</li>
<li>Started RS: implemented encoding.</li>
<li>Started RS: decoding implementation in progress.</li>
<li>DA API Verified certificate selection from the mempool function - <a href="https://github.com/logos-co/nomos-node/pull/598" class="external">PR</a>.</li>
<li>DA API sign attestations in full replication - <a href="https://github.com/logos-co/nomos-node/pull/599" class="external">PR</a>.</li>
<li>DA API signer tests - <a href="https://github.com/logos-co/nomos-node/pull/601" class="external">PR</a>.</li>
</ul>
<h2 id="coordination-layer"><code>coordination layer</code><a aria-hidden="true" tabindex="-1" href="#coordination-layer" class="internal"> §</a></h2>
<h3 id="research-3"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research-3" class="internal"> §</a></h3>
<ul>
<li>The examination of the Taiga design continues. Technical details and the cryptographic functions used are being researched. Verifiable encryption is under consideration, and existing libraries in the literature are being reviewed. Notes and questions related to the Taiga design are documented <a href="https://chat.openai.com/c/806109a9-202b-49e5-91dc-ffd2bd76c43f" class="external">here</a> (WIP).</li>
<li>As part of the same effort with the previous point, created two more documents <a href="https://www.notion.so/Taiga-2e9e9a002c71435395c41bb1091ce243" class="external">here</a> and <a href="https://www.notion.so/Taiga-d3581c8e635c42ddb38c07b417b4d9dd" class="external">here</a> that envelop additional efforts on studying Taiga.</li>
</ul>
<h3 id="development-4"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-4" class="internal"> §</a></h3>
<ul>
<li>No updates at the moment, heavily in research.</li>
</ul>
<h2 id="miscellaneous"><code>miscellaneous</code><a aria-hidden="true" tabindex="-1" href="#miscellaneous" class="internal"> §</a></h2>
<ul>
<li>1 new <a href="https://docs.google.com/document/d/11wgjfkDL1xfGtABfNrKcr3ECsZ2T6AKVfB6K5Gvqn7A/edit" class="external">blog post</a> is in review regarding Wealth concentration in PoS systems. Currently in the first iteration.</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="#network-privacy-and-mixnet" data-for="network-privacy-and-mixnet">network privacy and mixnet</a></li><li class="depth-1"><a href="#research" data-for="research">research</a></li><li class="depth-1"><a href="#development" data-for="development">development</a></li><li class="depth-0"><a href="#testnet" data-for="testnet">testnet</a></li><li class="depth-1"><a href="#development-1" data-for="development-1">development</a></li><li class="depth-0"><a href="#cryptarchia" data-for="cryptarchia">cryptarchia</a></li><li class="depth-1"><a href="#research-1" data-for="research-1">research</a></li><li class="depth-1"><a href="#development-2" data-for="development-2">development</a></li><li class="depth-0"><a href="#data-availability" data-for="data-availability">data availability</a></li><li class="depth-1"><a href="#research-2" data-for="research-2">research</a></li><li class="depth-1"><a href="#development-3" data-for="development-3">development</a></li><li class="depth-0"><a href="#coordination-layer" data-for="coordination-layer">coordination layer</a></li><li class="depth-1"><a href="#research-3" data-for="research-3">research</a></li><li class="depth-1"><a href="#development-4" data-for="development-4">development</a></li><li class="depth-0"><a href="#miscellaneous" data-for="miscellaneous">miscellaneous</a></li></ul></div></div><div class="backlinks "><h3>Backlinks</h3><ul class="overflow"><li>No backlinks found</li></ul></div></div></div><footer class><hr/><p>Created with <a href="https://quartz.jzhao.xyz/">Quartz v4.1.0</a>, © 2024</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>