Puncte:3

Există o dovadă fără cunoștințe a unui secret hashing?

drapel kp

Alice vrea să împărtășească un secret $S$ cu Bob, așa că ea îl criptează cu cheia privată a lui Bob.

Bob nu este online momentan, așa că Victor îl va păstra în siguranță pentru el între timp.

Victor verificatorul ar dori să verifice că este într-adevăr secretul $S$ fără să cunoască de fapt secretul $S$ se. Victor poate cunoaște cu încredere hash-ul secretului $S$ (detaliile despre cum se poate baza pe hash nu sunt relevante aici). Victor ar putea avea și orice alt fel de angajament, nu trebuie să fie un hash, cu condiția să nu poată deduce niciodată secretul în text simplu.

Alice face asta

encryptedSecret = criptează (secret, bobsPublicKey)

Victor face asta

verify(encryptedSecret, hashOfSecret) => adevărat
verify("orice altceva", hashOfSecret) => false

Are un astfel de verifica functia exista?

knaccc avatar
drapel es
Trebuie să fie un hash sau ar putea fi un alt tip de angajament?
david_adler avatar
drapel kp
ar putea fi un alt angajament, cu condiția ca Victor să nu ajungă niciodată la secret
knaccc avatar
drapel es
Prin urmare, întrebarea dvs. poate fi simplificată astfel: dacă Victor este conștient de un angajament față de un secret, cum poate Alice să-i furnizeze acel secret în mod neinteractiv lui Bob prin Victor, inclusiv dovada lui Victor că secretul a fost furnizat fără ca Victor să poată afla secret? Vă rugăm să specificați și cine trebuie să fie cel care oferă angajamentul, deoarece acest lucru face diferența pentru răspuns.
david_adler avatar
drapel kp
Alice trebuie să-și dea angajamentul, deoarece Bob este offline
knaccc avatar
drapel es
Dar atunci de unde știe Victor că angajamentul (fie un hash sau nu) este un angajament față de secretul corect? Alice ar putea să ofere un angajament față de un alt secret și să ofere dovada că secretul diferit i-a fost dat lui Bob. Victor nu ar avea idee dacă a fost furnizat secretul corect.
david_adler avatar
drapel kp
Da, de aceea am specificat, nu trebuie să fii preocupat de „detaliile despre cum se poate baza pe hash nu sunt relevante aici”. Este specific aplicației mele, dar practic dacă un secret fals a fost distribuit între Alice și Bob, nu contează. Secretul nu este activ până când nu a fost distribuit cu succes la cel puțin un alt utilizator. Raul este atunci când Charlie sau alții se implică și încep să distribuie secrete false pentru secrete vii.
knaccc avatar
drapel es
Întrebarea ta poate fi simplificată astfel: Cum poate Alice să cripteze un secret astfel încât numai Bob să-l decripteze, în așa fel încât, dacă același secret este recriptat și transmis de Bob lui Charlie, Bob să-i demonstreze lui Victor că același secret primit inițial de la Alice este acum trimis lui Charlie? Secretul este recriptat doar pentru a fi transmis către altcineva de către o persoană care cunoaște secretul?
david_adler avatar
drapel kp
Da, acesta este un mod mult mai bun de a spune. Ai inteles pe deplin, multumesc. Nu sunt sigur cum să reformulez cel mai bine întrebarea...
knaccc avatar
drapel es
Când Alice transmite secretul sau când Bob retransmite secretul, contează dacă Alice sau Bob strica transmisia astfel încât să pară bine pentru Victor, dar numai destinatarul poate descoperi că este o transmisie prost formată care ar trebui să fie respins? Sau o retransmisie trebuie să demonstreze că destinatarul va fi capabil să o decodeze cu succes?
david_adler avatar
drapel kp
„Secretul este recriptat doar pentru a fi transmis către altcineva de către o persoană care cunoaște secretul?” da
david_adler avatar
drapel kp
Nu sunt sigur că vă înțeleg ultimul set de întrebări. Cred că singurul mod în care ar putea funcționa este: dacă prima transmisie dintre Alice și Bob este coruptă, toate transmisiile viitoare ar trebui să se potrivească și cu secretul corupt.
david_adler avatar
drapel kp
Să [continuăm această discuție în chat](https://chat.stackexchange.com/rooms/132390/discussion-between-david-adler-and-knaccc).
Puncte:0
drapel nl

Există un ZK-STARK care demonstrează că cunoști preimaginea la o valoare. „Declarația Rescue-Hash dovedită de probatorul dat în acest cod este:

„Cunosc o succesiune de n + 1 intrări {w_i} astfel încât H(...H(H(w_0, w_1), w_2) ..., w_n) = p”

Unde:

H este funcția hash Rescue.
Fiecare w_i este un tuplu de 4 elemente de câmp. Acestea sunt intrări private, cunoscute doar de doveditor.
p este ieșirea publică a hash-ului (care constă și din 4 elemente de câmp).

" https://github.com/starkware-libs/ethSTARK/tree/ziggy

david_adler avatar
drapel kp
Sună foarte promițător, dar este puțin peste cap, ai putea să-mi explici ca și cum am 5 ani? Nu înțeleg care sunt „intrarile” și nu înțeleg ce este P. În ceea ce privește Alice, Bob etc, cum funcționează asta?
Mark avatar
drapel ng
Deși este puțin târziu, cheia unui rezultat al acestei forme este că hash-ul utilizat (Rescue) este „compatibil cu cripto-ul avansat”, adică are „complexitate multiplicativă scăzută” după o anumită măsură și, prin urmare, este potrivit pentru utilizarea cu cripto-ul avansat. primitivele (cum ar fi MPC, FHE sau ZKProofs --- toate au valori ușor diferite ale costurilor, dar în general au „adunare ieftină” și „înmulțire scumpă”). Dacă hash-ul în sine este exprimabil ca un circuit de adâncime relativ scăzut (multiplicativ), puteți spera să obțineți o dovadă ZK a unei preimagine hash „direct”, de ex. tratandu-l ca...
Mark avatar
drapel ng
o declarație generică pe care doriți să o demonstrați și folosind tehnici standard pentru aceasta. Rețineți că această tehnică generică va funcționa mult mai rău pentru alte funcții hash care nu sunt „avansate pentru cripto-friendly”, să spunem variantele SHA (sau într-adevăr „majoritatea” funcțiilor hash care nu sunt concepute pentru acest scop special).
Puncte:0
drapel in

Verificare privată a unei soluții Sudoku, discuție Bowe-Maxwell și tranzacție bitcoin la atelierul Financial Crypto 2016.

Problema rezolvată cu verificarea a fost:

  1. cumpărătorul este reticent să-și trimită prima monedă, riscând să primească biți aleatori;
  2. vânzătorul este reticent să-și trimită mai întâi soluția la puzzle, riscând să nu primească nicio recompensă.

A fost introdusă și implementată o dovadă non-interactivă pentru a verifica că:

  1. textul simplu este o soluție validă de Sudoku pentru puzzle-ul la îndemână;
  2. textul cifrat a fost produs cu o cheie;
  3. cheia este o pre-imagine la valoarea hash, care a fost trimisă cumpărătorului cu textul cifrat.

Acest hash ar putea fi folosit pentru a crea tranzacții HTLC, astfel încât vânzătorul să-și revendice monedele doar publicând cheia pe blockchain. Ei bine, de fapt a fost folosit un script, dar să rămânem la HTLC ca o simplificare.

Răspunsul practic scurt este: s-ar verifica o preimagine hash cu o dovadă zkSNARK. Un alt răspuns (general) este că există un sistem de dovezi interactiv pentru orice limbaj NP.

Un anunț nerușinat: a fost proiectat un circuit alternativ de verificare a soluției Sudoku, pornind de la reprezentarea seturilor polinomiale și soluția „cărți de joc” a lui Naor, prezentată la IEEE ATIT 2019.

https://github.com/vadym-f/Sudoku_solvability_proof/tree/master/IEEE_ATIT_2019

david_adler avatar
drapel kp
Hei, multumesc! Sună promițător, dar nu sunt sigur cât de relevant este sudoku-ul pentru problema mea. Ați putea să descrieți puțin mai mult despre modul în care zkSNARK poate fi aplicat problemei mele, adică în ceea ce privește Alice și Bob, mulțumesc
Vadym Fedyukovych avatar
drapel in
Tranzacția HTLC și dovada snark a unui hashing secret adecvat pare relevantă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.