From 214630c2a5ec2814c2e4cbd1f6ddb2c4f6546d4e Mon Sep 17 00:00:00 2001 From: Kalidou Diagne Date: Thu, 31 Oct 2024 00:40:42 +0100 Subject: [PATCH] add MPC project --- components/wiki-side-navigation.tsx | 4 ++-- data/projects.ts | 4 +++- data/projects/mpc.ts | 34 +++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 data/projects/mpc.ts diff --git a/components/wiki-side-navigation.tsx b/components/wiki-side-navigation.tsx index 757dc555..b31cff20 100644 --- a/components/wiki-side-navigation.tsx +++ b/components/wiki-side-navigation.tsx @@ -142,7 +142,7 @@ export const WikiSideNavigation = ({
  • diff --git a/data/projects.ts b/data/projects.ts index ac190b3d..c7e40ee8 100644 --- a/data/projects.ts +++ b/data/projects.ts @@ -14,9 +14,10 @@ import { eigenTrust } from "./projects/eigen-trust" import { excubiae } from "./projects/excubiae" import { Interep } from "./projects/interep" import { jubmoji } from "./projects/jubmoji" -import { mopro } from './projects/mopro' import { maci } from "./projects/maci" import { maciPlatform } from "./projects/maci-platform" +import { mopro } from "./projects/mopro" +import { mpc } from "./projects/mpc" import { nfctap } from "./projects/nfctap" import { OpenPassport } from "./projects/openpassport" import { p0tion } from "./projects/p0tion" @@ -48,6 +49,7 @@ import { zkp2p } from "./projects/zkp2p" * Every 'description' props supports markdown syntax https://www.markdownguide.org/basic-syntax/ */ export const projects: ProjectInterface[] = [ + mpc, rln, zkitter, mopro, diff --git a/data/projects/mpc.ts b/data/projects/mpc.ts new file mode 100644 index 00000000..0becc612 --- /dev/null +++ b/data/projects/mpc.ts @@ -0,0 +1,34 @@ +import { ProjectContent, ProjectInterface, ProjectStatus } from "@/lib/types" + +const content: ProjectContent = { + en: { + tldr: "Collection of MPC research projects", + description: ` +## Overview +We are dedicated group in PSE to research and explore Secure Multi-Party Computation. Current focus area of us are programmability/accessibility, publicly verifiability research and KZG extractable witness encryption implementation. Our active projects include Circom-MPC, TypeScript-MPC tooling, publicly verifiable garbled circuit research and KZG extractable witness encryption implementation. +### Programmability/Accessibility +We are exploring easier programmability and accessibility develop and run MPC program. +[Circom-MPC](https://github.com/namnc/circom-2-arithc) is a set of projects designed to compile and run arithmetic and boolean MPC circuits. The framework includes circom-2-arithc, a fork of Circom tailored for creating MPC-compatible circuits, and circom-mp-spdz, which combines the compiler with MP-SPDZ, enabling the execution of compiled circuits in MPC. Circom-MPC aims to facilitate the development and deployment of privacy-preserving computations. +TypeScript-MPC tooling is a tools to write MPC program in TypeScript and run them on browsers. [Summon](https://github.com/voltrevo/summon) is a compiler to compile TypeScript program to arithmetic/boolean circuit to run on multi party setting. You can run the compiled circuit using mpz backend on browser. +### Publicly verifiable garbled circuit research +We are actively researching on publicly verifiable garbled circuit. This will lead to constant round publicly verifiable 2 party computation. Currently we're exploring two ways to achieve this. The first approach is based on authenticated garbling and vector OLE and the second approach is based on commited OT and zkp. +### Extractable witness encryption for KZG commitments implementation +KZG extractable witness encryption is a protocol to build extractable witness encryption using KZG polynomial commitment scheme. The opening proofs of KZG polynomial commitment work as decryption key of witness encryption. +You can find the detail of the protocol [here](https://eprint.iacr.org/2024/264). With this protocol, we can achieve single round non-designated chooser oblivious transfer protocol called Laconic OT. [Keaki](https://github.com/brech1/keaki) is an implementation of this protocol. +`, + }, +} + +export const mpc: ProjectInterface = { + id: "MPC", + section: "pse", + projectStatus: ProjectStatus.ACTIVE, + content, + image: "", + imageAlt: "MPC", + name: "MPC", + tags: { + keywords: ["MPC", "tools", "Circom", "TypeScript"], + themes: ["research"], + }, +}