Hash function: BLAKE3 (32-byte digest)
Domain separation: Leaf hashes use a \x00 prefix; internal nodes use \x01. This prevents second-preimage attacks where a leaf could be confused with an internal node.
Leaf size: 8 MiB chunks (~1M brackets per leaf)
Record format: uint64 little-endian, 63 bits used per bracket
Tree construction: Binary Merkle tree with domain separation; odd nodes duplicated: H(\x01 || a || a)
Proof structure: Sibling hashes from leaf to root (~20 hashes for 1T brackets, ~700 bytes total)
Full verification code and data format specification available in the GitHub repo.