-
Notifications
You must be signed in to change notification settings - Fork 18
Eip 2537 precompile for bls12 381 curve operations #654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 82 commits
b9e321f
7090124
cd3f2fe
e7ee3db
daa8482
ce811cb
8520d20
904b6f3
5665eb0
faf559c
0594616
4d9c2d8
500e917
b8a2037
b6bca60
fb150f5
e205c38
087c7c3
1a30d20
be5ff11
eff8f39
80e6961
804b23b
294b7bc
76ce538
3536cfe
d59669b
904e98c
1dd63c9
120f4a2
5c5acda
654d10c
8df322b
89895f9
0db1dc5
af82fb1
c86ac7e
6cd657e
2e9d3e5
e3d1b2b
a9aecb8
518196f
48264db
ea09b7d
83ae1fe
e971d08
44bfc7d
33028f7
bf36325
f35df1e
3691d7b
4dd773b
cc80016
dbde21f
3bf88fb
a9cefde
ded61c4
37123a7
31b09db
d88226f
769cdb2
1d6d3ee
0b36770
ba6a8c5
8551dd5
f36412b
273a832
dfac96b
b2ef050
e26ebc0
ee359b0
e67d5bd
75b2902
03fdcf7
80ea858
747b45e
5cf8cf4
b415730
4eaf601
510aa79
5742adc
4db65e8
df3356d
3efd23f
f5f3f6a
f9cdd87
c85a2de
d0f6cb9
227ebd7
3fa2dd4
87360af
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,6 +25,49 @@ BLOCKDATA_CANCUN := blockdata/cancun | |
|
||
BLOCKHASH := blockhash | ||
|
||
BLS_CANCUN := $(wildcard bls/cancun/*.lisp) \ | ||
$(wildcard bls/cancun/generalities/cancun_restriction.lisp) \ | ||
$(wildcard bls/cancun/generalities/constancy_conditions.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraining_address_sum.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraining_flag_sum.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraints_for_bls_stamp.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraints_for_ct.lisp) \ | ||
$(wildcard bls/cancun/generalities/id_increment_constraints.lisp) \ | ||
$(wildcard bls/cancun/generalities/legal_transition_constraints.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_acc_inputs.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_ct_max.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_index_max.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_index.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_is_first_input_and_is_second_input.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_phase.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_total_size.lisp) \ | ||
$(wildcard bls/cancun/generalities/shorthands.lisp) \ | ||
$(wildcard bls/cancun/lookups/*.lisp) \ | ||
$(wildcard bls/cancun/specialized_constraints/*.lisp) \ | ||
$(wildcard bls/cancun/top_level_flags_mint_mext_wtrv_wnon/*.lisp) \ | ||
$(wildcard bls/cancun/utilities/*.lisp) \ | ||
|
||
BLS_CANCUN := $(wildcard bls/cancun/*.lisp) \ | ||
$(wildcard bls/cancun/generalities/constancy_conditions.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraining_address_sum.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraining_flag_sum.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraints_for_bls_stamp.lisp) \ | ||
$(wildcard bls/cancun/generalities/constraints_for_ct.lisp) \ | ||
$(wildcard bls/cancun/generalities/id_increment_constraints.lisp) \ | ||
$(wildcard bls/cancun/generalities/legal_transition_constraints.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_acc_inputs.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_ct_max.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_index_max.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_index.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_is_first_input_and_is_second_input.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_phase.lisp) \ | ||
$(wildcard bls/cancun/generalities/setting_total_size.lisp) \ | ||
$(wildcard bls/cancun/generalities/shorthands.lisp) \ | ||
$(wildcard bls/cancun/lookups/*.lisp) \ | ||
$(wildcard bls/cancun/specialized_constraints/*.lisp) \ | ||
$(wildcard bls/cancun/top_level_flags_mint_mext_wtrv_wnon/*.lisp) \ | ||
$(wildcard bls/cancun/utilities/*.lisp) \ | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Bug: Variable Redefinition Causes Build FailuresThe Additional Locations (1)There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Bug: Duplicate Variable Definition Causes Module ExclusionThe There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Bug: Variable Redefinition and Undefined ReferencesThe Additional Locations (1)There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Bug: Duplicate Variable Definition Causes Build ExclusionsThe |
||
CONSTANTS := constants/constants.lisp | ||
|
||
CONSTANTS_LONDON := constants/london/constants.lisp | ||
|
@@ -69,7 +112,30 @@ OOB_LONDON := oob/london | |
|
||
OOB_SHANGHAI := oob/shanghai | ||
|
||
OOB_CANCUN := oob/cancun | ||
OOB_CANCUN := $(wildcard oob/cancun/lookups/*.lisp) \ | ||
$(wildcard oob/cancun/opcodes/*.lisp) \ | ||
$(wildcard oob/cancun/precompiles/*.lisp) \ | ||
$(wildcard oob/cancun/binarities.lisp) \ | ||
$(wildcard oob/cancun/cancun_restriction.lisp) \ | ||
$(wildcard oob/cancun/columns.lisp) \ | ||
$(wildcard oob/cancun/constancies.lisp) \ | ||
$(wildcard oob/cancun/constants.lisp) \ | ||
$(wildcard oob/cancun/decoding.lisp) \ | ||
$(wildcard oob/cancun/heartbeat.lisp) \ | ||
$(wildcard oob/cancun/shorthands.lisp) \ | ||
$(wildcard oob/cancun/specialized.lisp) \ | ||
|
||
OOB_PRAGUE := $(wildcard oob/cancun/lookups/*.lisp) \ | ||
$(wildcard oob/cancun/opcodes/*.lisp) \ | ||
$(wildcard oob/cancun/precompiles/*.lisp) \ | ||
$(wildcard oob/cancun/binarities.lisp) \ | ||
$(wildcard oob/cancun/columns.lisp) \ | ||
$(wildcard oob/cancun/constancies.lisp) \ | ||
$(wildcard oob/cancun/constants.lisp) \ | ||
$(wildcard oob/cancun/decoding.lisp) \ | ||
$(wildcard oob/cancun/heartbeat.lisp) \ | ||
$(wildcard oob/cancun/shorthands.lisp) \ | ||
$(wildcard oob/cancun/specialized.lisp) \ | ||
|
||
RLP_ADDR := rlpaddr | ||
|
||
|
@@ -95,9 +161,12 @@ TABLES_LONDON := reftables/*.lisp \ | |
reftables/london/inst_decoder.lisp | ||
|
||
TABLES_CANCUN := reftables/*.lisp \ | ||
reftables/cancun/bls_reftable.lisp \ | ||
reftables/cancun/inst_decoder.lisp \ | ||
reftables/cancun/power.lisp | ||
|
||
# reftables/cancun/bls_reftable.lisp is only used in PRAGUE, but adding it in CANCUN already allows to do not duplicate OOB | ||
|
||
TRM := trm | ||
|
||
TXN_DATA_LONDON := txndata/london | ||
|
@@ -179,6 +248,7 @@ ZKEVM_MODULES_CANCUN := ${ZKEVM_MODULES_COMMON} \ | |
${TABLES_CANCUN} \ | ||
${ALU} \ | ||
${BLOCKDATA_CANCUN} \ | ||
${BLS_CANCUN} \ | ||
${HUB_CANCUN} \ | ||
${LOG_INFO_CANCUN} \ | ||
${MMIO_CANCUN} \ | ||
|
@@ -193,11 +263,12 @@ ZKEVM_MODULES_PRAGUE := ${ZKEVM_MODULES_COMMON} \ | |
${TABLES_CANCUN} \ | ||
${ALU} \ | ||
${BLOCKDATA_CANCUN} \ | ||
${BLS_PRAGUE} \ | ||
${HUB_CANCUN} \ | ||
${LOG_INFO_CANCUN} \ | ||
${MMIO_CANCUN} \ | ||
${MXP_CANCUN} \ | ||
${OOB_CANCUN} \ | ||
${OOB_PRAGUE} \ | ||
${RLP_TXN_CANCUN} \ | ||
${RLP_UTILS_CANCUN} \ | ||
${TXN_DATA_CANCUN} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
(module bls) | ||
|
||
(defun (cs_G1MT_for_g1_msm) | ||
(* DATA_BLS_G1_MSM_FLAG IS_FIRST_INPUT MEXT_BIT)) | ||
|
||
(defun (cs_G2MT_for_g2_msm) | ||
(* DATA_BLS_G2_MSM_FLAG IS_FIRST_INPUT MEXT_BIT)) | ||
cursor[bot] marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
||
(defun (cs_G1MT_for_pairing_malformed) | ||
(* DATA_BLS_PAIRING_CHECK_FLAG IS_FIRST_INPUT MEXT_BIT)) | ||
|
||
(defun (cs_G2MT_for_pairing_malformed) | ||
(* DATA_BLS_PAIRING_CHECK_FLAG IS_SECOND_INPUT MEXT_BIT)) | ||
|
||
(defun (cs_G1MT_for_pairing_wellformed) | ||
(* DATA_BLS_PAIRING_CHECK_FLAG IS_FIRST_INPUT (- 1 NONTRIVIAL_POP_BIT) (- 1 IS_INFINITY) (wellformed_data))) | ||
|
||
(defun (cs_G2MT_for_pairing_wellformed) | ||
(* DATA_BLS_PAIRING_CHECK_FLAG IS_SECOND_INPUT (- 1 NONTRIVIAL_POP_BIT) (- 1 IS_INFINITY) (wellformed_data))) | ||
|
||
(defun (is_nontrivial_pairing_data_or_result) | ||
(+ (* DATA_BLS_PAIRING_CHECK_FLAG NONTRIVIAL_POP_BIT) RSLT_BLS_PAIRING_CHECK_FLAG)) | ||
|
||
;; Circuit selector column definitions | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_C1_MEMBERSHIP :binary@prove) | ||
(* MEXT_BIT DATA_BLS_G1_ADD_FLAG)) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_C2_MEMBERSHIP :binary@prove) | ||
(* MEXT_BIT DATA_BLS_G2_MSM_FLAG)) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_G1_MEMBERSHIP :binary@prove) | ||
(+ (cs_G1MT_for_g1_msm) | ||
(cs_G1MT_for_pairing_malformed) | ||
(cs_G1MT_for_pairing_wellformed))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_G2_MEMBERSHIP :binary@prove) | ||
(+ (cs_G2MT_for_g2_msm) | ||
(cs_G2MT_for_pairing_malformed) | ||
(cs_G2MT_for_pairing_wellformed))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_POINT_EVALUATION :binary@prove) | ||
(* WNON (is_point_evaluation))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_POINT_EVALUATION_FAILURE :binary@prove) | ||
(* MEXT (is_point_evaluation))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_BLS_G1_ADD :binary@prove) | ||
(* WNON (is_g1_add))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_BLS_G1_MSM :binary@prove) | ||
(* WNON (is_g1_msm))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_BLS_G2_ADD :binary@prove) | ||
(* WNON (is_g2_add))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_BLS_G2_MSM :binary@prove) | ||
(* WNON (is_g2_msm))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_BLS_PAIRING_CHECK :binary@prove) | ||
(* WNON (is_nontrivial_pairing_data_or_result))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_BLS_MAP_FP_TO_G1 :binary@prove) | ||
(* WNON (is_map_fp_to_g1))) | ||
|
||
(defcomputedcolumn (CIRCUIT_SELECTOR_BLS_MAP_FP2_TO_G2 :binary@prove) | ||
(* WNON (is_map_fp2_to_g2))) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
(module bls) | ||
|
||
(defcolumns | ||
(STAMP :i32) | ||
(ID :i32) | ||
(TOTAL_SIZE :i16) | ||
(INDEX :i16) | ||
(INDEX_MAX :i16) | ||
(LIMB :i128) | ||
(PHASE :i16) | ||
(SUCCESS_BIT :binary@prove) | ||
|
||
(CT :i4) | ||
(CT_MAX :i4) | ||
|
||
(DATA_POINT_EVALUATION_FLAG :binary@prove) | ||
(DATA_BLS_G1_ADD_FLAG :binary@prove) | ||
(DATA_BLS_G1_MSM_FLAG :binary@prove) | ||
(DATA_BLS_G2_ADD_FLAG :binary@prove) | ||
(DATA_BLS_G2_MSM_FLAG :binary@prove) | ||
(DATA_BLS_PAIRING_CHECK_FLAG :binary@prove) | ||
(DATA_BLS_MAP_FP_TO_G1_FLAG :binary@prove) | ||
(DATA_BLS_MAP_FP2_TO_G2_FLAG :binary@prove) | ||
|
||
(RSLT_POINT_EVALUATION_FLAG :binary@prove) | ||
(RSLT_BLS_G1_ADD_FLAG :binary@prove) | ||
(RSLT_BLS_G1_MSM_FLAG :binary@prove) | ||
(RSLT_BLS_G2_ADD_FLAG :binary@prove) | ||
(RSLT_BLS_G2_MSM_FLAG :binary@prove) | ||
(RSLT_BLS_PAIRING_CHECK_FLAG :binary@prove) | ||
(RSLT_BLS_MAP_FP_TO_G1_FLAG :binary@prove) | ||
(RSLT_BLS_MAP_FP2_TO_G2_FLAG :binary@prove) | ||
|
||
(ACC_INPUTS :i16) | ||
(BYTE_DELTA :byte@prove) | ||
|
||
(MALFORMED_DATA_INTERNAL_BIT :binary@prove) | ||
(MALFORMED_DATA_INTERNAL_ACC :binary@prove) | ||
(MALFORMED_DATA_INTERNAL_ACC_TOT :binary@prove) | ||
(MALFORMED_DATA_EXTERNAL_BIT :binary@prove) | ||
(MALFORMED_DATA_EXTERNAL_ACC :binary@prove) | ||
(MALFORMED_DATA_EXTERNAL_ACC_TOT :binary@prove) | ||
(WELLFORMED_DATA_TRIVIAL :binary@prove) | ||
(WELLFORMED_DATA_NONTRIVIAL :binary@prove) | ||
|
||
(IS_FIRST_INPUT :binary@prove) | ||
(IS_SECOND_INPUT :binary@prove) | ||
(IS_INFINITY :binary@prove) | ||
(NONTRIVIAL_PAIR_OF_POINTS_BIT :binary@prove) | ||
(NONTRIVIAL_PAIR_OF_POINTS_ACC :binary@prove) | ||
|
||
;; Circuit selector columns are defined using defcomputedcolumn in circuit_selectors.lisp | ||
|
||
(WCP_FLAG :binary@prove) | ||
(WCP_ARG1_HI :i128) | ||
(WCP_ARG1_LO :i128) | ||
(WCP_ARG2_HI :i128) | ||
(WCP_ARG2_LO :i128) | ||
(WCP_RES :binary) | ||
(WCP_INST :byte :display :opcode) | ||
) | ||
|
||
;; aliases | ||
(defalias | ||
MINT_BIT MALFORMED_DATA_INTERNAL_BIT | ||
MINT_ACC MALFORMED_DATA_INTERNAL_ACC | ||
MINT MALFORMED_DATA_INTERNAL_ACC_TOT | ||
MEXT_BIT MALFORMED_DATA_EXTERNAL_BIT | ||
MEXT_ACC MALFORMED_DATA_EXTERNAL_ACC | ||
MEXT MALFORMED_DATA_EXTERNAL_ACC_TOT | ||
WTRV WELLFORMED_DATA_TRIVIAL | ||
WNON WELLFORMED_DATA_NONTRIVIAL | ||
NONTRIVIAL_POP_BIT NONTRIVIAL_PAIR_OF_POINTS_BIT | ||
NONTRIVIAL_POP_ACC NONTRIVIAL_PAIR_OF_POINTS_ACC | ||
CS_POINT_EVALUATION CIRCUIT_SELECTOR_POINT_EVALUATION | ||
CS_POINT_EVALUATION_FAILURE CIRCUIT_SELECTOR_POINT_EVALUATION_FAILURE | ||
CS_C1_MEMBERSHIP CIRCUIT_SELECTOR_C1_MEMBERSHIP | ||
CS_G1_MEMBERSHIP CIRCUIT_SELECTOR_G1_MEMBERSHIP | ||
CS_C2_MEMBERSHIP CIRCUIT_SELECTOR_C2_MEMBERSHIP | ||
CS_G2_MEMBERSHIP CIRCUIT_SELECTOR_G2_MEMBERSHIP | ||
CS_BLS_PAIRING_CHECK CIRCUIT_SELECTOR_BLS_PAIRING_CHECK | ||
CS_BLS_G1_ADD CIRCUIT_SELECTOR_BLS_G1_ADD | ||
CS_BLS_G2_ADD CIRCUIT_SELECTOR_BLS_G2_ADD | ||
CS_BLS_G1_MSM CIRCUIT_SELECTOR_BLS_G1_MSM | ||
CS_BLS_G2_MSM CIRCUIT_SELECTOR_BLS_G2_MSM | ||
CS_BLS_MAP_FP_TO_G1 CIRCUIT_SELECTOR_BLS_MAP_FP_TO_G1 | ||
CS_BLS_MAP_FP2_TO_G2 CIRCUIT_SELECTOR_BLS_MAP_FP2_TO_G2 | ||
) | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
(module bls) | ||
|
||
(defconst | ||
POINT_EVALUATION_PRIME_HI 0x73eda753299d7d483339d80809a1d805 | ||
POINT_EVALUATION_PRIME_LO 0x1b4d2c3f4b6a0c7e8f3f5a0e9d1b2c3f | ||
BLS_PRIME_3 0x00000000000000000000000000000000 | ||
BLS_PRIME_2 0x1a0111ea397fe69a4b1ba7b6434bacd7 | ||
BLS_PRIME_1 0x64774b84f38512bf6730d2a0f6b0f624 | ||
BLS_PRIME_0 0x1eabfffeb153ffffb9feffffffffaaab | ||
|
||
INDEX_MAX_DATA_POINT_EVALUATION 11 | ||
INDEX_MAX_RSLT_POINT_EVALUATION 3 | ||
INDEX_MAX_DATA_G1_ADD 15 | ||
INDEX_MAX_RSLT_G1_ADD 7 | ||
INDEX_MAX_DATA_G1_MSM_MIN 9 | ||
INDEX_MAX_RSLT_G1_MSM 7 | ||
INDEX_MAX_DATA_G2_ADD 31 | ||
INDEX_MAX_RSLT_G2_ADD 15 | ||
INDEX_MAX_DATA_G2_MSM_MIN 17 | ||
INDEX_MAX_RSLT_G2_MSM 15 | ||
INDEX_MAX_DATA_PAIRING_CHECK_MIN 23 | ||
INDEX_MAX_RSLT_PAIRING_CHECK 1 | ||
INDEX_MAX_DATA_MAP_FP_TO_G1 3 | ||
INDEX_MAX_RSLT_MAP_FP_TO_G1 7 | ||
INDEX_MAX_DATA_MAP_FP2_TO_G2 7 | ||
INDEX_MAX_RSLT_MAP_FP2_TO_G2 15 | ||
|
||
CT_MAX_POINT_EVALUATION 11 | ||
CT_MAX_SMALL_POINT 7 | ||
CT_MAX_LARGE_POINT 15 | ||
CT_MAX_SCALAR 1 | ||
CT_MAX_MAP_FP_TO_G1 3 | ||
CT_MAX_MAP_FP2_TO_G2 7 | ||
) | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
(module bls) | ||
|
||
(defconstraint cancun-restriction () | ||
(eq! (flag_sum) (is_point_evaluation))) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
(module bls) | ||
|
||
(defconstraint stamp-constancy () | ||
(begin (stamp-constancy STAMP ID) | ||
(stamp-constancy STAMP SUCCESS_BIT) | ||
(stamp-constancy STAMP MINT) | ||
(stamp-constancy STAMP MEXT) | ||
(stamp-constancy STAMP WTRV) | ||
(stamp-constancy STAMP WNON))) | ||
|
||
(defconstraint counter-constancy () | ||
(begin (counter-constancy INDEX PHASE) ;; NOTE: PHASE and INDEX_MAX are said to be index-constant | ||
(counter-constancy INDEX INDEX_MAX) | ||
(counter-constancy CT CT_MAX) | ||
(counter-constancy CT IS_INFINITY) | ||
(counter-constancy CT ACC_INPUTS) | ||
(counter-constancy CT NONTRIVIAL_POP_ACC) | ||
(counter-constancy CT MEXT_BIT) | ||
(counter-constancy CT MEXT_ACC))) | ||
|
||
(defconstraint pair-of-inputs-constancy () | ||
(if-not-zero ACC_INPUTS | ||
(if (will-remain-constant! ACC_INPUTS) | ||
(will-remain-constant! NONTRIVIAL_POP_BIT)))) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
(module bls) | ||
|
||
(defun (address_sum) | ||
(+ (* 10 (is_point_evaluation)) | ||
(* 11 (is_g1_add)) | ||
(* 12 (is_g1_msm)) | ||
(* 13 (is_g2_add)) | ||
(* 14 (is_g2_msm)) | ||
(* 15 (is_pairing_check)) | ||
(* 16 (is_map_fp_to_g1)) | ||
(* 17 (is_map_fp2_to_g2)))) | ||
|
||
(defconstraint stamp-constancy () | ||
(stamp-constancy STAMP (address_sum))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Duplicate Variable Overwrites Build Configuration
The
BLS_CANCUN
variable is defined twice in the Makefile. The second definition overwrites the first, unintentionally excluding specific files likebls/cancun/generalities/cancun_restriction.lisp
from the build. This results in missing constraint files.