Dovada Muncii

Dovada muncii ( în engleză  proof-of-work, POW, PoW ) este principiul protejării sistemelor de rețea împotriva abuzului de servicii (de exemplu, de atacuri DoS sau organizarea de corespondență spam ), pe baza necesității de a efectua niște lucrări destul de lungi pe partea client (găsirea soluției problemei), rezultatul căruia este ușor și rapid verificat pe partea serverului (vezi funcția unidirecțională ). Caracteristica principală a calculelor utilizate este asimetria costurilor de timp - acestea sunt semnificative pentru găsirea unei soluții și foarte mici pentru verificare [1] . Astfel de scheme sunt cunoscute și sub numele de puzzle client ( funcția de puzzle client ),puzzle de calcul sau funcția de stabilire a prețului procesorului .

Această metodă de protecție nu trebuie confundată cu captchas , care oferă sarcini care sunt ușoare pentru o persoană, dar dificile sau complet de nerezolvat pentru un computer. Dovada muncii se concentrează inițial pe găsirea unei soluții folosind un algoritm cunoscut anterior într-un timp finit, dar este necesar un număr relativ mic de operații pentru a verifica soluția rezultată [1] . Tehnologiile POW au primit cea mai mare distribuție și dezvoltare în sistemele de criptomonede.

Istorie

Cerința pentru dovada muncii a fost prezentată pentru prima dată în articolul „Prețul prin procesare sau combatere a mesajelor nedorite” [1] în 1993. Autorii au propus următoarea idee: pentru a accesa o resursă partajată, utilizatorul trebuie să calculeze o anumită funcție, care este foarte complexă și consumatoare de resurse, dar poate fi rezolvată într-un timp rezonabil. Calcularea unei funcții pe partea client ar trebui să fie mult mai dificilă decât verificarea rezultatului pe partea serverului. Una dintre cerințele obligatorii pentru o funcție este neamortizarea acesteia — dacă se găsesc mai multe soluții, timpul ar fi necesar proporțional cu numărul acestora. Potrivit autorilor, astfel de calcule suplimentare nu creează obstacole pentru trimiterea mai multor scrisori obișnuite de pe computerul unui utilizator obișnuit, dar necesitatea unor calcule constante face ca trimiterea de spam să consume foarte mult resurse. Potrivit estimărilor independente, astfel de sisteme conduc de fapt la o limitare semnificativă a numărului de scrisori care pot fi trimise pe zi de la un computer [2] .

În 1997, Adam Back a lansat proiectul Hashcash , dedicat protecției împotriva spamului. Sarcina a fost formulată după cum urmează: „Găsiți o valoare x astfel încât hash-ul SHA(x) să conțină N biți zero înainte.”

În 1999, apare termenul de dovadă a muncii  – a fost folosit în articolul „Proofs of Work and Bread Pudding Protocols” (autori – Markus Jacobsson și Ari Jewels) din revista Communications and Multimedia Security [3] .

Pe 16 august 2004, Hal Finney , în scrisoarea sa către forumul cypherpunk , a propus folosirea dovezilor de lucru reutilizabile ( RPOW  , RPoW ) pentru a organiza moneda electronică [4] .

Satoshi Nakamoto a propus în curând criptomoneda bitcoin , în care dovada de lucru este folosită pentru a complica foarte mult cheltuielile duble . S-a propus găsirea hash-ului unui bloc de informații folosind funcția SHA-256 cu selecția parametrilor, astfel încât rezultatul să aibă un număr dat de biți mari de zero. Ulterior, în alte criptomonede (de exemplu , Litecoin ), în loc de SHA-256, a început să fie folosit KDF , precum scrypt , bcrypt , PBKDF2 și altele [5] .

Exemple de funcții aplicabile

Lista celor mai frecvente funcții utilizate în sistemele de verificare a lucrului:

Potențiale vulnerabilități și atacuri asupra sistemelor informaționale bazate pe POW

Experții continuă să dezbată dacă protecția POW este suficient de eficientă împotriva atacurilor DoS și a spam-ului [16] [17] .

Atacul 51%

