roadmap/roles/zero-knowledge-research-eng.../index.html

451 lines
17 KiB
HTML
Raw Normal View History

2022-10-26 20:16:06 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="description"
content="at Status
Remote, Worldwide
About Status
Status is building the tools and infrastructure for the advancement of a secure, private, and open web3."
/>
<title>
Zero Knowledge Research Engineer
</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" type="image/png" href="https://roadmap.logos.co//icon.png" />
<link href="https://roadmap.logos.co/styles.7fdbd93987bfba941d84b8a4050caaba.min.css" rel="stylesheet" />
<link href="https://roadmap.logos.co/styles/_light_syntax.86a48a52faebeaaf42158b72922b1c90.min.css" rel="stylesheet" id="theme-link">
<script src="https://roadmap.logos.co/js/darkmode.4ee460c38f180dd44f1565712a1f3c8a.min.js"></script>
<script src="https://roadmap.logos.co/js/util.9825137f5e7825e8553c68ce39ac9e44.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css" integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js" integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@floating-ui/core@0.7.3"></script>
<script src="https://unpkg.com/@floating-ui/dom@0.5.4"></script>
<script src="https://roadmap.logos.co/js/popover.37b1455b8f0603154072b9467132c659.min.js"></script>
<script src="https://roadmap.logos.co/js/code-title.b35124ad8db0ba37162b886afb711cbc.min.js"></script>
<script src="https://roadmap.logos.co/js/clipboard.c20857734e53a3fb733b7443879efa61.min.js"></script>
<script src="https://roadmap.logos.co/js/callouts.7723cac461d613d118ee8bb8216b9838.min.js"></script>
<script>
const BASE_URL = "https://roadmap.logos.co/"
const fetchData = Promise.all([
2022-10-28 20:50:23 +00:00
fetch("https:\/\/roadmap.logos.co\/indices\/linkIndex.388eb6f1c6bb1f0d35021b9fbd18ef03.min.json")
2022-10-26 20:16:06 +00:00
.then(data => data.json())
.then(data => ({
index: data.index,
links: data.links,
})),
2022-10-28 20:50:23 +00:00
fetch("https:\/\/roadmap.logos.co\/indices\/contentIndex.007e8e1524a5a12db48738f64d3f07ab.min.json")
2022-10-26 20:16:06 +00:00
.then(data => data.json()),
])
.then(([{index, links}, content]) => ({
index,
links,
content,
}))
const render = () => {
const siteBaseURL = new URL(BASE_URL);
const pathBase = siteBaseURL.pathname;
const pathWindow = window.location.pathname;
const isHome = pathBase == pathWindow;
addCopyButtons();
addTitleToCodeBlocks();
addCollapsibleCallouts();
initPopover(
"https://roadmap.logos.co",
true ,
true
)
const footer = document.getElementById("footer")
if (footer) {
const container = document.getElementById("graph-container")
if (!container) return requestAnimationFrame(render)
container.textContent = ""
const drawGlobal = isHome && false ;
drawGraph(
"https://roadmap.logos.co",
drawGlobal,
[{"/moc":"#4388cc"}],
drawGlobal ? {"centerForce":1,"depth":-1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.5,"linkDistance":1,"opacityScale":3,"repelForce":1,"scale":1.4} : {"centerForce":1,"depth":1,"enableDrag":true,"enableLegend":false,"enableZoom":true,"fontSize":0.6,"linkDistance":1,"opacityScale":3,"repelForce":2,"scale":1.2}
);
}
}
const init = (doc = document) => {
addCopyButtons();
addTitleToCodeBlocks();
renderMathInElement(doc.body, {
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
],
throwOnError : false
});
};
</script>
<script type="module">
import { attachSPARouting } from "https:\/\/roadmap.logos.co\/js\/router.9d4974281069e9ebb189f642ae1e3ca2.min.js"
attachSPARouting(init, render)
</script>
</head>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XYFD95KB4J"></script>
<script>
var doNotTrack = false;
if (!doNotTrack) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XYFD95KB4J', { 'anonymize_ip': false });
}
</script>
<body>
<div id="search-container">
<div id="search-space">
<input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search"
placeholder="Search for something...">
<div id="results-container">
</div>
</div>
</div>
<script defer src="https://roadmap.logos.co/js/semantic-search.d4032d4a6a967938235ae76d08a55b46.min.js"></script>
<div class="singlePage">
<header>
<h1 id="page-title"><a href="https://roadmap.logos.co/">Logos Technical Roadmap</a></h1>
<div class="spacer"></div>
<div id="search-icon">
<p>Search</p>
<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 Icon</title><desc id="desc">Icon to open search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"/><circle cx="8" cy="8" r="7"/></g></svg>
</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" xmlns:xlink="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;" xml:space="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,25z" />
</svg>
</label>
<label id="toggle-label-dark" for='darkmode-toggle' tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background='new 0 0 100 100'" xml:space="preserve">
<title>Dark Mode</title>
<path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,22.008-14.65,35.369 c0,13.36,5.203,25.921,14.65,35.368s22.008,14.65,35.368,14.65c13.361,0,25.921-5.203,35.369-14.65 c3.872-3.871,7.064-8.328,9.491-13.246C97.826,68.608,97.611,67.309,96.76,66.458z" />
</svg>
</label>
</div>
</header>
<article>
<h1>Zero Knowledge Research Engineer</h1>
<p class="meta">
Last updated
Oct 26, 2022
<a href="https://github.com/jackyzha0/quartz/tree/hugo/content/roles/zero-knowledge-research-engineer.md" rel="noopener">Edit Source</a>
</p>
<ul class="tags">
<li><a href="https://roadmap.logos.co/tags/engineering/">Engineering</a></li>
<li><a href="https://roadmap.logos.co/tags/role/">Role</a></li>
<li><a href="https://roadmap.logos.co/tags/zero-knowledge/">Zero knowledge</a></li>
</ul>
<aside class="mainTOC">
<details >
<summary>Table of Contents</summary>
<nav id="TableOfContents"></nav>
</details>
</aside>
<p>at Status</p>
<p>Remote, Worldwide</p>
<p><strong>About Status</strong></p>
<p>Status is building the tools and infrastructure for the advancement of a secure, private, and open web3. </p>
<p>With the high level goals of preserving the right to privacy, mitigating the risk of censorship, and promoting economic trade in a transparent, open manner, Status is building a community where anyone is welcome to join and contribute.</p>
<p>As an organization, Status seeks to push the web3 ecosystem forward through research, creation of developer tools, and support of the open source community. </p>
<p>As a product, Status is an open source, Ethereum-based app that gives users the power to chat, transact, and access a revolutionary world of DApps on the decentralized web. But Status is also building foundational infrastructure for the whole Ethereum ecosystem, including the Nimbus ETH 1.0 and 2.0 clients, the Keycard hardware wallet, and the Waku messaging protocol (a continuation of Whisper).</p>
<p>As a team, Status has been completely distributed since inception.  Our team is currently 100+ core contributors strong, and welcomes a growing number of community members from all walks of life, scattered all around the globe. </p>
<p>We care deeply about open source, and our organizational structure has minimal hierarchy and no fixed work hours. We believe in working with a high degree of autonomy while supporting the organization&rsquo;s priorities.</p>
<p><strong>Who are we</strong></p>
<p>
<a href="http://vac.dev/" rel="noopener">Vac</a> <strong>builds</strong> 
<a href="https://en.wikipedia.org/wiki/Public_good" rel="noopener">public good</a> protocols for the decentralized web.</p>
<p>We do applied research based on which we build protocols, libraries and publications. Custodians of protocols that reflect 
<a href="http://vac.dev/principles" rel="noopener">a set of principles</a> - liberty, privacy, etc.</p>
<p>You can see a sample of some of our work here: 
<a href="https://vac.dev/waku-v2-ethereum-messaging" rel="noopener">Vac, Waku v2 and Ethereum Messaging</a>, 
<a href="https://vac.dev/rln-relay" rel="noopener">Privacy-preserving p2p economic spam protection in Waku v2</a>, 
<a href="https://rfc.vac.dev/spec/10/" rel="noopener">Waku v2 RFC</a>. Our attitude towards ZK: 
<a href="https://forum.vac.dev/t/vac-3-zk/97" rel="noopener">Vac &lt;3 ZK</a>.</p>
<p><strong>The role</strong></p>
<p>This role will be part of a new team that will make a provable and private WASM engine that runs everywhere. As a research engineer, you will be responsible for researching, designing, analyzing and implementing circuits that allow for proving private computation of execution in WASM. This includes having a deep understanding of relevant ZK proof systems and tooling (zk-SNARK, Circom, Plonk/Halo 2, zk-STARK, etc), as well as different architectures (zk-EVM Community Effort, Polygon Hermez and similar) and their trade-offs. You will collaborate with the Vac Research team, and work with requirements from our new Logos program. As one of the first hires of a greenfield project, you are expected to take on significant responsibility,  while collaborating with other research engineers, including compiler engineers and senior Rust engineers.</p>
<p><strong>Key responsibilities</strong> </p>
<ul>
<li>Research, analyze and design proof systems and architectures for private computation</li>
<li>Be familiar and adapt to research needs zero-knowledge circuits written in Rust Design and implement zero-knowledge circuits in Rust</li>
<li>Write specifications and communicate research findings through write-ups</li>
<li>Break down complex problems, and know what can and what cant be dealt with later</li>
<li>Perform security analysis, measure performance of and debug circuits</li>
</ul>
<p><strong>You ideally will have</strong></p>
<ul>
<li>Very strong academic or engineering background (PhD-level or equivalent in industry); relevant research experience</li>
<li>Experience with low level/strongly typed languages (C/C++/Go/Rust or Java/C#)</li>
<li>Experience with Open Source software</li>
<li>Deep understanding of Zero-Knowledge proof systems (zk-SNARK, circom, Plonk/Halo2, zk-STARK), elliptic curve cryptography, and circuit design</li>
<li>Keen communicator, eager to share your work in a wide variety of contexts, like internal and public presentations, blog posts and academic papers.</li>
<li>Experience in, and passion for, blockchain technology.</li>
<li>A strong alignment to our principles: 
<a href="https://status.im/about/#our-principles" rel="noopener">https://status.im/about/#our-principles</a></li>
</ul>
<p><strong>Bonus points if</strong> </p>
<ul>
<li>Experience in provable and/or private computation (zkEVM, other ZK VM)</li>
<li>Rust Zero Knowledge tooling</li>
<li>Experience with WebAssemblyWASM</li>
</ul>
<p>[Dont worry if you dont meet all of these criteria, wed still love to hear from you anyway if you think youd be a great fit for this role. Just explain to us why in your cover letter].</p>
<p><strong>Hiring process</strong> </p>
<p>The hiring process for this role will be:</p>
<ol>
<li>Interview with Angel/Maya from our Talent team</li>
<li>Interview with team member from the Vac team</li>
<li>Pair programming task with the Vac team</li>
<li>Interview with Oskar, the Vac team lead</li>
<li>Interview with Jacek, Program lead</li>
</ol>
<p>The steps may change along the way if we see it makes sense to adapt the interview stages, so please consider the above as a guideline.</p>
<p><strong>Compensation</strong></p>
<p>We are happy to pay in either 100% fiat or any mix of fiat and/or crypto. For more information regarding benefits at Status: 
<a href="https://people-ops.status.im/tag/perks/" rel="noopener">https://people-ops.status.im/tag/perks/</a></p>
</article>
<hr/>
<div class="page-end" id="footer">
<div class="backlinks-container">
<h3>Backlinks</h3>
<ul class="backlinks">
<li>
<a href="/roadmap/virtual-machines/overview/" data-ctx="ZK Research Engineer" data-src="/roadmap/virtual-machines/overview" class="internal-link"></a>
</li>
</ul>
</div>
<div>
<script
src="https://cdn.jsdelivr.net/npm/d3@6.7.0/dist/d3.min.js"
integrity="sha256-+7jaYCp29O1JusNWHaYtgUn6EhuP0VaFuswhNV06MyI="
crossorigin="anonymous"
></script>
<h3>Interactive Graph</h3>
<div id="graph-container"></div>
<style>
:root {
--g-node: var(--secondary);
--g-node-active: var(--primary);
--g-node-inactive: var(--visited);
--g-link: var(--outlinegray);
--g-link-active: #5a7282;
}
</style>
<script src="https://roadmap.logos.co/js/graph.abd4bc2af3869a96524d7d23b76152c7.js"></script>
</div>
</div>
<div id="contact_buttons">
<footer>
<p>Made by Logos using <a href="https://github.com/jackyzha0/quartz">Quartz</a>, © 2022</p>
<ul>
<li><a href="https://roadmap.logos.co/">Home</a></li>
<li><a href="https://github.com/logos-co/roadmap">Github</a></li></ul>
</footer>
</div>
</div>
</body>
</html>