roadmap/nomos/updates/2024-02-26.html

106 lines
122 KiB
HTML
Raw Normal View History

2024-02-27 17:00:52 +00:00
<!DOCTYPE html>
2024-04-26 09:56:31 +00:00
<html><head><title>2024-02-26 Nomos weekly</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="2024-02-26 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-02-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.5C25,21.636,21.636,25,17.5,2
2024-02-27 17:00:52 +00:00
<h3 id="research"><code>research</code><a aria-hidden="true" tabindex="-1" href="#research" class="internal"> §</a></h3>
<ul>
<li>Analysis of the fraction of compromised paths in the mix network: developed an (asymptotic) analytical framework for the analysis of the fraction of compromised paths in the randomly generated mix network. Calculated the average and variance of the fraction of compromised paths. In the regime of a finite number of layers and very large width, the variance is vanishing, and the fraction of compromised paths becomes deterministic. <a href="https://www.overleaf.com/project/64ff35bb625e39b2cad298e5" class="external">Analysis</a> of the large number of layers and large width regime is currently in progress.</li>
<li>Continued the <a href="https://www.notion.so/Populating-Mixnet-in-Cryptarchia-adf0ad10bd6b4c56b9597f7719b12092" class="external">investigation</a> of the mixnet population - analyzing the proof of mixing under the explicit staking assumption for Cryptarchia: Trying to reason the possibility to limit the number of active staking parties and uphold the same security properties as Nym has. In conclusion: without active participation of “users” (regular nodes) we cannot effectively measure the performance of the mixnet. On top of that, the engagement of the regular nodes must follow the same design as mixnet formation - it must be incentivized.</li>
</ul>
<h3 id="development"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development" class="internal"> §</a></h3>
<ul>
<li>Implemented the full spec of mixnet v1. Preparing to open a couple of small PRs by splitting a few of the bigger ones.</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>No updates.</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>The <a href="https://www.notion.so/Nomos-Tokenomics-Design-Canvas-e62e78ee0f8c4a719d1f6ffb08574241" class="external">Tokenomics Design Canvas</a> has been updated. Among other updates, it is important to mention that we added a new role to the canvas - Light nodes (Zone verifiers and replication providers).</li>
<li>Scraped cexplorer for the individual stake values held in Cardanos: <a href="https://www.notion.so/Cardano-Stake-Distribution-f3aba15545034c55966076ab6a2c4049" class="external">Notes</a>.</li>
<li>Simulations and plots to validate stake privacy analysis: <a href="https://www.notion.so/De-anonymisation-of-relative-stake-5b48f86bba3845c98f9b16f952307998?pvs=4#f01bde3808a4459aa81e8d9cc8cad278" class="external">Analysis</a>.</li>
<li>Analysis of de-anonymization of relative stake: for adversarial inference of relative stake in the leader election process, considered statistical properties of maximum likelihood (ML) estimators of relative stake. A number of empty slots were included in the ML framework but lead to an inconsistent estimator of the relative stake - this result was confirmed in simulations. The ML framework was used to infer the relative stake in simulations using synthetic and real stake (Cardano) data. Simulations suggest that at least a 1/100 fraction of the network has to be observed at any time to infer the relative stake of the top 1% nodes with high probability within T=432000 time-slots. <a href="https://www.notion.so/De-anonymisation-of-relative-stake-5b48f86bba3845c98f9b16f952307998" class="external">Summary</a> and the detailed <a href="https://www.overleaf.com/read/fzbrxvkwwscq#f2907c" class="external">analysis</a>.</li>
</ul>
<h3 id="development-2"><code>development</code><a aria-hidden="true" tabindex="-1" href="#development-2" class="internal"> §</a></h3>
<ul>
<li>Cryptarchia first <a href="https://github.com/logos-co/nomos-node/pull/583" class="external">PR</a> - Cryptarchia engine - is ready for review - its mostly a translation from specs code apart from a few routines that were made more efficient. Additional things (e.g., orphan proofs) will be added in a future iteration.</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>Studied on the BLS threshold Signature. The detailed explanations of BLS-pairing and signature aggregation are finished - <a href="https://www.notion.so/Pairing-Details-b18f5eca8dea4f26ab80698214cafdd7" class="external">document</a>.</li>
<li>Studying Taiga designs (WIP) - This <a href="https://www.notion.so/VeriZEXE-vs-Taiga-WIP-3ef9b9def27b4140bd752b0d49cba391" class="external">article</a> discusses the architectural differences between the privacy-preserving execution environments Taiga, Zexe, and VeriZexe in the context of smart contract systems.</li>
<li>Studied on the python implementation of KZG to understand the verification check problem. We solved the bug encountered previously - <a href="https://github.com/logos-co/nomos-specs/tree/da-kzg-core/da/kzg_rs" class="external">PR</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>DA API implementation for FullReplication protocol in progress: added Certificate Metadata definition and integration <a href="https://github.com/logos-co/nomos-node/pull/582" class="external">PR</a>.</li>
<li>Research on SurrealDB - captured the <a href="https://www.notion.so/Key-Value-Database-943f54941d0347aa89a0de87ad9cc43a#98f0608a34744e41abee16f5ea162617" class="external">notes</a> as part of the greater DB research document.</li>
<li>Implemented RocksDB storage service - <a href="https://github.com/logos-co/nomos-node/pull/584" class="external">PR</a>. Based on this also opened the <a href="https://github.com/logos-co/nomos-node/pull/585" class="external">PR</a> to start using RocksDB as the backend.</li>
</ul>
<h2 id="miscellaneous"><code>miscellaneous</code><a aria-hidden="true" tabindex="-1" href="#miscellaneous" class="internal"> §</a></h2>
<ul>
<li>v0.6 of Darkpaper is close to finalizing (internally). After the introduction is written, we will coordinate the public release.</li>
<li>The first <a href="https://docs.google.com/document/d/15G9t6lE7CdqA7o-x8dLwZIyRrnbV-D5E0jyRaFjgphk/edit#heading=h.89r8n54lhgro" class="external">blog</a> (Is Network Anonymity Alone Sufficient for Proof of Stake Systems) is being finalized. We have one more round of comments to review and add the blog feature to the nomos.tech website. The next blog (regarding wealth concentration in PoS) is 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="{&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="#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>