Releases: Zokrates/ZoKrates
0.7.3
A small bugfix release fixing issues with branch isolation and the one liner installer.
0.7.2
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
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
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
0.6.3
0.6.2
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
0.6.0
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
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.