From 28c9144907c6cc23ecf8f23f10c9998b50a70271 Mon Sep 17 00:00:00 2001 From: thomaslavaur Date: Tue, 27 May 2025 12:03:19 +0200 Subject: [PATCH] updated input generation file for pol --- .../Mantle/generate_inputs_for_pol.py | 29 ++++++++----------- circom_circuits/ledger/notes.circom | 2 +- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/circom_circuits/Mantle/generate_inputs_for_pol.py b/circom_circuits/Mantle/generate_inputs_for_pol.py index f01b696..d4efbab 100755 --- a/circom_circuits/Mantle/generate_inputs_for_pol.py +++ b/circom_circuits/Mantle/generate_inputs_for_pol.py @@ -224,15 +224,16 @@ t1 = F(int((((- ln(R(0.95))**2) * R(p))) / R(total_stake)**2 )) value = F(50) -unit = F(19676183153323264216568033390884511718872104179761154996527087027500271872825) -state = F(randrange(0,p,1)) -note_nonce = F(0) threshold = (t0 + t1 * value) * value starting_slot = randrange(max(0,slot_number-2**25+1),slot_number,1) slot_secret = F(randrange(0,p,1)) slot_secret_indexes = format(slot_number - starting_slot,'025b') +tx_hash = F(randrange(0,p,1)) +output_number = F(randrange(0,50,1)) + + slot_secret_path = [F(randrange(0,p,1)) for i in range(25)] secret_root = slot_secret for i in range(25): @@ -240,20 +241,16 @@ 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(313763129738690320248895675268201668175331181115752393250540330459318963992),starting_slot,secret_root]) -pk = poseidon2_hash([F(355994159511987982411097843485998670968942801951585260613801918349630142543),sk]) +sk = poseidon2_hash([F(276343751363038477542478482371189478971716773803854432417240653890758913502),starting_slot,secret_root]) +pk = poseidon2_hash([F(143901698298659326513095781108609933285310777469806395711179835432556098250),sk]) -note_cm = poseidon2_hash([F(181645510297841241569044198526601622686169271532834574969543446901055041748),state,value,unit,note_nonce,pk,F(363778563868520716613768381832117227806204156179492995214325445980623358665)]) -ticket = poseidon2_hash([F(137836078329650723736739065075984465408055658421620421917147974048265460598),F(epoch_nonce),F(slot_number),note_cm,sk]) +note_id = poseidon2_hash([F(208937745713764417368342977773177181211005049473820876609645291603759251867),tx_hash,output_number,value,pk]) +ticket = poseidon2_hash([F(118639355095155533251654648435778961140410152423070311685636296540777655717),F(epoch_nonce),F(slot_number),note_id,sk]) while(ticket > threshold): - note_nonce += 1 - note_cm = poseidon2_hash([F(181645510297841241569044198526601622686169271532834574969543446901055041748),state,value,unit,note_nonce,pk,F(363778563868520716613768381832117227806204156179492995214325445980623358665)]) - ticket = poseidon2_hash([F(137836078329650723736739065075984465408055658421620421917147974048265460598),F(epoch_nonce),F(slot_number),note_cm,sk]) + output_number += 1 + note_id = poseidon2_hash([F(208937745713764417368342977773177181211005049473820876609645291603759251867),tx_hash,output_number,value,pk]) + ticket = poseidon2_hash([F(118639355095155533251654648435778961140410152423070311685636296540777655717),F(epoch_nonce),F(slot_number),note_id,sk]) -tx_hash = F(randrange(0,p,1)) -output_number = F(randrange(0,4,1)) -note_id = poseidon2_hash([F(342101038445105569972307194441697646307927876218883552376182649811837164915),tx_hash,output_number,note_cm]) - aged_nodes = [F(randrange(0,p,1)) for i in range(32)] aged_selectors = randrange(0,2**32,1) aged_selectors = format(aged_selectors,'032b') @@ -333,6 +330,4 @@ with open("input.json", "w") as file: file.write('\n\t"latest_root" :\t\t\t\t"'+str(latest_root)+'",') file.write('\n\t"starting_slot" :\t\t\t\t"'+str(starting_slot)+'",') file.write('\n\t"secrets_root" :\t\t\t\t"'+str(secret_root)+'",') - file.write('\n\t"state" :\t\t\t\t"'+str(state)+'",') - file.write('\n\t"value" :\t\t\t\t"'+str(value)+'",') - file.write('\n\t"nonce" :\t\t\t\t"'+str(note_nonce)+'"}') \ No newline at end of file + file.write('\n\t"value" :\t\t\t\t"'+str(value)+'"}') \ No newline at end of file diff --git a/circom_circuits/ledger/notes.circom b/circom_circuits/ledger/notes.circom index d205071..9ca96f2 100644 --- a/circom_circuits/ledger/notes.circom +++ b/circom_circuits/ledger/notes.circom @@ -9,7 +9,7 @@ template derive_public_key(){ signal output out; component hash = Poseidon2_hash(2); - component dst = NOMOS_KDF(); + component dst = NOMOS_KDF_V1(); hash.inp[0] <== dst.out; hash.inp[1] <== secret_key; out <== hash.out;