Ultimele stiri
recent

Tehnologia blockchain - blockchain-ul Bitcoin si exemple de implementare (part. 1).

1. Bitcoin - prima realizare al tehnologiei blockchain.

Ultimii ani, in viata noastra de zi cu zi au intrat si au capatat popularitate notiuni precum Bitcoin, Cryptocurrency, ICO si alte cuvinte legate de tehnologiile digitale si sistemele descentralizate. Odata cu astea, din pacate, multi din cei care le-au auzit si si le-au adaogatat in listele vocabularelor sale, nu prea vad si inteleg diferena dintre ele spunand Bitcoin atunci cand vorbesc despre blockchain sau invers si tocmai aici intelegem ca avem nevoie de o interpretare clara cum ca blockchain este o tehnologie pe cand Bitcoin - doar prima criptomoneda din cele existente astazi. Si, deja acum, putem mentiona cu siguranta ca blockchain-ul a intrat in viata noastra pentru totdeauna, pe cand Bitcoin-ul poate fi inlocuit cu alte monede criptografice...

Bitcoin - o moneda creata cu ajutorul criptografiei si consta dintr-un anumit cod digital.
Blockchain - un lant de blocuri, care include o baza de date publica cu informatii despre toate tranzactiile (in cazul nostru, cu bitcoin) si este una dintre tehnologiile care stau la baza Bitcoin.

In blockchainul Bitcoin:
  • Minerii calculează blocul nou.
  • Toate tranzactiile noi sunt verificate de catre nodurile complete. (Complet sincronizate cu reteaua Bitcoin, care sunt conectate 24/7 si stocheaza toate datele, incepand cu blocul geneza, adica blocul original. Acestea deservesc reteaua (gratuit), incarcand si validand fiecare bloc cu tranzactii si respingand blocuri sau tranzactii contradictorii consensului.)
  • Dupa o verificare de succes (cel putin 3-5 confirmari), tranzactia este incorporata in blocul existent.
  • Cand blocul existent este completat - minerii incep calculul altuia.
  • Bitcoinii din blocul nou sunt incasati de catre minerul care gaseste calculul corect inainte de ceilalti (primul). 
  • Din cauza lipsei de management central (adica descentralizarii), reteaua nu poate fi hackata.
  • Valorile tranzactiilor sunt vizibile pentru toti utilizatorii, in timp ce detinatorii de pungi raman necunoscuti.
2. Blocul de tranzactii

Blocul de tranzactii - este un fisier scris in permanenta in reteaua Bitcoin, care contine informatii despre tranzactiile efectuate, corecte, care nu conflicteaza intre ele sau cu precedentele, precum si suma de control al blocului anterior.

Toate blocurile noi sunt adaugate la sfarsitul lantului, care se numeste blockchain si nu mai poate fi schimbat. Pe langa informatia despre tranzactiile curente, fiecare bloc contine informatii despre tot ce sa intamplat in blocurile anterioare inainte de a fi creat.

Toate tranzactiile pot fi considerate completate si confirmate numai dupa o verificare completa a formatului si a semnaturii fiind combinate intr-un grup de tranzactii si scrise in blocul continutul caruia este usor de verificat, deoarece poarta informatii despre blocul anterior. Tranzactiile noi pot fi considerate confirmate complet doar atunci cand sunt adaogate la blocul pe baza caruia se formeaza inca alte 5 blocuri. Durata medie pentru confirmarea unei plati dureaza aproximativ o ora.

Pentru blockchain-ul Bitcoin, in prima tranzacțtie, se indica, intotdeauna, valoarea comisiei de remunerare al minerilor (pentru crearea unei unitati noi) si contine adresa Bitcoin la care este expediata (generation transaction), urmata de o lista de tranzactii care nu au fost incluse in blocurile anterioare. Criteriul de selectie prioritara este dat de mineri si nu depinde doar de istoria crearii tranzactiei ci ia in considerare si astfel de factori cum ar fi liste de adrese specificate, rata de comision, etc ..

