Cuprins:

Cum funcționează de fapt blockchain-ul
Cum funcționează de fapt blockchain-ul

Video: Cum funcționează de fapt blockchain-ul

Video: Cum funcționează de fapt blockchain-ul
Video: Bonus Army: US military attacks demonstrating American War Veterans 2024, Aprilie
Anonim

Această postare are scopul de a spune tuturor de ce a fost inventat blockchain-ul, cum funcționează criptomonedele și de ce este cel mai frumos sistem din ultimii ani din punct de vedere al logicii.

Vă voi avertiza imediat că sub tăietură există o foaie URIAȘĂ de text și dacă nu sunteți pregătit să „închideți” întrebarea pe tema criptomonedelor odată pentru totdeauna, adăugați o intrare la favorite chiar acum și rezervați timp)

Blockchain este o tehnologie, nouă, ciudată, de neînțeles, dar pare să schimbe lumea, în contrast cu aceste povești ale tale. Se pare că ea este cu noi de multă vreme.

Această postare este scrisă de parcă le-ar fi spus unor oameni care sunt foarte departe de computere și le cunosc doar superficial, de exemplu, imaginează-ți că se pregătea pentru părinții tăi. Pot chiar să-l arunc și colegilor mei umaniști și să fiu sigur că vor înțelege.

Și Oleg ne va ajuta pe toți în această problemă dificilă. Întâlni!

Dacă nu-ți place Oleg, îl voi da afară.

Elementele de bază: de ce avem nevoie de blockchain?

Blockchain-ul a fost descris în articolul lui Satoshi Nakamoto „Bitcoin: A Peer-to-Peer Electronic Cash System”. Acolo, în doar opt pagini, autorul a descris elementele de bază ale criptomonedei Bitcoin, care se baza pe algoritmul Blockchain.

Lista care nu poate fi modificată

Blockchain - un lanț de blocuri sau cu alte cuvinte o listă legată. Într-o astfel de listă, fiecare înregistrare următoare se referă la una anterioară și așa mai departe până la prima. Ca vagoanele unui tren, fiecare îl târă pe următorul. În ceea ce privește listele, există un articol bun al lui Nikita Likhachev pe TJ, unde același lucru este explicat pentru începători complet. Analogiile sunt luate parțial de acolo.

Să luăm un exemplu

Prietenii lui Oleg împrumută în mod constant bani de la el. Oleg este amabil, dar extrem de uituc. O săptămână mai târziu, nu-și mai aduce aminte cine nu i-a returnat datoria, dar îi este jenă să întrebe pe toată lumea despre asta. Prin urmare, într-o zi a decis să pună capăt acestui lucru prin crearea unei liste de prieteni pe tabla de acasă la care a împrumutat bani.

Acum Oleg poate merge întotdeauna la bord și să se asigure că Max a returnat totul, dar Vanya nu dă deja 700 de ruble. Într-o zi, Oleg o invită pe Vanya să bea ceva la el acasă. În timp ce Oleg merge la toaletă, Vanya șterge intrarea „Am împrumutat 200 de ruble pentru Vanya” și scrie în locul ei „Vanya a dat 500 de ruble”.

Oleg, care a avut încredere în lista sa, uită de datorie și pierde 700 de ruble. El decide să lupte cumva. Anul trecut, Oleg a urmat un curs de programare, unde i s-a spus despre hashing. Își amintește că orice șir poate fi transformat într-un set neambiguu de caractere - un hash, iar schimbarea oricărui caracter din șir îl va schimba complet.

Adăugarea unui punct la sfârșit a schimbat hash-ul final dincolo de recunoaștere - îl puteți folosi.

Oleg ia binecunoscutul hash SHA-256 și hashează fiecare înregistrare cu acesta, adăugând rezultatul la sfârșit. Acum Oleg se poate asigura că nimeni nu și-a schimbat înregistrările prin hashing-ul din nou și comparându-le cu cea verde.

Dar EVIL IVAN știe și cum să folosească SHA-256 și poate schimba cu ușurință intrarea împreună cu hash-ul său. Mai ales dacă hash-ul este scris chiar lângă el pe tablă.

Prin urmare, pentru o mai mare securitate, Oleg decide să facă hash nu numai înregistrarea în sine, ci și să o adauge împreună cu hash-ul din înregistrarea anterioară. Acum toate intrările următoare depind de cele anterioare. Dacă modificați cel puțin o linie, va trebui să recalculați hash-urile tuturor celorlalte de mai jos din listă.

