From 1386cfa6189654552cf8717c0b56a83f4b89d421 Mon Sep 17 00:00:00 2001 From: thomaslavaur Date: Wed, 27 Aug 2025 10:01:12 +0200 Subject: [PATCH] update the constant according to engineering discussion --- .../Blend/generate_inputs_for_poq.py | 14 ++++---- .../Mantle/generate_inputs_for_pol.py | 12 +++---- .../generate_inputs_for_proof_of_claim.py | 2 +- circom_circuits/misc/constants.circom | 36 +++++++++---------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/circom_circuits/Blend/generate_inputs_for_poq.py b/circom_circuits/Blend/generate_inputs_for_poq.py index 6da5b20..ee14e30 100644 --- a/circom_circuits/Blend/generate_inputs_for_poq.py +++ b/circom_circuits/Blend/generate_inputs_for_poq.py @@ -221,7 +221,7 @@ if not core_or_leader in [0,1]: # 1) Core‐node registry Merkle‐proof # pick a random core_sk and derive its public key core_sk = F(randrange(0,p,1)) -pk_core = poseidon2_hash([ F(212459341846278437262234987091558730706084889692483733611934435194121904625), core_sk ]) +pk_core = poseidon2_hash([ F(21826764258320138600520923299986619104225513357324915648346315894686032813), core_sk ]) core_selectors = randrange(0,2**20,1) core_selectors = format(int(core_selectors),'020b') core_nodes = [F(randrange(0,p,1)) for i in range(20)] @@ -262,15 +262,15 @@ for i in range(25): secret_root = poseidon2_hash([secret_root,slot_secret_path[i]]) else: secret_root = poseidon2_hash([slot_secret_path[i],secret_root]) -sk = poseidon2_hash([F(368578955381705904513968556094561791019140317213076864424136877504260737058),starting_slot,secret_root]) -pk = poseidon2_hash([F(212459341846278437262234987091558730706084889692483733611934435194121904625),sk]) +sk = poseidon2_hash([F(11150412648077803043426715895344850926617969336834792805313291817007615912),starting_slot,secret_root]) +pk = poseidon2_hash([F(21826764258320138600520923299986619104225513357324915648346315894686032813),sk]) -note_id = poseidon2_hash([F(103012852986292465873069134523609422197952925946768565674230228608985708879),tx_hash,output_number,value,pk]) -ticket = poseidon2_hash([F(328840406439552832830196247813274442341678919395186087927998764150429312516),F(epoch_nonce),F(slot_number),note_id,sk]) +note_id = poseidon2_hash([F(103428471183212854509245604687159503481714203314000316436981831193757668857),tx_hash,output_number,value,pk]) +ticket = poseidon2_hash([F(153089612725445249076651564403687387970929622326972008703737063484757842721),F(epoch_nonce),F(slot_number),note_id,sk]) while(ticket > threshold): output_number += 1 - note_id = poseidon2_hash([F(103012852986292465873069134523609422197952925946768565674230228608985708879),tx_hash,output_number,value,pk]) - ticket = poseidon2_hash([F(328840406439552832830196247813274442341678919395186087927998764150429312516),F(epoch_nonce),F(slot_number),note_id,sk]) + note_id = poseidon2_hash([F(103428471183212854509245604687159503481714203314000316436981831193757668857),tx_hash,output_number,value,pk]) + ticket = poseidon2_hash([F(153089612725445249076651564403687387970929622326972008703737063484757842721),F(epoch_nonce),F(slot_number),note_id,sk]) aged_nodes = [F(randrange(0,p,1)) for i in range(32)] aged_selectors = randrange(0,2**32,1) diff --git a/circom_circuits/Mantle/generate_inputs_for_pol.py b/circom_circuits/Mantle/generate_inputs_for_pol.py index 7906379..fb46211 100755 --- a/circom_circuits/Mantle/generate_inputs_for_pol.py +++ b/circom_circuits/Mantle/generate_inputs_for_pol.py @@ -242,15 +242,15 @@ for i in range(25): secret_root = poseidon2_hash([secret_root,slot_secret_path[i]]) else: secret_root = poseidon2_hash([slot_secret_path[i],secret_root]) -sk = poseidon2_hash([F(368578955381705904513968556094561791019140317213076864424136877504260737058),starting_slot,secret_root]) -pk = poseidon2_hash([F(212459341846278437262234987091558730706084889692483733611934435194121904625),sk]) +sk = poseidon2_hash([F(11150412648077803043426715895344850926617969336834792805313291817007615912),starting_slot,secret_root]) +pk = poseidon2_hash([F(21826764258320138600520923299986619104225513357324915648346315894686032813),sk]) -note_id = poseidon2_hash([F(103012852986292465873069134523609422197952925946768565674230228608985708879),tx_hash,output_number,value,pk]) -ticket = poseidon2_hash([F(328840406439552832830196247813274442341678919395186087927998764150429312516),F(epoch_nonce),F(slot_number),note_id,sk]) +note_id = poseidon2_hash([F(103428471183212854509245604687159503481714203314000316436981831193757668857),tx_hash,output_number,value,pk]) +ticket = poseidon2_hash([F(153089612725445249076651564403687387970929622326972008703737063484757842721),F(epoch_nonce),F(slot_number),note_id,sk]) while(ticket > threshold): output_number += 1 - note_id = poseidon2_hash([F(103012852986292465873069134523609422197952925946768565674230228608985708879),tx_hash,output_number,value,pk]) - ticket = poseidon2_hash([F(328840406439552832830196247813274442341678919395186087927998764150429312516),F(epoch_nonce),F(slot_number),note_id,sk]) + note_id = poseidon2_hash([F(103428471183212854509245604687159503481714203314000316436981831193757668857),tx_hash,output_number,value,pk]) + ticket = poseidon2_hash([F(153089612725445249076651564403687387970929622326972008703737063484757842721),F(epoch_nonce),F(slot_number),note_id,sk]) aged_nodes = [F(randrange(0,p,1)) for i in range(32)] aged_selectors = randrange(0,2**32,1) diff --git a/circom_circuits/Mantle/generate_inputs_for_proof_of_claim.py b/circom_circuits/Mantle/generate_inputs_for_proof_of_claim.py index 5464383..7877cc6 100755 --- a/circom_circuits/Mantle/generate_inputs_for_proof_of_claim.py +++ b/circom_circuits/Mantle/generate_inputs_for_proof_of_claim.py @@ -208,7 +208,7 @@ def PoseidonSponge(data, capacity, output_len): secret_voucher = F(randrange(0,p,1)) -reward_voucher = poseidon2_hash([F(220700623067091879569340598814410483038955857088532228155209730029981553361),secret_voucher]) +reward_voucher = poseidon2_hash([F(204531649764949789513498796261435013892205118946219834864707175174206065125),secret_voucher]) merkle_nodes = [F(randrange(0,p,1)) for i in range(32)] selectors = randrange(0,2**32,1) diff --git a/circom_circuits/misc/constants.circom b/circom_circuits/misc/constants.circom index 67c14d9..2529542 100644 --- a/circom_circuits/misc/constants.circom +++ b/circom_circuits/misc/constants.circom @@ -4,62 +4,62 @@ pragma circom 2.1.9; include "../circomlib/circuits/bitify.circom"; include "../circomlib/circuits/comparators.circom"; -// int.from_bytes(hashlib.blake2b(b"LEAD_V1", digest_size=32).digest()[:-1], "little") = 328840406439552832830196247813274442341678919395186087927998764150429312516 +// int.from_bytes(hashlib.blake2b(b"LEAD_V1", digest_size=31).digest(), "little") = 153089612725445249076651564403687387970929622326972008703737063484757842721 template LEAD_V1(){ signal output out; - out <== 328840406439552832830196247813274442341678919395186087927998764150429312516; + out <== 153089612725445249076651564403687387970929622326972008703737063484757842721; } -// int.from_bytes(hashlib.blake2b(b"NOMOS_POL_SK_V1", digest_size=32).digest()[:-1], "little") = 368578955381705904513968556094561791019140317213076864424136877504260737058 +// int.from_bytes(hashlib.blake2b(b"NOMOS_POL_SK_V1", digest_size=31).digest(), "little") = 11150412648077803043426715895344850926617969336834792805313291817007615912 template NOMOS_POL_SK_V1(){ signal output out; - out <== 368578955381705904513968556094561791019140317213076864424136877504260737058; + out <== 11150412648077803043426715895344850926617969336834792805313291817007615912; } -// int.from_bytes(hashlib.blake2b(b"NOMOS_NONCE_CONTRIB_V1", digest_size=32).digest()[:-1], "little") = 244357966957813294976413655106584723088007136198770941251562443211854695510 +// int.from_bytes(hashlib.blake2b(b"NOMOS_NONCE_CONTRIB_V1", digest_size=31).digest(), "little") = 38480566441084130729766917573705507194302645957068645172495738975468771576 template NOMOS_NONCE_CONTRIB_V1(){ signal output out; - out <== 244357966957813294976413655106584723088007136198770941251562443211854695510; + out <== 38480566441084130729766917573705507194302645957068645172495738975468771576; } -// int.from_bytes(hashlib.blake2b(b"NOMOS_KDF", digest_size=32).digest()[:-1], "little") = 212459341846278437262234987091558730706084889692483733611934435194121904625 +// int.from_bytes(hashlib.blake2b(b"NOMOS_KDF", digest_size=31).digest(), "little") = 21826764258320138600520923299986619104225513357324915648346315894686032813 template NOMOS_KDF(){ signal output out; - out <== 212459341846278437262234987091558730706084889692483733611934435194121904625; + out <== 21826764258320138600520923299986619104225513357324915648346315894686032813; } -// int.from_bytes(hashlib.blake2b(b"NOMOS_NOTE_ID_V1", digest_size=32).digest()[:-1], "little") = 103012852986292465873069134523609422197952925946768565674230228608985708879 +// int.from_bytes(hashlib.blake2b(b"NOMOS_NOTE_ID_V1", digest_size=31).digest(), "little") = 103428471183212854509245604687159503481714203314000316436981831193757668857 template NOMOS_NOTE_ID_V1(){ signal output out; - out <== 103012852986292465873069134523609422197952925946768565674230228608985708879; + out <== 103428471183212854509245604687159503481714203314000316436981831193757668857; } -// int.from_bytes(hashlib.blake2b(b"SELECTION_RANDOMNESS_V1", digest_size=32).digest()[:-1], "little") = 163474922864341961381400596433391531839044482664776931971752230771615546343 +// int.from_bytes(hashlib.blake2b(b"SELECTION_RANDOMNESS_V1", digest_size=31).digest(), "little") = 309304781451234662769924433992168739004140182686192300697554287107153066081 template SELECTION_RANDOMNESS_V1(){ signal output out; - out <== 163474922864341961381400596433391531839044482664776931971752230771615546343; + out <== 309304781451234662769924433992168739004140182686192300697554287107153066081; } -// int.from_bytes(hashlib.blake2b(b"KEY_NULLIFIER_V1", digest_size=32).digest()[:-1], "little") = 276099761984071152198272194832739979363346624368736196681403791762138255387 +// int.from_bytes(hashlib.blake2b(b"KEY_NULLIFIER_V1", digest_size=31).digest(), "little") = 115702876017784606171848900076836503482825215709927504981847970587763163030 template KEY_NULLIFIER_V1(){ signal output out; - out <== 276099761984071152198272194832739979363346624368736196681403791762138255387; + out <== 115702876017784606171848900076836503482825215709927504981847970587763163030; } -// int.from_bytes(hashlib.blake2b(b"REWARD_VOUCHER", digest_size=32).digest()[:-1], "little") = 220700623067091879569340598814410483038955857088532228155209730029981553361 +// int.from_bytes(hashlib.blake2b(b"REWARD_VOUCHER", digest_size=31).digest(), "little") = 204531649764949789513498796261435013892205118946219834864707175174206065125 template REWARD_VOUCHER(){ signal output out; - out <== 220700623067091879569340598814410483038955857088532228155209730029981553361; + out <== 204531649764949789513498796261435013892205118946219834864707175174206065125; } -// int.from_bytes(hashlib.blake2b(b"VOUCHER_NF", digest_size=32).digest()[:-1], "little") = 439345205760851690220461057889339186886122855215620687318972412183373920167 +// int.from_bytes(hashlib.blake2b(b"VOUCHER_NF", digest_size=31).digest(), "little") = 321834789402285853089731413490239982799919282776258843204385507114302874674 template VOUCHER_NF(){ signal output out; - out <== 439345205760851690220461057889339186886122855215620687318972412183373920167; + out <== 321834789402285853089731413490239982799919282776258843204385507114302874674; } \ No newline at end of file