Try   HackMD

Semaphore audits

The last internal audit covered Semaphore v2.0.0 and focused specifically on contracts and circuits. Since then, circuits have not changed, contracts have been updated with minor features, and several Semaphore JavaScript libraries have been added.

New changes

Semaphore contracts

The latest changes in contracts affect roughly all contracts.

v2.1.0

  • New function to add many members in a single transaction: #131
  • New function to update group members: #128
  • Merkle tree expiries: #124
  • Gas optimizations: #117 #118 #113
  • Fixed prigma: #116
  • The Kovan network is no longer supported as being deprecated

v2.2.0

  • Additional index parameter for the member events: #133

v2.5.0

  • Global versioning: from now on, npm package versions will always have the same minor and major version
  • Monorepo: all code (i.e. JavaScript, Solidity, Circom) is now in the same repository #134
  • Nullifiers hashes are now specific for each group #136
  • New proof parameters in the VerifiedProof event #136
  • Nullifier hashes were moved out of the SemaphoreCore.sol contract #138

External dependencies

Semaphore contracts, in particular the SemaphoreGroups.sol one, depend on two external libraries:

Semaphore JS libraries

Semaphore can now be used by devs with a set of JS packages, which essentially simplify identity management and proof generation/verification.

Semaphore subgraph

Semaphore also uses a subgraph now.

tags: semaphore