Dar într-o zi Ivan se furișează noaptea, schimbă intrarea de care are nevoie și actualizează hashe-urile pentru întreaga listă până la sfârșit. Îi ia câteva ore, dar Oleg încă doarme adânc și nu aude. Dimineața, Oleg descoperă o listă absolut corectă - toate hashe-urile se potrivesc. Dar Ivan l-a înșelat oricum, deși a petrecut o noapte nedorită cu asta. Cum altfel te poți proteja de Night Ivan?

Oleg decide să-și complice cumva viața. Acum, pentru a adăuga o nouă intrare pe listă, Oleg va rezolva o problemă complexă asociată cu aceasta, de exemplu, o ecuație matematică. El va adăuga răspunsul la hash final.

Oleg se pricepe la matematică, dar chiar și durează zece minute pentru a adăuga o intrare. În ciuda acestui fapt, timpul petrecut merită, pentru că dacă Ivan vrea să schimbe ceva din nou, va trebui să rezolve ecuațiile pentru fiecare rând și pot fi zeci de ele. Va dura mult timp, deoarece ecuațiile sunt unice de fiecare dată și asociate cu o anumită înregistrare.

Dar verificarea listei este la fel de simplă: mai întâi trebuie să comparați hashurile ca înainte și apoi să verificați soluțiile ecuațiilor prin substituție simplă. Dacă totul converge, lista nu se modifică.

În realitate, lucrurile nu stau atât de bine cu ecuațiile: computerele le rezolvă prea bine și unde să stocheze atât de multe ecuații unice. Prin urmare, autorii blockchain-ului au venit cu o problemă mai frumoasă: trebuie să găsiți un astfel de număr (nonce), astfel încât hashul final al întregii înregistrări să înceapă cu 10 zerouri. Un astfel de nonce este greu de găsit, dar rezultatul poate fi verificat întotdeauna cu doar ochi.

Acum Oleg verifică toate hashe-urile și, în plus, se asigură că fiecare începe cu numărul specificat de zerouri. Sly Ivan, chiar și înarmat cu un laptop puternic, nu va avea timp să recalculeze toate hashe-urile într-o noapte, astfel încât să satisfacă condiția - nu va fi suficient timp.

O astfel de listă, de fapt, este blockchain-ul de acasă pe genunchi. Siguranța acestuia este garantată de matematicieni, care au demonstrat că aceste hashes nu pot fi calculate cumva mai repede decât prin forța brută. O astfel de enumerare a hashurilor pentru fiecare înregistrare este minerit, despre care astăzi vor fi multe și în detaliu.

Centralizarea încrederii

Prietenilor noștri le-a plăcut ideea de a păstra o listă falsă cu „cine a împrumutat pe cine”. De asemenea, nu vor să-și amintească cine a plătit pentru cine în bar și cât mai datorează - totul este scris pe perete. Ai discutat ideea și ai decis că acum ai nevoie de o singură listă pentru toți.

Dar cui ar trebui să i se încredințeze o contabilitate atât de importantă? La urma urmei, când vine vorba de bani, încrederea iese în prim plan. Nu vom avea încredere în necunoscut pentru a ne păstra banii. Pentru aceasta, strămoșii noștri au inventat băncile, care de-a lungul timpului au început să aibă încredere, deoarece sunt susținute de licență, legi și asigurări de la Banca Centrală.

În cercul de prieteni, toată lumea are încredere unii în alții și pur și simplu îl poți alege pe cel mai responsabil pentru acest rol. Dar dacă întrebarea este despre străini? Un întreg oraș, țară sau întreaga lume, așa cum este cazul Bitcoin? În general, nimeni nu poate avea încredere în nimeni acolo.

Descentralizare: nimeni nu are încredere în nimeni

Așa că au venit cu o abordare alternativă: păstrați o copie a listei pentru toată lumea. Astfel, un atacator nu ar trebui doar să rescrie o listă, ci și să se strecoare în fiecare casă și să rescrie listele de acolo. Și apoi se dovedește că cineva a ținut mai multe liste acasă, despre care nimeni nu știa. Aceasta este descentralizare.

