Epoch Key And Proof
User generates an epoch key and a proof of this epoch key
- An epoch key is the only way that a user can receive reputation.
- A user can generate an epoch key with a nonce, the nonce should be less than
numEpochKeyNoncePerEpoch
. - A user generates the epoch key with a Circom circuit and the epoch key and proof can be verified by attesters in Unirep smart contract.
npx ts-node cli/index.ts genEpochKeyAndProof
[-h]
[-e ETH_PROVIDER]
-id IDENTITY
-n EPOCH_KEY_NONCE
[-b START_BLOCK]
-x CONTRACT
- epoch key and base64url encoded epoch key proof will be printed
- A string with
Unirep.epkProof
prefix is the proof of this epoch key
-e ETH_PROVIDER, --eth-provider ETH_PROVIDER
A connection string to an Ethereum provider. Default: http://localhost:8545
-id IDENTITY, --identity IDENTITY
The (serialized) user's identity
-n EPOCH_KEY_NONCE, --epoch-key-nonce EPOCH_KEY_NONCE
The epoch key nonce
-b START_BLOCK, --start-block START_BLOCK
The block the Unirep contract is deployed. Default: 0
-x CONTRACT, --contract CONTRACT
The Unirep Social contract addres
-h, --help Show this help message and exit.
npx ts-node cli/index.ts verifyEpochKeyProof
[-h]
[-e ETH_PROVIDER]
-epk EPOCH_KEY
-pf PROOF
[-b START_BLOCK]
-x CONTRACT
- This command will help other users with an epoch key proof with
Unirep.epkProof
prefix to call the Unirep smart contract to verify the proof. - The input should match the claim that the prover provides.
-e ETH_PROVIDER, --eth-provider ETH_PROVIDER
A connection string to an Ethereum provider. Default: http://localhost:8545
-epk EPOCH_KEY, --epoch-key EPOCH_KEY
The user's epoch key (in hex representation)
-pf PROOF, --proof PROOF
The snark proof of the user's epoch key
-b START_BLOCK, --start-block START_BLOCK
The block the Unirep contract is deployed. Default: 0
-x CONTRACT, --contract CONTRACT
The Unirep Social contract address
-h, --help Show this help message and exit.