A proposal for self-describing hashes and signatures to enable upgradability within the status protocol.
Within the status protocol right now if we chose to change either the hashing function used, or signature scheme we require a breaking change. This however should not be the case.
When we move away from whisper, we can assume that there may be a change in the way messages are signed, this should therefore already be accounted for. As we are already breaking compatibility in V1 now is the time to do this.
For hashes this is relatively simple, we move all hashes to be represented as multihashes. For signatures however there are multiple routes we can take here. The multiformats repository has 2 open pull requests for these types of multisignatures:
Also see: https://github.com/ipfs/specs/issues/58
Technically speaking it shouldn’t be too hard to achieve but seems like a worthwhile change in my opinion however we decide to execute.
Note: Public keys could be self describing meaning signatures wouldn’t need to be.