Dezavantajul acestei abordări este că, pentru a face noi intrări, va trebui să sunați pe toți ceilalți participanți și să îi informați pe fiecare dintre aceștia cu privire la ultimele modificări. Dar dacă acești participanți sunt mașini fără suflet, nu mai există nicio problemă.

Într-un astfel de sistem, nu există un singur punct de încredere și, prin urmare, posibilitatea de a da mită și a înșela. Toți participanții la sistem acționează după o singură regulă: nimeni nu are încredere în nimeni. Fiecare crede doar în informațiile pe care le are la dispoziție. Aceasta este legea principală a oricărei rețele descentralizate.

Tranzacții

Când cumpărați o oală într-un magazin, introduceți codul PIN de pe cardul dvs., permițând magazinului să întrebe banca dacă aveți 35 de ruble în cont. Cu alte cuvinte, semnați o tranzacție de 35 de ruble cu codul PIN, pe care banca îl confirmă sau îl respinge.

Înregistrările noastre de tipul „Am împrumutat Vanya 500 de ruble” sunt, de asemenea, tranzacții. Dar nu avem o bancă care să autorizeze autorul tranzacțiilor. Cum putem verifica că Ivan nu a adăugat în liniște intrarea „Max îi datorează lui Oleg 100.500 de ruble”?

Blockchain-ul folosește mecanismul cheilor publice și private pentru aceasta; specialiștii IT le folosesc de multă vreme pentru autorizare în același SSH. Am explicat-o pe degete în postarea „Securitate, criptare, cyberpunk” din secțiunea „Introducere în criptare”.

Pe scurt despre modul în care funcționează această matematică complexă, dar frumoasă: generați o pereche de numere prime lungi pe computer - o cheie publică și una privată. Cheia privată este considerată super secretă deoarece poate decripta ceea ce este criptat în public.

Dar funcționează și opusul. Dacă partajați cheia publică cu toți prietenii dvs., aceștia vor putea cripta orice mesaj pentru ei, astfel încât numai dvs. să îl puteți citi, deoarece dețineți pe cel privat.

Dar, pe lângă aceasta, cheia publică are un efect util - cu ea poți verifica dacă datele au fost criptate cu cheia ta privată, fără a decripta datele în sine. Toate aceste proprietăți sunt bine descrise în „Cartea Cifrurilor”.

Suntem pe un internet descentralizat în care nu se poate avea încredere în nimeni. Tranzacția este semnată cu o cheie privată și, împreună cu cheia publică, este trimisă într-un depozit special - un grup de tranzacții neconfirmate. Deci orice membru al rețelei poate verifica că tu ai fost cel care a inițiat-o și nu altcineva vrea să plătească cu banii tăi.

Acest lucru asigură deschiderea și securitatea rețelei. Dacă băncile anterioare au fost responsabile pentru acest lucru, atunci în blockchain, matematicienii sunt responsabili pentru acest lucru.

Pentru utilizatorii obișnuiți care nu doresc să-și dea seama cum să emită și să stocheze cheile private, serviciile de portofel online vă vor ajuta. Pentru a copia chei publice lungi, acolo sunt create coduri QR convenabile. De exemplu Blockchain Wallet, deoarece are o aplicație mobilă convenabilă și acceptă cele două criptomonede principale - BTC și ETH.

Lipsa conceptului de „echilibru”

La fel ca forumul nostru, blockchain-ul constă în esență doar din istoricul tranzacțiilor. Nu stochează soldul fiecărui portofel, altfel ar trebui să inventăm metode suplimentare de protecție.

Doar cheia privată confirmă dreptul de proprietate asupra portofelului. Dar cum pot alți membri ai rețelei să se asigure că am destui bani pentru a cumpăra?

Din moment ce nu avem echilibru, trebuie să dovediți acest lucru. Prin urmare, o tranzacție blockchain include nu numai semnătura dvs. și cât doriți să cheltuiți, ci și linkuri către tranzacții anterioare în care ați primit suma necesară.

Adică, dacă doriți să cheltuiți 400 de ruble, parcurgeți întregul istoric al veniturilor și cheltuielilor și atașați la tranzacție acele venituri pentru care vi s-au dat 100 + 250 + 50 de ruble, demonstrând astfel că aveți aceste 400 de ruble.

Fiecare membru al rețelei va asigura din nou să verifice dacă nu ați atașat venituri de două ori. Că acele 300 de ruble pe care le-a dat Max săptămâna trecută, chiar nu le-ai cheltuit încă.

