In 2022, we, the team who develops Hardcaml (Andy Ray, Ben Devlin, Fu Yong Quah, and Rahul Yesantharao) participated in the ZPrize competition. We competed in the Multi-Scalar Multiplication (MSM) and Number Theoretic Transform (NTT) tracks, winning the MSM FPGA track and coming second in the NTT track.

Read on to find out more about our submissions and view the code on github.


Multi-Scalar multiplication

The Multi-Scalar multiplication (MSM) competition tasked us with building an FPGA design that multiplies $2^26$ points on the BLS12-377 elliptic curve (with the G1 subgroup generator) by scalars from the associated 253-bit scalar field and add them all as fast as possible.

The platform targeted was Amazon F1 which uses a Xilinx UltraScale+ V9P FPGA with DDR memory banks.

Read more about the implementation

Number Theoretic Transform

This competition track required us to build a Number Theoretic Transform (NTT) accelerator capable of performing transforms of size $2^24$. NTTs are conceptually similar to the Fourier Transforms - working over a finite field instead of complex numbers.

The platform targeted was the Xilinx Varium C1100 accelerator card. The card contains a Virtex UltrasScale+ FPGA with HBM2.

Read more about the implementation