April 2025 Update: We’ve added two new case studies to this announcement, highlighting real-world applications of ICICLE, made possible through our Research Grants. 

Feb 2025 Update: We have added a special bonus for algorithms leveraging ICICLE sumcheck.

In early 2024, we launched our inaugural grants program, offering $100,000 to support research involving our high-speed cryptography library, ICICLE.

Now, we’re excited to announce our second grants program—another $100,000 dedicated to researchers. Details below!

Background: Who Are We? and What Is ICICLE?

Ingonyama is a next-generation hardware acceleration company committed to democratizing access to high-speed cryptography and advancing privacy-enhancing technologies.

ICICLE is our flagship product—a new math library designed for cryptographers to implement algorithms and protocols for high-speed cryptography, offering exceptional performance and a seamless developer experience.

Its design is straightforward:

  • Frontend APIs: We offer a comprehensive set of APIs, including vectors, polynomials, and hash functions, alongside specialized operations like MSMs, NTTs, Sumchecks, FRI, ECNTT, and more.
  • Access Options: These APIs are accessible directly in C++ or through Golang and Rust wrappers, ensuring flexibility for diverse development needs.
  • Backend: ICICLE supports multiple hardware devices and accelerators, including ARM, x86, NVIDIA GPUs, Apple Silicon, and more—all delivering maximum performance. It is embarrassingly simple to switch, offering instant multi-platform support. 

With ICICLE, every line of code has the flexibility to run on different target hardware as needed. Onboarding is seamless—start by writing your code locally on your machine. The real magic unfolds when you see that same code, unchanged, achieve orders-of-magnitude performance on data center GPUs—or run effortlessly on an iPhone.

The Goal: Outperform Existing Research Benchmarks

We’re looking for a collaborative adventure! Choose any research paper you like, identify an algorithm implemented in the paper with reported benchmarks, and re-implement it using ICICLE. The greater your improvement over the original paper’s implementation, the larger the grant you’ll receive.

How to Apply

Applying is straightforward. Here’s how it works:

  1. Reach out to us: Send an email to grants@ingonyama.com.
  2. Share your proposal: Briefly describe your idea, e.g., “I want to implement Whir in ICICLE (note: this one’s already taken by Giacomo)” or more generally, “protocol X from paper Y.”
  3. Collaborate: We’ll discuss and finalize the performance milestones together. Expect some back-and-forth to align on the project goals.
  4. Approval: Once in agreement, we greenlight the project.
  5. Get started: Begin your work with our support and drive it toward success!

Just like last year’s grants program, our team is here to provide end-to-end support on your journey to success. From access to hardware and ongoing support from our developers to collaborating with our research group on algorithms, we’ve got you covered. We also value detailed write-ups, and promise to showcase your work across our social channels to give it the recognition it deserves.

Case Study 1: Accelerating Threshold Encryption with ICICLE 

