This repository was archived by the owner on Jan 22, 2025. It is now read-only.
[zk-token-proof] include VerifyBatchRangeProofU256 in the enable_zk_transfer_with_fee feature gate
#34747
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.
Problem
The
VerifyBatchRangeProofU256instruction allows users to create a "batched" range proof on a sequence of commitments. The individual bit-lengths of the encoded values in these commitments must some up to 256.Technically this allows a user to create a range proof of a single 256-bit committed value. This is theoretically fine, but since elliptic curve group is defined over a 256-bit prime number, it could lead to some unexpected consequences/security issues in the future. It would be good to restrict the individual bit-lengths in the batched range proof to be at most 128.
Summary of Changes
Since
VerifyBatchRangeProofU256is technically only required for transfer with fee, include the instruction as part of the transfer with fee feature gate.Fixes #