ZK/SEC Research notes from zkSecurity
All posts
mpcsec.org · Part 2 of 2

New on mpcsec.org: An MPC Bug Tracker, Templates, and a Cleaner UI

banner

Last month we announced mpcsec.org, an open, collaborative reference for the implementation mistakes that keep recurring in multi-party computation. Since then, we have shipped several updates aimed at making MPC implementation mistakes easier to find, classify, and document.

The biggest addition is the MPC Bug Tracker: a searchable collection of real-world MPC bugs drawn from deployments, disclosures, and audits. The tracker connects concrete incidents back to reusable pitfall patterns, turning isolated bugs into reusable lessons for future MPC reviews.

We also expanded the site’s taxonomy with a section on cryptographic primitives. MPC protocols rely on building blocks such as commitments, hashes, signatures, Paillier encryption, elliptic-curve groups, and randomness. When those primitives are misused or instantiated with the wrong assumptions, the protocol around them can fail even if the high-level design looks sound.

To make contributions easier, the repository now includes templates for adding both concrete bugs and reusable pitfall patterns. The goal is to keep the structure consistent while lowering the friction for people who have seen MPC bugs in the wild and want to document them.

We also refreshed the site UI to make the pitfall categories and bug tracker easier to browse.

If you have seen an MPC bug we are missing, send it our way. And if you would like an extra set of eyes on your MPC stack, reach out at hello@zksecurity.xyz.

Keep reading
Recommended

Announcing mpcsec.org: What Goes Wrong When You Implement MPC

mpcsec.org is a new collaborative reference for common pitfalls in MPC implementations and the cryptographic primitives they rely on, built with contributors from zkSecurity, Trail of Bits, Partisia, and Zama. If you build, audit, or deploy threshold signatures, distributed key generation, or other MPC protocols, it's a starting point for the mistakes you don't want to repeat.

ZK/SEC · May 25, 2026

A Gentle Introduction to the MPC-in-the-Head Transformation

In this blog post, we dive into the fascinating world of zero-knowledge proofs using the MPC-in-the-Head transformation, a clever method that constructs proof systems from any secure multiparty computation protocol. Originally proposed in 2007, this transformation uses a creative approach involving "imaginary parties" to prove knowledge without revealing it. We explain how this technique can be applied to develop post-quantum signature schemes, providing insights into its practical implications and efficiency. By exploring these concepts, readers will uncover a unique intersection of cryptography and computer science.

Giorgio Dell'Immagine · February 20, 2025

Renegade Audit: When ZK meets MPC

We recently had the pleasure of auditing Renegade's circuits and smart contracts, and it was a great experience. Over three weeks, our team explored their top-notch code and documentation, with the Renegade team providing awesome support throughout. Curious how it all went? Dive into our full report for the inside scoop!

ZK/SEC · July 22, 2024
More to explore

Beyond L2s Maturity: A Formal Approach to Building Secure Blockchain Rollups

In our latest blog post, we dig into the fascinating world of blockchain rollups, focusing on their security and how they help Ethereum scale while maintaining its core values of decentralization. We'll break down the concepts of Optimistic and ZK-Rollups, discuss the importance of projects like L2BEAT in assessing rollup maturity, and introduce our formal model for ensuring rollup security. If you're curious about how forced transactions, safe blacklisting, and upgradeability are shaping the future of Ethereum, this is a read you won't want to miss.

Stefanos Chaliasos · February 18, 2025

noname: ZK app developers should be able to see down to the constraints

Zero-knowledge apps are evolving, and we've been diving into their two main forms: VM instructions and arithmetic circuits. Understanding the "assembly" layer is crucial for developers, especially when optimizing and ensuring security. We’ve played around with a new toy language called **noname**, blending Golang and Rust vibes to make zkApps more understandable. With **noname**, you get detailed insights about how your code translates into gates, offering a clearer picture of the underlying "assembly" and helping pinpoint compiler bugs. If you're curious about enhancing your low-level programming skills or peeking into circuit construction, check out our experiments and see if this inspires you to create better debugging tools!

David Wong · June 03, 2023

Circle STARKs: Part I, Mersenne

Discover the intriguing world of Circle STARKs and how they can supercharge zero-knowledge proofs. This blog post sets the stage for a fascinating series about utilizing Mersenne prime fields to achieve lightning-fast arithmetic operations in STARK systems. You'll explore recent breakthroughs that make these fields more practical despite their previous limitations, and you'll get a sneak peek at what’s to come, including delving into group structures and implementing circle FFTs. If you're keen on cryptography and zero-knowledge proofs, this series will unveil how modern advancements are pushing the boundaries of what's possible.

Mathias Hall-Andersen · June 03, 2024