Skip to content

Commit

Permalink
Merge pull request #224 from privacy-scaling-explorations/add-mpc-pro…
Browse files Browse the repository at this point in the history
…ject

add MPC project
  • Loading branch information
kalidiagne authored Oct 30, 2024
2 parents 8c445c1 + 214630c commit 7d8b9d4
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 3 deletions.
4 changes: 2 additions & 2 deletions components/wiki-side-navigation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ export const WikiSideNavigation = ({
<li
key={index}
className={cn(
"flex h-8 items-center border-l-2 border-l-anakiwa-200 px-3 duration-200 cursor-pointer",
"flex h-8 items-center border-l-2 border-l-anakiwa-200 px-3 duration-200 cursor-pointer ",
{
"border-l-anakiwa-500 text-anakiwa-500 font-medium":
activeSection === section.id,
Expand All @@ -151,7 +151,7 @@ export const WikiSideNavigation = ({
>
<button
onClick={() => scrollToSection(section.id)}
className="w-full text-left"
className="w-full overflow-hidden text-left line-clamp-1"
>
{section.text}
</button>
Expand Down
4 changes: 3 additions & 1 deletion data/projects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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,
Expand Down
34 changes: 34 additions & 0 deletions data/projects/mpc.ts
Original file line number Diff line number Diff line change
@@ -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"],
},
}

0 comments on commit 7d8b9d4

Please sign in to comment.