This repository contains the code and experiments for the paper "Privacy-Preserving UCB Decision Process Verification via Zk-SNARKs" presented at IJCAI 2024.
If you use this code in your research, please cite our paper:
@inproceedings{jiangPrivacyPreservingUCBDecision2024,
title = {Privacy-{{Preserving UCB Decision Process Verification}} via Zk-{{SNARKs}}},
booktitle = {Proceedings of the {{Thirty-ThirdInternational Joint Conference}} on {{Artificial Intelligence}}},
author = {Jiang, Xikun and Lyu, He and Ying, Chenhao and Xu, Yibin and D{\"u}dder, Boris and Luo, Yuan},
year = {2024},
month = aug,
pages = {5900--5908},
publisher = {International Joint Conferences on Artificial Intelligence Organization},
address = {Jeju, South Korea},
doi = {10.24963/ijcai.2024/652},
isbn = {978-1-956792-04-1}
}
With the increasingly widespread application of machine learning, how to strike a balance between protecting the privacy of data and algorithm parameters and ensuring the verifiability of machine learning has always been a challenge. This study explores the intersection of reinforcement learning and data privacy, specifically addressing the Multi-Armed Bandit (MAB) problem with the Upper Confidence Bound (UCB) algorithm. We introduce zkUCB, an innovative algorithm that employs the Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARKs) to enhance UCB. zkUCB is carefully designed to safeguard the confidentiality of training data and algorithmic parameters, ensuring transparent UCB decision-making.
- ZoKrates 0.8.8
- Python 3.11.2
- Bash 5.2.15
- After setting up the environment, run
experiment.sh
to conduct the experiments. - The experimental results are divided into multiple parts:
- The
lists
folder contains the "paths" composed of the results of reinforcement learning agents interacting with the environment in each experiment, as well as the random number sequences generated by the random number seeds corresponding to specific steps. output_p.csv
contains statistical data for each step of each experiment, including the time required to execute each step and the size of the key files generated.
- The
- To reproduce the results in the paper, use
fig_performance.ipynb
andfig_time.ipynb
for the two parts of the data respectively.
- ZoKrates code is in the
ucb
folder. - Performance experiment results are in the
lists
folder.
This project is licensed under the MIT License.
For any questions or concerns, please contact:
He Lyu - lyuhe2000@gmail.com