Lean is fun. Really.
And I've got the real challenge for the next months until I find a new full time employment: reimplementing the whole cryptographic stack of Mina, in Lean...
Why?
First, it is a very challenging work. Totally aligned with my current interests, and with what I know. And I need to have my brain working! (I feel I'm getting dumb!)
Second: it's a full stack work. It goes to vanilla PlonK, define the snarky DSL, define custom gates, lookup protocols (with the fancy runtime lookups, never specified), but also... Recursion using Halo. Which would be fun for other projects like Zcash, Midnight, etc.
An important note is that Pickles, the recursive layer of Mina, was actually already built with formal verification in mind. When you look at the code, you've got some encoded theories to encode invariants.
It would pursue Izaak initial vision - I guess that was the vision.
It will also include the Pasta curves, Poseidon, Schnorr signatures, etc. Maybe multisignatute using FROST.
Third, it will also force me to go deeper into the theory and the papers, and it will probably useful to contribute to ArkLib and CSLib at the same time. Long term wish for me.
I guess the whole codebase will be compilable into C directly, and we could optimize later the generated code to have a more efficient implementation, and have bindings that could be used on production by an actual Mina node.
When this is done, the blockchcain and the transaction snark could be reimplemented on top. And I could finally implement the standard signature schemes...
And nothing will be vibe coded. I'm done with this.
Let's have fun!
So... I've got to ask... Seriously...
I need your help...
What are the most important things I should be working on and focusing on for the next few months or years?
Too many subjects.