#zcash #safety #equihash

no-std equihash

The Equihash Proof-of-Work function

5 unstable releases

0.2.2 Mar 5, 2025
0.2.1 Feb 21, 2025
0.2.0 Jun 24, 2022
0.1.0 Jul 9, 2020
0.0.0 Jun 26, 2020

#26 in #zcash

Download history 2614/week @ 2024-12-09 2300/week @ 2024-12-16 948/week @ 2024-12-23 1172/week @ 2024-12-30 1969/week @ 2025-01-06 4089/week @ 2025-01-13 3581/week @ 2025-01-20 4672/week @ 2025-01-27 4247/week @ 2025-02-03 5387/week @ 2025-02-10 3800/week @ 2025-02-17 3770/week @ 2025-02-24 5082/week @ 2025-03-03 3576/week @ 2025-03-10 3365/week @ 2025-03-17 3431/week @ 2025-03-24

15,637 downloads per month
Used in 31 crates (4 directly)

MIT/Apache

125KB
2.5K SLoC

Rust 1.5K SLoC // 0.1% comments C 620 SLoC // 0.1% comments

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).

References

Dependencies

~500–680KB
~11K SLoC