New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

MPC Tooling or How to create MPC apps by Rasul Ibragimov | Devcon SEA

DevconThu, Oct 9, 2025, 12:00 AM

Let's get into the state of the art of MPC development: we'll discuss different MPC schemes, current MPC tooling & how you can create MPC apps today. We'll cover the tech stack from a frontend level (e.g. MPC compilers) to a backend - and of course how we can combine them. Speaker(s): Rasul Ibragimov Skill level: Intermediate Track: Applied Cryptography Keywords: Tooling, Cryptography, MPC Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum, https://warpcast.com/devcon Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more. Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon SEA was held in Bangkok, Thailand on Nov 12 - Nov 15, 2024. Devcon is organized and presented by the Ethereum Foundation. To find out more, please visit https://ethereum.foundation/

Transcript

[Music] [Music] Hi everyone. Uh my name is Rasul. I work in MPC research team of privacy and scaling explorations. And today I want to talk about MPC tooling or how we can create MPC apps. So what exactly I'm going to go over is like first short introduction what is MPC then I'm going to talk about applications of MPC and then I'm going to talk I'm going to cover tools we work on in our team uh that allow people to create MPC apps and then short example interesting example of using these tools.

So what is NPC? MPC is an interactive protocol that allows parties to jointly compute a function or their inputs while keeping those inputs private. So let's imagine that we have a public function f that takes two parameters x and y. Uh and let's say party one provides x uh x parameter, party two provides y parameter and they will be able parties will be able to compute the output of this function uh while keeping their individual inputs private. So there are two kinds of MPCs.

First one is appsp specific and second one is general purpose MPC. So appsp specific protocols MPC protocols are designed to uh represent one specific function. So let's say threshold signatures, Shamir secret sharing and PSI and many others and general purpose to are designed to represent any function including the all the app specific protocols as well. So there are many applications of MPC uh I'm going to like mention a few examples. So it's like privacy preserving preserving machine learning uh cost narks uh MPC stats is another great project that PCTM works on uh and etc.

So first tool I want to talk about is called circummpc. Uh circumc is basically a project project is a fork of circum it's a famous zkdsl but it compiles to universal MPC format called Bristol fashion circuit uh that can describe boolean and arithmetic circuit. So why we chose circum is because many zk/ cryptography devs already know circom uh and it's easy it will be easier for them to create circuits in cirom. And there's also a big number of circuits written in sorcom already. Uh for example, circum liba ml uh and they can be reused without changing the code.

And that's actually what we did in PSC as well. We just took circum libl cath uh library and we were able to run npc uh circuits MPC in uh ML sorry in MPC. Another tool I want to talk about is called summon. Uh summon is a language for collaboratively summoning computations. Uh and it's another tool that my teammate mostly works on Andrew Morris.

Uh and summon is TypeScript like DSL similar to circumc uh or in Typescript uh and therefore it allows to build everything end to end in Typescript. So if you know cursive team uh they already use C summon tool as well uh in their apps. And the last tool I want to cover is called circummp speeds. So first of all, MP speeds itself is a like big big framework that people can use to create MPC apps. But it might be a big uh a bit hard for beginners to start with it.

So what we do so circumsp speeds is basically a transpiler from Bristol format that generated by someone compiler by circumcis format tombc representation that is required to run the circuit in MPC uh MP with MP speeds back end. uh and this project shows an example of running circum libl machine learning circuits in MP speeds and you can find uh benchmarks and everything every every information about this uh in the repo and uh yeah as I said the same tool can be used to transpile circus generated by someone as well not only by circumc uh it's a matching game for friends and flowers uh that Barry White hat was talking about last year on dev connect. It's called two PCs for lovers. So basically you can play with your friends or with your lover and you can choose love. Uh but if you choose love but the result is friendship you only you will know about your feelings.

Uh even if your friend knows advanced cryptography. Yep. Uh and you can try it here. Yep. That's it.

Uh thanks for coming. Uh you can find me uh by my username Kasu. Yep. Thank you. Any question?

Oh, there's one. Uh I probably need some help. No. Do you want to try? Yeah, let's go.

Uh we might care. [Applause] Sorry, sorry, Jordy. That was a good direction. So, okay. Um, I have a question.

Uh, did you explore using MPC for building interoperability or bridges? Uh, no actually. No, I don't think so. I don't think so. No.

Oh, do you have an idea? Uh, like for example, opinion? Yeah. Yeah, I mean building interperability protocols with MPC. No, we weren't doing this.

We mostly were focusing with for I work mostly on uh circumc uh so we were focusing on privacy presenting machine learning like mostly and uh yeah not not on that case yet. Yeah sure I mean we are just exploring it and getting into it. So wanted to see like more opinions and builders around that. Okay thanks. Uh, sorry.

Sorry if I if I didn't answer. Sorry. We see a question over there. Yeah. Oh, this is a mic.

Oh, sorry. I didn't know this was a mic. Uh, sircom is a usually targets an R1C back end. And so I'm assuming all of these other tools also. And it's kind of I guess my question is do you pay a price for that?

Are there other uh MPC arithmetizations that um you work with or is there something inherently related to the sircom tool chain that you find useful here? Uh sorry your question is do we have so my question is that uh sorry oh okay sorry I was not here when the dice was introduced but my question is that R1 uh sircom is typically targeting an R1CS backend and so I'm assuming all these frameworks and toolings are doing the same but there are some pretty clever other arithmetizations and I'm wondering if MPC is uh solely in this domain or you can make use of other uh things like plon or other arithmetizations Yeah, I think it's like uh as I mentioned uh we like it's a fork of circom and we don't target R1c instead we target uh Bristol format format Bristol format is a universal MPC format that can describe uh arithmetic and boolean circuit and uh yeah it's just like a super simple format and from this format you can already I don't know also transpile it to whatever back end you want. So for example, MPZ library is like another library that PC works on. You can target this library. Uh you can uh target MP speeds library.

Yeah. Etc. Yep. Let's give a big applause to Razu.

Automatic transcript — names and jargon may be misspelled.