SEASON 3 MODULE 2
High-Performance Engineering for SNARKs, w/ Jim Posen
In this module, Nicolas Mohnblatt and Jim Posen, CTO at Irreducible, discuss high performance engineering for SNARKs. They cover identifying and overcoming computational and memory bottlenecks, leveraging parallelism through software and hardware engineering techniques, and employing SIMD instructions for operations like constraint evaluation, PCS opening, and hashing. Jim explains how modern CPUs and GPUs can be exploited for parallelism, introduces the concept of operation pipelining, and explores the potential of using custom hardware like FPGAs and ASICs. He also delves into the concept of recursion in SNARKs to handle large computations by breaking them into smaller segments and aggregating the resulting proofs. The discussion emphasizes the importance of efficient witness generation and the future of SNARK computations with custom hardware specific to cryptographic needs.
What you’ll learn:
- 00:00 Introduction and session outline
- 01:06 A Basic STARK protocol
- 04:37 How to make the STARK faster
- 14:58 NTT Algorithm and Parallelism
- 19:03 Leveraging Multi-Core CPUs
- 23:53 Transitioning to GPU for Higher Throughput
- 26:36 Challenges and Strategies in GPU Programming
- 30:15 Making the Most of the GPU / “Feed the Beast”
- 37:27 Scaling Up: Multiple Machines and Network Bandwidth / SNARK proving over a cluster of servers
- 44:49 Witness Generation
- 48:45 Custom Hardware for SNARKs
- 01:00:11 Conclusion and Future Directions
Below is an accompanying reading list:
- ZK Whiteboard Sessions – S2M5: Small Fields, Binary Fields with Jim Posen (https://www.youtube.com/watch?v=821tPE2Ceps&themeRefresh=1)
- SIMD definition (https://en.wikipedia.org/wiki/Single_instruction,_multiple_data)
- NTT (Number Theoretic Transform) (https://xn--2-umb.com/23/ntt/)
- A Complete Beginner Guide to the Number Theoretic Transform (NTT), by Ardianto Satriawan, Rella Mareta, and Hanho Lee (https://eprint.iacr.org/2024/585)
- Real time Ethereum proving (https://ethproofs.org/)
- Data structure alignment (https://en.wikipedia.org/wiki/Data_structure_alignment)
- Translation lookaside buffer (https://en.wikipedia.org/wiki/Translation_lookaside_buffer)
- Paper: Recursive Proof Composition without a Trusted Setup (https://eprint.iacr.org/2019/1021)
SNARKs on binary fields: Binius (https://blog.lambdaclass.com/snarks-on-binary-fields-binius/) - FPGA (https://en.wikipedia.org/wiki/Field-programmable_gate_array)
ZK Whiteboard Sessions is an educational series on all things zero knowledge. Presented by ZK Hack.
Get notified on latest module upload by signing up below.
You're in. We'll let you know when the first module is live!