Astfel de venituri atașate unei tranzacții sunt numite intrări în blockchain, iar toți destinatarii de bani sunt numiți ieșiri. Suma tuturor intrărilor este rareori exact aceeași pe care doriți să o transferați la un moment dat - prin urmare, una dintre ieșiri va fi cel mai adesea dvs. Cu alte cuvinte, tranzacția pe blockchain arată ca „Mi s-au dat 3 și 2 BTC, vreau să transfer 4 BTC de la ei și să returnez 1 BTC rămas înapoi”.

Frumusețea blockchain-ului este că intrările nu trebuie să provină dintr-un singur portofel. La urma urmei, doar cheia este verificată. Dacă cunoașteți cheia privată a tuturor intrărilor, atunci le puteți atașa cu ușurință la tranzacția dvs. și puteți plăti cu acești bani. De parcă ai plăti într-un supermarket cu mai multe carduri de la care știi codul pin.

Cu toate acestea, dacă îți pierzi cheia privată, discul moare sau laptopul tău este furat, bitcoinii tăi vor fi pierduti pentru totdeauna. Nimeni nu le poate folosi ca intrări pentru tranzacții noi.

Această sumă va fi inaccesibilă lumii întregi pentru totdeauna - ca și cum ai arde un mănunchi de bancnote. Nu există o singură bancă la care să poți scrie o cerere cu o copie a pașaportului, iar el o va imprima. Acest lucru necesită o lansare suplimentară de noi bitcoini „din aer”.

Problema cheltuielilor duble

Mai sus am spus că tranzacțiile sunt adăugate unui „pool de tranzacții neconfirmate” special. De ce avem nevoie de un fel de entitate intermediară, dacă avem deja, de fapt, tranzacții gata semnate? De ce să nu le scrieți direct în blockchain?

Pentru că semnalele de la punctul A la punctul B merg întotdeauna cu întârziere. Două tranzacții pot merge în moduri complet diferite. Iar tranzacția care a fost inițiată prima poate ajunge mai târziu la destinatar, pentru că a luat o cale mai lungă.

Acest lucru are ca rezultat cheltuieli duble, atunci când aceiași bani au fost trimiși la doi destinatari deodată, despre care nici măcar nu ar ghici. Acest lucru nu este să predea facturile din mână în mână.

Pentru o rețea descentralizată în care nu se poate avea încredere în nimeni, această problemă este deosebit de acută. Iată cum vă asigurați că o tranzacție a fost cu siguranță înaintea alteia? Cereți expeditorului să coasă în el timpul de expediere, nu? Dar amintiți-vă - nu puteți avea încredere în nimeni, nici măcar în expeditor.

Ora de pe toate computerele va diferi în mod necesar și nu există o modalitate garantată de sincronizare. O copie a blockchain-ului este stocată pe fiecare computer din rețea și fiecare participant are încredere numai în el.

Cum vă puteți asigura că o tranzacție a fost mai devreme decât alta?

Răspunsul este simplu: este imposibil. Nu există nicio modalitate de a confirma ora unei tranzacții pe o rețea descentralizată. Iar soluția la această problemă este a treia idee importantă de blockchain pe care Satoshi a inventat-o și care, în mod ciudat, este scrisă chiar în numele său - blocuri.

Blocurile sunt coloana vertebrală a blockchain-ului

Fiecare computer care funcționează din rețea selectează toate tranzacțiile care îi plac din grupul general. De obicei, doar pentru cel mai mare comision pe care îl poate câștiga pe el. Așa că colectează tranzacții pentru el însuși până când dimensiunea lor totală atinge limita negociată. În Bitcoin, această limită de dimensiune a blocului este de 1 MB (după SegWit2x va fi de 2 MB), iar în Bitcoin Cash - 8 MB.

Întregul blockchain este în esență o listă de astfel de blocuri, în care fiecare se referă la cel precedent. Poate fi folosit pentru a urmări orice tranzacție din întreaga istorie, derulând blockchain-ul chiar și până la prima înregistrare.

Această listă cântărește acum sute de gigaocteți și trebuie descărcată complet pe toate computerele care doresc să ia parte în rețea (dar acest lucru nu este necesar pentru a crea pur și simplu tranzacții și a transfera bani). Se descarcă la fel de pe toate computerele cele mai apropiate din rețea, ca și cum ai descărca o serie de pe torrente, doar noi episoade noi sunt lansate în ea la fiecare 10 minute.

