Puncte:6

O sursă de aleatorie pe care oricine o poate accesa independent, convenabil și robust?

drapel in

Există o sursă de aleatorie pe care oricine din lume o poate accesa independent, convenabil și robust? De exemplu, a 10-a zecimală a temperaturii din Mexico City este suficient de aleatorie.Dar este incomod pentru Bob să acceseze independent și oricum nu poate fi măsurat robust.

Sursa aleatoriei trebuie, de asemenea, să fie sigură, deoarece nicio parte nu o controlează (sau accesul la ea) și nu poate fi prezisă în mod fiabil. De asemenea, trebuie să fie același pentru fiecare persoană care îl accesează.

Aplicația pentru care aș dori aceasta este ceva de genul următoarei probleme: 10 milioane de oameni accesează aceeași valoare aleatoare criptografic sigură fără trebuind să se sincronizeze între ele (deci Diffie-Hellman nu va funcționa).

drapel in
Prin „(sau accesul la acesta)” am vrut să spun că nicio parte nu poate controla accesul la acesta. Deci, de exemplu, bazarea pe un anumit site web nu va funcționa, deoarece acel site unic controlează accesul și l-ar putea elimina. Acestea fiind spuse, nimeni nu ar trebui să aibă acces timpuriu la el.
Paul Uszak avatar
drapel cn
Ca o loterie publică națională, probabil?
Maarten Bodewes avatar
drapel in
Am eliminat „de ce” aleatorietatea publică, deoarece duce la dezbateri nedorite și neinformative. Vă rugăm să presupuneți că sunt necesare valorile aleatorii publice.
Puncte:4
drapel cn

O posibilitate este să te bazezi pe procese fizice observabile în comun, intemperabile și aparent aleatorii. Există un astfel de fenomen care este foarte frecvent menționat în comunitatea criptografică, deși acesta este mai mult ca un indiciu al fezabilității decât ca o propunere concretă și bine concretă: extragerea aleatoriei comune din petele întunecate ale soarelui. Procedând astfel, are tot felul de proprietăți frumoase, dar cel puțin o problemă (severă): există o mare probabilitate ca aleatoriile comune extrase să nu fie exact aceeași între toți participanții, ci să fie în schimb foarte apropiate. În unele scenarii, acest lucru poate fi dovedit a fi suficient, a se vedea de ex. această hârtie Pe aceasta problema.

Paul Uszak avatar
drapel cn
Atunci nu unul pentru islandezi?
Geoffroy Couteau avatar
drapel cn
Da, sau cel puțin nu prin observație directă de acasă. Dar au deja o țară frumoasă și ocupă foarte bine calitatea vieții: nu pot avea totul!
Puncte:2
drapel cn

Aș sugera să aruncați o privire la Trustamp Observable Entropie proiect. Am creat recent acest lucru pentru a răspunde unei necesități pentru tipul de aleatorie despre care întrebați.

Observable Entropy colectează automat aleatoriu din surse verificabile public la fiecare cinci minute, stochând și hashing conținutul acelei date preluate. Hash-ul fiecărui fișier sursă de date este apoi combinat și analizat determinist, rezultând un hash SHA2-256 semnat final reprezentând totalitatea entropiei colectate ca o nouă valoare publică aleatorie verificabilă.

În prezent, sistemul colectează date din următoarele surse publice la fiecare interval:

  • Bitcoin blockchain cel mai recent antet de bloc
  • Cel mai recent antet de bloc Stellar Blockchain
  • Cel mai recent antet de bloc Ethereum blockchain
  • Drand Random Beacon
  • NIST Randomness Beacon
  • Hacker News, top 10 povești și link-uri de conținut
  • Marca temporală UTC

Fiecare dintre acestea, cu excepția marcajului de timp, care este pentru comoditate, este considerată o sursă puternică de aleatorie. Pentru cei cu adevărat paranoici, puteți oferi propria dvs. entropie pe care să o adăugați la amestec sub formă de șiruri hexadecimale de 32 de octeți reprezentând de ex. un hash sau octeți aleatori. Puteți contribui cu propria dvs. aleatorie dacă nu aveți încredere deplină în niciuna dintre celelalte surse.

Toate datele colectate la fiecare interval, precum și hashurile rezultate, sunt trimise într-un depozit public Github. Dacă clonați repo-ul, sunt furnizate scripturi care vă permit să recreați personal hash-ul entropiei din datele stocate. De asemenea, puteți verifica semnătura cheii publice pe entropie pentru a vă asigura că a fost semnată de Truestamp. De asemenea, sunt furnizate instrucțiuni despre cum să verificați singur fiecare sursă publică de entropie sau semnătura.

