Why does Kaspa use a Sparse Merkle Tree instead of a Patricia trie for lane commitments?

Kaspa uses a Sparse Merkle Tree (SMT) for its active-lanes commitment because it gives deterministic bitwise keying over hash-derived keys and simple inclusion and exclusion proofs. The map is 'sparse' because only recently active lanes appear in it — lane keys live in a 256-bit hash-derived space, so most of that space is empty at any given time. Patricia-style tries would also be possible, but they compress shared internal paths, which significantly complicates the committed structure and implementation. For a consensus-critical data structure, that simplicity is not cosmetic — fewer implementation edge cases means fewer places for bugs to hide.

Learn more ›