Breaking the Solidity compiler with a fuzzer
blog.trailofbits.com
blog.trailofbits.com
Solidity itself is kind of strange too: it doesn't seem to have a consistent design and parsing it is in many cases more hard than it needs to be for what appears to be no good reason other than "this is how C/Java looks so we're going to blindly copy it.". I can't say I'm surprised to see a fuzzer quickly find bugs in the compiler.
There are also some other smart contract languages in the works, the main one being Vyper, but it's not quite ready for production.
But if you're interested in picking some of that low-hanging fruit, you'd probably be welcome, most of the Ethereum community is pretty open to new contributors.
Sadly our project was optimized for a class presentation rather than actually contributing back, but if I ever find myself back in that space I’ll be sure to send in some patches.
Btw another big change the researchers are working on is statelessness, where the on-chain data is just merkle roots, the actual data is held off-chain in a distributed but reliable way, and clients submit merkle proofs with their transactions. That would drastically reduce the amount of data that full nodes have to store, and presumably allow large reductions in storage prices.
(But that doesn't mean solc shouldn't work on compiler improvements like you're talking about, they're not the ones working on statelessness.)
[0] https://android-developers.googleblog.com/2013/08/some-secur...
Looking through their code examples though, the compiler failures look to be in obscure/unlikely to be used areas. Additionally, they state that some are dependent on particular compiler flags
That area of the codebase is far from complete, which is why it is considered experimental and hidden behind a flag that you have to manually enable.
https://testsmt.github.io/papers/winterer-zhang-su-pldi20.pd...
While the Ethereum Foundation sees Ethereum as an ecosystem, much closer to an open source project, and tries to support people who want to contribute to it.
The answer to your question is, nobody has shown up yet who's willing to put in the massive amount of effort required to write the compiler in a formal language.
The closest we've gotten to that is an implementation of the evm: https://jellopaper.org/