# Puzzle Miner

Puzzle Miners compute ZK proofs off-chain that adhere to the current epoch's difficulty and puzzle, then submit them to Puzzle Verifier on-chain to receive rewards. The steps involved are as follows:

**Puzzle Retrieval:**Puzzle Miners obtain the current epoch's difficulty and puzzle settings from Puzzle Verifier's contract. They use these parameters along with their miner address and nonce values for ZK circuit input, generating a ZK proof.**Verification:**Puzzle Miners check the hash of the generated ZK proof. If it does not meet the current epoch's difficulty, they discard it and iterate nonce values to generate a new ZK proof.**Submission and Verification:**If the ZK proof meets the difficulty, Puzzle Miners immediately submit the nonce and ZK proof as a solution to Puzzle Verifier for verification.

Puzzle Verifier conducts the following checks:

Verification of the ZK proof hash against the current epoch's difficulty

Confirmation that the solution does not repeat within the current epoch

Validation of the ZK proof, ensuring that inputs comply with circuit constraints

**Upon successful verification, Puzzle Verifier rewards the miner.**

Last updated