Our current OpenVM integration has the following vulnerability:
In order to prevent the timestamp from overflowing, the OpenVM verifiers checks that $\sum_{i} height_i \cdot num\_interactions_i < p$ (where $i$ goes over the AIR indices). This prevents the timestamp from overflowing under the assumption that each AIR increments the timestamp at most by the number of bus interactions. This is explained in this section.
This assumption is not satisfied by autoprecompiles as we generate them, because the timestamp increase is currently the same as would have been if the prover had run in software. Meanwhile, we might remove memory bus interactions, in particular memory bus interactions reading / writing intermediate values. So, for example, a big basic block doing a lot of local computation might increase the timestamp by more than the number of bus interactions.
Our current OpenVM integration has the following vulnerability:
In order to prevent the timestamp from overflowing, the OpenVM verifiers checks that$\sum_{i} height_i \cdot num\_interactions_i < p$ (where $i$ goes over the AIR indices). This prevents the timestamp from overflowing under the assumption that each AIR increments the timestamp at most by the number of bus interactions. This is explained in this section.
This assumption is not satisfied by autoprecompiles as we generate them, because the timestamp increase is currently the same as would have been if the prover had run in software. Meanwhile, we might remove memory bus interactions, in particular memory bus interactions reading / writing intermediate values. So, for example, a big basic block doing a lot of local computation might increase the timestamp by more than the number of bus interactions.