Este ușor pentru aproape oricine să își mențină și să sincronizeze propria clonă a acestui repo, asigurându-se că toată lumea are aceleași date sau poate face referire la entropia la un moment dat. De exemplu, tu și un grup de alții puteți conveni să utilizați o valoare aleatorie care este cea mai recentă valoare la un anumit moment în timp în viitor. În acel moment, vă veți uita cu toții la datele stocate în același Git commit, care în mod normal ar trebui să nu aibă mai mult de cinci minute. Stocându-l în Git, obțineți, de asemenea, toate proprietățile de integritate pe care le oferă Git, cum ar fi hash-urile de comitere înlănțuite și spargerea clonelor dacă cineva a împins un set de date complet nou la Github, care ar fi indicatori clari ai unui actor rău.

În plus, valorile istorice și cele mai recente de entropie sunt disponibile printr-un API public (care este pur și simplu un proxy conceput pentru a citi cele mai recente date brute din Github Repo și nu are cache sau depozit de date propriu). Iată o mostră a rezultatului de la https://entropy.truestamp.com/latest.

Cred că aceasta îndeplinește fiecare dintre cerințele dvs. inițiale:

  • nicio parte nu o controlează (sau nu are acces la el)
  • nu poate fi prezis cu încredere
  • trebuie să fie același pentru fiecare persoană care îl accesează

La Trustamp vom folosi această sursă de aleatorie verificabilă pentru a demonstra că datele angajate în sistemul nostru au fost create în mod dovedibil și independent verificabil după un anumit moment în timp.

Ne-ar plăcea să primim feedback-ul dvs., deoarece acesta este un serviciu nou și oarecum experimental, care funcționează în mod fiabil acum de aproximativ două luni.

ACTUALIZAT 25.08.2021 pentru a aborda comentariul lui @fgrieu:

Multumesc pentru comentariu @fgrieu. Voi încerca să vă răspund preocupărilor sau voi cere mai multe clarificări cu privire la problemele potențiale pe care le simțiți că pot fi prezente.

(1) persoanele din interior pot cunoaște rezultatul înaintea altora

În această implementare, nu există „insiders” care să aibă acces la datele finale care sunt hashing pentru a forma entropia finală. Colectarea datelor se face folosind automatizarea oferită de fluxurile de lucru Github Actions. Datele colectate, la fel ca semnalizatorul Drand semnat, nu sunt cunoscute public de nimeni până când nu sunt colectate (toată lumea primește un nou semnal aleator semnat). În acest caz, singurul insider ar fi cineva de la Github care are acces la infrastructura lor și poate extrage conținutul memoriei pentru acest script după momentul în care rulează 500.000 de runde de SHA-256. Chiar și în acest scenariu puțin probabil, ei ar avea acces la o valoare finală a entropiei în câteva milisecunde de când a fost comisă și ar fi pus la dispoziția publicului tuturor în depozitul Github. Acest proiect, care colectează entropia la fiecare cinci minute, probabil că nu este sensibil la acest nivel de granularitate a timpului.Pot exista scenarii în care o previzualizare timpurie (~1s) a valorii finale ar fi suficient de utilă unui atacator pentru a forța compromisul Github. Totuși, nu cred că cazurile de utilizare pentru care este destinat acest proiect sunt afectate de acest lucru.

În practică, nimeni nu are acces la rezultatul final până când toți o fac atunci când se face un commit public. În acest moment, ar fi o cursă pentru cine poate obține primul commit pentru cei care caută acest avantaj. Aș sugera că, dacă nevoile dvs. de entropie sunt sensibile la milisecunde când vine vorba de momentul în care rezultatul este dezvăluit, atunci acesta nu este proiectul pentru dvs.

(2) persoanele din interior pot cunoaște intrările înaintea altora și le pot folosi pentru a trimite o ultimă intrare suplimentară care manipulează rezultatul; de exemplu. Fă de ordin scăzut 16 biți orice valoare dorită.

Am abordat conceptul de âinsidersâ mai sus. Există surse pe care Observable Entropy le colectează și care pot fi cunoscute străinilor care doresc să încerce să manipuleze rezultatul final trimițând propriile lor date de atac, cu toate acestea, acest lucru va eșua, deoarece atacatorul nu poate cunoaște valorile colectate din script pentru semnalizatorul Drand sau marcajul temporal. când rulează scriptul, ambele fiind cunoscute doar de scriptul însuși la momentul execuției.

