1.3. Cum functioneaza Blockchain-ul, si ce trebuie sa stim despre el? Bineinteles, eu deja am studiat o sumedenie de explicatii despre modul in care lucreaza blockchain-ul. Si am descoperit ca exista in general doua probleme:
- In primul caz - asanumitul expert isi considera cititorii idioti si explica materialul atit de primitiv ca pina la urma esenta insasi a procesului de invatare ramine acolo undeva in spatele scenei
- In cazul doi - textul este conceput pentru un specialist IT cu teorii, si,
cu arborii lui Merkle si algoritme asimetrice de criptare cu semnaturile lui Schnorr, iar omul simplu de obicei nu este predispus sa asimileze asa tip de informatie pentru ca totul pare prea complicat, si intr-adevar asa si este.
Dupa o groaza de studii, analize si cercetari desigur ca am gasit una dintre cele mai bune explicatii pe blogul
Kaspersky Lab. Si bineinteles am luat-o ca baza, iar acum, voi incerca sa o fac inca de citeva ori mai clara
In primul rind, trebuie de stiut citeva concepte de baza, dintre care prima este
semnatura digitala. De obicei, de ce aveti nevoie de o semnatura obisnuita? desigur ea certifica persoana care a semnat documentul. Digitalul este chiar mai bun in acest sens - face acelasi lucru, dar nu poate fi falsificat (
mai precis, e foarte greu sa-l falsifici). Adica, autorul documentului este determinat fara echivoc, ceea ce inseamna ca doar el putea sa semneze documentul. Plus la asta, o persoana (
sau o firma) poate genera mai multe perechi legitime de nume-semnaturi - pentru diferite scopuri. (
Daca sunte-ti interesa-ti Cum sa semnezi o adresa)
Un alt termen de care avem nevoie este
hashing. Ok, cu semnatura totul este clar: daca vedem semnatura, atunci stim cu siguranta ca autorul documentului (
tranzactiei, programei) este anume acel care si-a pus semnatura pe document. Bine, dar daca in document a fost inlocuit ceva important, atunci ce ne facem? De exemplu, sa inlocuit suma de bani trimisa (
sa adaugat un zerou la sfirsit). De aici rezulta ca prin urmare, este extrem de important sa verificam nu numai autorul documentului, dar trebuie mai trebuie sa verificam si integritatea si imuabilitatea acestuia.
Exista mai multe moduri de a face acest lucru, incepind cu cele simple metode care sunt usor de ocolit. De exemplu, se numara toate literele din mesaj si apoi se verifica acest numar. Daca cifra nu coincide, atunci este foarte probabil ca mesajul a fost schimbat de catre niste raufacatori ori nu a ajuns in intregime. Dar aceasta metoda este foarte usor de ocolit daca atacatorul stie ce fel de verificare se va folosi.
Cel mai simplu exemplu al unui astfel de control de anti-falsificare este scrisoarea
CASCO(MD) despre accident. Acolo trebuie sa notati cit de multe patrate sunt umplute cu marcaje (
cum ar fi: "Am parasit parcarea", "Am stat la semafor"). Aceasta se fce pentru ca cineva, dupa ce primeste o copie semnata, sa nu se poticneasca asupra variantelor noi, si sa nu bifeze alte patrate necesare incidentului in interesul propriu. Dar verificarea criptografica sau, cu alte cuvinte, "hash"-ul, este mult mai tare. In versiunea cea mai
primitiva, daca se vor rearanja literele din mesaj, suma de control nu se va schimba. Iar intr-un hash realizat corect, la cea mai mica schimbare, va fi imediat clar ca acesta nu este originalul. Si in acelasi timp, "hash"-ul ocupa doar o singura linie, chiar si pentru fisierele sau documentele foarte mari.
Hash-ul are o proprietate specifica doar sie: - el este unilateral. Adica, prin hash este imposibil sa gasesti mesajul original (
numai prin enumerarea tuturor optiunilor anume asa functioneaza minierele, dar despre asta voi scri in alt articol). Desigur inainte la anumite tipuri de hash-uri a fost si o astfel de problema incit la mesajele diferite se mai intimpla sa aiba acelasi hash, dar acum aceasta problema ori este deja rezolvata sau nu mai joaca un rol special. Principalul lucru despre hash - cred ca e clar si toata lumea a inteles ca: - aceasta functie functioneaza doar intr-o singura directie.
Acum despre blockchain in sine. Deci cum se utilizeaza semnaturile si hash-urile? Imaginati-va niste elevii intr-o clasa la scoala care folosesc o moneda virtuala in interesele lor. Ei scriu pe tabla: care si cite monede are, cine si cui trimite, isi pun semnaturile pentru a confirma tranzactiile, ei toti vad aceasta tabla si le este foarte comod sa opereze cu monedele. Dar, apoi, vine profesorul si spune:
"V-ati facut de cap de tot aici!, degraba deja o sa incepeti a vinde si droguri pe aici sub nasul meu!". Nu se gindeste mult, si sterge toate inregistrarile elevilor cu o cirpa umeda, si odata ce a sters table, totul pentru ce s-au staruit elevii, a disparut cu tot cu evidenta pe care o duceau deoarece nu avea nimeni nici o copie.
Evident, elevilor nu le place acesta. Ei au nevoie de moneda lor proprie, astfel incit nimeni sa nu poata sterge nimic de pe tabla. Si, de asemenea, este imposibil de scris pe o bucata comuna de hirtie deoarece cel care detine hirtia poate rezolva totul acolo in folosul sau. Prin urmare, elevii decid ca fiecare dintre ei trebuie sa aiba propria bucata de hirtie, si cu totii vor indeplini la fel. La recreatie, fiecare verifica inregistrarile si adauga altele noi - care, cui si cite monede trimite si cite au acum.
Deci cum se poate de inteles acum daca Costel are destui bani pentru a-i transfera in portofel Camilei? Acum trebuie de recitit intregul jurnal si totul va deveni clar:
1. Deci Costel a primit 10 monede de la Patrik saptamina trecuta.
2. Costel a mai primit inca 40 de monede ieri de la Gicu.
Dupa aceasta, nu au mai existat tranzactii, asa ca inregistram o noua tranzactie in jurnal:
3. Deci, se iau 50 de monede de la Costel si se adauga 50 de monede Camilei
Se va confirma tranzactia cu semnatura lui Costel si se va adauga un hash. Desigur, verificarea intregii liste de tranzactii o sa ia o perioada destul de lunga de timp, dar toata lumea are un computer! El va intelege imediat daca semnatura nu este acea care trebuie sau daca istoria tranzactiilor este gresita. El nu va scrie in jurnal o tranzactie gresita, ci pur si simplu o va arunca ca pe una falsa.
Si iata acest set de tranzactii inregistrat pe o pagina se numeste bloc, se adauga la sfirsit un hash al intregului bloc, pentru a nu verifica pagina din nou de fiecare data, (
de acum inainte se va verifica doar hash-ul) si acum se va incepe o pagina noua, adica un nou bloc. Deci lantul alcatuit din doua, o suta, un million si mai mult de asfel de blocuri semnate si cu hash-uri se numeste BLOCKCHAIN.
Ramine doar de inteles cine umple pagina la recreatie, pentru a le distribui tuturor (
doar pentru ca sa va aduc la cunostinta: aceasta "recreatie" in blockchain-ul Bitcoin are loc la fiecare 10 minute). Pentru a face acest lucru, toati rezolva problema de a gasi hash-ul. Acum cind stim cu totii ce este un hash, devine clar ca problema nu este doar una dificila, dar este inca si absolut inutila. Decizia este necesara doar pentru a determina aleatoriu cistigatorul. La urma urmei, daca blocul va fi emis intotdeauna doar de o singura persoana, atunci persoana data va fi capabila, de exemplu, sa ignore tranzactiile cuiva
Complexitatea acestei probleme este atit de mare incit se poate rezolva numai prin analizarea tuturor variantelor posibile unde fiecare dintre aceste variante posibile se supun "hashing"-ului, iar toti participantii la acest process analizieaza toate aceste variante posibile in acelasi timp. Cine are un calculator mai puternic, acela are si mai multe sanse de cistig. In cazul in care participanti sunt prea multi si hash-ul se gaseste prea rapid, sarcina noua se alege mai dificila (
si invers, dificultatea retelei depinde de nr. de utilizatori conectati in pool pentru rezolvarea acestei probleme); Toate acestea au fost convenite in prealabil prin consensus.
Toti cei care doresc si se aduna impreuna ca sa rezolve aceasta problema sunt numiți
"maineri", iar solutia gasita de cineva ditre ei este inregistrata pe aceiasi pagina impreuna cu toate operatiunile. Acest lucru se face in acest mod pentru ca in viitor sa nu cumva sa vina cineva si sa spuna:
"Baieti, de fapt revista adevarata e la mine, iata aici totul este calculat", - intr-asa caz acest cineva atunci va trebui sa prezinte imediat solutiile la toate problemele forjate, dar acest lucru este ireal. Desi, daca sa spun sincer: in cazul in care el controleaza majoritatea computerelor din retea, adica mai mult de 51%, atunci totul este posibil. Doar asta ne incalzeste pe toti, caci, prin consensus asa ceva este interzis. Asa ca, sa-si mai puna pofta-n cui cei care or atinge mai mult de 51% putere in retea...
Ca rezultat, avem un sistem nou de operatiuni descentralizate si care-i tare de tot, in care toata lumea are incredere in toata lumea - pentru ca toata lumea poate verifica intotdeauna totul. Istoricul tranzactiilor nu poate fi rescris sau corectat. Pot fi foarte multi participanti, iar fiabilitatea acestui sistem din asta doar va creste. Prin inermediul semnaturii este imposibil sa dezvzluiti identitatea proprietarului - cu exceptia cazului in care el singur isi va dezvalui identitatea.
Dar exista si efecte secundare interesante. In primul rind, devine foarte convenabil schimbul de arme, comercializarea de droguri, e simplu de dat mita, deoarece schema este foarte dificil de urmarit si e totul anonim, adio saci cu bancnote marcate. In al doilea rind, orice tranzactie nu poate fi contestata sau anulata - daca ati trimis cuiva cripto-monede dvs. din greseala, atunci aceasta este pentru totdeauna, spunele adio, caci nu le mai vezi inapoi. In al treilea rind, toate informatiile sunt duplicate de o suta si mai mult de mii de ori, ceea ce este foarte bine si sigur. Si toate acestea constituie doar ceea ce se vede la suprafata. Restul voi analiza mai detaliat mai in alt articol.
Daca doriti, puteti vedea inca o explicatie destul de reusita aici