După ce a tastat tranzacțiile din pool pentru el însuși, computerul începe să compună din ele aceeași listă de nefalsificat ca și noi la începutul postării de pe forum de acasă.

Numai el o face sub forma unui arbore - hashează înregistrările în perechi, apoi rezultatul este din nou în perechi și așa mai departe până când rămâne un singur hash - rădăcina arborelui, care este adăugată blocului. De ce exact cu un copac - nu am găsit răspunsul, dar presupun că pur și simplu este mai rapid așa. Citiți mai multe pe wiki: Merkle tree.

Deoarece blockchain-ul actual a fost deja descărcat, computerul nostru știe exact care este ultimul bloc în el. Trebuie doar să adauge un link către el în antetul blocului, să trimită totul și să spună tuturor celorlalte computere din rețea „uite, am făcut un bloc nou, să-l adăugăm la blockchain-ul nostru”.

Restul ar trebui să verifice dacă blocul este construit conform tuturor regulilor și că nu am adăugat acolo tranzacții inutile, apoi să le adăugăm în lanțurile noastre. Acum toate tranzacțiile din el sunt confirmate, blockchain-ul este mărit cu un bloc și totul merge bine, nu-i așa?

Dar nu. Mii de computere lucrează simultan în rețea și, de îndată ce asamblează un nou bloc, se grăbesc aproape simultan să informeze pe toată lumea că blocul lor a fost creat primul. Și din secțiunea anterioară, știm deja că într-o rețea descentralizată este imposibil să demonstrăm cine a fost cu adevărat primul.

Ca și în școală, când toată lumea rezolva un test dificil, rar se întâmpla ca până și elevii excelenți să ia răspunsurile în același timp.

Dar dacă pentru o persoană este o sarcină dificilă să planifice o vacanță, astfel încât să ajungă în sărbătorile din mai, iar biletele la mare sunt ieftine, atunci pentru un computer este să adăugați un astfel de număr (nu o dată) la sfârșitul bloc, astfel încât, ca rezultat, hash-ul SHA-256 pentru întregul bloc începe să spunem 10 zerouri. Aceasta este problema care trebuie rezolvată pentru a adăuga un bloc în rețeaua Bitcoin. Pentru alte rețele, sarcinile pot diferi.

Așa că ajungem la conceptul de minerit, de care toată lumea a fost atât de obsedată în ultimii ani.

Minerit

Miningul Bitcoin nu este un fel de sacrament sacru. Mineritul nu înseamnă găsirea de noi bitcoini undeva în adâncurile internetului. Mineritul este atunci când mii de computere din întreaga lume bâzâie în subsoluri, trecând prin milioane de numere pe secundă, încercând să găsească un hash care să înceapă cu 10 zerouri. Nici măcar nu trebuie să fie online pentru a face asta.

Plăcile video cu sute de nuclee paralele rezolvă această problemă mai repede decât orice procesor.

De ce exact 10 zerouri? Și chiar așa, nu are sens. Deci Satoshi a venit cu. Pentru că aceasta este una dintre acele probleme pentru care există întotdeauna o soluție, dar cu siguranță nu poate fi găsită mai repede decât o lungă enumerare monotonă de opțiuni.

Complexitatea mineritului depinde direct de dimensiunea rețelei, adică de puterea sa totală. Dacă vă creați propriul blockchain și îl rulați singur acasă pe două laptopuri, atunci sarcina ar trebui să fie mai simplă. De exemplu, astfel încât hashul să înceapă cu un singur zero, sau astfel încât suma cifrelor pare să fie egală cu suma celor impare.

Va dura câteva decenii pentru ca un computer să găsească un hash care începe cu 10 zerouri. Dar dacă combinați mii de computere într-o singură rețea și căutați în paralel, atunci, conform teoriei probabilității, această problemă se rezolvă în medie în 10 minute. Acesta este momentul în care apare un nou bloc în blockchain-ul bitcoin.

La fiecare 8-12 minute, cineva de pe pământ găsește un astfel de hash și are privilegiul de a-și anunța descoperirea tuturor, evitând astfel problema cine a fost primul.

