GPU-accelerated cryptography and zero-knowledge proof projects that run on user devices — browsers, phones, and desktops — not remote servers.
- What Is Client-Side GPU Proving
- GPU API Quick-Reference
- Projects by GPU Technology
- Projects by Cryptographic Operation
- Mobile and Edge Proving
- Competitions and Benchmarks
- Learning Resources
Zero-knowledge proofs require heavy finite-field and elliptic-curve arithmetic that maps naturally onto GPU parallelism. Client-side GPU proving brings these speedups to ordinary user hardware — a browser tab, a smartphone, a laptop — so privacy-preserving applications never need to send sensitive inputs to a remote server.
Six classes of operation benefit most from GPU acceleration:
- MSM (Multi-Scalar Multiplication) — dominant cost in pairing-based systems (Groth16, PLONK).
- NTT (Number Theoretic Transform) — core of STARK and FRI-based systems.
- Polynomial evaluation and matrix-vector multiplication — high-throughput linear algebra.
- Merkle tree commitments — batch hashing for hash-based proof schemes.
- Sumcheck protocol — multivariate polynomial reductions (GKR, WHIR).
- Linear encoding and hashing — used in Basefold and Brakedown commitment schemes.
MSM and NTT yield 10–100× speedups over CPU on modern GPU hardware and are the primary focus of most projects in this list.
| API | Platforms | Primary Languages | Browser Support | Notes |
|---|---|---|---|---|
| WebGPU | Browser, native (via wgpu) |
WGSL, Rust, JS/TS | Chrome 113+, Firefox (flag), Safari TP | W3C standard; replaces WebGL for compute |
| Metal | iOS, macOS, Apple Silicon | MSL, Rust (metal-rs), Swift | No | 2–3× faster than OpenGL on Apple hardware |
| Vulkan Compute | Windows, Linux, Android | GLSL, SPIR-V, Rust | No | Cross-vendor; lowest-level portable API |
| ROCm / HIP | AMD GPUs (Linux) | HIP C++ | No | CUDA-compatible syntax; growing mobile support |
| CUDA | NVIDIA GPUs | CUDA C++ | No | Highest throughput; server/desktop only |
| OpenCL | Most GPUs | OpenCL C | No | Legacy; being superseded by Vulkan/WebGPU |
-
ICME-Lab/msm-webgpu - MSM over BN254 using the cuZK algorithm, compiled to WGSL shaders.
GPU: WebGPUCurve: BN254Op: MSMLang: Rust. -
td-kwj-zp2023/webgpu-msm-bls12-377 - Winning ZPrize 2023 entry for MSM over BLS12-377.
GPU: WebGPUCurve: BLS12-377Op: MSMLang: TypeScript. -
td-kwj-zp2023/webgpu-msm-twisted-edwards - ZPrize 2023 MSM entry targeting Twisted Edwards curves with extended-coordinates arithmetic in WGSL.
GPU: WebGPUCurve: BLS12-377Op: MSMLang: TypeScript. -
demox-labs/webgpu-crypto - Research-stage library covering MSM, NTT, and hash functions over BLS12-377 and BN254.
GPU: WebGPUCurve: BLS12-377, BN254Op: MSM, NTT, HashLang: TypeScript. -
demox-labs/webgpu-msm - Baseline ZPrize 2023 reference for browser-native MSM over BLS12-377.
GPU: WebGPUCurve: BLS12-377Op: MSMLang: TypeScript.
- penumbra-zone/webgpu - Pioneer Groth16 prover for Penumbra's shielded transactions over BLS12-377.
GPU: WebGPUCurve: BLS12-377Op: Groth16Lang: RustStatus: Archived.
- ligeroinc/ligero-prover - Hash-based ZK prover using FFT-based polynomial IOPs, running in browsers via Dawn/Emscripten.
GPU: WebGPUOp: NTT, HashLang: C++.
-
zkmopro/gpu-acceleration - Metal MSM library for Apple Silicon achieving 40–100× speedup over CPU, integrated into the mopro toolkit.
GPU: MetalCurve: BN254Op: MSMLang: Rust. -
geometryxyz/msl-secp256k1 - Metal Shading Language implementation of secp256k1 elliptic-curve arithmetic using Jacobian coordinates, targeting Apple Silicon GPUs.
GPU: MetalCurve: secp256k1Op: EC ArithmeticLang: MSL.
The Cross-Platform Frameworks listed below all support Vulkan or ROCm as one of their backends.
-
ingonyama-zk/icicle - Production-ready ZK acceleration library with CUDA, Metal, and ROCm backends and iOS/Android support.
GPU: MultiOp: MSM, NTTLang: C++, Rust. -
tracel-ai/cubecl - GPU compute framework for Rust using a proc-macro kernel language that compiles to WebGPU, CUDA, ROCm, and Metal.
GPU: MultiOp: Field ArithmeticLang: Rust. -
lambdaclass/lambdaworks - Full ZK cryptography library with GPU-accelerated FFT, MSM, and Merkle tree backends for CUDA and Metal.
GPU: MultiOp: FFT, MSMLang: Rust. -
mratsim/constantine - High-performance elliptic-curve and pairing library in Nim with experimental WebGPU and CUDA backends.
GPU: MultiOp: EC Arithmetic, MSMLang: Nim. -
spaceandtimefdn/blitzar - MSM and Pedersen commitment library with CUDA and CPU backends.
GPU: CUDAOp: MSMLang: C++, Rust.
Primary entries are in the GPU Technology sections above.
| Project | GPU | Curve |
|---|---|---|
| ICME-Lab/msm-webgpu | WebGPU | BN254 |
| td-kwj-zp2023/webgpu-msm-bls12-377 | WebGPU | BLS12-377 |
| td-kwj-zp2023/webgpu-msm-twisted-edwards | WebGPU | BLS12-377 (Twisted Edwards) |
| demox-labs/webgpu-msm | WebGPU | BLS12-377 |
| zkmopro/gpu-acceleration | Metal | BN254 |
| ingonyama-zk/icicle | Multi | Multi-curve |
| lambdaclass/lambdaworks | Multi | Multi-curve |
| spaceandtimefdn/blitzar | CUDA | Multi-curve |
Primary entries are in the GPU Technology sections above.
| Project | GPU | Notes |
|---|---|---|
| demox-labs/webgpu-crypto | WebGPU | Research-stage |
| ligeroinc/ligero-prover | WebGPU | FFT-based polynomial IOPs |
| ingonyama-zk/icicle | Multi | Production-ready |
| lambdaclass/lambdaworks | Multi | Full ZK library |
| Project | GPU | Notes |
|---|---|---|
| tracel-ai/cubecl | Multi | Kernel language targets any backend |
| mratsim/constantine | Multi | Nim runtime JIT |
| Project | GPU | Notes |
|---|---|---|
| demox-labs/webgpu-crypto | WebGPU | Poseidon, Keccak research |
| ligeroinc/ligero-prover | WebGPU | Hash-based proof system |
| Project | GPU | System | Notes |
|---|---|---|---|
| penumbra-zone/webgpu | WebGPU | Groth16 | Archived pioneer |
| ligeroinc/ligero-prover | WebGPU | Ligero | Browser via Dawn/Emscripten |
| zkonduit/ezkl | Metal | PLONK / ZKML | iOS/macOS |
| zkmopro/mopro | Metal | Multi-prover | iOS mobile toolkit |
-
zkmopro/mopro - Multi-prover mobile toolkit exposing a unified Swift/Kotlin API over Halo2, Noir, and Circom backends.
GPU: MetalOp: Groth16, PLONKLang: Rust. -
zkonduit/ezkl - ZK machine-learning inference library on iOS and macOS, delivering ~2× speedup over the CPU path.
GPU: MetalOp: ZKML, PLONKLang: Rust.
ZPrize is an open competition that accelerates ZK hardware and software. The 2023 WebGPU track (Prize #2) produced the fastest known browser-native MSM implementations;
all entries are listed in the WebGPU section above.
-
moven0831/field-ops-benchmarks - Benchmarks for M31 and BN254 field operations across Metal and WebGPU backends.
GPU: Metal, WebGPUOp: Field Arithmetic. -
ethproofs.org — client-side proving dashboard - Live leaderboard tracking proof generation times and costs for client-side Ethereum proof systems across various hardware targets.
-
Mopro: "Metal MSM v2" - Technical walkthrough of the second-generation Metal MSM implementation in zkmopro/gpu-acceleration, explaining the 40–100× CPU speedup.
-
zkSecurity: "Accelerating ZK Proving with WebGPU" - Explores how WebGPU NTT shaders accelerate Stwo STARK proving in the browser.
-
Geometry Research: "Accelerating Client-Side ZK with WebGPU" - Introduces the MSL secp256k1 work and frames the broader opportunity for WebGPU in client-side ZK proving.
-
PSE: "Client-Side GPU Acceleration for ZK" - Frames why client-side GPU proving matters for Ethereum privacy and surveys six key GPU-accelerable ZK primitives.
- cuZK: Accelerating Zero-Knowledge Proof with a Faster Parallel Multi-Scalar Multiplication Algorithm on GPUs - IACR 2022/1321; introduces the cuZK MSM algorithm that underpins most WebGPU and Metal MSM implementations in this list.
Op: MSM.
-
mikbry/awesome-webgpu - Comprehensive WebGPU ecosystem list covering specs, demos, shader libraries, and tutorials.
-
rofrol/awesome-wgpu - Curated resources for
wgpu, the primary Rust WebGPU implementation used by many projects in this list. -
jslee02/awesome-gpgpu - General-purpose GPU compute frameworks including CUDA, OpenCL, and Vulkan Compute.
-
goabiaryan/awesome-gpu-engineering - GPU architecture, optimization techniques, and Metal Performance Shaders resources.
-
matter-labs/awesome-zero-knowledge-proofs - Comprehensive ZKP educational resources covering theory, tools, and applications.
-
ventali/awesome-zk - ZK resources spanning zkVMs, L1/L2 protocols, developer tools, and benchmarks.
-
odradev/awesome-zero-knowledge - Blockchain-focused ZK resources with a companion weekly newsletter at zknewsletter.com.
See CONTRIBUTING.md for the scope rules, tag vocabulary, and submission checklist.