The papers Batched Threshold Encryption (https://eprint.iacr.org/2024/1516) and Silent Threshold Encryption (https://eprint.iacr.org/2024/263) introduce a practical protocol to achieve mempool privacy, ensuring transaction content remains hidden until it is included in a block. Two core innovations of the protocol are:

  • Silent Threshold Encryption – Clients encrypt their transactions independently, without interacting with decryption servers or leaking metadata. This results in a non-interactive and unlinkable submission process.
  • Batched Threshold Decryption – Once a batch of transactions is selected, each server computes a single partial decryption share for the entire batch. These shares are then combined to recover the plaintexts, keeping communication efficient and fixed regardless of batch size.

The authors began by implementing threshold encryption techniques using the Arkworks ecosystem in Rust. After benchmarking their solution, they applied for a research grant from Ingonyama to accelerate performance using ICICLE. The implementation work was done by Guru Vamsi Policharla from University of California, Berkeley, 

The threshold encryption protocols rely heavily on pairing-based cryptography and operations like multi-scalar multiplication (MSM) and fast Fourier transforms (FFT) over fields and elliptic curves — precisely the type of workload ICICLE’s CUDA backend is optimized for.

After migrating their code to ICICLE, Vamsi achieved up to 80x speedup over their original single-threaded Rust implementation. And they’re not stopping there — With native pairing support coming soon to ICICLE, they anticipate 150–200x performance improvements in the near future.

Guru shared, “The vision of ICICLE is great — allowing GPU speedups without GPU experience.” This is exactly what we had in mind when building ICICLE: empowering cryptographers with simple, portable access to high performance.

Case Study 2: Collaborative zk-SNARKs with ICICLE 

To enable scalable and efficient delegation of ZKPs, a team of researchers from Zhejiang University, led by Xuanming Liu (Hins), introduced a fully distributed collaborative zk-SNARK protocol. Their system, presented in the paper “Scalable Collaborative zk-SNARK and Its Application to Fully Distributed Proof Delegation”, allows multiple cloud servers to jointly compute zk-SNARK proofs without relying on a centralized, powerful prover. The paper introduces several new primitives for collaborative proof generation:

  • Collaborative Sumcheck – enabling joint computation of polynomial sums across multiple parties
  • Collaborative Productcheck – a protocol for verifying product constraints in distributed settings
  • Collaborative Multilinear Polynomial Commitments – allowing distributed commitment and opening of multivariate polynomials
  • Distributed PST (Permcheck) – used to verify permutation constraints in parallel

These primitives serve as building blocks for a collaborative version of HyperPlonk, where the prover is no longer a single entity but a distributed network of participants — bringing zk proof generation to a more scalable and resilient architecture. 

To put this into practice, the team turned to ICICLE for GPU acceleration. When Hins approached us, he shared, “I plan to use ICICLE to implement collaborative zk-SNARKs for HyperPlonk. This project serves both engineering and academic purposes. With ICICLE acceleration, we can develop a truly practical industrial solution.”

Their plan involved rewriting key components using ICICLE leveraging its optimized support for field arithmetic and MSM. ICICLE already supports the elliptic curves the project depends on — BN254 and BLS12-381 — ensuring full compatibility.

After porting parts of the system, the team observed at the MLE commitment up to 60x speedup and at the MLE open up to 6x speedup compared to their Arkworks-based version.

MLE (Multilinear Extension) Commitment refers to the process of committing to a multivariate polynomial that represents a computation over a large domain, typically in the Sumcheck or Productcheck protocol. It allows a prover to compactly represent an entire computation trace. 

MLE Open is the step where the prover reveals and proves the value of the committed polynomial at a specific point, enabling the verifier to check its correctness without seeing the full polynomial.

Hins shared, “We found that the GPU indeed achieves a significant speedup, indicating that hardware acceleration is feasible. We are pleased to see that the GPU's performance is quite satisfactory”.

FAQ

Q: What should be the length of a project?
A:
There’s no strict rule for project length—it can span a weekend or extend across multiple months and iterations.

Q: How much is the average grant amount?
A:
This will be determined on a case-by-case basis, as we consider multiple factors when evaluating the quality of a proposal. That said, it would be exciting if we ended up with a linear scale: for example, a 1x improvement might earn $1k, while a 10x improvement could receive $10k.

Q: In what currency will grants be paid?
A:
USDC.

Q: If I am authoring novel research and want to use ICICLE, can I apply?
A:
The grant is intended for new implementations of existing literature. However, you are welcome to apply as the author of the original paper. If you’re writing a new research paper and not considering ICICLE as your default, we’d love to hear why and improve.

Q: What’s in it for Ingonyama?
A:
This is a great question, so we asked Omer, our CEO. Here’s what he said: "We stand on the shoulders of giants: There is nothing that brings us more joy than reinvesting our earned money into cryptography research. We believe we’ve built a product that can help cryptographers achieve better results while saving time and costs. The most important part of ICICLE’s development lifecycle is user feedback. So, in a way, this grant is part of our tuition."

Q: Is ICICLE good enough?
A:
There’s only one way to find out! :) On a more serious note, ICICLE has come a long way and now supports a large and growing ecosystem of applications. Even a performance gain of less than 1x—especially if it highlights areas where ICICLE can be improved—will still be rewarded.