Update NEP-488(Precompile for BLS12-381 curve operations). Support addition and multiplication only for G1/G2 subgroup. #3
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.
In the original NEP-488, we supported addition and multiplication operations for any valid points on elliptic curves.
In this PR, I have restricted the input for bls_p1/p2_sum and bls_p1/p2_multiexp to elements from the G1/G2 subgroups only.
In all cases where we need these functions, support for elements from G1/G2 is sufficient. However, verifying that a point belongs to a subgroup is a costly operation, and users cannot ensure within a contract that a point is from G1/G2. By implementing this restriction, we can prevent certain errors.
Additionally, in the future, we will have more flexibility in choosing algorithms and libraries. If a library assumes that points are in the subgroup, we will be able to use it without issue.