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.
The easiest way to build this project is to run
scripts/build_docker.zshThe 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 100This 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
src/- Source code for the POBA implementationinc/- Header files and public interfaceslib/- External libraries and dependenciesscripts/- Build and execution scriptsbuild/- Build artifacts and compiled binariesPlayer-Data/- Cryptographic keys and certificates for protocol participants
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