arnaucube
arnaucube/arnaucube.comPublic Self-hosted repository
arnaucube.com/index.html
index.htmlRaw
  1<!doctype html>
  2
  3<html lang="en">
  4
  5<head>
  6  <meta charset="utf-8">
  7  <meta name="viewport" content="width=device-width, initial-scale=1">
  8
  9  <title>arnaucube</title>
 10  <meta name="description" content="arnaucube, arnaucube software developer">
 11  <meta name="keyword" content="arnaucube, arnaucode, arnau, cube, software, developer, portfolio, computer, science, electronics, telecomunications, engineer">
 12  <link rel="icon" type="image/png" href="img/logoArnauCubeFavicon.png">
 13
 14  <style>
 15    :root {
 16      --bg: #ffffff;
 17      --text: #1d3557;
 18      --muted: #58708e;
 19      --link: #4d9aa1;
 20      --code: #4d9aa1;
 21      --card: #ffffff;
 22    }
 23    body.dark-theme {
 24      --bg: #0f0f10;
 25      --text: #e9e9ea;
 26      --muted: #a9a9ad;
 27      --link: #4d9aa1;
 28      --code: #4d9aa1;
 29      --card: #0f0f10;
 30    }
 31    body {
 32      overflow-x: hidden;
 33      background: var(--bg);
 34      color: var(--text);
 35      font-family: "Avenir Next", "Montserrat", "Helvetica Neue", "Segoe UI", Arial, sans-serif;
 36      font-size:100%;
 37      margin: 0;
 38    }
 39
 40    a,
 41    a:hover,
 42    a:focus,
 43    a:active {
 44      color: var(--link);
 45      text-decoration:none;
 46    }
 47    ul{
 48      margin-top:0px;
 49    }
 50    li{
 51      margin-top: 5px;
 52    }
 53    code {
 54      font-size: 130%!important;
 55      color: var(--code)!important;
 56    }
 57    .recentwork{
 58      color: var(--link)!important;
 59      text-decoration: underline;
 60    }
 61    .gray{
 62      color: var(--muted);
 63    }
 64    h3 {
 65      margin-bottom: 2px;
 66    }
 67    h4 {
 68      margin-bottom: 2px;
 69    }
 70    .recent-work-box{
 71      background: transparent;
 72      border-radius: 0;
 73      padding-left: 20px;
 74      padding-right: 20px;
 75      padding-bottom: 10px;
 76      margin: 10px;
 77    }
 78    .main {
 79      margin: 0 auto;
 80      max-width: 760px;
 81      padding: 20px;
 82    }
 83    .theme-toggle {
 84      /*position: sticky;*/
 85      top: 12px;
 86      float: right;
 87      z-index: 2;
 88      background: var(--card);
 89      color: var(--text);
 90      border: 1px solid var(--muted);
 91      border-radius: 999px;
 92      width: 30px;
 93      height: 30px;
 94      font-size: 16px;
 95      line-height: 1;
 96      padding: 0;
 97      cursor: pointer;
 98    }
 99    @media only screen and (min-width: 450px) {
100      .tresd{
101        z-index: -2;
102        position: absolute;
103        left:30%!important;
104        top:25%;
105      }
106    }
107    @media only screen and (max-width: 450px) {
108      .tresd{
109        z-index: -2;
110        position: absolute;
111        left:0%;
112        top:25%;
113      }
114    }
115
116      
117    * {
118      box-sizing: border-box;
119    }
120    .column {
121      width: 100%;
122      padding: 0;
123      margin: 0;
124      float: none;
125    }
126    @media only screen and (max-width: 700px) {
127      .main {
128        padding: 14px;
129      }
130    }
131  </style>
132</head>
133
134<body>
135  <div class="main">
136  <button id="theme-toggle" class="theme-toggle" type="button" aria-label="Toggle theme">&#9728;</button>
137
138  <!-- <div id="tresd" style="z-index: -2; position: absolute; top:25%;"></div> -->
139  <!-- <div id="tresd" style="z-index: -2; position: absolute; left:0%;top:25%;"></div> -->
140  <div id="tresd" class="tresd"></div>
141
142  <div style="margin-top: 0;">
143    <div class="row">
144      <div class="column">
145
146    <div style="float:left;">
147        <img src="img/logoArnauCube_transparent.png" style="max-width: 100px;margin-top:30px;" \>
148      </div>
149      <br>
150      <div style="display:inline-block;max-width:500px; margin-left:10%;">
151      <!-- <div style="float:right; max-width:500px;"> -->
152      <p><b>arnaucube</b> - Applied Cryptography & Systems Engineer</p>
153        <span  style="font-size:110%;">
154          <a href="/blog">blog</a>
155          <span style="margin: 10px;">|</span>
156          <a href="/notes.html">notes</a>
157          <span style="margin: 10px;">|</span>
158          <a href="https://github.com/arnaucube" target="_blank">github</a>
159          <span style="font-style:italic;">(<a href="https://git.arnaucube.com/arnaucube?sort=moststars" target="_blank">git-mirror</a>)</span>
160          <span style="margin: 10px;">|</span>
161          <a href="https://twitter.com/arnaucube" target="_blank">twitter</a>
162        </span>
163      </div>
164
165      <br><br>
166      <div style="margin:30px;">
167          <p>I work on cryptographic protocols and security-related systems, across the boundary between cryptographic research and production engineering.</p>
168          <!-- <p>Over the past 8+ years I've worked on zero-knowledge proofs, folding schemes, digital identity, privacy protocols and infrastructure, primarily in Rust and Go.</p> -->
169          <p>My work includes
170          <ul>
171            <li>the core protocol and cryptographic stack of <b>iden3</b>,</li>
172            <li>the <b>Hermez zkRollup node</b> used for its mainnet launch,</li>
173            <li>privacy-preserving <b>voting protocols</b> using zero-knowledge proofs and blind signatures at Aragon &amp; Vocdoni,</li>
174            <li>and, most recently, <b>Sonobe</b>, a modular implementation of (zkSNARK) folding schemes including Nova, HyperNova, ProtoGalaxy and CycleFold.</li>
175          </ul></p>
176          <p>I'm particularly interested in <strong>applied cryptography, zero-knowledge proofs, secure protocol design, post-quantum cryptography, verifiable computation and cryptographic infrastructure</strong>.</p>
177        On my free time I enjoy self-studying <a href="/notes.html">some math topics</a>.
178
179        <!--
180        <br><br><br>
181        Some of the projects I've enjoyed working on over these past years:<br>
182        <ul>
183          <li>
184            <i>Folding schemes</i> implementations such as Nova, HyperNova, ProtoGalaxy, CycleFold in the
185        <a href="https://github.com/ethereum/sonobe" target="_blank">Sonobe</a> library
186          </li>
187          <li>
188            Elliptic curve <i>signature schemes</i> such as
189        <a href="https://github.com/arnaucube/ring-signatures-rs" target="_blank">bLSAG ring signatures</a>
190        and <a href="https://github.com/aragonzkresearch/ark-ec-blind-signatures" target="_blank">blind signatures</a>
191          </li>
192          <li>
193            <i>Commitment schemes</i> such as
194        <a href="https://github.com/arnaucube/kzg-commitments-study" target="_blank">KZG10</a>,
195        <a href="https://github.com/arnaucube/fri-commitment" target="_blank">FRI</a>,
196        <a href="https://github.com/arnaucube/ipa-rs" target="_blank">IPA</a>
197          </li>
198          <li>
199            other <i>cryptographic primitives</i> such as
200<a href="https://github.com/arnaucube/go-snark-study" target="_blank">go-snark</a> lib,
201<a href="https://github.com/vocdoni/arbo" target="_blank">arbo</a> (CPU-parallelized MerkleTree),
202            <a href="https://github.com/arnaucube/babyjubjub-rs" target="_blank">BabyJubJub</a> elliptic curve, <a href="https://github.com/arnaucube/poseidon-rs" target="_blank">Poseidon</a> hash
203          </li>
204          <li>
205            zk <i>circuits</i> such as <a
206          href="https://github.com/vocdoni/keccak256-circom"
207          target="_blank">keccak256-circom</a>,
208<a href="https://github.com/vocdoni/zk-franchise-proof-circuit/tree/9d25884142f0018746326d5f8c3ac714fe844edd" target="_blank">census-proof</a>,
209          and plonky2's <a href="https://github.com/0xPARC/plonky2-crypto-gadgets" target="_blank">aes-gcm cipher &amp; poseidon-cipher</a>
210          </li>
211          <li>
212            some voting system (rollup style) <i>designs &#38; implementations</i> <a
213  href="https://github.com/aragonzkresearch/research/blob/main/ovote/ovote.pdf"
214  target="_blank">OVOTE</a> and <a
215href="https://github.com/aragonzkresearch/research/blob/main/blind-ovote/blind-ovote.pdf"
216target="_blank">Blind-OVOTE</a>.
217          </li>
218          <li>
219            <i>FHE (full-homomorphic encryption)</i> schemes such as CKKS, BFV, TFHE at <a href="https://github.com/arnaucube/fhe-study" target="_blank">fhe-study</a>.
220          </li>
221          <li>
222            <i>VMs (Virtual machines)</i> such as
223            <a href="https://github.com/arnaucube/chip8-rs" target="_blank">chip8-rs</a>,
224            <a href="https://github.com/arnaucube/evm-rs" target="_blank">evm-rs</a>,
225            <a href="https://github.com/arnaucube/rv32-rs" target="_blank">Risc-V (RV32)</a>,
226          </li>
227        </ul>
228        -->
229        <!--
230        Interested on implementing cryptographic primitives (both rust libraries and zk circuits).
231Examples of things I've enjoyed working on these past years:
232
233- Rust libraries: various folding schemes implementations (Nova, HyperNova, ProtoGalaxy, CycleFold) (which included also implementing circuits), various commitment schemes (KZG, IPA, FRI), various signature schemes.
234- zk circuits: various elliptic curve signature schemes, keccak256 hash function in circom.
235
236Maybe a common denominator from all the above would be: deep rabbit hole to dive into, requiring math understanding together with coding knowledge; ie. take a paper - study it - implement it.
237        -->
238      </div>
239
240      <br>
241    </div>
242
243      <!-- <br><br><br> -->
244      <!-- <hr style="width:70%;"> -->
245      <!-- <br><br> -->
246
247      <div class="column" style="font-size:100%;">
248      <h2>Selected <b>Work</b>:</h2>
249
250      <div class="recent-work-box">
251        <h4 class="gray">2023 - 2026</h4>
252        <!-- 2023 -->
253        <h3 style="display:inline;"><a href="https://research.0xparc.org" target="_blank" class="recentwork">0xPARC Research</a> -</h3>
254        <i style="display:inline;">Applied cryptography research</i>
255        <p><span class="gray">ethereum/</span><a href="https://github.com/ethereum/sonobe" target="_blank">Sonobe</a> is a modular Rust library for folding schemes and incrementally verifiable computation. Core developer, designed the architecture of the library and the on-chain verification.</p>
256
257        My work included:
258        <ul>
259          <li>implementing <b>Nova, CycleFold, HyperNova and ProtoGalaxy</b></li>
260        <li>designing common abstractions that allow different folding schemes to be used under the same interface</li>
261        <li>designing and implementing Sonobe's <b>Ethereum verification architecture</b>, which allowed Sonobe to be the first folding schemes library to achieve verifying folding proofs on Ethereum</li>
262        <li>working on the integration of different circuit frontends and commitment schemes</li>
263        <li>implementing proof-of-concepts for newly published folding constructions, which lter got ported to Sonobe (<a href="https://github.com/arnaucube/protogalaxy-poc" target="_blank">protogalaxy-poc</a> & <a href="https://github.com/privacy-scaling-explorations/multifolding-poc" target="_blank">hypernova-poc</a>
264          )</li>
265
266        </ul>
267        Also contributed to other 0xPARC projects including <a href="https://github.com/0xPARC/pod2" target="_blank">POD2</a> and cryptographic gadgets for Plonky2 (eg. <a href="https://github.com/0xPARC/plonky2-crypto-gadgets" target="_blank">AES & Poseidon ciphers</a>).
268
269
270        <br>
271        <!--
272        Research and implementations of folding schemes.
273        <ul>
274          <li>
275            <span class="gray">ethereum/</span><a href="https://github.com/ethereum/sonobe" target="_blank">sonobe</a>: folding schemes modular library. Implemented Nova, CycleFold, HyperNova and ProtoGalaxy. Also designed the onchain verification approach which allowed Sonobe to be the first folding schemes library to achieve verifying folding proofs in Ethereum.
276            <ul><li><a href="https://github.com/ethereum/sonobe" target="_blank">sonobe</a>, <a href="https://privacy-ethereum.github.io/sonobe-docs" target="_blank">sonobe-docs</a></li></ul>
277          </li>
278          <li>
279            <a href="https://github.com/arnaucube/protogalaxy-poc" target="_blank">protogalaxy-poc</a>: ProtoGalaxy folding scheme proof of concept implementation
280          </li>
281          <li>
282            <span class="gray">privacy-scaling-explorations/</span><a href="https://github.com/privacy-scaling-explorations/multifolding-poc" target="_blank">multifolding-poc</a>: HyperNova folding scheme proof of concept implementation 
283          </li>
284          <li>
285            <span class="gray">0xPARC/</span><a href="https://github.com/0xPARC/pod2" target="_blank">pod2</a>: helped with low level primitives and related circuits such as merkletrees and recursion framework.
286          </li>
287          <li>
288            <span class="gray">0xPARC/</span><a href="https://github.com/0xPARC/plonky2-crypto-gadgets" target="_blank">plonky2-crypto-gadgets</a>: plonky2 circuits for AES-GCM encryption, Poseidon cipher.
289          </li>
290        </ul>
291        -->
292      </div>
293
294      <!-- <hr style="width:40%;margin-left:0;margin-bottom:30px;margin-top:20px;"> -->
295
296      <div class="recent-work-box">
297        <h4 class="gray">2022 - 2023</h4>
298        <!-- 2022 - 2023 -->
299        <h3 style="display:inline;"><a href="https://vocdoni.io" target="_blank" class="recentwork">Vocdoni</a> & <a href="https://research.aragon.org/about/" target="_blank" class="recentwork">Aragon-ZK-Research</a> -</h3>
300      <i style="display:inline;">Cryptography Research & Engineering.</i>
301        <br>
302        Design and implementation of privacy-preserving voting protocols using zkSNARKs and other cryptographic schemes.
303        <!-- Design and implementation of <a href="https://docs.vocdoni.io/architecture/protocol/anonymous-voting/zk-census-proof.html#implementation-spec" target="_blank">anonymous voting solutions</a> using zkSNARKs. -->
304        <!-- Introduced <a href="https://github.com/vocdoni/protocol/discussions/23" target="_blank">some</a> design <a href="https://github.com/vocdoni/zk-franchise-proof-circuit/commit/2efeecc12669279dcf493bd9c782ba80b3c87dc8" target="_blank">optimizations</a> in the circuits which reduced the number of constraints. -->
305        <!-- <br>Also, contributed to <span class="gray">vocdoni/</span><a href="https://github.com/vocdoni/vocdoni-node/commits?author=arnaucube" target="_blank">vocdoni-node</a> adding zk related code. -->
306        <!-- <br> -->
307        <!-- Other stuff implemented: -->
308        <br>
309        <p>Some of the work included:</p>
310        <b>OVOTE</b>: A validity-rollup-style voting system in which votes are processed off-chain while a zkSNARK proves the correctness of the result for on-chain execution.
311
312Designed the protocol and worked on its Circom circuits, smart contracts and Go infrastructure.
313          <!-- <span style="">OVOTE</span>: Offchain Voting with Onchain Trustless Execution (kind of a validity-Rollup for voting). Highly scalable, gass-less for users, voting system on Ethereum relying on zkSNARK proofs. -->
314          <ul>
315            <li>
316              <a href="https://research.aragon.org/docs/ovote" target="_blank">OVOTE technical document</a>
317            </li>
318            <li>
319              <a href="https://forum.aragon.org/t/we-present-ovote-offchain-voting-with-onchain-trustless-execution/3603" target="_blank">Forum post</a> with a high level explanation.
320            </li>
321            <li>
322              <span class="gray">aragonzkresearch/</span><a href="https://github.com/aragonzkresearch/ovote" target="_blank">ovote</a>: implementation of the OVOTE circuits, smart contracts & libs
323            </li>
324            <li>
325              <span class="gray">aragonzkresearch/</span><a href="https://github.com/aragonzkresearch/ovote-node" target="_blank">ovote-node</a>: OVOTE backend node implemented in Go
326            </li>
327          </ul>
328          <b>Blind-OVOTE</b>: An extension of OVOTE combining elliptic-curve blind signatures with zero-knowledge proofs to provide anonymous voting with binding ethereum on-chain execution.
329          <ul>
330            <li>
331              <a href="https://research.aragon.org/docs/blind-ovote" target="_blank">Blind-OVOTE technical document</a>
332            </li>
333            <li>
334              <a href="https://forum.aragon.org/t/blind-ovote-ovote-with-blind-signatures-for-voter-anonymity/3881" target="_blank">Forum post</a> with a high level explanation.
335            </li>
336            <li>
337              <span class="gray">aragonzkresearch/</span><a href="https://github.com/aragonzkresearch/blind-ovote" target="_blank">blind-ovote</a>: Blind-OVOTE implementation in Rust.
338            </li>
339          </ul>
340          Other work included:
341        <ul>
342          <li>
343            <span class="gray">vocdoni/</span><a href="https://github.com/vocdoni/keccak256-circom" target="_blank">keccak256-circom</a>: ethereum sha3 (keccak256) hash function implemented in Circom
344          </li>
345          <li>
346            <span class="gray">vocdoni/</span><a href="https://github.com/vocdoni/zk-franchise-proof-circuit" target="_blank">zk-census-proof</a>: anonymous census proof circuit used in Vocdoni's Blockchain (also in arkworks: <a href="https://github.com/aragonzkresearch/ark-anon-vote" target="_blank">ark-anon-vote</a>)
347          </li>
348          <li>
349            <span class="gray">vocdoni/</span><a href="https://github.com/vocdoni/arbo" target="_blank">arbo</a>: optimized CPU-parallel MerkleTree compatible with circomlib implementation, compatible with multiple hash functions
350          </li>
351            <li>
352              <span class="gray">aragonzkresearch/</span><a href="https://github.com/aragonzkresearch/ark-ec-blind-signatures" target="_blank">ark-ec-blind-signatures</a>: Blind signatures over elliptic curve implementation (native & r1cs constraints)
353            </li>
354          </ul>
355      </div>
356      <!-- <hr> -->
357      <!-- <hr style="width:40%;margin-left:0;margin-bottom:30px;margin-top:20px;"> -->
358      <div class="recent-work-box">
359        <h4 class="gray">2018 - 2022</h4>
360          <!-- 2021 - 2022 -->
361        <h3 style="display:inline;"><a href="https://hermez.io" target="_blank" class="recentwork">Hermez zkRollup</a> -</h3>
362        <i style="display:inline;"> Protocol & Backend Engineer</i><br>
363        Main task has been to implement the Hermez node,
364          used to <a href="https://cointelegraph.com/news/hermes-network-launches-zk-rollups-on-ethereum-mainnet-to-process-cheap-payments"
365                     target="_blank">launch the mainnet</a> of the zkRollup network (1.0):
366             <br><span style="margin-left:30px;"></span>  <span class="gray">hermeznetwork/</span><a href="https://github.com/arnaucube/hermez-node" target="_blank">hermez-node</a>
367          <br>Main responsability was developing the node used for the network's production launch. Worked primarly on the transaction selector, transction processor (managing
368          the rollup state tree) and batch builder (generating the data
369          structure compatible with the zkSNARK circuits to do the proof generation).
370        <!-- </div> -->
371        <!-- <hr> -->
372        <!-- <hr style="width:40%;margin-left:0;margin-bottom:30px;margin-top:20px;"> -->
373        <!-- <div class="recent-work-box"> -->
374          <!-- 2018 - 2021 -->
375          <br><br>
376        <h3 style="display:inline;"><a href="https://iden3.io" target="_blank" class="recentwork">iden3</a> -</h3>
377        <i style="display:inline;">Cryptographiy Protocol & Systems Engineer</i><br>
378<!-- Scalable decentralized identity system with privacy by using zero knowledge proofs. -->
379Design and specify the core protocol, develop the core libraries, servers, zk circom circuits and zkSNARK Groth16 Go prover, for <b>iden3</b>, a decentralized identity system using zero-knowledge proofs for privacy.
380        <ul>
381          <li>
382            <span class="gray">iden3/</span><a href="https://github.com/iden3/go-iden3-crypto" target="_blank">go-iden3-crypto</a>: cryptographic primitives (SNARK-friendly) used in iden3 </li>
383          <li>
384            <span class="gray">iden3/</span><a href="https://github.com/iden3/go-iden3-core" target="_blank">go-iden3-core</a>: core implementation of the iden3 system
385          </li>
386          <li>
387            <span class="gray">iden3/</span><a href="https://github.com/iden3/go-circom-prover-verifier" target="_blank">go-circom-prover-verifier</a>: Go lang implementation of the Groth16 zkSNARK Prover and Verifier compatible with Circom 
388          </li>
389          <li>
390            <span class="gray">iden3/</span><a href="https://github.com/iden3/circuits" target="_blank">circuits</a>: zkSNARK circuits used by the iden3 core protocol
391          </li>
392        </ul>
393
394</div>
395
396<div style="font-size:80%;">
397      <!-- <h2>Some other <b>free time</b> side projects:</h2> -->
398      <h2>Selected open-source work:</h2>
399      <ul>
400        <li>Proof systems & commitmments</li>
401        <ul>
402          <li>
403            <a href="https://github.com/arnaucube/go-snark" target="_blank">go-snark</a>: <code>Go</code> zkSNARK implementation from scratch (compiler, setup, prover, verifier)
404          </li>
405          <li>
406            <a href="https://github.com/arnaucube/go-bellman-verifier" target="_blank">go-bellman-verifier</a>: <code>Go</code> Groth16 zkSNARK bellman proof verifier using cloudflare/bn256 Pairing
407          </li>
408          <li>
409            <a href="https://github.com/arnaucube/protogalaxy-poc" target="_blank">protogalaxy-poc</a>: implementation of the ProtoGalaxy SNARK folding scheme in <code>Rust</code>.
410          </li>
411        </ul>
412        <li>Cryptographic primitives</li>
413        <ul>
414          <li>
415            <a href="https://github.com/arnaucube/babyjubjub-rs" target="_blank">babyjubjub-rs</a>: BabyJubJub elliptic curve implementation in <code>Rust</code>
416          </li>
417          <li>
418            <a href="https://github.com/arnaucube/poseidon-rs" target="_blank">poseidon-rs</a>: Poseidon hash implementation in <code>Rust</code>
419          </li>
420          <li>
421            <a href="https://github.com/arnaucube/fri-commitment" target="_blank">fri-commitment</a>: FRI polynomial commitment in <code>Rust</code>
422          </li>
423          <li>
424            <a href="https://github.com/arnaucube/ipa-rs" target="_blank">ipa-rs</a>: modified Inner Product Argument (IPA) version from Halo paper in <code>Rust</code> using arkworks.
425          </li>
426          <li>
427            <a href="https://github.com/arnaucube/kzg-commitments-study" target="_blank">kzg-commitments</a>: Kate-Zaverucha-Goldberg (KZG10) Polynomial Commitments in <code>Go</code>
428          </li>
429          <li>
430            <a href="https://github.com/arnaucube/ring-signatures-rs" target="_blank">ring-signatures-rs</a>: bLSAG ring signatures implementation in <code>Rust</code>
431          </li>
432          <li>
433            <a href="https://github.com/arnaucube/go-blindsecp256k1" target="_blank">go-blindsecp256k1</a>: Blind signatures over secp256k1 elliptic curve in <code>Go</code> <i>(with the <a href="https://github.com/arnaucube/blindsecp256k1-js" target="_blank">compatible typescript implementation</a>)</i>
434          </li>
435        </ul>
436      <!-- </ul> -->
437      <!-- Other: -->
438      <!-- <ul> -->
439        <!-- <li> -->
440        <!--   <a href="https://github.com/arnaucube/evm-rs" target="_blank">evm-rs</a>: Ethereum Virtual Machine in <code>Rust</code> -->
441        <!-- </li> -->
442        <!-- <li> -->
443        <!--   <a href="https://github.com/arnaucube/go-dht" target="_blank">go-dht</a>: Kademlia DHT implementation in <code>Go</code> -->
444        <!-- </li> -->
445        <li>Systems & virtual machines</li>
446        <ul>
447        <li>
448          <a href="https://github.com/arnaucube/evm-rs" target="_blank">evm-rs</a>: partial implementation of the Ethereum Virtual Machine (EVM) in <code>Rust</code>
449        </li>
450        <li>
451          <a href="https://github.com/arnaucube/rv32-rs" target="_blank">rv32-rs</a>: RISC-V (RV32IM) implementation in <code>Rust</code>
452        </li>
453        </ul>
454
455        <!-- <li> -->
456        <!--   <a href="https://github.com/arnaucube/merkletree-rs" target="_blank">merkletree-rs</a>: Sparse MerkleTree implementation in <code>Rust</code> (also a <code>Go</code> impl <a href="https://github.com/arnaucube/go-merkletree" target="_blank">go-merkletree</a>) -->
457        <!-- </li> -->
458        <!-- <li> -->
459        <!--   <a href="https://github.com/arnaucube/shamirsecretsharing" target="_blank">shamirsecretsharing</a>: Shamir's Secret Sharing <code>Rust</code> & <code>Go</code> implementation + <code>WASM</code> lib -->
460        <!-- </li> -->
461        <!-- <li> -->
462        <!--   <a href="https://github.com/arnaucube/cryptofun" target="_blank">cryptofun</a>: Crypto algorithms from scratch, in order to get familiar with them from inside. For example: ECC, Paillier, RSA, Homomorphic computation, ElGamal, Schnorr, ECDSA, BN128, ... -->
463        <!-- </li> -->
464        <!-- <li> -->
465        <!--   <a href="https://kvartalo.github.io/website/" target="_blank">kvartalo</a>: a local social cryptocurrency for neigbourhoods, that we used in a Barcelona neighbourhood as experiment during few months. Build on top of Ethereum blockchain & Tendermint Core -->
466        <!-- </li> -->
467        <!-- <li> -->
468        <!--   <a href="https://github.com/arnaucube/chip8-rs" target="_blank">chip8-rs</a>: CHIP-8 virtual machine emulator written in <code>Rust</code> (also a <code>Go</code> impl <a href="https://github.com/arnaucube/go-chip8" target="_blank">go-chip8</a>) -->
469        <!-- </li> -->
470        <!-- <li> -->
471        <!--   <a href="https://github.com/arnaucube/fft-rs" target="_blank">fft-rs</a>: Fast Fourier Transform (FFT) implementation in <code>Rust</code> -->
472        <!-- </li> -->
473        <li>Other:</li>
474        <ul>
475          <li>
476            <a href="https://github.com/arnaucube/miksi-core" target="_blank">miksi</a>: Ethereum zk-coin-mixer where all the computation & constructions are done offchain and then proved inside a zkSNARK to the smart-contract. <i><a href="https://arnaucube.github.io/miksi-app/" target="_blank">(live demo on testnet)</a></i>
477          </li>
478          <li>
479            <a href="https://github.com/arnaucube/eth-kzg-ceremony-alt" target="_blank">eth-kzg-ceremony-alt</a>: Alternative implementation of the contributor-client for the Ethereum KZG Trusted Setup Ceremony. I used this code to do my contribution to Ethereum's KZG ceremony.
480          </li>
481        </ul>
482      </ul>
483
484      </div>
485      More projects directly in github: <a href="https://github.com/arnaucube?tab=repositories" target="_blank">https://github.com/arnaucube</a> <i>(Mirror of all the repos at: <a href="https://git.arnaucube.com/arnaucube?sort=moststars" target="_blank">https://git.arnaucube.com</a>)</i>.
486
487      
488      <br><br>
489  <h2>Selected talks</h2>
490  <ul style="list-style: none; padding: 0; margin: 0;">
491    <li style="display: flex; gap: 1rem; margin-bottom: 0.6em;">
492      <span style="flex: 0 0 2cm;">Sep. 2026</span>
493      <div>
494        Eth devs Barcelona meetup -
495        <b>Introduction to lattice-based cryptography</b>
496        <br>
497        <a href="https://github.com/arnaucube/math/blob/master/slides/slides_lattices-intro.pdf" target="_blank">
498          slides
499        </a>
500      </div>
501    </li>
502
503    <li style="display: flex; gap: 1rem; margin-bottom: 0.6em;">
504      <span style="flex: 0 0 2cm;">Nov. 2024</span>
505      <div>
506        zkSummit12, Lisboa -
507        <b>Sonobe, a modular folding schemes library</b>
508        <br>
509        <a href="https://github.com/arnaucube/math/blob/master/slides/slides_sonobe-zkSummit12-2024-10-08.pdf" target="_blank">
510          slides
511        </a>,
512        &nbsp;&nbsp;&nbsp;&nbsp;
513        <a href="https://www.youtube.com/watch?v=z3FH9I8klDk" target="_blank">
514          video
515        </a>
516      </div>
517    </li>
518
519    <li style="display: flex; gap: 1rem; margin-bottom: 0.6em;">
520      <span style="flex: 0 0 2cm;">Jun. 2023</span>
521      <div>
522        0xPARC internal team talk, London &amp; SF -
523        <b>HyperNova's multifolding mathematical overview</b>
524        <br>
525        <a href="https://github.com/arnaucube/math/blob/master/slides/slides_hypernova-multifolding-unfolded.pdf" target="_blank">
526          slides
527        </a>
528      </div>
529    </li>
530
531    <li style="display: flex; gap: 1rem; margin-bottom: 0.6em;">
532      <span style="flex: 0 0 2cm;">Aug. 2019</span>
533      <div>
534        Web3Summit, Berlin -
535        <b>zkSNARKs from scratch: a technical explanation</b>
536        <br>
537        <a href="https://github.com/arnaucube/slides/blob/master/zksnarks-from-scratch-a-technical-explanation.pdf" target="_blank">
538          slides
539        </a>
540      </div>
541    </li>
542  </ul>
543
544
545
546      <br><br><br>
547      <p style="padding:0;margin:0;font-size:120%;">
548        <a href="blog/index.html">blog</a>
549        <span style="margin: 10px;">|</span>
550        <a href="/notes.html">notes</a>
551        <span style="margin: 10px;">|</span>
552        <a href="https://github.com/arnaucube" target="_blank">github</a>
553        <span style="font-style:italic;">(<a href="https://git.arnaucube.com/arnaucube?sort=moststars" target="_blank">git-mirror</a>)</span>
554        <span style="margin: 10px;">|</span>
555        <a href="https://twitter.com/arnaucube" target="_blank">twitter</a>
556      </p>
557      <br><br>
558      <a href="mailto:hello@arnaucube.com">hello@arnaucube.com</a>
559      <!-- <img src="img/email.png" /> -->
560
561
562    
563      
564      <!-- <hr> -->
565      <!-- <br> -->
566    </div>
567
568    </div>
569  </div>
570  </div>
571
572
573  <!-- threejs -->
574  <script src="js/three.min.js"></script>
575  <script src="js/Detector.js"></script>
576  <script src="js/tresd.min.js"></script>
577  <!-- <script src="js/tresd.js"></script> -->
578  <script>
579    const toggleButton = document.getElementById("theme-toggle");
580    let savedTheme = localStorage.getItem("theme");
581    if (savedTheme === "dark") {
582      savedTheme = "dark-theme";
583    }
584    if (savedTheme !== "dark-theme") {
585      savedTheme = "light-theme";
586    }
587    document.body.classList.remove("light-theme", "dark-theme");
588    document.body.classList.add(savedTheme);
589    toggleButton.innerHTML = savedTheme === "dark-theme" ? "&#9790;" : "&#9728;";
590
591    toggleButton.addEventListener("click", function () {
592      const currentTheme = localStorage.getItem("theme") === "dark-theme" ? "dark-theme" : "light-theme";
593      const nextTheme = currentTheme === "dark-theme" ? "light-theme" : "dark-theme";
594      document.body.classList.remove("light-theme", "dark-theme");
595      document.body.classList.add(nextTheme);
596      localStorage.setItem("theme", nextTheme);
597      toggleButton.innerHTML = nextTheme === "dark-theme" ? "&#9790;" : "&#9728;";
598    });
599
600    tresd = "cube";
601    init();
602    animate();
603  </script>
604</body>
605
606</html>