Skip to content

A proof-of-concept implementation of a privacy-preserving user-data collection and analytics framework.

Notifications You must be signed in to change notification settings

kastel-security/poba

Repository files navigation

POBA - Privacy-Preserving Operator Bookkeeping Architecture

POBA is a privacy-preserving bookkeeping system that leverages multi-party computation (MPC) and cryptographic techniques to enable secure and private financial operations. This is the implementation for this paper.

Building

The easiest way to build this project is to run

scripts/build_docker.zsh

Running the Full Protocol

The easiest way to run the protocol locally is through the start_dockers.zsh script:

scripts/start_dockers.zsh -n 3 -t 1 --logbook-size 100 --oram-size 15 --batch-size 100

This runs the protocol with 3 operators, a corruption threshold of 1 party, logbooks that can store 100 entries, ORAM for 2^15 users and processes batches of 100 entries during InsertEntry. Alternatively, the option -mpc <number> can be given: 0, as well as not giving the option starts the whole protocol 1 only starts MPC1 (the decryption part) 2 only starts MPC2 (the ORAM part) 9 only starts the base POBA protocol

The script tmux.zsh starts the whole protocol in a multi-pane view

Project Structure

  • src/ - Source code for the POBA implementation
  • inc/ - Header files and public interfaces
  • lib/ - External libraries and dependencies
  • scripts/ - Build and execution scripts
  • build/ - Build artifacts and compiled binaries
  • Player-Data/ - Cryptographic keys and certificates for protocol participants

Dependencies

The project relies on several key libraries:

  • MP-SPDZ for multi-party computation
  • RELIC for pairing-based cryptography
  • GMP for arbitrary precision arithmetic
  • gRPC for network communication
  • Protocol Buffers for serialization

About

A proof-of-concept implementation of a privacy-preserving user-data collection and analytics framework.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published