In this two-part series exploring ZK Hardware, Anna Rose (
https://twitter.com/annarrose) interviews various participants from the ZPrize competition, alongside the creator of ZPrize and co-host of this episode Alex Pruden (
https://twitter.com/apruden08) from Aleo (
https://www.aleo.org/). Throughout these interviews, they dig into the different types of hardware, such as GPUs and FPGAs, that can be used to accelerate ZKP computation. They also discuss the underlying mathematical techniques in ZKPs that can be optimized for and the tricks and strategies that ZPrize competitors used to achieve these optimizations.
In Part 2 of the series, Anna and Alex first interview Hamid Salehi (
https://www.linkedin.com/in/hsalehi) and Swati Gupta (
https://www.linkedin.com/in/swatiguptaa) from Xilinx AMD (
https://www.amd.com/en/products/xilinx) who contribute insights from the perspective of an FPGA manufacturer. Alex and Anna then interview competitor Niall Emmart (
https://www.linkedin.com/in/niall-emmart-0369384), previously from NVIDIA (
https://www.nvidia.com/en-gb/). They discuss his previous work and what went into winning both the MSM for GPUs and MSM for Wasm competitions in ZPrize (
https://www.zprize.io/).
Here is some additional information for this episode:
Hardware/Board options:
* Varium C1100 board (
https://www.xilinx.com/products/accelerators/varium/c1100.html) (targeted at accelerating blockchain applications).
This board has been used to accelerate the following:
* Poseidon hash (used in the storage sealing process for Filecoin)
* NTT acceleration at ZPrize
* Startups are using this to explore NTT and MSM acceleration
* Other boards (
https://www.xilinx.com/products/boards-and-kits/alveo.html)
The U55C (
https://www.xilinx.com/products/boards-and-kits/alveo/u55c.html) in particular has been shown to provide a competitive and more power efficient alternative to GPUs for MSM acceleration in this study (
https://eprint.iacr.org/2022/999.pdf) by Ingonyama called PipeMSM. There has been interest in U55C for NTT acceleration as well due to the high HBM capacity it provides (16GB).
Research and documents on using FPGAs for ZK related implementation:
* pipeMSM (
steps.html">https://xilinx.github.io/Alveo-Cards/master/debugging/build/html/docs/common-
steps.html)
* CycloneMSM (
https://eprint.iacr.org/2022/1396.pdf)
* Hardcaml team’s Zprize webpage (
https://zprize.hardcaml.com/)
Projects using the C1100 board (These can be a good starting point for getting familiar with the hardware and tools):
* ZPrize (
https://github.com/z-prize/2022-entries/tree/main/open-division/prize2-ntt) submissions in the NTT category
* Poseidon hash implementation (
https://www.hackster.io/datenlord/trident-a-hardware-implemented-poseidon-hasher-79025f) from the Adaptive Computing 2021 challenge conducted by
Hackster.io
Documentation on tools and boards:
* Vitis (
https://github.com/Xilinx/Vitis-Tutorials) unified software tutorial
* Alveo debug (
steps.html">https://xilinx.github.io/Alveo-Cards/master/debugging/build/html/docs/common-
steps.html) guide
* Alveo (
basics.html">https://www.xilinx.com/developer/articles/acceleration-
basics.html) usage documentation
* Vitis for CUDA (
from-cuda-to-vitis.html">https://www.xilinx.com/developer/articles/migrating-
from-cuda-to-vitis.html) developers
GitHub Repositories:
* NVIDIA CGBN Labs GitHub (
https://github.com/NVlabs/CGBN)
* Xilinx Hyperledger Fabric GitHub (
https://github.com/Xilinx/hyperledger-fabric)
* ZPrize GitHub (
https://github.com/z-prize)
Check out the ZK Jobs Board here: ZK Jobs (
https://jobsboard.zeroknowledge.fm/).
Ingonyama’s (
https://www.ingonyama.com/) mission is to improve the performance of Zero-Knowledge Provers by designing hardware optimized for ZK computation. They are proud to introduce their latest project, ICICLE.
For ideas and discussion around the code, visit the ICICLE channel in the Ingonyama discord server (
https://discord.gg/nBdDJ2H4), where team members and fellow developers await.
If you like what we do:
* Find all our links here! @ZeroKnowledge | Linktree (
https://linktr.ee/zeroknowledge)
* Subscribe to our podcast newsletter (
https://zeroknowledge.substack.com)
* Follow us on Twitter @zeroknowledgefm (
https://twitter.com/zeroknowledgefm)
* Join us on Telegram (
https://zeroknowledge.fm/telegram)
* Catch us on YouTube (
https://zeroknowledge.fm/)