Paper 2025/1764
Keccacheck: towards a SNARK friendly Keccak
Abstract
Keccak, the hash function at the core of the Ethereum ecosystem, is computationally expensive to reason about in SNARK circuits, creating a critical bottleneck in the ability of the ZK ecosystem to reason about blockchain state. The recent state-of-the-art in proving Keccak permutations relies on proof systems that can perform lookup arguments, which—while exhibiting better performance than directly proving the hash operations in circuit—still typically require tens of thousands of constraints to prove a single keccak-f permutation. This paper introduces a new method, termed keccacheck, which builds upon sum-check with influence from GKR to create circuits that can batch-verify Keccak permutations with fewer than 4000 constraints per instance. Keccacheck achieves this by exploiting the logarithmic scaling of recursive verification of the sum-check protocol, reducing the computational cost of verifying large enough batches to be only slightly higher than evaluating the multilinear extension of the input and output states. Its performance becomes competitive for a batch containing 16 permutations and offers more than a 10x cost reduction for batches of 512 or more permutations. This approach enables new levels of efficiency for the ZK ecosystem, providing the performant storage proofs that are essential to light clients, cross-chain bridges, privacy-focused protocols, and roll-ups.
Metadata
- Available format(s)
-
PDF
- Category
- Cryptographic protocols
- Publication info
- Preprint.
- Keywords
- keccaksha3zero-knowledgesum-checkGKR
- Contact author(s)
-
marcin kostrzewa @ reilabs io
matthew klein @ reilabs io
ara @ reilabs io
greg @ reilabs io
wojciech zmuda @ reilabs io - History
- 2025-09-30: approved
- 2025-09-26: received
- See all versions
- Short URL
- https://ia.cr/2025/1764
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2025/1764,
author = {Marcin Kostrzewa and Matthew Klein and Ara Adkins and Grzegorz Świrski and Wojciech Żmuda},
title = {Keccacheck: towards a {SNARK} friendly Keccak},
howpublished = {Cryptology {ePrint} Archive, Paper 2025/1764},
year = {2025},
url = {https://eprint.iacr.org/2025/1764}
}