Ultimele stiri
recent

Tehnologia blockchain - blockchain-ul Bitcoin si exemple de implimentare (part. 2)

4. Confirmarea tranzactiilor

Dupa creare si expediere in retea, tranzactia este stocata in Mempool (memorypool - prescurtat ) - un set de tranzactii care inca nu au fost confirmate si sunt in asteptarea confirmarii de catre mineri. Odata cu includerea in bloc, aceasta primeste, in mod automat, prima confirmare.

Verificarea si confirmarea tranzactiei - procesul de verificare a corectitudinii si a posibilităatii de traducere. O tranzactie in Bitcoin este, de fapt, un transfer bancar obisnuit, pentru care aveti nevoie doar de adresa portofelului destinatarului.

Din punctul de vedere al utilizatorului mediu, operatiunea arata astfel: se deschide un portofel, se introduce adresa destinatarului si suma transferului, dupa care semnatura este executata cu ajutorul cheii private si tranzactia se lanseaza in retea. Daca in cazul unui utilizator obisnuit aceste date sunt suficiente, atunci, in spatele acestei simplitati aparente, sunt ascunse procese destul de complicate si, in cazul unui transfer de la utilizatorul 1 la utilizatorul 2, tranzactia va avea mai multe sectiuni de informatii:
  • Intrarea - cu inregistrarea datelor despre istoria detinerii monedelor de catre utilizatorul 1 (de unde, cand). 
  • Suma - numarul monedelor transferate.
  • Iesire - adresa Bitcoin al utilizatorului 2.
Intrarea - informatia completa despre provenienta Bitcoin-ilor si suma exaca al acestora. 
Iesirea - suma suma monedelor expediate destinataruluui. 

Tranzactia va fi considerata complet confirmata doar daca a fost inscrisa in blocul pe baza caruia au mai fost formate inca alte 5 blocuri, durata medie pentru confirmarea completa a platii fiind de 1 ora. Reamintindu-ne ca in capitolele anterioare am mentionat ca prioritatea adaugarii unei tranzactii la un bloc este determinata de mineri, va fi important sa intelegem ce poate afecta viteza transferului:
  • Suma comisionului (indicata de expeditor);
  • Suma transferului;
  • Supraincarcarea retelei;
  • Software-ul destinatarului;
  • Cresterea sau decadenta cursului valutar;
Fiecare dintre aceste elemente poate creste in mod serios timpul transferului si chiar, uneori, monedele trimise pot sa nu ajunga la destinatar ci, peste ceva, timp sa se intoarca la proprietar.

Un alt detaliu important este, de asemenea, faptul ca, atunci cand contul dvs. dispune de un numar de monede mai mare decat cel necasar pentru transfer, nu puteti trimite doar suma corecta ci sunteti nevoiti sa operati cu toate monedel creand doua tranzactii indicand, in prima, cheia publica al destinatarului iar in cealalta cheia dumneavoastra. In asa fel, in primul caz , specificati suma care urmeaza sa fie transferata, iar in al doilea - suma remunerarii (reiesind din soldul portfelului).

Toate tranzactiile sunt efectuate in portofele electronice si presupun prezenta unei semnaturi digitale, necesara pentru securitate.

Pentru a fi autentificata, tranzacția se impune verificarii la corespunderea cerintelor blockchain-ului, iar numarul de blocuri necesar pentru confirmarea ei completa este setat de sistem (in scopul evitarii cheltuielii duble).

5. Cheltuielile duble (Double-spending)

Cheltuielile duble, sau double spending - reprezinta o vanzare repetata (uneori multipla) al acelorasi fonduri.

Sistemul Bitcoin este protejat de cheltuielile duble, datorita faptului ca fiecare tranzactie inclusa in bloc este supusa unei verificari pentru a se asigura ca fondurile din ea nu au fost cheltuite anterior.

