Officially the EPF 4th cohort is underway and there are many interesting exchanges in the discord server. My original interest for a project was to do something related to Verkle trie migration. However, after I got more involved in conversations and reading comments in the channels inside the R&D discord server, there is just so much to do! I feel like everyone participating in the program is in a big toystore and you like all the toys but your budget is limited and you can only afford to buy one. Discipline is key.
I am narrowing my potential projects to two options: (1) SSZ and (2) Poseidon hash (EIP-5988).
Simple Serialize, or SSZ, is a serialization technique alternative to the classical RLP serialization. SSZ objects can also be stored in a Merkle tree. There are already many implementations of SSZ. One idea is to make an entire new implementation of SSZ in C or Haskell. Currently there are no implementations in those languages and would be nice to add those to the list. Another potencial project is to look into the issues in one of the current implementations and see what can be done.
Working on SSZ is very interesting and it seems that it can add some immediate value to the protocol. My attention, however, is completely drawn to the Poseidon hash. I won't go into technical details right now (I am planning to do so in future articles), but it suffices to say that Poseidon hash is a relatively new hash technique based on a sponge construction, where the inner permutation in the sponge is constructed following a Hades strategy. The idea behind EIP-5988 is to add a precompile of Poseidon to the protocol in order to accelerate potential uses of ZK-Rollups by L2 networks. Poseidon was designed to be efficient for ZK proof systems.
Right now I would say that I am inclining towards working on an implementation of the Poseidon hash, of which there are a few implementations already. EIP-5988 is in draft stage and it is missing some information in order to justify its adoption or its rejection. Besides an implementation, a gas cost analysis of Poseidon as a precompile can add value in order to make an informed decision. I have no idea on how to do a gas cost analysis, but luckily, there are already some works on the subject; see for example here, here and here. There is a really interesting discussion (here and here) on the costs of running Poseidon as a precompile.