Pentru a găsi un răspuns, computerul (din 2017) primește 12,5 BTC - aceasta este suma de recompensă care este generată de sistemul bitcoin „din aer” și scade la fiecare patru ani.

Din punct de vedere tehnic, asta înseamnă că fiecare miner adaugă întotdeauna o altă tranzacție la blocul său - „creează 12,5 BTC și trimite-le în portofelul meu”. Când auzi „numărul de bitcoini din lume este limitat la 21 de milioane, acum au angajat deja 16 milioane” – acestea sunt recompensele generate de rețea.

Mergeți să vedeți un bloc Bitcoin real pe unul dintre site-urile dedicate. Există, de asemenea, tranzacții cu intrări și ieșiri și până la 18 zerouri la început și toate hashurile descrise mai sus.

Minerii sunt cei care adaugă tranzacțiile emergente în blockchain. Așadar, dacă cineva vă spune că va „face un blockchain pentru ***”, prima întrebare la care trebuie să răspundă este cine va mine pe el și de ce. Cel mai adesea, răspunsul corect este „toată lumea va, pentru că pentru minerit ne dăm monedele, care vor crește și este profitabil pentru mineri”. Dar acest lucru nu se aplică tuturor proiectelor.

De exemplu, un minister al Sănătății își creează mâine propriul blockchain închis pentru medici (și ei îl doresc), cine îl va mine? Terapeuți de weekend?

Dar care va fi beneficiul minerilor mai târziu, când recompensele vor dispărea sau vor deveni limitate?

Conform ideii Creatorului, până atunci oamenii vor trebui să creadă în realitatea bitcoin, iar mineritul va începe să plătească prin suma taxelor incluse în fiecare tranzacție. Aici merge totul: în 2012, toate comisioanele erau zero, minerii minați doar pentru recompense din blocuri. Astăzi, o tranzacție cu comision zero poate sta în piscină câteva ore, pentru că există concurență și oamenii sunt dispuși să plătească pentru viteză.

Adică, esența mineritului constă în rezolvarea problemelor fără sens. Toată această putere nu ar putea fi folosită pentru ceva mai util - căutarea unui leac pentru cancer, de exemplu?

Esența mineritului este de a rezolva orice problemă de calcul. Această sarcină ar trebui să fie suficient de simplă pentru ca participanții la rețea să aibă o probabilitate stabilă de a găsi un răspuns - în caz contrar, tranzacțiile vor fi confirmate pentru totdeauna. Imaginați-vă că la casă într-un magazin trebuie să așteptați o jumătate de oră de fiecare dată pentru ca banca să vă confirme tranzacția. Nimeni nu va folosi o astfel de bancă.

Dar sarcina trebuie să fie în același timp dificilă, astfel încât toți internauții să nu găsească răspunsul deodată. Pentru ca in acest caz vor anunta multe blocuri cu aceleasi tranzactii catre retea si va exista o posibilitate de "dubla risipa", despre care am mentionat. Sau și mai rău - împărțirea unui singur blockchain în mai multe ramuri, în care nimeni nu își poate da seama ce tranzacție este confirmată și care nu.

Dacă o recompensă de 12,5 BTC este înmânată doar o dată la 10 minute și doar o singură persoană care a găsit blocul, se dovedește că trebuie să irosesc plăcile video câțiva ani în speranța că într-o zi voi scăpa 40.000 de dolari (la cursul de schimb curent)?

Este exact cazul bitcoin. Dar nu a fost întotdeauna așa. Anterior, rețeaua era mai mică, complexitatea este mai mică, ceea ce înseamnă că probabilitatea de a găsi de unul singur un hash pentru un nou bloc este mai mare. Dar atunci bitcoinul nu era atât de scump.

Acum nimeni nu extrage bitcoin singur. Acum participanții sunt uniți în grupuri speciale - piscine miniere, în care toată lumea încearcă să găsească hash-ul corect.

Dacă cel puțin unul dintre grupuri găsește, atunci întreaga recompensă este împărțită între participanți, în funcție de contribuția lor la munca comună. Se pare că faci minerit și primești un ban din cota totală în fiecare săptămână.

Dar mineritul solo este destul de posibil pe alte rețele. Până de curând, era ușor să mine Ethereum, unde blocurile se găsesc la fiecare 10 secunde. Recompensa de bloc este mult mai mică acolo, dar probabilitatea de a câștiga un ban este mai mare.

