The HAMT hashes keys before accessing the data to keep the tree size predictable and independent of key-size. This, however, is not needed for the EVM because the Solidity compiler already does hashing, and it's actually harmful for the layout of dynamic arrays which use offsets from an initial hash.
We should be able to create a HAMT for the EVM actor that doesn't hash the keys.
Part of https://github.com/filecoin-project/ref-fvm/issues/859 Depends on https://github.com/filecoin-project/ref-fvm/issues/888
The HAMT hashes keys before accessing the data to keep the tree size predictable and independent of key-size. This, however, is not needed for the EVM because the Solidity compiler already does hashing, and it's actually harmful for the layout of dynamic arrays which use offsets from an initial hash.
We should be able to create a HAMT for the EVM actor that doesn't hash the keys.