This document is a guide to participating in Multi-party Computation(MPC) phase 2 and verifying the result.
-
Send an email to tronz_mpc@tronz.io to apply to participate in MPC. Please introduce yourself in the email and tell us your available time. For example:
Hi, Tronz, I'm Brown Jiang, apply to participate in MPC project, my available time is 2020-01-20 ~ 2020-01-22, 8:00~10:00 am, UTC+8. As a student of Peking University, I live in Beijing China now, focus on Blockchain technology. Your sincerely, Brown Jiang
-
TRONZ will send you an email about the time for you to participate in MPC.
-
When it is your turn, TRONZ will send you a notification email and give you a params file link which you will need to download.
-
Download and install IM tool keybase. If you don't have an account yet, create an account and add TRONZ' account as your friends. TRONZ's account is
tronz_mpc
. -
Prepare your server. Recommended requirements of server requires:
- Processor (CPU): Intel Core i5 (sixth generation or newer) or equivalent
- Operating System: Linux (Recommended) / macOS / Windows 7+
- Memory: 8 GB RAM
- Storage: 500 GB internal storage drive
On Windows, please go to rust homepage for installation instruction, then jump to next step.
On Mac, install xcode command line tools first:
# xcode-select --install
- Obtain the source code of project mpc:
# git clone https://github.com/tronprotocol/mpc
If git has not been installed on your computer, please refer to git first.
- On Mac/Linux, in the mpc directory, run following command in your terminal and choose 1 in the following selection:
# sh compute.sh <your_params_link>
On Windows, in the mpc directory, download params
file, then run:
# cargo run --release --bin compute
When it’s finished, you will get a new_params
file and a hash
which you must need to record. You can find the hash
and new_params
as shown below:
Notice: this process could take 0.5 ~ 1 hours according to your hardware capacity and occupy 1.5 ~ 2GB of memory.
- Send your result to TRONZ. Send the file
new_params
by keybase, sendhash
string by email. Feel free to state your os version in email. E.g. windows 7/centos 7.
We reuse the phase 2 result of zcash https://download.z.cash/sapling-mpc/params as the first params
of the process. At the end of process, we generate the random beacon by using one Bitcoin block's hash as the seed of pseudo random number generator; The block's height will not be determined until last participant completes his operation. After we verify all participants' contribution, we will publish all hash on project wiki page. Anyone can do this verification as belows.
After all participants finish the process, we will announce final params at aws. Following as below to verify your contribution:
# cd mpc
# wget https://mpcfilepub.s3.amazonaws.com/mpc/params
# wget https://mpcfilepub.s3.amazonaws.com/powersoftau/powersoftau_phase1_files.tar
# tar xvf powersoftau_phase1_files.tar && cp powersoftau_phase1_files/* .
# cargo run --release --features="verification" --bin verify
This verification may take about 1 hour and then output all participants' contribution. Find whether your hash is in the list.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.