ZoKrates Versions Save

A toolbox for zkSNARKs on Ethereum

0.8.8

6 months ago

This release contains the following changes:

  • Improved safety in range checks
  • Removed experimental branch isolation feature

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

0.8.7

1 year ago

This release contains the following features:

  • Experimental support for the Nova proving scheme
  • Reduced memory usage during compilation

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

0.8.6

1 year ago

This release contains the following main features:

  • Faster backend integrations ⚡
  • Sourcemaps and a basic profiler, try it out by running zokrates profile!
  • File size reduction for programs which use assembly blocks

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

0.8.5

1 year ago

The main feature of this release is a reduction in the memory footprint and computing time of the compiler.

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

0.8.4

1 year ago

This new release of ZoKrates introduces experimental assembly blocks.

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

0.8.3

1 year ago

This release fixes one regression introduced by assert error messages which led to some duplicate contraints not being deduplicated.

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

0.8.2

1 year ago

This new release of ZoKrates introduces some new language features:

  • Shadowing is now allowed ✅
field a = 42;
bool a = true;
  • Functions implicitly return (). For example, the following is now allowed without a return statement:
def main() {
}
  • Casting between types is now easier by importing cast from utils/casts function
u64 a = 42;
u16[4] b = cast(42);
  • A bug in the circom integration was fixed

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

0.8.1

1 year ago

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

0.8.0

1 year ago

This version includes a breaking change in the specification of the ZoKrates domain-specific language:

  • Due to common feedback, the new ZoKrates syntax uses curly braces and semi-colons:
// 0.7
def main():
   return 1

// 0.8
def main() {
   return 1;
}
  • Variables are now Immutable by default. Mutable variables require usage of the new mut keyword.
  • Multi returns are not supported anymore. Tuples can be used instead.
  • A new statement named log enables printing values at run time:
def main(field x) {
   log("x is {}", x);
   return
}

Other notable changes:

  • The libsnark backend and the PGHR13 scheme are no longer supported
  • ZoKrates can now export snarkjs-compatible artifacts

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

0.7.14

1 year ago

The main feature in this new release is the inclusion of the curve and the proving scheme in the proof and verification key. This removes the need to pass these parameters when creating a solidity verifier, printing the proof, and verifying it.

In addition, this release features a range of small bug fixes.

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