Privacy-preserving auction mechanism implemented using FHE/MPC.
Name | Version |
---|---|
CMake | >= 3.14 |
vcpkg | latest |
OpenSSL | 3.2.0 |
Python | 3.8.16 |
Install vcpkg and thrird-party libraries. Change set(VCPKG_ROOT "/Users/yusen/opt/vcpkg")
in CMakeLists.txt
to your vcpkg path.
# install vcpkg
$ cd <YOUR_FAVORITE_DIR> # i.e. cd ~/opt
$ git clone https://github.com/microsoft/vcpkg
$ ./vcpkg/bootstrap-vcpkg.sh
# install third-party libraries
$ ./vcpkg/vcpkg install openssl
Clone the repository and cd to project root directory.
# build
$ cd <DIR> # SEAL or CCS22 or TFHE
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .
# run
$ ./<APP_NAME> <PARAMS> # i.e. ./SEAL 10 20 when <APP_NAME> is SEAL and <PARAMS> are 10 and 20
After build, in build directory.
# unit test
$ python3 ../tests/genTests.py --tests=<#TESTS> --bidders_max=<MAX #BIDDERS> --bitslen_max=<MAX LEN(BIDS IN BINARY)> # i.e. --tests=100 --bidders_max=20 --bitslen_max=32
$ ctest -V # -V for verbose
- SEAL: Sealed-Bid Auction without Auctioneers [iacr]
- Secure Auctions in the Presence of Rational Adversaries [iacr]
- A 2-Round Anonymous Veto Protocol [springer]
- https://wiki.openssl.org/index.php/Elliptic_Curve_Cryptography