With ZPrize'23 1B track coming to an end, we wrap up the whole ZPrize'23 competition. The goal of 1B track is to build the most energy-efficient end-to-end zero-knowledge proof implementation for the Poseidon-Merkel tree circuit, on FPGAs or GPUs. The circuit used here is Poseidon-Merkle using the BLS12-381 curve. Hashing is one of the most critical operations in state-of-the-art zero-knowledge applications. The Poseidon-Merkle algorithm is considered a zero-knowledge friendly cryptographic hash function. The more detailed prize spec can be founded in this repo, and all the submissions can be found in this repo
In the evaluation, we measure the power of the corresponding GPU/FPGA and CPU every 0.01 second and the total energy is calculated as . The code used for evaluation can be found in this repo.
We received 5 GPU submissions and 1 FPGA submission. Based on the above equation, their ranking is
Name | GPU or FPGA | Amotized Prove time (seconds) | GPU/FPGA Total Energy (joules) | CPU Total Energy (joules) | Total Energy (joules) |
---|---|---|---|---|---|
Snarkify | GPU | 0.55 | 39.22 | 98.725 | 137.945 |
Mike Voronov and Alex Kolganov | GPU | 0.7764 | 117.79 | 147.180 | 264.97 |
Trapdoor Tech | GPU | 3.0533 | 443.51 | 620.369 | 1063.879 |
PNP | GPU | 32.093 | 2196.01 | 5841.247 | 8037.257 |
EthStorage | GPU | 56.478 | 3083.85 | 10461.985 | 13545.835 |
Ponos | FPGA | 208.05 | 23191.38 | 36529.419 | 59720.799 |
Baseline code | GPU | 494.11 | 12837.37 | 87709.146 | 100546.516 |
As shown in the above table, Snarkify wins the first place in the GPU track. They achieve 898x and 695x improvement compared against the baseline implementation (provided by Trapdoor Tech) with respect to latency and total energy cost.
There are 5 GPU submissions and 1 FPGA submission which perform better than the baseline code. The award pool is $400k USD +250k Aleo tokens. Based on the award distribution in the spec, the GPU track accounts for 5/6 of the award pool, while the FPGA track takes 1/6 of that. Therefore, the award for ZPrize'23 1B can be distributed as follows: