Skip to content

Commit

Permalink
🎨 add lectures 9 and 10
Browse files Browse the repository at this point in the history
  • Loading branch information
ZamDimon committed Oct 1, 2024
1 parent e9fd947 commit cbb3c04
Show file tree
Hide file tree
Showing 8 changed files with 124 additions and 6 deletions.
Binary file added files/notes/10-groth16.pdf
Binary file not shown.
Binary file modified files/notes/8-circuits.pdf
Binary file not shown.
Binary file added files/notes/9-qap-pcp.pdf
Binary file not shown.
Binary file added files/slides/8-circuits.pdf
Binary file not shown.
Binary file added files/slides/9-qap-pcp.pdf
Binary file not shown.
Binary file added images/lecture-previews/lecture_10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/lecture-previews/lecture_9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
130 changes: 124 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,126 @@ <h1 class="section-header"> Summary </h1>
<div class="lectures-block">
<h1 class="section-header"> Lectures </h1>

<!-- Lecture 10 -->
<div class="lecture-card">
<div class="lecture-card-head">
<div class="lecture-card-preview">
<img src="images/lecture-previews/lecture_10.png" class="preview">
</div>
<div class="lecture-card-content">
<div class="lecture-card-header">
<h2 class="lecture-card-title"> Lecture 10: Pairing-based zk-SNARKs </h2>
<p class="lecture-card-speaker"> <strong>Speakers:</strong> Anton Levochko and Dmytro Zakharov </p>
</div>

<div class="lecture-card-content">
<p class="lecture-card-description">
<strong>Content.</strong> Finally, we consider one of the most advanced zk-SNARKs: Pinocchio and Groth16. Here, we cover:
<ul>
<li> Turning QAP into succint verification over encrypted space. </li>
<li> Making SNARK sound. </li>
<li> Turning SNARK into zk-SNARK. </li>
<li> Pinocchio Protocol. </li>
<li> Groth16 Protocol. </li>
</ul>
</p>
</div>
</div>
</div>

<div class="lecture-links-section">
<h1 class="lecture-links-header"> <strong> Lecture Material: </strong> </h1>

<div class="lecture-links-list">
<a href="files/notes/10-groth16.pdf" class="lecture-link">
<img src="images/icons/lecture_notes_icon.png">
<p class="link-name"> Lecture Notes </p>
</a>

<!-- <a href="files/slides/9-qap-pcp.pdf" class="lecture-link">
<img src="images/icons/slides_icon.png">
<p class="link-name"> Slides </p>
</a> -->

<!-- <a href="files/exercises/8-circuits.pdf" class="lecture-link">
<img src="images/icons/test.png">
<p class="link-name"> Task </p>
</a>
<a href="https://github.com/ZKDL-Camp/lecture-8-r1cs-qap" class="lecture-link">
<img src="images/icons/github.png">
<p class="link-name"> GitHub Repo </p>
</a> -->
</div>

<h1 class="lecture-links-header"> <strong> Other Helpful Resources: </strong> </h1>
<ul>
<li> <a href="https://arxiv.org/abs/1906.07221"> "Why and How zk-SNARK Works" </a> by Maksym Petkus: Very easy-to-follow tutorial on how zk-SNARKs work from scratch. Very friendly guide for beginners. </li>
<li> <a href="https://zk-learning.org/"> ZK MOOC, Spring 2023 </a>, "Linear PCP" lecture: amazing lecture on the idea of building Pinocchio and Groth16 protocols, expressed formally and mathematically. </li>
<li> <a href="https://eprint.iacr.org/2013/279.pdf"> "Pinocchio: Nearly Practical Verifiable Computation" </a> by Bryan Parno and Craig Gentry: original Pinocchio paper. Quite easy to understand if you are familiar with notation from lecture notes. </li>
<li> <a href="https://eprint.iacr.org/2016/260.pdf"> "On the Size of Pairing-based Non-interactive Arguments" </a> by Jens Groth: original Groth16 paper. A bit more formalistic view of the Groth16 protocol and what linear non-interactive proofs are used for. </li>
</ul>
</div>
</div>

<!-- Lecture 9 -->
<div class="lecture-card">
<div class="lecture-card-head">
<div class="lecture-card-preview">
<img src="images/lecture-previews/lecture_9.png" class="preview">
</div>
<div class="lecture-card-content">
<div class="lecture-card-header">
<h2 class="lecture-card-title"> Lecture 9: Quadratic Arithmetic Program. Probabilistically Checkable Proofs </h2>
<p class="lecture-card-speaker"> <strong>Speaker:</strong> Anton Levochko </p>
</div>

