There are some known collisions between the raw values of various typed values:
- 0, false, and an empty container
- 1 and true
- 56-byte strings and containers with 1 element (strings are hashed by appending the byte 1, packing groups of 7 bytes into a field element, and hashing; Merkle leaves are hashed by concatenating the key, value, and field element 1 and hashing)
At the very least, the 0 / empty container and string / container collisions should be fixed. It is worth considering whether we want to have types in the backend as well.
There are some known collisions between the raw values of various typed values:
At the very least, the 0 / empty container and string / container collisions should be fixed. It is worth considering whether we want to have types in the backend as well.