penumbra-zone / webgpu

WebGPU-based Groth16 prover to accelerate client-side proof generation for the Penumbra Protocol
4 stars 1 forks source link

Tracking issue: Proposal #2

Open TalDerei opened 1 year ago

TalDerei commented 1 year ago

Proposed Work: Implement a general-purpose, open-source WebGPU-based Groth16 prover to accelerate client-side proof generation for the Penumbra Protocol.

Phases: The end-to-end WebGPU POC will comprise three distinct, high-level phases described in greater detail below. Generally, phase (ii) scopes the open-source gluing / integration of the Penumbra web-code with a WebGPU backend, and phase (iii) scopes the closed-source zprize work based on a sparse-matrix MSM design (cuZK). Since (iii) is a single, sub-component in the larger system (ii) that can be built entirely independently and without conflict, then (ii) would be optimally structured to ease the eventual merging with (iii). For instance, hot-swapping the reference MSM algorithm in (ii) with the optimized MSM algorithm in (iii) using an API function call. Phases (ii) and (iii) would be concurrently built (in the open and closed-source), and remain independent until the codebases can be merged.

Phase (I): Architecture Code and Performance Review

Phase (II): WebGPU Backend for Penumbra Web Code + Web Improvements

Phase (III): ZPrize Competition Related-Work

TalDerei commented 7 months ago

Phase III is currently a post-mainnet task