<div class="lecture-card-content">
<p class="lecture-card-description">
<strong>Content.</strong> With R1CS in our hands, we are now ready to succintly represent it as a Quadratic Arithmetic Program (QAP). Additionally, we consider other basic theory before specifying the Groth16 protocol. Here, we cover:
<ul>
<li> Turning R1CS into QAP. </li>
<li> What is PCP, IPCP, IOP. </li>
<li> Proof of Exponent. </li>
</ul>
</p>
</div>
</div>
</div>

<div class="lecture-links-section">
<h1 class="lecture-links-header"> <strong> Lecture Material: </strong> </h1>

<div class="lecture-links-list">
<a href="files/notes/9-qap-pcp.pdf" class="lecture-link">
<img src="images/icons/lecture_notes_icon.png">
<p class="link-name"> Lecture Notes </p>
</a>

<a href="files/slides/9-qap-pcp.pdf" class="lecture-link">
<img src="images/icons/slides_icon.png">
<p class="link-name"> Slides </p>
</a>

<!-- <a href="files/exercises/8-circuits.pdf" class="lecture-link">
<img src="images/icons/test.png">
<p class="link-name"> Task </p>
</a>
<a href="https://github.com/ZKDL-Camp/lecture-8-r1cs-qap" class="lecture-link">
<img src="images/icons/github.png">
<p class="link-name"> GitHub Repo </p>
</a> -->
</div>

<h1 class="lecture-links-header"> <strong> Other Helpful Resources: </strong> </h1>
<ul>
<li> <a href="https://arxiv.org/abs/1906.07221"> "Why and How zk-SNARK Works" </a> by Maksym Petkus: Very easy-to-follow tutorial on how zk-SNARKs work from scratch. Very friendly guide for beginners. </li>
<li> <a href="https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649"> "Quadratic Arithmetic Programs: From Zero to Hero" </a> by Vitalik Buterin: R1CS and QAP demonstrated over real numbers. </li>
</ul>
</div>
</div>

<!-- Lecture 8 -->
<div class="lecture-card">
<div class="lecture-card-head">
Expand All @@ -90,10 +210,9 @@ <h2 class="lecture-card-title"> Lecture 8: SNARKs. Arithmetical Circuits </h2>
<p class="lecture-card-description">
<strong>Content.</strong> This is an opening lecture on SNARKs: technology we are using daily in our projects. Here, we cover:
<ul>
<li> The definition of SNARK </li>
<li> The definition of zk-SNARK. </li>
<li> Arithmetic Circuits. Circuit Satisfability Problem. </li>
<li> R1CS in vector and matrix forms. </li>
<li> Quadratic Arithmetic Program. </li>
<li> Rank-1 Constraint System (R1CS) in vector and matrix forms. </li>
</ul>
</p>
</div>
Expand All @@ -109,10 +228,10 @@ <h1 class="lecture-links-header"> <strong> Lecture Material: </strong> </h1>
<p class="link-name"> Lecture Notes </p>
</a>

<!-- <a href="files/slides/7-sigma.pdf" class="lecture-link">
<a href="files/slides/8-circuits.pdf" class="lecture-link">
<img src="images/icons/slides_icon.png">
<p class="link-name"> Slides </p>
</a> -->
</a>

<a href="files/exercises/8-circuits.pdf" class="lecture-link">
<img src="images/icons/test.png">
Expand All @@ -129,7 +248,6 @@ <h1 class="lecture-links-header"> <strong> Other Helpful Resources: </strong> </
<ul>
<li> <a href="https://arxiv.org/abs/1906.07221"> "Why and How zk-SNARK Works" </a> by Maksym Petkus: Very easy-to-follow tutorial on how zk-SNARKs work from scratch. Very friendly guide for beginners. </li>
<li> <a href="https://www.rareskills.io/post/rank-1-constraint-system"> "Converting Algebraic Circuits to R1CS" </a> by RareSkills: Also well-explained how R1CS works with many practical examples. </li>
<li> <a href="https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649"> "Quadratic Arithmetic Programs: From Zero to Hero" </a> by Vitalik Buterin: R1CS and QAP demonstrated over real numbers. </li>
</ul>
</div>
</div>
Expand Down

0 comments on commit cbb3c04

Please sign in to comment.