Bitcoin , la fel ca multe alte criptomonede, poate fi supus unui „atac de 51%”: dacă un atacator controlează mai mult de jumătate din toată puterea de calcul a rețelei, atunci el are posibilitatea de a-și confirma doar propriile blocuri, ignorând în același timp altele. . Acest lucru nu numai că îi permite să primească toată criptomoneda emisă în același timp, dar și să blocheze toate tranzacțiile sau selectate, ceea ce poate duce la „dispariția” din conturile criptomonedei primite din acele tranzacții care nu vor fi incluse în noua versiune a blockchain-ului [11] .

Cheltuieli duble

Cheltuirea dublă (cheltuirea dublă) este transferul repetat al acelorași active. Acest atac este împărțit în mai multe subtipuri.

Mineritul egoist

În minerit egoist, scopul atacatorului  este să controleze rețeaua, în ciuda faptului că are resurse de calcul cu o capacitate totală mai mică de 50%. Acest lucru se realizează prin faptul că atacatorul susține că pool-ul său este mai profitabil pentru minerit decât alte pool-uri, ceea ce atrage mineri terți. Atacatorul publică blocuri în așa fel încât resursele de calcul ale altor mineri și pool-uri să fie irosite. Cursul aproximativ al algoritmului este următorul:

  1. Bazinul își extrage în secret lanțul privat de la toată lumea.
  2. Dacă piscina găsește un bloc nou pentru lanțul său privat, atunci:
    1. Dacă lanțul original este bifurcat, atunci atacatorul își publică blocul, astfel lanțul său devine mai lung și devine adevărat, iar lanțul de mineri cinstiți este aruncat.
    2. Dacă nu există încă nicio furcă, atunci bazinul continuă să-și mine în secret lanțul privat, crescându-și avansul.
  3. Dacă lanțul public găsește un bloc pentru lanțul public, atunci:
    1. Dacă lanțul public este înaintea celui secret, atunci grupul atacatorului își renunță blocurile nepublicate și începe să exploateze din noul bloc public.
    2. Dacă lanțurile sunt egale, atunci grupul atacatorului își publică toate blocurile, intrând astfel în golul din lanțul său.
    3. Dacă lanțul public se află la câteva (N) blocuri în spatele lanțului privat, atunci grupul publică încă un bloc (N+1), care izolează un nou bloc cinstit.

În aproape orice rezultat, minerii cinstiți sunt perdanți, forțându-i să se alăture grupului criminal [20] .

Critica sistemelor informatice bazate pe POW

Oponenții abordării POW, pe lângă o serie de potențiale probleme de securitate , evidențiază următoarele dezavantaje:

Încercările de a scăpa de neajunsurile POW au dus la apariția POS ( în engleză  proof-of-stake , proof of stake) și a numeroase opțiuni hibride.

Exemple de tehnologii hibride

Exemple de scheme hibride care combină ideile de POS și POW pot fi găsite în multe criptomonede. În ele, blockchain-ul constă din blocuri de ambele tipuri, ceea ce face ca rescrierea istoriei tranzacțiilor să fie o sarcină dificilă, deoarece blocurile POW servesc drept puncte de control, având în vedere complexitatea totală a muncii din întregul lanț. De obicei, în astfel de algoritmi, blocurile POW servesc ca indicatori ai muncii reale, ceea ce oferă o garanție suplimentară de fiabilitate pentru comercianți atunci când lucrează cu tranzacții. Blocurile POW pot fi folosite pentru a emite valută, iar blocurile POS pot fi considerate ca venituri potențiale din depozit [24] .

Dovada activității

Un prototip de algoritm care nu a fost încă implementat, care constă în faptul că deținătorii intră în procesul general numai după ce au fost efectuate unele lucrări de către participanții la POW, ceea ce reduce șansele unui atac cu 51%, deoarece proprietarul majoritar nu va putea pentru a controla exclusiv crearea de noi blocuri [25] .

