<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">The need for an incrementally verifiable hash came up at Keybase when we were adding support for message attachments, though without an off-the-shelf standard available we decided not to tackle it. Since then I've had this on the back burner as as personal project. I think it's ready for review:<div><br></div><div>Project: <a href="https://github.com/oconnor663/bao" target="_blank">https://github.com/oconnor663/bao</a></div><div>Spec: <a href="https://github.com/oconnor663/bao/blob/master/docs/spec.md" target="_blank">https://github.com/oconnor663/bao/blob/master/docs/spec.md</a></div><div>Rust API docs: <a href="https://docs.rs/bao" target="_blank">https://docs.rs/bao</a></div><div><br></div><div>The implementation is highly parallel, which makes for a nice speed demo at the top of the README. In-memory benchmarks get to about 8 GB/s on my laptop, though they go much higher on fancy AWS hardware. Bao might be several times faster than any existing cryptographic hash implementation, for large inputs on modern consumer hardware.</div><div><br></div><div>I could especially use help reviewing the security section of the spec (<a href="https://github.com/oconnor663/bao/blob/master/docs/spec.md#security">https://github.com/oconnor663/bao/blob/master/docs/spec.md#security</a>) and pointers to related work that I might've missed.</div><div><br></div><div>Thanks!</div><div>Jack</div></div></div></div></div></div>