Automated Detection of Dynamic State Access in Solidity

This is exactly why, for the direct push model, we believe we have to eliminate all types of dynamic state access. Obviously arbitrary state access is a problem, but even simple branching is an issue because the set of all possible locations could become quite large compared to the minimal set.

That is essentially correct. For new contracts there are some workarounds, but we aren’t convinced that they are sufficient for a good developer experience. That is what motivated this prototype.

@adietrichs and @villanuevawill are manually auditing some contracts to see what changes they’d need to be rewritten without DSA, but it’s unlikely that contracts could be ported without modification.

Getting Eth1 into Eth2 is going to be a whole process on its own, and at least one of the proposals would require semi-statefulness for Eth1 contracts.

In short, this post is far from a statement that Eth2 should abandon support for DSA. It makes the much smaller claim that compilers can (probably) detect DSA, should we choose to go in that direction.

1 Like