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.

genEpochKeyAndProof

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

Options

  -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

Options inherited from parent commands

  -h, --help            Show this help message and exit.

verifyEpochKeyProof

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.

Options

  -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

Options inherited from parent commands

  -h, --help            Show this help message and exit.

Last updated