arnaucube
arnaucube/arnaucube.comPublic Self-hosted repository
arnaucube.com/blog/index.html
blog/index.htmlRaw
  1<!DOCTYPE html>
  2<html lang="en">
  3
  4  <head>
  5    <meta name="description" content="arnaucube blog" />
  6    <meta charset="utf-8">
  7    <title>arnaucube - blog</title>
  8    <meta name="title" content="arnaucube - blog">
  9    <meta name="description" content="arnaucube blog">
 10
 11    <meta property="og:title" content="arnaucube - blog" />
 12    <meta property="og:description" content="arnaucube blog" />
 13    <meta property="og:url" content="https://arnaucube.com/blog" />
 14    <meta property="og:type" content="article" />
 15    <meta property="og:image" content="https://arnaucube.com/blog/img/logoArnauCube.png" />
 16    <meta name="twitter:title" content="arnaucube - blog">
 17    <meta name="twitter:description" content="arnaucube blog">
 18    <meta name="twitter:image" content="https://arnaucube.com/blog/img/logoArnauCube.png">
 19    <meta name="twitter:card" content="summary_large_image">
 20    <meta name="author" content="arnaucube">
 21
 22    <link rel="icon" type="image/png" href="img/logoArnauCubeFavicon.png">
 23
 24    <meta name="viewport" content="width=device-width, initial-scale=1">
 25
 26    <link href="css/bootstrap.min.css" rel="stylesheet">
 27    <link rel="stylesheet" href="css/style.css">
 28
 29    <!-- highlightjs -->
 30    <!-- <link rel="stylesheet" href="js/highlightjs/atom-one-dark.css"> -->
 31    <link rel="stylesheet" href="js/highlightjs/atom-one-light.css">
 32    <!-- <link rel="stylesheet" href="js/highlightjs/gruvbox-dark.css"> -->
 33    <script src="js/highlightjs/highlight.pack.js"></script>
 34
 35    <!-- katex -->
 36    <link rel="stylesheet" href="js/katex/katex.min.css">
 37  <link rel="alternate" type="application/rss+xml" title="arnaucube - blog RSS" href="https://arnaucube.com/blog/rss.xml">
 38</head>
 39
 40  <body>
 41
 42    <!-- o_gradient_background" -->
 43    <nav id="mainNav" class="navbar navbar-default navbar-fixed-top"
 44                      style="height:50px;font-size:100%;">
 45      <div class="container">
 46        <div style="float:left;">
 47        <a href="/blog" style="color:#000;display:inline-block;">blog</a>
 48        <span style="margin-right:20px; margin-left:20px;">|</span>
 49        <a href="/notes.html" style="font-size:90%;color:#000;display:inline-block;">notes</a>
 50        </div>
 51        <div style="float:right;">
 52          <a href="/" style="color:#000;display:inline-block;margin-right:10px;">arnaucube.com</a>
 53          <a href="/blog/rss.xml" target="_blank"
 54            type="application/rss+xml" title="subscribe via RSS" aria-label="subscribe via RSS">
 55              <img width="12px;" src="img/rss.png" />
 56          </a>
 57          <div class="onoffswitch" style="margin-left:0px;display:inline-block;" title="change theme">
 58            <input onclick="switchTheme()" type="checkbox" name="onoffswitch" class="onoffswitch-checkbox"
 59              id="themeSwitcher">
 60            <label class="onoffswitch-label" for="themeSwitcher"></label>
 61          </div>
 62        </div>
 63      </div>
 64      <!-- <img style="height:5px; width:100%; margin-top:8px;" src="img/gradient-line.jpg" /> -->
 65    </nav>
 66
 67
 68    <div class="container" style="max-width:800px;">
 69        <br>
 70        <div style="background:#cccccc; border:2px gray solid; padding:5px; width:80%;margin-left:auto; margin-right:auto; margin-bottom:5px;">
 71          <i>Note: this blog is human-written, no AI generated content.</i>
 72        </div>
 73
 74      <a href='/blog/labrador.html'><div class="row postThumb">
 75        <h3>Notes on Labrador, a lattice-based SNARK scheme</h3>
 76
 77<p>Overview of how the (post-quantum) lattice-based SNARK scheme &ldquo;Labrador&rdquo; works.</p>
 78
 79<p><em>2026-06-11</em></p>
 80
 81</div>
 82
 83</a><a href='/blog/tools.html'><div class="row postThumb">
 84        <h3>Tools</h3>
 85
 86<p>A non-exhaustive overview of tools I use daily.</p>
 87
 88<p><em>2026-06-08</em></p>
 89
 90</div>
 91
 92</a><a href='https://raw.githubusercontent.com/arnaucube/math/master/notes_hash-based-signatures.pdf'><div class="row postThumb">
 93        <h3>Notes on hash-based signatures (pdf)</h3>
 94
 95<p>This document contains notes on (post-quantum) hash-based signatures (WOTS+, HORST, SPHINCS, XMSS).</p>
 96
 97<p><em>2025-12-27</em></p>
 98
 99</div>