Deci vom arde mii de plăci video în zadar și nu există nicio ieșire?

Da, dar sunt idei. Miningul pe care l-am descris este clasic și se numește Proof-of-Work (dovada muncii). Adică, fiecare mașină demonstrează că a funcționat în beneficiul rețelei, rezolvând probleme fără sens cu o probabilitate dată.

Dar unii tipi încep să facă blockchain-uri cu alte tipuri de minerit. Acum, al doilea cel mai popular concept este Proof-of-Stake (dovada mizei). În acest tip de minerit, cu cât un participant al rețelei are mai multe „monede” în contul său, cu atât este mai probabil să-și introducă blocul în blockchain. Ca cel mai tare tip din sat.

Vă puteți gândi la alte tipuri de minerit. După cum sa sugerat deja, toate computerele din rețea pot căuta un remediu pentru cancer, doar că trebuie să vă dați seama cum, în acest caz, să înregistrați contribuția lor la sistem. La urma urmei, pot să declar că particip și eu, dar închideți placa video și nu număr nimic.

Cum cuantificați contribuția fiecărui participant la găsirea unui leac pentru cancer? Dacă ai venit cu asta - îndrăznește să-ți tai CancerCoin, un hype în mass-media îți este garantat.

Blockchain

Imaginați-vă o situație în care, în ciuda întregii teorii a probabilității noastre, doi mineri au reușit totuși să găsească răspunsul corect în același timp. Încep să trimită două blocuri absolut corecte prin rețea.

Aceste blocuri sunt garantate a fi diferite, pentru că, chiar dacă au ales în mod miraculos aceleași tranzacții din pool, au făcut arbori absolut identici și au ghicit același număr aleatoriu (nonce), hashe-urile lor vor fi tot diferite, deoarece fiecare își va scrie numărul portofelului în blocul pentru recompensă.

Acum avem două blocuri valide și din nou se pune problema cine ar trebui luat în considerare primul. Cum se va comporta rețeaua în acest caz?

Algoritmul blockchain afirmă că participanții la rețea acceptă pur și simplu primul răspuns corect care le ajunge. Apoi trăiesc pe baza propriei imagini despre lume.

Ambii mineri își vor primi recompensa, iar toți ceilalți încep să ai, bazându-se pe ultimul bloc pe care l-au primit personal, aruncând toate celelalte sunt re-corecte. În rețea apar două versiuni ale blockchain-ului corect. Acesta este paradoxul.

Aceasta este o situație de rutină în care teoria probabilității ajută din nou. Rețeaua funcționează într-o astfel de stare bifurcată până când unul dintre mineri găsește următorul bloc la unul dintre aceste lanțuri.

Imediat ce un astfel de bloc este găsit și introdus în lanț, acesta devine mai lung și este inclus unul dintre acordurile rețelei blockchain: în orice condiții, cel mai lung blockchain este acceptat ca singurul adevărat pentru întreaga rețea.

Lanțul scurt, în ciuda corectitudinii sale, este respins de toți participanții la rețea. Tranzacțiile din acesta sunt returnate în pool (dacă nu au fost confirmate în altul), iar procesarea lor începe din nou. Minerul își pierde recompensa pentru că blocul lui nu mai există.

Odată cu creșterea rețelei, astfel de coincidențe de la „foarte puțin probabil” intră în categoria „ei bine, uneori se întâmplă”. Vechii spun că au fost cazuri când un lanț de patru blocuri a fost aruncat deodată.

Din acest motiv, au fost inventate trei reguli de insecuritate la capătul lanțului:

1. Recompensele pentru minerit pot fi folosite numai după încă 20 de blocuri confirmate după primire. Pentru Bitcoin, aceasta este de aproximativ trei ore.

2. Dacă ți-au fost trimise bitcoini, îi poți folosi ca intrări în tranzacții noi numai după 1-5 blocuri.

3. Regulile 1 și 2 sunt doar specificate în setările fiecărui client. Nimeni nu le monitorizează respectarea. Dar cea mai lungă lege a lanțului vă va șterge în continuare toate tranzacțiile dacă încercați să păcăliți sistemul să nu le impună.

Încerc să înșele blockchain-ul

Acum că știți totul despre minerit, dispozitivul blockchain-ului și regula celui mai lung lanț, ați putea avea o întrebare: este posibil să depășiți cumva în mod specific blockchain-ul făcând singur cel mai lung lanț, confirmând astfel tranzacțiile dvs. false.

