Devcon VI

The Right Way to Hash a Merkle Tree
10-11, 16:30–17:00 (America/Bogota), Talk 2

We shill an assembly SHA256 library that is optimized to compute the hash tree root of a Merkle tree. It consists of reusing two publicly available methods:
1. Hardcoding padding block. This method is used in Bitcoin's core client hashing algo.
2. Use CPU-vectorization to hash different branches in parallell. This is Intel's "multi-buffer" method.

Initial benchmarks show up to 1200% improvement on hashing of large lists on AVX512.

A GoAssembly version is used by prysm.

I am a professional mathematician that temporarily happen to be a core developer at prysmaticlabs. I enjoy the types of puzzles that arise when trying to hack the protocol.