100
101</a><a href='/blog/ai-connections.html'><div class="row postThumb">
102        <h3>Human connections in the early days of AI</h3>
103
104<p>A short note on aiccelerationism, hyperreality, and the recovery of human connections.</p>
105
106<p><em>2025-06-03</em></p>
107
108</div>
109
110</a><a href='https://www.youtube.com/watch?v=z3FH9I8klDk'><div class="row postThumb">
111        <h3><span style="font-size:85%">[zkSummit12 talk]</span> Sonobe, a modular folding schemes library</h3>
112
113<p>(link to youtube video of the talk)</p>
114
115<p><em>2024-11-21</em></p>
116
117</div>
118
119</a><a href='/blog/protogalaxy.html'><div class="row postThumb">
120        <h3>Notes on ProtoGalaxy</h3>
121
122<p>The idea of these notes is to provide some extra intuition and explainations on ProtoGalaxy&rsquo;s paper.
123ProtoGalaxy is a <em>folding scheme</em> which iterates on ideas from ProtoStar paper.</p>
124
125<p><em>2023-08-20</em></p>
126
127</div>
128
129</a><a href='https://raw.githubusercontent.com/arnaucube/math/master/notes_hypernova.pdf'><div class="row postThumb">
130        <h3>Notes on HyperNova (pdf)</h3>
131
132<p>This document contains notes on HyperNova and CCS.</p>
133
134<p><em>2023-05-16</em></p>
135
136</div>
137
138</a><a href='/blog/ipa.html'><div class="row postThumb">
139        <h3>IPA polynomial commitment by hand</h3>
140
141<p>This post overviews the IPA polynomial commitment described in the Halo paper, first by providing an overview on the protocol, then by doing a step-by-step example with small values, following the style done in the &ldquo;Plonk by hand series&rdquo; from Joshua Fitzgerald, and later by providing a Sage implementation of the protocol.</p>
142
143<p><em>2023-04-06</em></p>
144
145</div>
146
147</a><a href='https://raw.githubusercontent.com/arnaucube/math/master/notes_fri_stir.pdf'><div class="row postThumb">
148        <h3>Notes on FRI and STIR (pdf)</h3>
149
150<p>This document contains notes on FRI low degree testing and the trick to convert it to a polynomial commitment scheme.
151(Update 2024-03-22: also few notes on STIR).</p>
152
153<p><em>2023-02-26</em></p>
154
155</div>
156
157</a><a href='/blog/powersoftau.html'><div class="row postThumb">
158        <h3>Implementing the powers of tau contributor</h3>
159
160<p>In the following notes we go over the ideas behind the <em>Powers of Tau</em> ceremony, how participants contribute and how the contributions are verified (logic &amp; code). We focus on the Ethereum&rsquo;s upcoming KZG-Ceremony.</p>
161
162<p><em>2023-01-02</em></p>
163
164</div>
165
166</a><a href='/blog/ringsig.html'><div class="row postThumb">
167        <h3>bLSAG ring signatures overview</h3>
168
169<p>Notes on bLSAG: Back&rsquo;s Linkable Spontaneous Anonymous Group signatures</p>
170
171<p><em>2022-07-20</em></p>
172
173</div>
174
175</a><a href='/blog/shamir-secret-sharing.html'><div class="row postThumb">
176        <h3>Lagrange Polynomial Interpolation and Shamir secret sharing</h3>
177
178<p>Overview of Langrange Polynomial interpolation and Shamir&rsquo;s secret sharing.</p>
179
180<p><em>2021-10-10</em></p>
181
182</div>
183
184</a><a href='/blog/kzg-batch-proof.html'><div class="row postThumb">
185        <h3>Batch proof in KZG Commitments</h3>
186
187<p>The benefit of <em>batch proof</em> is that allows us to proof multiple points while the proof size remains constant to one <span class="math inline">\(\mathbb{G}_1\)</span> point.</p>
188
189<p><em>2021-08-14</em></p>
190
191</div>
192
193</a><a href='/blog/kzg-commitments.html'><div class="row postThumb">
194        <h3>Notes on KZG polynomial commitments</h3>
195
196<p>In the following notes I&rsquo;ve tried to summarize the KZG Commitments scheme with the concepts that helped me to follow the reasoning.</p>
197
198<p><em>2021-08-05</em></p>
199
200</div>
201
202</a><a href='/blog/blind-signatures-ec.html'><div class="row postThumb">
203        <h3>Notes on blind signatures over elliptic curves</h3>
204
205<p>In this notes, we will cover the scheme proposed at <em>&ldquo;New Blind Signature Schemes Based on the (Elliptic Curve) Discrete Logarithm Problem&rdquo;</em> paper by Hamid Mala &amp; Nafiseh Nezhadansari.</p>
206
207<p><em>2021-07-30</em></p>
208
209</div>
210
211</a><a href='/blog/coffeeminer-hacking-wifi-cryptocurrency-miner.html'><div class="row postThumb">
212        <h3>CoffeeMiner: Hacking WiFi to inject cryptocurrency miner to HTML requests</h3>
213
214<p>The goal of this post, is to explain how can be done the attack of MITM (Machine-In-The-Middle) to inject some javascript in the html pages, to force all the machines connected to a WiFi network to be mining a cryptocurrency for the attacker.</p>
215
216<p><em>2018-01-04</em></p>
217
218</div>
219
220</a><a href='/blog/flock-botnet.html'><div class="row postThumb">
221        <h3>Auto generated tweets from Markov chains</h3>
222
223<p>Developing a twitter botnet with autonomous bots replying tweets with text generated based on probabilities in Markov chains</p>
224
225<p><em>2017-12-29</em></p>
226
227</div>
228
229</a><a href='/blog/blogo.html'><div class="row postThumb">
230        <h3>Static blog template engine implementation in Go</h3>
231
232<p>How has this blog been made? In this post we will see how to develop a minimalistic static blog template engine with Go.</p>
233
234<p><em>2017-12-26</em></p>
235
236</div>
237
238</a>
239    </div>
240
241    <footer style="text-align:center; margin-top:100px;margin-bottom:50px;">
242      <div class="container">
243        <br>
244        <a href="/blog">Go to main</a>
245        <br><br>
246        <div class="row">
247          <ul class="list-inline">
248            <li><a href="https://twitter.com/arnaucube"
249                   style="color:gray;text-decoration:none;"
250                   target="_blank">twitter.com/arnaucube</a>
251            </li>
252            <li><a href="https://github.com/arnaucube"
253                   style="color:gray;text-decoration:none;"
254                   target="_blank">github.com/arnaucube</a>
255            </li>
256          </ul>
257        </div>
258        <div class="row" style="display:inline-block;">
259          Blog made with <a href="http://github.com/arnaucube/blogo/"
260                            target="_blank" style="color: gray;text-decoration:none;">Blogo</a>
261        </div>
262      </div>
263    </footer>
264
265    <script>
266    </script>
267    <script src="js/external-links.js"></script>
268    <script>hljs.initHighlightingOnLoad();</script>
269    <script defer src="js/katex/katex.min.js"></script>
270    <script defer src="js/katex/auto-render.min.js"></script>
271    <script>
272      document.addEventListener("DOMContentLoaded", function() {
273        renderMathInElement(document.body, {
274          displayMode: false,
275          // customised options
276          // • auto-render specific keys, e.g.:
277          delimiters: [
278            {left: '$$', right: '$$', display: true},
279            {left: '$', right: '$', display: false},
280            {left: "\\[", right: "\\]", display: true},
281            {left: "\\(", right: "\\)", display: false},
282            {left: "\\begin{equation}", right: "\\end{equation}", display: true}
283          ],
284          // • rendering keys, e.g.:
285          throwOnError : true
286        });
287      });
288
289      ///
290      let theme = localStorage.getItem("theme");
291      if ((theme === "light-theme")||(theme==null)) {
292          theme = "light-theme";
293          document.getElementById("themeSwitcher").checked = false;
294      } else if (theme === "dark-theme") {
295          theme = "dark-theme";
296          document.getElementById("themeSwitcher").checked = true;
297      }
298      document.body.className = theme;
299      localStorage.setItem("theme", theme);
300
301      function switchTheme() {
302        theme = localStorage.getItem("theme");
303        if (theme === "light-theme") {
304          theme = "dark-theme";
305          document.getElementById("themeSwitcher").checked = true;
306        } else {
307          theme = "light-theme";
308          document.getElementById("themeSwitcher").checked = false;
309        }
310        document.body.className = theme;
311        localStorage.setItem("theme", theme);
312
313        console.log(theme);
314      }
315    </script>
316    <script>
317    function tagLinks(tagName) {
318      var tags = document.getElementsByTagName(tagName);
319      for (var i=0, hElem; hElem =  tags[i]; i++) {
320        if (hElem.parentNode.className=="row postThumb") {
321          continue;
322        }
323        hElem.id = hElem.innerHTML.toLowerCase().replace(" ", "-");
324        hElem.innerHTML = "<a style='color:black!important;' href='#"+hElem.id+"'>"+hElem.innerHTML+"</a>";
325      }
326    }
327    tagLinks("h2");
328    tagLinks("h3");
329    tagLinks("h4");
330    tagLinks("h5");
331    </script>
332    <script>
333function generateTOC(tocContainerId = "toc") {
334    const tocContainer = document.getElementById(tocContainerId);
335    if (!tocContainer) return;
336
337    const headings = document.querySelectorAll("h2, h3, h4, h5, h6");
338    if (!headings.length) return;
339
340    // Generate IDs if missing
341    headings.forEach((heading, index) => {
342        if (!heading.id) {
343            heading.id =
344                heading.textContent
345                    .trim()
346                    .toLowerCase()
347                    .replace(/[^\w\s-]/g, "")
348                    .replace(/\s+/g, "-") +
349                "-" +
350                index;
351        }
352    });
353
354    const toc = document.createElement("ul");
355    let currentLevel = 1;
356    let currentList = toc;
357    const stack = [toc];
358
359    headings.forEach((heading) => {
360        const level = parseInt(heading.tagName.substring(1), 10);
361
362        const li = document.createElement("li");
363        const a = document.createElement("a");
364
365        a.href = "#" + heading.id;
366        a.textContent = heading.textContent;
367
368        li.appendChild(a);
369
370        if (level > currentLevel) {
371            for (let i = currentLevel; i < level; i++) {
372                const nestedList = document.createElement("ul");
373
374                const lastLi =
375                    currentList.lastElementChild ||
376                    currentList.appendChild(document.createElement("ul"));
377
378                lastLi.appendChild(nestedList);
379
380                stack.push(nestedList);
381                currentList = nestedList;
382            }
383        } else if (level < currentLevel) {
384            for (let i = currentLevel; i > level; i--) {
385                stack.pop();
386            }
387            currentList = stack[stack.length - 1];
388        }
389
390        currentList.appendChild(li);
391        currentLevel = level;
392    });
393
394    tocContainer.innerHTML = "";
395    tocContainer.appendChild(toc);
396}
397
398document.addEventListener("DOMContentLoaded", () => {
399    generateTOC();
400});
401    </script>
402    <script src="js/mermaid.min.js"></script>
403
404  </body>
405</html>
406