Cum funcționează algoritmul:

  1. Minerul POW caută un hash de dificultatea corespunzătoare.
  2. Hash-ul găsit este trimis în rețea, în timp ce nu este un bloc, ci doar primul pas, un fel de șablon necesar pentru crearea lui.
  3. Un hash format din 256 de biți pseudo-aleatorii este interpretat ca N numere, fiecăruia fiind atribuit câte un satoshi.
  4. Se stabilește o relație unu-la-unu între fiecare satoshi și cheia publică a proprietarului său actual.
  5. De îndată ce toți N proprietari își pun semnătura pe acest bloc, rezultatul este un bloc cu drepturi depline.
  6. Dacă unul dintre deținători nu este disponibil sau nu participă la minerit, atunci restul minerilor continuă să genereze șabloane cu diferite combinații de deținători candidați.
  7. La un moment dat, blocul necesar va fi semnat de numărul necesar de ori. Recompensa de bloc este distribuită între minerul POW și toți deținătorii N.

Dovada arsurii

Banii sunt trimiși la o adresă care este un hash al unui număr aleatoriu; este garantat că nu pot fi cheltuiți de la această adresă, deoarece probabilitatea de a ridica cheile de la acesta tinde spre zero. În schimb, minerul are o șansă permanentă de a găsi un bloc PoB și de a primi o recompensă pentru el. Mineritul în acest caz este aranjat în așa fel încât șansele de reușită să depindă de numărul de monede arse. Prin analogie, arderea este ca un depozit POS nerambursabil sau o investiție în hardware virtual pentru minerit POW. Din punct de vedere economic, acest algoritm este mai potrivit pentru etapele ulterioare ale dezvoltării criptomonedei, când cea mai mare parte a masei monetare a fost deja generată [26] .

Dovada capacității

Algoritmul de dovadă a capacității (sau dovada spațiului ) este următorul: pentru minerit, este necesar să se aloce o cantitate semnificativă de memorie pe computer, după care se creează un număr mare de blocuri mari de date din cheia publică și numere aleatorii prin hashing repetat . În fiecare bloc de date, obținem un index din ultimul antet, după care selectăm o mică bucată din bloc cu acest index, o bucată .  Cu cât este alocată mai multă memorie, cu atât primim mai multe bucăți. Trebuie îndeplinită condiția ca hash-ul fragmentului și ultimul antet să fie mai mici decât ținta. Astfel, fiecare megaoctet de memorie este folosit ca un analog al unui bilet de loterie și crește șansa de succes în minerit [27] .

Dovada cercetării

Algoritmul proof of research a fost dezvoltat de proiectul GridCoin cu scopul de a direcționa puterea de calcul a rețelelor PoW pentru a rezolva probleme științifice pe platforma BOINC . Proof of research folosește simultan dovada muncii pentru a recompensa participanții pentru calculele finalizate și dovada mizei pentru a încuraja participarea pe termen lung la proiect [28] .

Ineficiență energetică

Sistemele bazate pe POW sunt extrem de intensive în resurse.

Vezi și

