<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://shirz.ad/feed.xml" rel="self" type="application/atom+xml" /><link href="https://shirz.ad/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-09-13T11:10:34-04:00</updated><id>https://shirz.ad/feed.xml</id><title type="html">Alireza Shirzad</title><subtitle>Alireza Shirzad is a cryptographer and Ph.D. student in Computer and Information Science at the University of Pennsylvania, working on SNARKs, polynomial commitments, and provably secure systems.</subtitle><author><name>Alireza Shirzad</name><email>alrshir@seas.upenn.edu</email></author><entry><title type="html">Hello, world (and how this blog works)</title><link href="https://shirz.ad/blog/2026/hello-world/" rel="alternate" type="text/html" title="Hello, world (and how this blog works)" /><published>2026-09-12T00:00:00-04:00</published><updated>2026-09-12T00:00:00-04:00</updated><id>https://shirz.ad/blog/2026/hello-world</id><content type="html" xml:base="https://shirz.ad/blog/2026/hello-world/"><![CDATA[<p>Welcome to the blog. This first post exists mostly so that I remember how to write the next one. Every post is a Markdown file in <code class="language-plaintext highlighter-rouge">_posts/</code> named <code class="language-plaintext highlighter-rouge">YYYY-MM-DD-slug.md</code>, and GitHub Pages rebuilds the site on every push.</p>

<!--more-->

<h2 id="math">Math</h2>

<p>Math is rendered client-side with KaTeX. Inline math uses <code class="language-plaintext highlighter-rouge">$$ ... $$</code> on the same line, like <span class="kdmath">$e = mc^2$</span>, and display math uses <code class="language-plaintext highlighter-rouge">$$</code> on its own lines:</p>

<div class="kdmath">$$
\Pr\bigl[\,\mathcal{V}(\mathsf{vk}, x, \pi) = 1 \;\wedge\; x \notin \mathcal{L}\,\bigr] \le \mathsf{negl}(\lambda)
$$</div>

<p>A SNARK for a relation <span class="kdmath">$\mathcal{R}$</span> is <em>succinct</em> if the proof <span class="kdmath">$\pi$</span> and the verifier’s running time are <span class="kdmath">$\mathrm{poly}(\lambda, \log \lvert C \rvert)$</span> for a circuit <span class="kdmath">$C$</span>. (One gotcha: write <span class="kdmath">$\lvert x \rvert$</span> rather than <code class="language-plaintext highlighter-rouge">|x|</code> in inline math, because a bare pipe makes Markdown think the line is a table.)</p>

<h2 id="code">Code</h2>

<p>Fenced code blocks are highlighted at build time:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="n">evaluate</span><span class="o">&lt;</span><span class="n">F</span><span class="p">:</span> <span class="n">Field</span><span class="o">&gt;</span><span class="p">(</span><span class="n">coeffs</span><span class="p">:</span> <span class="o">&amp;</span><span class="p">[</span><span class="n">F</span><span class="p">],</span> <span class="n">point</span><span class="p">:</span> <span class="n">F</span><span class="p">)</span> <span class="k">-&gt;</span> <span class="n">F</span> <span class="p">{</span>
    <span class="c1">// Horner's rule: O(n) field operations.</span>
    <span class="n">coeffs</span><span class="nf">.iter</span><span class="p">()</span><span class="nf">.rev</span><span class="p">()</span><span class="nf">.fold</span><span class="p">(</span><span class="nn">F</span><span class="p">::</span><span class="nf">zero</span><span class="p">(),</span> <span class="p">|</span><span class="n">acc</span><span class="p">,</span> <span class="n">c</span><span class="p">|</span> <span class="n">acc</span> <span class="o">*</span> <span class="n">point</span> <span class="o">+</span> <span class="o">*</span><span class="n">c</span><span class="p">)</span>
<span class="p">}</span>
</code></pre></div></div>

<h2 id="everything-else">Everything else</h2>

<blockquote>
  <p>Blockquotes look like this.</p>
</blockquote>

<table>
  <thead>
    <tr>
      <th>Scheme</th>
      <th style="text-align: right">Proof size</th>
      <th>Verifier</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Groth16</td>
      <td style="text-align: right">3 G</td>
      <td>O(1)</td>
    </tr>
    <tr>
      <td>Pari</td>
      <td style="text-align: right">2 G + 2 F</td>
      <td>O(1)</td>
    </tr>
    <tr>
      <td>DewTwo</td>
      <td style="text-align: right">4.5 KB</td>
      <td>O(log N)</td>
    </tr>
  </tbody>
</table>

<p>Images go in <code class="language-plaintext highlighter-rouge">assets/img/</code> and are referenced with <code class="language-plaintext highlighter-rouge">![alt](/assets/img/name.png)</code>. Footnotes work too.<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup></p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>Like this one. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Alireza Shirzad</name><email>alrshir@seas.upenn.edu</email></author><category term="meta" /><summary type="html"><![CDATA[Welcome to the blog. This first post exists mostly so that I remember how to write the next one. Every post is a Markdown file in _posts/ named YYYY-MM-DD-slug.md, and GitHub Pages rebuilds the site on every push.]]></summary></entry></feed>