Skip to content

Releases: Zokrates/ZoKrates

0.7.3

19 May 15:58
c27b0a4
Compare
Choose a tag to compare

A small bugfix release fixing issues with branch isolation and the one liner installer.

0.7.2

18 May 14:01
0af871b
Compare
Choose a tag to compare

⚠️ This release contains important bug fixes and therefore updating is recommended for all users ⚠️

Main features:

  • Enable usage of constants in function signatures and struct declarations
const u32 SIZE = 42

struct A {
   field[SIZE] numbers
}
  • Experimental branch isolation features: only panic in logically executed branches with the --branch-isolation compilation flag
  • Relax ordering requirements on symbol declarations in a module

For a full list of the changes, check out the changelog

0.7.1

30 Apr 11:00
11f83ba
Compare
Choose a tag to compare

This new version of the ZoKrates toolbox comes with the following main features. For a full list of the changes, check out the changelog!

Constant declarations

ZoKrates now offers the possibility to declare constants at the module level:

const u32 ANSWER = 21 * 2

No more copy pasting or wrapping in a function!

Constant range checks

When using comparison operators such as a < b, ZoKrates used to have limitations on the size of a and b. These still apply when both a and b are variables which cannot be known at compile time. However, in the cases where the compiler can determine a constant value for one of the bounds, it now accept any value for the other.

Poseidon hashing

ZoKrates now supports the poseidon hash function.
Special thanks to @jiangxb-son who submitted a first implementation of this algorithm.

0.7.0

13 Apr 16:36
f38f837
Compare
Choose a tag to compare

This is a breaking release of the ZoKrates toolbox.

The main feature introduced in this release is constant generics (which were also recently added to the Rust language). Here's an example of usage, summing the values of any array of field elements:

def sum<N>(field[N] a) -> field:
   field res = 0
   for u32 i in 0..N do
      res = res + a[i]
   endfor
   return res

ZoKrates now makes wider use of the u32 type in generics, for loop indices, shift amounts, and more.

Check out the changelog for a more complete list of the changes introduced. This file will now be updated with each new release.

The ZoKrates team thanks everyone involved in this release!

0.6.4

19 Mar 21:35
be3865e
Compare
Choose a tag to compare
  • re-include embeds for a slightly cheaper sha256
  • remove array ssa
  • add flag to allow unconstrained variables
  • better flattening of conjunctions
  • put backends behind features
  • accept any assignee in multidef
  • minor performance and stability improvements

0.6.3

01 Dec 19:46
a8f0910
Compare
Choose a tag to compare
Merge pull request #714 from Zokrates/rc/0.6.3

Release 0.6.3

0.6.2

11 Nov 02:48
f205cc0
Compare
Choose a tag to compare

The main feature added in this release is support for the BLS12_377 and BW6_761 which pave the way for single recursive composition of proofs.

We'd like to thank the @EYBlockchain team for their valuable work both optimising the already excellent ZEXE scheme with a better curve, as well as making a first integration with the ZoKrates toolbox, which made this addition possible.

0.6.1

14 Aug 11:49
b0a0dd2
Compare
Choose a tag to compare
  • Removal of the release flag introduced in 0.6.0, as the optimisations it toggled were made cheaper now
  • Fix solidity verifier in the absence of public inputs

Thanks to @migeyel and @gregdhill for flagging these issues!

0.6.0

06 Aug 21:11
549375f
Compare
Choose a tag to compare

We're pleased to announce a new release of the Zokrates toolbox!

Breaking features:

  • Cleaner semantics around variable declaration, see here

New features:

  • Unsigned integer types (u8, u16, u32) for easier processing of binary messages and implementation of bitwise-heavy algorithms
  • Native SHA256 implementation (the sapling-crypto dependency was removed) at ~28k constraints
  • Update of zokrates.js, now compatible with the browser and node.js
  • Shorter syntax for function signatures with zero or one return value(s)
  • Native verifier to check proofs in the CLI
  • Update of the stdlib with conversion utils, new hash functions, etc.
  • Libsnark multicore support
  • Removal of the hacky raw verification key !
  • Introduction of a --release flag to turn on expensive optimisations
  • Book revamp

Thanks to everyone who contributed to this release! 🚀
@ErikP0 @petscheit @fulldecent @dark64

0.5.3

04 Jun 11:40
5158646
Compare
Choose a tag to compare

Patch release to fix a vulnerability on the < operator.

Thanks to @james-ray and @Maping0412 for flagging the issue!

Updating is recommended for all users.