Expand description
Equihash is a Proof-of-Work algorithm, based on a generalization of the Birthday problem which finds colliding hash values. It was designed to be memory-hard; more specifically, the bottle-neck for parallel implementations of Equihash solvers would be memory bandwidth.
This crate implements Equihash as specified for the Zcash consensus rules. It can
verify solutions for any valid (n, k)
parameters, as long as the row indices are no
larger than 32 bits (that is, ceiling(((n / (k + 1)) + 1) / 8) <= 4
).
§Feature flags
solver
— Experimental tromp solver support, builds the C++ tromp solver and Rust FFI layer.
§References
- Section 7.6.1: Equihash. Zcash Protocol Specification, version 2020.1.10 or later.
- Alex Biryukov and Dmitry Khovratovich. Equihash: Asymmetric Proof-of-Work Based on the Generalized Birthday Problem. NDSS ’16.
Structs§
- Error
- An Equihash solution failed to verify.
Functions§
- is_
valid_ solution - Checks whether
soln
is a valid solution for(input, nonce)
with the parameters(n, k)
.