Unirep
  • 👏Welcome
  • 🧩Introduction
  • 🎮Getting Started
    • Install & build 🛠
    • Start with cli commands 🔌
      • 0. Install and build
      • 1. Spin up the testing chain
      • 2. Deploy Unirep contract
      • 3. User generates semaphore identity
      • 4. User signs up
      • 5. Attester signs up
      • 6. User generates epoch key and epoch key proof
      • 7. Attesters/Users verify epoch key proof
      • 8. Submit epoch key proof to Unirep smart contract
      • 9. Attester attest to epoch key
      • 10. Epoch transition
      • 11. User state transition
      • 12. User generates reputation proof
      • 13. Attesters/ Users verify the reputation proof
      • 14. User generates sign up proof
      • 15. Attesters/ Users verify the sign up proof
    • Start with Typescript 📠
      • 0. Install packages
      • 1. deploy
      • 2. User signs up
      • 3. Attester signs up
      • 4. Epoch key proof
      • 5. Attest
      • 6. Epoch transition
      • 7. User state transition
      • 8. Reputation proof
    • Computation happens off-chain â„šī¸
  • â˜€ī¸Protocol
    • Glossary
      • Users and Attesters
      • Epoch
      • Epoch Key
      • Reputation
      • Trees
      • Nullifiers
      • Epoch Transition
      • User State Transition
    • Circuits
      • Epoch Key Proof
      • Reputation Proof
      • User Sign Up Proof
      • User State Transition Proof
    • Contract
      • Sign up
      • Attestations
      • Epoch transition
      • User state transition
      • Verify proofs
  • 🌈Package usage
    • @unirep/crypto
    • @unirep/circuits
    • @unirep/contracts
    • @unirep/core
    • @unirep/subgraph
    • cli
      • Deploy Unirep Contract
      • User Identity
      • User Sign Up
      • Epoch Key And Proof
      • Attestation
      • Epoch transition
      • User state transition
      • Reputation Proof
      • Airdrop Reputation
      • Spend Reputation
  • đŸŒģApplications
    • Unirep Social
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Protocol
  2. Glossary

Epoch Transition

Definition of epoch transition in UniRep

PreviousNullifiersNextUser State Transition

Last updated 2 years ago

Was this helpful?

  • Epoch transition happens when someone calls and the current block is epochLength blocks more since last transitioned block.

  • In beginEpochTransition()

    • An EpochEnded event is emitted and currentEpoch increases by 1.

    • by sealed it means that the hash chain is hashed again with 1, e.g., hash(1, originalHashChain)

    • if an epoch key received no attestation, it's hash chain would be hash(1, 0)

    • there's only one epoch tree for every epoch.

See also

After the EpochEnded event is emitted, all epoch keys attested during this epoch will have their sealed

After hash chain of the epoch keys are sealed, these epoch keys and their hash chain will be inserted into the of this epoch

There will be a new for each epoch.

And after epoch transition, user needs to perform to transition his user state into the latest epoch

â˜€ī¸
hash chain
user state transition
Epoch
Reputation
Trees
User State Transition
beginEpochTransition()
currentEpoch is increased by one.
epoch tree
global state tree