Nu cunosc niciun atac asupra mai multor runde de SHA2-256 care să permită unui atacator să prezică ce biți din rezultat vor fi modificați pentru a se potrivi cu rezultatul dorit.

Abilitatea de a accepta și de a publica entropia oferită de utilizator, chiar și până în ultimele momente înainte de începerea scriptului de colectare, este un beneficiu. Acest lucru permite oricui să prezinte entropie care va fi inclusă și nu necesită consumatorului să aibă încredere deplină în oricare dintre sursele de entropie care alimentează rezultatul final. Trebuie doar să aibă încredere în propriile lor date. Ei pot verifica dacă datele lor au fost incluse rulând scriptul local pentru a confirma aceeași ieșire de entropie.

Pagina 31 din această prezentare (și cele aferente lucrare academică) oferă mai multe informații despre conceptele și beneficiile includerii unei contribuții publice deschise.

(3) difuzia rezultatului nu este instantanee deci chiar persoanele care nu sunt din interior pot avea un avantaj; iar manipulările de rețea pot crește artificial asta

Dacă înțeleg ceea ce încerci să exprimi, „difuzia rezultatului” este de fapt instantanee. Rezultatul poate fi cunoscut doar de scriptul de generare în momentul în care a colectat toate sursele de date, dintre care unele sunt nepublice, dar verificabile ulterior. Fără totalitatea acestor informații, este imposibil să ajungeți la hashul final de ieșire. Fereastra de oportunitate este între momentul în care de ex. valoarea semnalizatorului Drand este colectată și au început concatenarea hash și rundele finale de hash.

Nevoile posterului original ar putea fi probabil satisfăcute folosind numai Indicator NIST aleatoriu sau Drand Beacon singur. Dar acest lucru necesită acordarea unui anumit grad de încredere în infrastructură și proprietarii acesteia pentru fiecare. Această soluție difuzează această încredere în mai multe surse publice și verificabile (inclusiv dvs.), cu toate sursele verificabile după fapt. Acesta este un factor cheie de diferențiere față de sistemele care, de exemplu, observă fenomene naturale care nu permit altora să verifice după observare.

Aș fi bucuros să aud mai multe feedback cu privire la orice slăbiciune percepută rămasă în argumentele mele sau în sistem și sugestii de îmbunătățire.

fgrieu avatar
drapel ng
Există trei puncte slabe potențiale: (1) persoanele din interior pot cunoaște rezultatul înaintea altora (2) persoanele din interior pot cunoaște intrările înaintea altora și să le folosească pentru a trimite o ultimă intrare suplimentară care manipulează rezultatul; de exemplu. faceți cei 16 biți de ordin scăzut orice valoare dorită. (3) difuzarea rezultatului nu este instantanee, astfel încât chiar și cei care nu sunt din interior pot avea un avantaj; iar manipulările rețelei pot crește artificial acest lucru.
drapel cn
Mulțumesc pentru comentariu @fgrieu, am adăugat un răspuns destul de lung la răspunsul meu inițial.
Paul Uszak avatar
drapel cn
Bine, aceasta este nuanțată și se transformă în lucruri din lumea reală dincolo de scopul acestui forum, mai degrabă decât să te joci cu matematica pentru copii. GitHub este o subsidiară deținută în totalitate de µsoft. µsoft face obiectul Cloud Act și Patriot Act. Și multe alte legislații care să garanteze patriotism. Și sunt mulțumiți de asta având în vedere contractele lor din SUA. Este ca și cum ar fi operat în China. Prin urmare, cade plat. Fără vot negativ, deoarece este foarte interesant din punct de vedere tehnic, dar nu este un starter politic/practic.
drapel cn
aș sublinia: 1) OE nu se bazează pe Github și nu își pune încredere în acesta. Este o navă utilă pentru execuția programată și pentru a face ieșirea disponibilă pe scară largă. Compromisul GH nu poate oferi nimic mai mult decât câteva secunde înainte, nu poate corupa datele care provin din surse externe verificabile. 2) Întreaga logică pentru creare/verificare este integrată într-un singur fișier sursă Deno Typescript`cli.ts`. 3) Puteți să bifurcați și să rulați acea comandă în mediul pe care îl alegeți și să expuneți rezultatul prin orice metodă dorită. Deno este x-platform și Git rulează bine de la egal la egal. Rețea privată Tailscale? Sigur.
Puncte:2
drapel cn

