The key is to distinguish between two components: "actions" and "dependencies."
"An action is an effect that a transaction has," Buterin explained.
The distinction may sound largely conceptual. However, Buterin argues that explicitly separating the two could allow Ethereum developers to optimize them in fundamentally different ways.
Why it matters
Validation and execution are traditionally intertwined. Nodes receive transactions, validate the required information, and eventually execute them.
Buterin argues that dependencies have properties that make them particularly suitable for optimization.
Many dependencies can be checked in parallel. Some can be examined by the mempool before the transaction reaches a block. Others do not require access to Ethereum state at all.
Those so-called "pure" dependencies could potentially be checked once by the mempool and then never executed again by every validator.
According to Buterin, large collections of such checks could eventually be replaced by a single STARK proving that they were all performed correctly.
"Dependencies can be processed in parallel," he wrote.