Selective-Decryption-Distributed-Key-Management-Sc

A privacy-preserving system using threshold Paillier via MPC to selectively decrypt on-chain ciphertexts without revealing keys, producing coSNARK proofs in Circom and verifying them with contracts.

  • 0 Raised
  • 401 Views
  • 0 Judges

Tags

  • No tag

Description

# Project name

Selective-Decryption Distributed Key Management (SDDKM)


One-liner to describe what the project is about.

Privacy-preserving selective decryption of on-chain ciphertexts using MPC and coSNARKs, with on-chain proof verification.


## Project description.

SDDKM enables multiple share managers to jointly decrypt only authorized ciphertexts without revealing the secret key to anyone, including themselves. Key shares are generated via threshold techniques, decryption is executed inside an MPC session, and a Circom-based circuit proves Paillier-style correct decryption. Proofs are collaboratively produced (coSNARK) and verified by a smart contract. The core mechanism is released as an open-source library so other applications can integrate selective decryption with verifiable on-chain outcomes.


## Technologies used

- Rust (core library, backend CLI/API)

- Circom + snarkjs (ZK circuits and tooling)

- coCircom/coSNARK (collaborative proof generation)

- Solidity + Foundry (on-chain verifier and tests)

- Flutter (minimal demo UI)

- Docker (dev environment)


## Basic architecture

- Frontend/Backend: accepts ciphertext and metadata, triggers MPC session and proof generation

- MPC (Share Managers): performs threshold reconstruction internally to decrypt target ciphertext; produces shared witness

- Circom circuit: enforces Paillier decryption correctness and hash commit to plaintext; binds proof to circuitVersion and sessionID

- Smart contract: verifies proof and emits events with public inputs

- sddkm-lib: reusable library exposing encrypt/selective_decrypt_prove/verify interfaces


## Source code 

https://github.com/pepetoma/Selective-Decryption-Distributed-Key-Management-Scheme


Attachments