# Week 4 Update 4.1 During week 4 I have finished with a draft of my project proposal and some slides to make a presentation. I managed to make contact with a mentor and the authors of [EIP-5988](https://eips.ethereum.org/EIPS/eip-5988). I am still waiting for some feedback of my project from the mentor. At the same time I got some interesting information on the work being done by the authors of [EIP-5988](https://eips.ethereum.org/EIPS/eip-5988). While waiting for a feedback on my project, I invested my time learning some libraries that will be important for the project, for example, [FLINT](https://flintlib.org) and [`blstlib`](https://github.com/supranational/blst). Both libraries have code that can be used to implement finite field arithmetic with very efficient algorithms. Although `blstlib` is only for the BLS12-381 curve, I still feal that learning to use a well-known library for elliptic curves can be relevant. I also spent time making a deep study of the [PLONK](https://eprint.iacr.org/2019/953) paper and repositories implementing PLONK, like [this one](https://github.com/ETHorHIL/Plonk_Py/tree/master) in Python. In the future, I feel that it may be interesting to write a tutorial for implementing PLONK. Even though the paper is well-written, the presentation of the results can be challenging to developers with no background in ring theory. I will leave this for a future personal project. The main reason of using Poseidon as a hash function is to obtain smaller arithmetic circuits. This inmediately leads to less constraints in R1CS, which is an intermediate representation of arithmetic circuits in current zero-knowledge proof systems. There is also a more recent version called Poseidon2, that was published less than two months ago in the [Cryptology ePrint Archive](https://eprint.iacr.org/2023/323). This new version promises faster execution and less constraints for PLONK circuits. I still need to read the details of Poseidon2 and see if it will be possible to incorporate it into the project.