Profesor(es)
Marco Zecchini
Turno
Turno Mañana (09:00 a 12:00)
Cupo
Sin definir
Idioma
Inglés
Descripción

The increasing demand for privacy, verifiable computation and trust in web applications highlights the inherent limitations of the traditional client/server architecture.
Zero-Knowledge Proofs (ZKPs) and Succinct Non-Interactive Arguments of Knowledge (SNARKs) emerge as revolutionary technologies, offering the ability to prove the correctness
of a computation or the possession of information without disclosing any underlying sensitive data for users.
This course will explore the foundational concepts of ZKPs, from interactive protocols to highly efficient non-interactive proof systems. During the course hands-on sessions and
practical exercises will allow students, in some cases, to implement and, in others, apply these technologies.
We will delve into cryptographic constructions like Groth16, Plonk, and Halo2, understanding their architecture, their practical implications and how to use them in real-world cryptography.
Indeed, the course will also emphasize their applications in enhancing privacy and scalability in blockchain systems, digital media integrity, and web security.
The curriculum is informed by the latest research and enriched by practical experience in applied cryptography, extending the course made by Anca Nitulescu at crypt-a-bit 2024 and
building on my own teaching and research experiences. Furthermore, the course is thought to be in continuity with Prof. Vitaletti’s course on blockchain technologies of ECI2025.

Programa del curso

DAY 1 (3 hours): Intro to Zero-knowledge proofs: Sigma Protocols and implementation.
Example of I will conduct the implementation is available here:
https://hackmd.io/@LsH8lGjzQEiZJROqMMzmCA/SJ8f_85Jbx
DAY 2 (3 hours): From ZK towards SNARKS (and from Schnorr to Bulletproofs) and
implementation.
DAY 3 (3 hours): From Bulletproofs to Groth16. The concept of circuits: Circom and Snarkjs.
DAY 4 (3 hours): From Groth16 to IOPs: Plonk and Halo2.
DAY 5 (3 hours): SNARK applications in blockchains (for scalability and privacy), digital
media (e.g., image transformation) and web (e.g., TLS). Analysis of a zkVM: Risc0.

Requisitos del curso

Brief index
Introduction to Zero-Knowledge Proofs (ZKPs): Motivation and formal definition of
zero-knowledge. Interactive proofs and the Σ-protocol paradigm. Implementing basic ZK proofs (e.g., Schnorr protocol) using Python libraries.
From ZK to SNARKs: Non-interactive proofs via Fiat–Shamir transformation. From Schnorr to Bulletproofs: range proofs and aggregation. Hands-on session on Bulletproofs implementation.
From Bulletproofs to Groth16: Arithmetic circuits and Rank-1 Constraint Systems (R1CS): how statements are encoded as circuits. Introduction to Circom and SnarkJS for compiling, generating and verifying Groth16 proofs.
From Groth16 to IOP-based proofs: Interactive Oracle Proofs (IOP) as the foundation of modern SNARKs (guaranteeing additional properties through recursion or folding or aggregation. Overview of Plonk and Halo2 (a recursive proof system) frameworks.
Applications of SNARKs: How ZK proofs enable privacy and scalability in blockchain
systems (ZK-Rollups, zkVM Risc0). Use of SNARKs for verifiable digital media, PDF signatures and Web integrity proofs.

Bibliografía