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">☀</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 & 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 & poseidon-cipher</a>
210 </li>
211 <li>
212 some voting system (rollup style) <i>designs & 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
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 & 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" ? "☾" : "☀";
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" ? "☾" : "☀";
598 });
599
600 tresd = "cube";
601 init();
602 animate();
603 </script>
604</body>
605
606</html>