Skip to content

Releases: Unirep/Unirep

v2.0.1

02 Jan 07:43
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.0.0...v2.0.1

v2.0.0

20 Dec 02:12
d0e69b0
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.0.0-beta-6...v2.0.0

v2.0.0-beta-6

27 Oct 16:23
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.0.0-beta-5...v2.0.0-beta-6

v2.0.0-beta-5

16 Oct 09:32
3b8a427
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.0.0-beta-4...v2.0.0-beta-5

v2.0.0-beta-4

20 Jul 12:21
43dc2b5
Compare
Choose a tag to compare
  • Contract deployment: Testnet deployment 🧩
  • Circuits have been audited ✨
  • Fix epoch tree, multi-attester bug 🐛
  • Replacement field has been changed 👓
    • 205 bits data (upper bits)
    • 48 bits index (lower bits)
  • Use verifier helpers instead of verifiers deployed with Unirep.sol ⛑️
  • Remove prover from Synchronizer, prover should be provided in UserState
  • Learn more about v2.0.0-beta-4 from documentation 🙌🏻

v2.0.0-beta-3

18 Apr 01:10
a55f6e7
Compare
Choose a tag to compare

V2 beta 3 is a bugfix release. It includes the following changes

#402 Add an attestationCount variable that replaces timestamp in replacement fields
#403 Fix a compilation error in webpack by bumping a dependency version

v2.0.0-beta-2

17 Apr 03:48
606bdb3
Compare
Choose a tag to compare

V2 beta 2 introduces the following major changes

#339 Add support for signup using a custom state tree leaf/initial data
#345 Customize sync poll rate/block count
#351 Add semaphore proof circuit for unirep epoch keys
#367 Multi attester support for synchronizer
#372 Deterministic address deployments
#382 Seal epochs non-interactively (remove ordered merkle tree)
#386 Add history tree, don't reveal from_epoch in UST
#400 Combine replacement fields and timestamp fields into single field

Problems noted in the internal audit are addressed in this release as well. See #369 for more info.

v2.0.0-beta-1

22 Feb 03:48
e57749c
Compare
Choose a tag to compare

V2 beta 1 introduces the following changes

#282 Build ordered tree instead of sparse merkle tree (epoch tree), so the epoch key doesn't require to mod TREE_ARITY**TREE_DEPTH. Uses sealedEpoch function instead of processing hash chains.
#288 Adds @unirep/test package
#295 Supports circom 2.1.3
#298 Adds AttesterSignedUp event
#301 Uses identitySecret instead of identityNullifier
#303 Allows many attesters to be synced in one Synchronizer, which is used in @unirep/explore
#322 Changes the pos_rep, neg_rep, graffiti, timestamp fields to a array of data fields

Pre-built proving keys and a testnet deployment are maintained here.

Breaking API changes:

  • genEpochKey and genUserStateTransitionNullifier takes identitySecret instead of identityNullifier. Identity secret can be computed by
    import { ZkIdentity } from '@unirep/utils'
    const id = new ZkIdentity()
    const identitySecret = id.secretHash
  • Hash chain related functions (buildHashchain, processHashchain, attesterHashchainTotalCount, attesterHashchainProcessedCount, attesterHashchain,...) are all replaced by sealEpoch, attesterEpochSealed
  • The UserState object takes a Synchronizer object during construction.
    const synchronizer = new Synchronizer({
    prover: defaultProver, // a circuit prover
    unirepAddress: '0xaabbccaabbccaabbccaabbccaabbccaabbccaaaa',
    provider, // an ethers.js provider
    })
    const state = new UserState(synchronizer, identity)
  • the stop() function in synchronizer is now non-async
  • getRep(), getProvableRep(), getRepByEpochKey() has been renamed to getData(). getProvableData(), getDataByEpochKey()

2.0.0-alpha-3

08 Dec 17:11
Compare
Choose a tag to compare

V2 alpha 3 introduces a number of changes designed to improve performance of ZK proofs and reduce calldata needed for proof submission onchain.

#210 adds variable arity support for the epoch tree. This reduces the number of constraints by between 10-50% depending on the proof.
#211 fixes a bug with the reputation proof minimum reputation logic.
#216 changes the proofs to accept multiple distinct values in a single public signal.
#232 adds a lite epoch key proof that doesn't include a membership check.
#239 adds a multi-epoch key proof.

Pre-built proving keys and a testnet deployment are maintained here.

Breaking API changes:

  • All proof classes have been moved from the @unirep/contracts package to the @unirep/circuits package.
  • getRepByAttester has been renamed to getRep, and a new function getProvableRep has been added.
    • These functions accept only an epoch now.
  • The getVKey function in the Prover interface is now async.

1.0.3

05 Dec 00:11
459e470
Compare
Choose a tag to compare

Adds epoch argument to getAttestations function, solving a potential collision.