1 Introduction
The Geometry team recently released a bounty ($1,500) project:
It is hoped that with the help of WebGPU technology, the ZKP proof on the client side can be realized.
Some existing WebGPU basic algorithm libraries are:
- https://github.com/geometryresearch/wgsl-poseidon (Rust+TypeScript+WGSL): Implements the Poseidon hash function in WGSL based on the BN254 Scalar domain, which can run in the browser and on the command line.
- https://github.com/sampritipanda/msm-webgpu (HTML+Python): Implements Vesta domain-based Pippenger algorithm MSM, and some other key elliptic curve arithmetic functions.
- https://github.com/voidash/webgpu-examples (Rust+WGSL): Implemented BLS12-381 finite field operations.
This bounty project focuses on but is not limited to the following dimensions:
- 1) High-level algorithm:
- Multi-scalar multiplication(MSM)
- Fast Fourier Transform (FFT)
- 2) Efficient Elliptic Curve Operations:
- Such as curve addition, exponential power operation, etc.
- 3) Efficient finite field operations:
- For example , x 5 mod px^5\mod p used frequently in Poseidon hash functionx5modp operation, or x 7 mod px^7\mod pused frequently in the MiMC7 hash functionx7modp operation.
- 4) Any common hash function:
- Such as Poseidon 2, Reinforced Concrete, Tip5 or MiMC, etc.
Rust provides wgpu
libraries that implement a CLI approach to running WGSL code.
2. What is WebGPU?
For detailed background knowledge of WebGPU, see:
References
[1] Geometry Bounty: WebGPU for ZK Proving, July 2023 blog of the Geometry team