Note

  1. 1 2 3 Prețuri prin procesarea sau combaterea corespondenței nedorite Arhivat 12 decembrie 2017 la Wayback Machine (1993  )
  2. „Proof-of-Work” Proves Not to Work Arhivat 20 ianuarie 2017 la Wayback Machine , 2004 „Dacă încercăm să facem neeconomic să trimitem spam, atunci trebuie să limităm expeditorii la 1.750 de mesaje pe zi”
  3. Proofs of Work și Bread Pudding Protocols Arhivat 26 iulie 2017 la Wayback Machine (1999  )
  4. RPOW - Dovezi de lucru reutilizabile Arhivat 5 octombrie 2017 la Wayback Machine (2004  )
  5. Dovada de funcționare în criptomonede: scurtă istorie. Partea 1 Arhivat pe 5 septembrie 2017 la Wayback Machine (2015  )
  6. Hashcash - A Denial of Service Counter-Measure (2002  )
  7. Înapoi, Adam HashCash . Preluat la 25 iunie 2022. Arhivat din original la 29 septembrie 2017. Sistem popular de dovadă a muncii. Prima anunț a fost în martie 1997.
  8. Gabber, Eran; Jakobsson, Markus; Matias, Yossi; Mayer, Alain J. Curbing junk e-mail prin clasificare securizată  (neopr.)  // Financial Cryptography. - 1998. - S. 198-213 .
  9. Wang, Xiao-Feng; Reiter, Michael. Apărarea împotriva atacurilor de denial-of-service cu licitații puzzle  //  Simpozionul IEEE privind securitatea și confidențialitatea '03 : jurnal. - 2003. - Mai.
  10. Coelho, Fabien Un (aproape) efort constant de verificare a unui protocol de dovezi de lucru bazat pe arbori Merkle . Arhiva Criptologie ePrint, Raport . Preluat la 29 octombrie 2017. Arhivat din original la 26 august 2016.
  11. 1 2 Bitcoin: A Peer-to-Peer Electronic Cash System Arhivat 20 martie 2014 la Wayback Machine 
  12. 1 2 Dwork, Cynthia; Naor, Moni Prețuri prin procesare, sau, combaterea mesajelor nedorite, progrese în criptologie  //  CRYPTO'92: Note de curs în informatică nr. 740: jurnal. - Springer, 1993. - P. 139-147 .
  13. Waters, Brent; Juels, Ari; Halderman, John A.; Felten, Edward W.Noi tehnici de externalizare a puzzle-ului clientului pentru rezistența la DoS  (neopr.)  // A 11-a Conferință ACM privind securitatea computerelor și comunicațiilor. — 2004.
  14. Dwork, Cynthia; Goldberg, Andrew; Naor, MoniDespre funcțiile legate de memorie pentru combaterea spamului  (neopr.)  // Advances in Cryptology: CRYPTO 2003. - Springer, 2003. - Vol. 2729 . - S. 426-444 .
  15. Tromp, John. Ciclul Cucului; o dovadă de lucru teoretică cu grafice legate de memorie  //  Criptografie financiară și securitate a datelor: BITCOIN 2015 : jurnal. - Springer, 2015. - P. 49-62 .
  16. Laurie, Ben; Clayton, Richard. Dovada muncii dovedește că nu funcționează  (neopr.)  // WEIS 04. - 2004. - mai.
  17. Liu, Debin; Camp, L. Jean. Dovada muncii poate funcționa  (neopr.)  // Al cincilea atelier privind economia securității informațiilor. - 2006. - Iunie.
  18. Attacks in the World of Cryptocurrencies Arhivat 19 septembrie 2016 la Wayback Machine 
  19. Analiza dublei cheltuieli bazate pe hashrate Arhivat 4 septembrie 2017 la Wayback Machine (2012  )
  20. Attacks in the World of Cryptocurrencies Arhivat 19 septembrie 2016 la Wayback Machine (2015  )
  21. 1 2 Bitcoin Energy Consumption Index Arhivat 25 ianuarie 2022 la Wayback Machine 
  22. 1 2 Ethereum Energy Consumption Index (beta) Arhivat 11 octombrie 2017 la Wayback Machine 
  23. Dovada de funcționare în criptomonede: scurtă istorie. Partea 2 Arhivat pe 14 martie 2016 la Wayback Machine 
  24. Alternative for Proof of Work, Partea 2 Arhivat 4 martie 2016 la Wayback Machine (2015  )
  25. Dovada activității: Extinderea dovezii de lucru a Bitcoin prin Proof of Stake Arhivată 17 octombrie 2017 la Wayback Machine 
  26. A Peer-to-Peer Crypto-Currency with Proof-of-Burn „Mining without Powerful Hardware” Arhivat 10 octombrie 2017 la Wayback Machine (2014  )
  27. Proofs of Space: When Space is of the Essence Arhivat 5 noiembrie 2017 la Wayback Machine 
  28. ↑ Dovada de cercetare - Gridcoin  . wiki.gridcoin.us. Preluat la 4 septembrie 2018. Arhivat din original la 4 septembrie 2018.
  29. Puterea globală de calcul Bitcoin acum de 256 de ori mai rapidă decât primele 500 de supercomputere, combinate! Arhivat 8 iunie 2017 la Wayback Machine (2013  )