I Built a Private Genomics Study with Stoffel MPC

vishakh822 pts0 comments

I Built a Private Genomics Study with Stoffel MPC – Vishakh's Blog

I Built a Private Genomics Study with Stoffel MPC

Jul 21, 2026

Genomics, Encryption, MPC

genomics, MPC

Most genomic studies begin by asking participants to upload one of the most identifying and irrevocable pieces of data they own, their DNA. I continue to investigate whether multi-party computation can offer a different model, one in which a study can produce useful results without anyone collecting the participants’ genomes in the first place.

That question has now led me to build a proof of concept with Stoffel MPC. One hundred simulated participants successfully computed aggregate allele counts without any party seeing the complete dataset. This post explains what I built, how it performed and what I learned.

Stoffel MPC has launched

Stoffel recently launched version 0.1.0 of its multi-party computation (MPC) platform with the ambitious goal of making privacy-preserving applications accessible to ordinary developers and not just to teams of cryptography boffins.

MPC lets several computers perform calculations on private data without any one of the computers receiving the complete inputs. Although MPC systems have traditionally been difficult to build with Stoffel presents the technology as an approachable developer platform. Applications are written in its Python-like StoffelLang, compiled to bytecode and executed by the Stoffel VM across a set of MPC parties.

We no longer have to rely on a more robust privacy policy or a more secure central database. We can simply avoid collecting the raw data in one place.

Naturally, I wanted to try it with Monadic DNA

Given my ongoing work on Monadic DNA, genomics was an obvious test case. In an earlier experiment, my colleagues and I used Nillion and real genotype data from thirty participants to explore private DNA analysis.

Genetic data is an unusually good test of a privacy system. It is highly identifying, can reveal information about relatives and cannot be changed after a breach. At the same time, many useful genomic studies do not need to inspect individual records. A researcher may only need cohort-level variant counts or a score calculated across the group.

The concrete use case I wanted to explore was a revamped Monadic DNA mobile app. A Monadic DNA user keeps their genotype data on their phone and may choose to participate in a study that needs aggregate statistics across many users (perhaps in return for a payment). The question was whether the app could contribute that data securely without first uploading the user’s complete genotype to Monadic DNA, the researcher or another trusted central service.

Instead of the conventional design where everyone’s genotype data is uploaded to a central service that must protect it, I wanted to see whether Stoffel could let each Monadic DNA app contribute directly to a joint calculation. In that design, no coordinator, application server or individual MPC party receives the complete dataset.

The source code for the experiment is available at github.com/vishakh/stoffel-test.

What the proof of concept is meant to do

The proof of concept simulates one hundred Monadic DNA mobile-app users joining a genomic aggregate study. Each user contributes six synthetic SNP values, which they could have obtained through Monadic DNA, 23andMe or another service. The study calculates the total count for each target allele and a simple weighted score across the cohort.

The important part is the trust boundary. Each simulated user has a separate client identity and a process containing only that user’s six values. The client creates shares locally and sends a different share directly to each MPC party. Only the aggregate counts and score are revealed.

This is deliberately different from putting all one hundred records into one server-side client. That would demonstrate private arithmetic inside the MPC network, but the client would remain a trusted data collector capable of seeing or leaking every genotype.

In the intended Monadic DNA flow, a user would review and consent to a study in the mobile app. The app would select only the DNA values required for that approved computation, create the shares on the phone and send them directly to the MPC parties. Complete DNA data should never pass through Monadic DNA’s servers or another central ingestion service; only the approved aggregate result should leave the MPC computation.

Comparing MPC and fully homomorphic encryption

Multi-party computation (MPC) and fully homomorphic encryption (FHE) both make it possible to calculate over data without exposing the underlying inputs, but they use different models. With FHE, each user typically encrypts their genotype under a public key and a server computes directly on the ciphertexts. With MPC, each user divides their input into shares and sends a different share to each of several computing parties.

The approaches place trust and operational complexity in...

data stoffel monadic study user private

Related Articles