Right now, it's stored as a mapping. Unfortunately, that means:
- We waste a hash syscall every time we do a lookup (not huge).
- Every step will access a random slot which will lead to an IPLD load.
If we switch to a dynamic array, I think the last 5 steps (once we're within 5 bits of the target) should all fall within 1-2 IPLD nodes so we should save 4-5 IPLD loads every time we search.