These are examples to show you how to use Rosetta.
To help you understand the concepts easily, most of the examples have two parts, the first being the native Tensorflow version on centerized plaintext datasets, the second being the Rosetta version, which has the same functionality while running on secret-sharing 'ciphertext' datasets in a privacy-preserving way.
In order to run the examples smoothly, some dependencies need to be installed, as follows:
pip3 install matplotlib sklearn --user
Zero Knowledge Proof (ZKP) is a powerful cryptographic primitive. And Rosetta has integrated some cutting-edge ZKP protocols, such as Mystique. So in this tutorial, we will show you how to use this functionality in Rosetta.
Compiling Rosetta with ZKP protocol enabled
When You compile Rosetta, please make sure the --enable-protocol-zk
is enabled, as follows:
./rosetta.sh compile --enable-protocol-zk
Note that we rely on submodule emp-ot, emp-tool and emp-zk. So You may need to run command git submodule init
and git submodule update
after cloning from Rosetta repository.
During this compilation process, Rosetta will first try to install these libraries in
emp-toolkit
mentioned above. So you may check whether these submodules' codes have been ready.
Enjoy it.