Primele idei despre utilizarea semnaturilor digitale pentru a crea un sistem descentralizat de monede electronice a aparut in anii '80 al secolului trecut si, totodata, au fost sesizate doua probleme, care ramaneau a fi nesolutionate. Prima din acestea, fiind modul de a introduce monedele in sistem, deoarece ramanea clar faptul ca pentru mentinerea viabilitatii sistemului, reteaua trebuie sa creeze monede noi , dar, in cazul emiterii acestora de oricine si oricand, in curand monedele devin inutile. A doua problema - fiind legata de o cheltuielile duble si daca atunci solutia nu a fost gasita, aceasta si-a gasit realizarea in Bitcoin regulile caruia precizeaza ca fiecare tranzactie poate fi realizata doar o singura data. In comparatie cu sistemele de plati traditionale, precum MasterCard sau PayPal, in Bitcoin a fost aplicata tehnologia Blockchain care, fiind mentinuta de o varietate de calculatoare, numite noduri, care functioneaza intr-o retea de tip peer-to-peer, isi recompenseaza utilizatorii (nodurile) pentru crearea unui lant de blocuri permitandu-le sa creeze si monede noi, drept urmare, realizand rezolvarea problemei distributiei bunurilor totodata, stimuland si rezolvarea problemei de actualizare al agendei. 

In ciuda faptului ca pana in prezent, in Bitcoin, nu au fost detectate cazuri de double spending, totusi, exista posibilitatea ca doua tranzactii pot fi incluse in ramificatii diferite si cea initiala, datorita parcurgerii unei cai mai lungi, poate ajunge la destinatar mai tarziu, astfel provocand problema dublarii cheltuielilor atunci cand aceleasi bunuri au fost expediate catre doi destinatari in unul si acelasi timp.

Aici, va aduc la cunostinta conditiile in care poate aparea problema cheltuielilor duble, aceasta probabilitate poate aparea in cazul atacurilor de tipul:

1) Atacul 51% - sechestrarea controlului asupra a 51% din capacitatea hash-ului retelei, datorita caruia puteti anula orice tranzactie si puteti face drept principal lantul mai profitabil. În cazul Bitcoin, din cauza complexitatii mineritului, a pretului echipamentelor si a costului energiei electrice, acest tip de atac devine aproape imposibil, dar, pot fi supuse alte monede (sunt cunoscute cazuri cazuri cu Verge și Bitcoin Gold).
2) Race attack - cand un atacator trimite aceeasi moneda foarte rapid catre doua adrese diferite, iar vanzatorul accepta factura de plata fara confirmarea de la retea.
3) Atacul brutal (Brute force attack) - atunci cand tranzactia se petrece pe o furca de retea (fork).

In cazurile enumerate mai sus, efectuarea un atac de succes nu permite:
  • modificarea taxei pentru generarea blocurilor noi
  • obtinerea unui numar nelimitat de monede
  • distrugerea retelei
  • cheltuirea monedelor care, anterior, nu apartineau atacatorului.
Adaugarea tranzactiilor la blocurile care sunt aliniate intr-un lant neintrerupt previne problema dublarii cheltuielilor, iar dreptul de a adauga un bloc nou trebuie sa fie dovedit prin munca (Proof of work). Verificarea lantului va permite sa va asigurati ca aceeasi "moneda electronica" nu a fost cheltuita anterior. De fapt, tranzactia este certificata de nodul care o include in bloc. Orice alte tranzactii cu aceeasi moneda si acelasi proprietar vor fi ignorate de catre sistem. Mai tarziu, au fost propuse scheme in care se utilizeaza dovada cotei de proprietate, in locul dovezii muncii. Scopul principal al blockchain-ului este de a oferi un criteriu de consens cu privire la intrebarea - care versiune de tranzactii poate fi considerata corecta. Sistemul se afla in siguranta atata timp, cat cea mai mare parte a resurselor sale de calcul este sub controlul combinat al participanților cinstiti.

Blockchain-ul rezolva problema dublarii cheltuielilor, combinand tehnologia de partajare a fisierelor peer-to-peer si criptarea cheilor publice, creand, astfel, un tip nou de bani digitali. Dreptul la proprietate este inregistrat intr-un registru deschis si este confirmat de protocoalele criptografice si de comunitatea minerilor. Blockchain-ul nu necesita incredere, in sensul ca in procesul tranzactiei utilizatorul nu are nevoie de incredere in omologul sau, sau in intermediar. Este necesar doar sa avem incredere in sistem - implementarea software-ului protocolului blockchain.

Ma puteti urmari si pe Telegram, adresa: @ROBlockchain



RusRabii

RusRabii

Niciun comentariu:

Trimiteți un comentariu

Un produs Blogger.