Să presupunem că aveți cel mai puternic computer de pe pământ. Centrele de date Google și Amazon s-au pus împreună la dispoziție și încercați să calculați un astfel de lanț care va deveni cel mai lung blockchain din rețea.

Nu puteți lua și calcula imediat mai multe blocuri ale lanțului, deoarece fiecare bloc următor depinde de cel anterior. Apoi decideți cât mai repede posibil să numărați fiecare bloc din uriașele dvs. centre de date în paralel cu modul în care toți ceilalți participanți continuă să crească blockchain-ul principal. Este posibil să-i depășești? Probabil da.

Dacă puterea dvs. de calcul este mai mare de 50% din puterea tuturor participanților la rețea, atunci cu o probabilitate de 50% veți putea construi un lanț mai lung mai rapid decât toate celelalte combinate. Aceasta este o modalitate teoretică posibilă de a păcăli blockchain-ul prin calcularea unui lanț mai lung de tranzacții. Apoi, toate tranzacțiile rețelei reale vor fi considerate invalide și veți colecta toate recompensele și veți începe o nouă etapă în istoria criptomonedei, care se numește „diviziune blockchain”. Odată, din cauza unei erori în cod, acesta a fost cazul cu Ethereum.

Dar, în realitate, niciun centru de date nu poate fi comparat din punct de vedere al puterii cu toate computerele din lume. Un miliard și jumătate de chinezi cu gheață, un alt miliard și jumătate de indieni înfometați cu ferme miniere și electricitate ieftină - aceasta este o putere de calcul uriașă. Nimeni din lume nu poate concura încă singur cu ei, nici măcar Google.

Este ca și cum ai ieși în stradă și ai încerca să convingi pe fiecare persoană din lume că dolarul valorează acum 1 rublă și să ajungi la timp înainte ca mass-media să te expună. Și dacă reușești să convingi pe toată lumea, poți prăbuși economia mondială. Teoretic, nu se poate? Dar, în practică, din anumite motive, nimeni nu a reușit.

Blockchain-ul se bazează și pe această probabilitate. Cu cât mai mulți participanți-mineri, cu atât mai multă siguranță și încredere în rețea. Prin urmare, atunci când o altă fermă minieră mare este acoperită în China, rata se prăbușește. Toată lumea se teme că undeva în lume a existat un geniu malefic care a strâns deja un bazin de mineri la ~ 49% capacitate.

Concluzie

Blockchain nu este un set strict definit de algoritmi. Este o structură pentru construirea unei rețele false între participanți, în care nimeni nu poate avea încredere în nimeni. În timp ce citești, probabil te-ai gândit de mai multe ori că „poți face așa și îți va fi și mai util”. Aceasta înseamnă că înțelegeți blockchain-ul, felicitări.

Unii băieți din lume l-au înțeles și ei și au vrut să se îmbunătățească sau să se adapteze pentru anumite sarcini specifice. Criptomonedele nu sunt aceleași, deși există și multe. Iată o listă scurtă a unor idei și proiecte care au câștigat o oarecare popularitate datorită regândirii ideii blockchain.

Ethereum

„Eteri” este al doilea cuvânt cel mai popular pe care îl auzi în știrile cripto-hype, după Bitcoin. Pentru oamenii obișnuiți, aceasta este o altă criptomonedă și o modalitate de a face cel mai la modă lucru numit ICO. Dezvoltatorii de pe site descriu Ethereum drept „un constructor de blockchain pentru nevoile tale”. Este posibil și asta, da.

Dar dacă sapi și mai adânc, eterul nu este doar o rețea de monede. Aceasta este o mașină de calcul globală uriașă, în care utilizatorii execută codul programelor altora (contracte inteligente), primind o recompensă pentru fiecare linie executată. Și toate acestea sunt descentralizate, indestructibile și cu toate garanțiile blockchain-ului.

Despre Ethereum și contracte inteligente putem vorbi atât de mult timp încât va fi suficient pentru o altă postare de acest gen. Prin urmare, vom acționa în stilul bloggerilor de top: dacă această postare este repostată și retweetata în mod activ, iar până vineri primește cel puțin 1.500 de vizualizări unice, voi scrie o continuare despre Ethereum și contractele inteligente.

Recomandat: