Puncte:1

Utilizarea zk-snarks pentru a verifica cea mai mare sumă licitată

drapel sn

Înțeleg că putem verifica asta având în vedere o intrare privată A și o contribuție publică b pe care le putem verifica A este mai mare decât b. Dar dacă vreau să păstrez ambele intrări private?

Contextul este o licitație închisă în care trebuie să verificăm cine dintre ofertanții privați are cea mai mare ofertă. Nu am văzut niciun exemplu despre cum se poate realiza acest lucru, dar sper că cineva de aici mă poate ajuta să mă îndrume în direcția corectă.

Manish Adhikari avatar
drapel us
Ce zici de a folosi o soluție la problema milionarului lui Yao. Puteți folosi SNARK pentru a dovedi integritatea intrărilor, dacă este necesar
Puncte:3
drapel us

Să presupunem că există un secret comun $x$ care este folosit pentru a ascunde valoarea de $a$ și $b$, cunoscut doar de actorii care posedă $a$ și $b$. Un verificator $c$ este un număr ales aleatoriu și furnizat celor două părți care dețin $a$ și $b$. Apoi, ei calculează $ax-c$ și $bx-c$și furnizați-le verificatorului. Verificatorul calculează apoi diferența dintre $ax-c$ și $bx-c$, care este rezultatul. În acest caz, pentru că $ax-c$ și $bx-c$ nu este cu siguranță divizibil cu $x$, nu există modalități de a calcula verificatorul $x$ afară.

Rețineți că există probleme cu acest protocol, deoarece necesită interacțiunea între verificator și cele două părți $a$ și $b$.


EDITAȚI | ×: Posibilitatea efectivă a doveditorilor A și B să-și falsifice valorile

Există două cazuri de identitate a verificatorului, care ar trebui discutate separat. Prima posibilitate, este ca verificatorul să fie licitatorul. În acest caz, A și B ar încerca întotdeauna să-și falsifice valoarea, deoarece licitatorul nu are de unde să cunoască valoarea $x$. Amândoi ar face același lucru, fără a-și folosi comunitatea cunoscută $x$, dar altceva. Într-un astfel de caz, acțiunile lor se anulează reciproc. Totuși, dacă verificatorul este un spectator, nu există motive pentru ca aceștia să falsifice o valoare și chiar dacă ar face acest lucru, spectatorul ar ști întotdeauna. Prin urmare, problema contrafacerii unei valori nu există de fapt.

GeraldHost avatar
drapel sn
Mulțumesc omule, asta are sens! Există vreo modalitate de a face acest lucru fără un secret comun? pentru ca sigur daca ambele parti stiu secretul si valoarea lui `c` vor putea da seama de `a` si `b`? Poate că am înțeles dor de ceva.
Red Sun avatar
drapel us
@GeraldHost Am adăugat informațiile pe care le-ați solicitat și am clarificat ce vreau să spun. Vă mulțumim pentru feedback-ul dumneavoastră.
Puncte:3
drapel in

Cu zk-snarks, s-ar verifica o dovadă că relația „este mai mare” este valabilă pentru $(a, b)$ text simplu ca intrare privată și pentru angajament $(a, b)$ ca aport public. Unul le-ar împărți pe amândouă $a$ și $b$ în biți („firele” în limbajul snarks) și creați un circuit cu porți de multiplicare care produc „adevărat” sau „fals”. Circuitele Verilog ar putea fi oarecum utile aici. Multiplicarea înseamnă un sistem de ecuații R1CS reprezentând circuitul, ca parte specifică problemei, și o intrare pentru o bibliotecă snark care implementează sistemul de dovezi Groth16.

Având circuitul, se produce două chei publice, se produce și se verifică o dovadă snark.

GeraldHost avatar
drapel sn
Pentru a genera această dovadă, nu ar trebui să cunoașteți valoarea lui `a` și `b`? Mă întreb dacă există vreo modalitate de a demonstra că „a” este mai mare decât „b” fără a ști „b”?
Vadym Fedyukovych avatar
drapel in
Dacă începeți cu snark-uri ca cerință, veți furniza un martor adecvat pentru a scoate un snark-proof. Asta înseamnă ambele și în text clar.
Puncte:1
drapel in

Utilizarea ZK snark este o cerință? Aceasta pare a fi problema milionarului: https://en.m.wikipedia.org/wiki/Yao%27s_Millionaires%27_problem

Acest lucru este mai simplu decât a face SNARKS, este un calcul partajat interactiv, nu are niciun centru de încredere sau presupune că ambele intrări sunt protejate de un secret partajat (ca în răspunsul lui Red Sun).

Într-un scenariu de licitație, ei își dau angajamente și rulează protocolul milionar. Nu există niciun câștig pentru nicio parte prin utilizarea unei valori diferite în protocolul milionar decât ceea ce este comis, dacă câștigi va trebui să dezvălui angajamentul și plata și orice trădare va fi descoperită. Dar și pentru partea pierzătoare, pare să existe o valoare limitată în a nu folosi aceeași valoare în angajament.

Dacă aveți o persoană de încredere care să vadă ofertele, dar nu aveți încredere în el pentru a fi corect, puteți folosi dovezile ZK pentru a dovedi că a fost sincer, dar acestea nu abordează problema de a avea încredere în partea să nu dezvăluie ofertele. Aveți nevoie de un fel de calcul partajat, ca la milionari, pentru a asigura secretul licitațiilor de la toate celelalte părți.

Manish Adhikari avatar
drapel us
Am menționat același lucru în comentariul de mai sus. Dar dovezile de cunoștințe zero (cum ar fi SNARK) pot fi folosite pentru a dovedi că intrarea dvs. privată la aceasta este aceeași cu valoarea licitației angajate inițial, de exemplu, în acest caz.
Meir Maor avatar
drapel in
Dar dacă te angajezi la o valoare și apoi rulezi algoritmul millionare folosind unul diferit și câștigi, va trebui totuși să-ți dezvălui valoarea inițială. și plătiți exact suma pentru care v-ați angajat. Se pare că mai aveți nevoie de calcul partajat. Deci nu sunt sigur pentru ce este nevoie de dovada ZK.
Manish Adhikari avatar
drapel us
Da, dar nu trebuie să-ți dezvălui oferta dacă pierzi

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.