chore: Add invariant test for G1/G2 Scalar multiplication #2247
+27
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The G1/G2 scalar multiplication gas costs are specified in two different places in the EIP in two different ways.
They are equal when the first value in the discount table is equal to the MSM_MULTIPLIER. It is not the most robust way to check this invariant because you can compute the cost for G1/2_MUL in a more convoluted way.
If a more convoluted way is chosen, then this test should start to fail.
What this means is that if we wanted to just change the cost for G1/2_MUL we would need to change the MSM_BASE_GAS_FEE. It was done this way because there is some relationship between the cost for a scalar multiplication and the cost to do an MSM which is multiple scalar multiplications.