Ingonyama Blogs

Multi-Precision Fast Modular Multiplication

Improving modular multiplication, even by a little bit, can result in significant acceleration…So obviously, we at Ingonyama are obsessed with this problem.

Hardware-friendliness of HyperPlonk

In this note we provide the hardware perspective on HyperPlonk. We focus on the main building block, the Multivariate SumCheck protocol and compare its computational and memory complexity to that of an NTT (Number Theoretic Transform).

Zero Knowledge Proofs and the Metaverse

In the first week of December, 2022, the term “Metaverse” placed second in the Oxford English Dictionary’s competition for Word of the Year, a vote cast by over 300k people signifying a word or expression believed to have lasting cultural significance reflecting the ethos and moods of the past twelve months.

The Z Games: Pushing ZK Provers to the Extreme

A competition for accelerating real-world ZK provers, inspired by ZPRIZE and the X Games. Aleo is a blockchain for privacy-preserving applications, powered by Zero Knowledge.

Goldilocks NTT Trick

Polynomial arithmetic is at the heart of modern Zero Knowledge Proving (ZKP) systems. The Number Theoretic Transform (NTT) is a crucial tool in facilitating efficient computational complexity over large polynomials encountered in ZKPs.

Introducing Ingonyama - Lowering the Barrier of Entry to ZKP

We are a next-generation semiconductor collective, designing accelerators for advanced cryptography. Our mission is to lead the pack, forging the bedrock upon which applications requiring Zero Knowledge Proof performance can be built at greater speed and scale.

“Pushing the Limits on NTT Computation”

We report on the Winograd-based implementation for the Number Theoretical Transform. It uses less multiplications than the better-known Cooley-Tuckey alternative. This optimization is important for very high order finite-fields.

Marlin & Me: A Deep Dive into the Heart of the Marlin ZK Protocol

In this article, we dive deep into the heart of the Marlin protocol introduced in [1]. The goal of the document is to provide intuition in the various technical steps involved in the protocol with necessary explanation wherever possible. We will assume some familiarity with protocols such as Groth16

Bridging the Multichain Universe with Zero Knowledge Proofs

Bridges are communication protocols that facilitate the transfer of information such as messages, funds or other data between blockchains. While useful, building bridges is a risky business. Some of the most expensive hacks in blockchain history have targeted bridges alone.

Systemization of Knowledge: ZK-Friendly Hash Functions

In this article we present a systematization of knowledge (SoK) on the usage of hash functions in Zero Knowledge Proofs (ZKP’s). Since ZKP’s operate on finite fields, traditional time-tested hash functions like SHA256 are unsuitable due to overhead in proving and verification of large number of bitwise operations.

HackerNoon: Using Cloud-ZK for Developing ZKP Acceleration in the Cloud

Zero Knowledge (ZK) technology is a fundamental building block for decentralized computing. Its two main applications are privacy-preserving computation and verifiable computation. For specific types of ZK such as SNARK and STARK-based systems, additional properties include public verifiability, smaller proof sizes, and fast verification, making these kinds of ZK perfect for use in blockchains for scalability and privacy purposes.

Cloud-ZK: A Toolkit for Developing ZKP Acceleration in the Cloud

Zero Knowledge (ZK) technology is a fundamental building block for decentralized computing. Its two main applications are privacy-preserving computation and verifiable computation. For specific types of ZK such as SNARK and STARK-based systems, additional properties include public verifiability...

A Mathematical Theory of Danksharding

Danksharding is the new sharding design proposed for the Ethereum 2.0 blockchain, which introduces significant simplifications compared to previous designs. In Danksharding, the Beacon block is a periodic data structure, constructed by a Builder, whose primary concern is to enable Validators to verify the correctness and availability of its data, using constant-time sampling and verification.

PipeMSM: Hardware Acceleration for Multi-Scalar Multiplication

In this paper we present a new hardware design for MSM and implement it on FPGA. We conduct the first-ever comparison between FPGA and GPU.

Fast Modular Multiplication

Modular multiplication is arguably the most computationally-dominant arithmetic primitive in any cryptographic system. This note presents an efficient, hardware-friendly algorithm that, to the best of the author’s knowledge, outperforms existing algorithms to date.

Down the Rabbit Hole: Optimizing AWS F1 Direct Memory Access (DMA)

When implementing a system involving both software and hardware components, unforeseen issues always seem to occur at the interfaces.

Sparkworks - Native Hardware Acceleration in Arkworks

We demonstrate integration of our cloud-ZK FPGA acceleration by running Arkworks Groth16 over the BN254 curve This work can easily be extended to support other primitives in the Arkworks framework and various System/HW configurations

Polygon’s zkEVM Fun Facts

We spotted an opportunity to share some interesting data points on their zkEVM. zkEVM Prover is the most complex part of the code. zkEVM is mostly written in Go (Prover in C++) with some utilities in Javascript / Typescript.

Poseidon-Hash Repository

Poseidon is a hash function designed to minimize prover and verifier complexities when zero-knowledge proofs are generated and validated. Until recently, developers using the Python programming language weren’t able to utilize Poseidon Hash, a ZK friendly hashing algorithm.

Ingopedia: A Repo for all things ZK

A curated collection of: Resources, Articles, Lecture, Videos, Tutorials . Contribute to ingonyama-zk/ingopedia development by creating an account