Blocul nou poate fi adoptat doar atunci cand valoarea numerica al antetului hash este egala sau mai mica decat numarul tinta specificat (valoare care este supusa ajustarii la fiecare 2016 blocuri), iar reiesind din faptul ca rezultatele functiei hash SHA-256 (utilizata in blockchain-ul Bitcoin) sunt considerate ireversibile, in prezent, nu exista nici un alt algoritm de obtinere al rezultatului decat cautarea aleatoare. Daca hash-ul antetului nu este satisfacator conditiilor, atunci se modifica parametrul nonce (number that can only be used once) si hash-ul se recalculeaza. Calculul necesita un numar mare de conversii, si atunci cand se gaseste o versiune pozitiva, nodul trimite rezultatul altor participanti la retea pentru o verificare contra erorilor si daca acestea nu sunt depistate, unitatea este adaugata in lant iar urmatorul bloc trebuie sa includa hash-ul acestuia.

Astfel, blockchain-ul este o lista legata an care fiecare intrare urmatoare se refera la una precedenta si asa mai departe pe lant pana la prima tranzactie din retea.

3. Lantul de blocuri

Lantul de blocuri - este un registru public al tuturor tranzactiilor Bitcoin in ordine cronologica, care este acelasi pentru toti utilizatorii si este aplicat pentru asigurarea stabilitatatii tranzactiilor Bitcoin si pentru prevenirea cheltuieli duble. De fapt, acesta si este blockchain-ul.

O caracteristica importanta a tehnologiei este ca acesta se autolanseaza si autoreproduce. Securitatea tranzactiei este asigurata in criptare intensiva si este distribuita intre calculatoarele conectate la sistem iar cei ce-si aloca resursele computerelor sale pentru functionarea retelei sunt numiti - mineri (eng. getter, miner). Drept recompensa pentru alocarea resurselor, pentru formarea blocurilor noi, minerii primesc un anumit numar limitat de monede (Bitcoin), iar blocurile care corespund criteriilor sunt lansate in retea si incluse in unitatile bazei distribuite (lant).

Sansa de a fi primul, din multimea de mineri, care a descoperit o unitate noua este echivalenta procentului de resurse de calcul al tuturor participantilor implicati in retea, astfel incat, de multe ori, apar situatii in care cateva unitati ale retelei se refera la acelasi bloc anterior provocand, astfel, ramificatia lantului si construirea ramurilor paralele, fiecare dintre acestea putand include atat aceleasi tranzactii, cat si unele diferite care au intrat intr-o singura ramura. Toti ceilalti participanti isi fac alegerea formand blocuri noi pentru una din versiunile ramificatiei, in timp ce, in retea, sunt stocate ambele versiuni al istoriei. Ca urmare, principala este considerata ramura cu un nivel mai ridicat de complexitate a hash-ului si a lungimii, iar daca acestea sunt egale, preferinta este data lantului a carui bloc de capat a aparut mai devreme. Tranzactiile care au fost inscrise doar in ramura respinsa (inclusiv plata compensatiei) pierd statutul de confirmate si vor fi plasate in coada si incluse in blocul urmator. Tranzactiile de remunerare pentru crearea blocurilor nu sunt duplicate in cealalta ramura, iar monedele platite pentru formarea blocurilor decupate nu primesc confirmarea in continuare si devin "pierdute".

Baza de date Bitcoin este formata dintr-un lant de blocuri in crestere continua cu inregistrari ale tuturor tranzactiilor, ale caror copii sunt stocate pe mai multe calculatoare in acelasi timp, in mod deschis, ceea ce face sistemul complet descentralizat, dar protejat de orice schimbari prin intermediul lantului criptografic de hash-uri. Datele, in sine, nu sunt criptate si oricine poate urmari istoricul tuturor tranzactiilor manual.

Ma puteti urmari si pe Telegram, adresa: @ROBlockchain
RusRabii

RusRabii

Niciun comentariu:

Trimiteți un comentariu

Un produs Blogger.