Prețul exact de tranzacționare oficial al unei acțiuni tranzacționate public la un moment dat este foarte costisitor de controlat: aruncarea cu mulți bani în el vă va permite cu siguranță să îl influențați, dar nu să controlați toate cifrele. Aveți o medie pe mai multe acțiuni și obțineți o valoare publică și efectiv imposibil de controlat sau prezis pe deplin. Desigur, există o prejudecată semnificativă în cifre, așa că, la fel ca în orice sursă de aleatorie, introduceți prin hash pentru a obține o distribuție bună.

Valoarea de deschidere a unui indice bursier vă oferă o valoare pseudoaleatoare în fiecare zi lucrătoare. Un exemplu de standard bine definit cu implementări ușor disponibile bazate pe acest principiu este algoritm de geohashing care se bazează pe prețul de deschidere al Indicele Dow Jones, hashed cu MD5. (MD5 este nepotrivit ca hash criptografic, dar aici este folosit ca funcție pseudoaleatoare, ceea ce este în regulă.)

fgrieu avatar
drapel ng
Frumos, dar acest lucru nu va fi disponibil pentru toți exact în același timp. Există chiar și filme/serie despre cunoașterea prețurilor acțiunilor înaintea altora și mult adevăr în spatele realității problemei. Și un hash larg din valoarea unui singur stoc, singura variabilă va fi distinsă de aleatoriu, cu un avantaj mare, cu câteva ore înainte.
Gilles 'SO- stop being evil' avatar
drapel cn
@fgrieu Într-adevăr, depinde de aplicație. Dacă aveți de gând să faceți tranzacții pe termen scurt, câteva milisecunde de latență este o mare problemă. Pentru a pregăti o expediție pe o rază de o sută de kilometri, nu contează să ai câteva secunde în plus de start.
drapel in
M-am gândit și la utilizarea bursei. Dar chestia este: l-ați considera sau accesul la el controlat de câteva (relative) părți? În majoritatea cazurilor, probabil că este în regulă, dar înseamnă că te bazezi pe instituțiile din SUA și Wallstreet pentru acces. Mi-aș dori ceva mai universal, cum ar fi numărul de fulgere emise de un corp ceresc, pe care oricine îl poate accesa individual, fără a se baza pe vreo instituție sau partid.
kodlu avatar
drapel sa
IMHO, trebuie să luați în considerare și sofisticarea tehnologică și echipamentul necesar pentru a accesa „numărul de blițuri emise de un corp ceresc” în mod fiabil și universal.
Gilles 'SO- stop being evil' avatar
drapel cn
@chausies Oricine poate manipula piața de valori prin tranzacționarea acțiunilor. Dar pentru a controla un indice bursier cu suficientă precizie pentru a reduce setul de valori la o selecție mică, ar trebui să-l manipulați _tot_ sau aproape. Pentru ca instituțiile de pe Wall Street să doar DoS, Dow Jones ar afecta grav economia SUA. Pentru ei să controleze Dow Jones ar fi și mai scump. Doar că nu este fezabil. Rețineți că ar trebui să controlați toate prețurile tuturor acțiunilor până la ultima zecimală. Acest lucru este radical diferit de manipularea câtorva acțiuni pentru câștiguri financiare.
drapel in
@Gilles'SO-stopbeingevil' Sunt de acord că controlul pieței de valori cu orice precizie semnificativă este practic imposibil. Principala mea preocupare este că **accesul** la valoarea prețurilor acțiunilor americane este controlat de relativ puține părți, și nu la fel de disponibil ca să spunem observarea corpurilor cerești.
Puncte:1
drapel br

Știu că ai spus că „fără a fi nevoie să se sincronizeze între ei”, dar alți oameni au menționat blockchain-ul, așa că am vrut să menționez un articol misto pe care l-am citit:

https://jbonneau.com/doc/BGB17-IEEESB-proof_of_delay_ethereum.pdf

Această lucrare rezolvă problemele legate de utilizarea hash-urilor de bloc ca aleatoriu. Dacă pur și simplu utilizați hash-ul blocului ca sursă de aleatorie, îi invitați pe mineri să vă afecteze aleatoritatea (într-o loterie, aceștia ar putea simula loteria pentru a verifica dacă au câștigat și a renunța la bloc dacă nu au făcut-o). Folosind VDF-uri (și un alt protocol pentru a asigura o verificare eficientă) vă puteți asigura că niciun miner nu ar putea simula modul în care veți folosi aleatoritatea și, prin urmare, nu poate ști ce blocuri să arunce și nu vă poate afecta aleatorietatea.

Sau cel puțin asta este înțelegerea mea despre asta.

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.