Acest capitol va avea rolul de a prezenta conceptele esențiale specifice domeniului în care se încadrează tema sistemului propus. În subcapitolele ce… [627103]
Capitolul 3
Studiu Bibliografic
Acest capitol va avea rolul de a prezenta conceptele esențiale specifice domeniului în care
se încadrează tema sistemului propus. În subcapitolele ce vor urma se vor regăsi concepte precum:
blockchain, smart contracts, blocuri, hash.
3.1 Blockchain
În esență, Blockchain-ul[1] este o bază de date distribuită într-o continuă creștere ce conține
înregistrări( sau informații publice) aferente tuturor evenimentelor digitale sau tranzacțiilor ce au
fost executate și partaja de către părțile participante. Aceste înregistrări sunt cunoscute sub numele
de blocuri. O interpretare a Blockchain-ului poate fi ca și un “registru”(ledger în engleza) distribuit
și public, în componența căruia se găsesc informațiile tranzacțiilor. În cadrul acestui registru public
fiecare tranzacție este verificată prin consensul majorității participanților din sistem. Datorită
modului de funcționare bazat pe consensul majorității , după introducerea datelor în registru,
acestea nu mai pot fi modificate sau șterse ulterior. O prezentare a conceptului blockchain folosind
un exemplu din viața de zi cu zi este facut de autorii articolului[1] astfel: “este mlt mai ușor să furi o
prăjitură dintr-un borcan cu prăjituri aflat într-un loc retras, decât dintr-un borcan aflat într-o piață
publică”. Blockchain-ul este de obicei administrat printr-o rețea peer-to-peer.
În anul 2008 a fost conceptualizat primul blockchain distribuit de către o persoană anonimă,
aceasta identificându-se cu numele de Satoshi Nakamoto. Tot aceeași persoana anonimă a creat și
criptomoneda Bitcoin un an mai târziu, în anul 2009.
3.1.1 Arhitectura Blockchain-ului
Blockchain-ul este de fapt o lista în continuă creștere de înregistrări numite blocuri, acestea
fiind legate unul de celălalt prin intermediul criptografiei sub forma unui arbore Merkle.
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 4
Figura 3.1 – Formarea lantului de blocuri
sub forma arborelui Merkle
În figura 3.1 este reprezentată formarea unui lanț de blocuri sub forma arborelui Merkle.
Lanțul principal (Bloc 0…Bloc 8) reprezintă cea mai lungă înseriere de blocuri începând de la un
bloc inițial (Bloc 0), care mai este cunoscut și sub numele generic de „Bloc Genesis” până la blocul
curent (Bloc 8).Blocurile ce intră în componența lanțului principal, cu excepția blocului genesis,
sunt numite blocuri principale,iar restul blocurilor ce se găsesc în afara lanțului principal sunt
numite blocuri orfane.
Analizând blockchain-ul din punct de vedere structural, acesta este reprezentat printr-o lista
simplu înlănțuită, legăturile dintre blocuri fiind realizate printr-un hash.
Figura 3.2 Blockchain exemplficat[2]
În Figura 3.2 putem vedea un exemplu de blockchain, si putem vedea că un bloc conține
hash-ul blocului anterior în header, astfel având doar un bloc părinte.
În componența unui bloc intră:
– antetul blocului (block header)
– corpul blocului (block body)
În figura 3.3 este prezentată structura unui bloc, unde putem observa faptul ca antetul este
format din mai multe informații:
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 5
– Versiunea de block(Block version) : Indică ce set de reguli de validare ale blocului sa
urmeze blocul curent
– Hash-ul radacinii arborelui Merkle(Merkle tree root hash): reprezintă valoarea de hash
tuturor tranzacțiilor in blocul curent
– Marcajul de timp(TimeStamp): reprezintă timpul curent, timpul universal în secunde de la
1 Ianuarie 1970
– nBits: reprezintă forma codata a pragului țintă. Pentru ca blocul sa fie valabil, hash-ul
trebuie sa fie sub un anumit prag, numit pragul tintă
– Nonce: reprezintă un câmp de 4 biți, acesta incepe de la 0 de obicei, si crește penru fiecare
calcul al hash-ului
– Hash-ul blocului parinte(Parent block hash): reprezintă o valoare de hash de 256 biți care
face legatura cu blocul anterior
Corpul blocului este compus din numărul de tranzacții împreună cu tranzacțiile în sine.
Numărul maxim de tranzacții ce au loc într-un bloc variază în funcție de marimea blocului si
marimea fiecărei tranzacții. Pentru validarea autenticității tranzacțiilor blockchain-ul folosește un
mecanism criptologic asimetric. Semnăturile digitale (Digital signatures) bazate pe criptologia
asimetrică sunt folosite într-un mediu ce nu prezintă încredere.
Figura 3.3 Structura unui bloc
O funcție hash( sau funcție de dispersie )[3] , matematic, reprezintă o funcție definită pe o
mulțime cu un numar mare de elemente (sau chiar o mulțime infinită) cu valorile într-o altă mulțime
ce conține un număr fix de elemente. Funcțiile hash nu sunt inversabile.
O funcție hash criptologică este o funcție hash ce se pretează pentru folosirea ei in
criptologie. Este un algoritm matematic care mapeaza date de o marime arbitrară ( de obicei numite
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 6
“mesage”) la o matrice de biți de o marime fixă ( numita în general “valoarea de hash”, “hash”,
“mesajul digerat”). Nivelul de securitate al funcții hash este determinat folosind următoarele
proprietăți:
-Rezistență preimagistică(Pre-Image Resistance): Fiind dată o valoare de hash x , găsirea unui
mesaj y astfel încât x = hash(m) trebuie sa fie dificilă. Acest concept se referă la imposibilitatea
inversării funcțiilor hash.
– A doua rezistență preimagistică(Second pre-image resistance): Fiind dată o valoare de intrare
A , găsirea unei valori de intrare B astfel încât hash(A) = hash(B) ar trebuii sa fie dificilă.
– Rezistența la coliziune(Collision resistance): Găsirea a două mesaje diferite A si B astfel încât
hash(A) = hash(B) ar trebuii să fie dificila. O astfel de pereche este numită coliziune criptografică
de hash(Cryptographic hash collision).
Figura 3.4 ilustrează procesul prin care valoarea hash este formată de la o dată de lungime
arbitrară, și de asemenea cum este format și nBit-ul.
Figura 3.4 Funcția hash [ http://blog.hackersinterview.com/cryptography/hash-function-in-
cryptography/ ]
Hash-ul blocului curent este format din datele blocului impreună cu hash-ul blocului
anterior, în acest fel, dacă va exista o modificare în blocul părinte , valorile hash ale blocurilor copii
vor fi de asemenea modificate.
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 7
3.1.2 Semnătura digitală ( Digital Signature)
Fiecare participant din blockchain deține o pereche de chei, una dintre chei fiind privată, iar
cealaltă publica. Cheia privată este folosită la semnarea tranzacțiilor, trebuind sa fie confidențiala,
de unde și numle de cheie privata. Tranzacțiile semnate digital sunt apoi difuzate pe întreaga retea.
Semnătura digitală tipică implică de obicei doua faze:
– Faza de semnare
– Faza de verificare
Pentru o mai ușoară înțelegere ne vom folosi de un exemplu practic:
User-ul X doreste sa ii trimite user-ului Y un mesaj:
1 – În faza de semnare, User-ul X criptează datele ce doresc a fi trimise folosindu-și cheia privată
după care îi trimite User-ului Y rezultatul criptat si datele originale.
2 – În faza de verificare, User-ul Y validează valoarea cu cheia publică a User-ului X.
În acest fel User-ul Y poate verifica cu ușurință daca datele au fost modificate sau nu.
Algoritmul de semnătură digitală folosit de obicei în blockchain este algoritmul curbei eliptice de
semnătură digitală (Elliptic curve digital signature algorithm – ECDSA) [2]
Figura 3.5 Criptarea asimetrică
În figura 3.5 este prezentat modul de funcționare a transmiterii unui mesaj folosnd criptarea
asimetrică.
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 8
3.1.3 Caracteristicile cheie ale tehnologiei blockchain
Mai jos sunt prezentate caracteristicile blockchain-ului:
– Decentralizarea : În sistemele conventionale de tranzacții centralizate, fiecare tranzacție in
parte necesită validarea prin intermediul unei agenții centrale de încredere( un bun exemplu
ar fi Banca Centrala), în acest caz, apar inevitabil costurile pentru menținerea acestui sistem
funcțional si de asemenea si problemele de performanță ale serverelor centrale. Total opus
modului centralizat,, în blockchain nu mai avem nevoie de intermediari. Consistența datelor
în blockchain este menținută de algoritmii deconsens.
– Persistența: Viteza de validare a tranzacțiilor este rapida, iar tranzacțiile invalide nu vor fi
acceptate de catre minerii onești. O data introduse în blockchain, retragerea sau ștergerea
tranzacțiilor este aproape imposibila. Blocurile ce conțin tranzacții invalide vor fi
descoperite imediat.
– Anonimitatea: Pentru interacțiunea cu blockchain-ul, fiecare participant folosește o adresă
generată, care nu divulgă advărata identitate a participantului. De menționat este faptul că
deși este o tehnologie destul de sigură, nu poate garanta mentinerea datelor private.
– Auditarea: blockchain-ul Bitcoin stochează date despre balansul fiecarui prticipant după
modelul Iesiri ale Tranzacțiilor Necheltuite ( Unspent Transaction Output – UTX-O). Orice
tranzacție face o referire la o tranzacție anterioară necheltuita.O dată ce tranzacția curentă
este înregistrată în blockchain, statusul tranzacției anterioare necheltuite la care se facea
referirea se schimbă de la necheltuită la cheltuită
3.1.3 Clasificare
Există trei tipuri de sistem blockchain: blockchain-uri publice, blockchain-uri private,
blockchain-uri de consorțiu.
– În blockchain-ul public, toate înregistrările si tranzacțiile din cadrul acestuia sunt publice și,
de asemenea toate parțile prezente în acel blockchain pot participa la procesul de consens.
– În blockchain-ul de consorțiu, este puțin diferit, doar un grup de noduri selectate în prealabil
vor participa în procesul de consens. Blockchain-urile de consorțiu sunt construite de mai
multe organizații și sunt pațial decentralizate având în vedere ca doar unei mici parți din
noduri le va fi permisă participarea la procesul de consens.
– În blockchain-ul privat, doar nodurilor ce fac parte dintr-o anumită organizație le va fi
permis sa participe la procesul de consens. Blockchain-urile de acest tip sunt de altfel
considerate rețele centralizate având în vedere că este controlată în totalitate de o singură
organizație.
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 9
Figura 3.6 Comparația blockchain-urilor
În figura 3.6 este prezentată comparația celor trei tipuri de blockchain-uri. În continuare om
explica fiecare criteriu de diferențiere.
– Caracterul imutabil: Având în vedere că înregistrările sunt stocate și verificate de un număr
mare de participanți, este aproape imposibil să falsifici tranzacțiile ce au loc într-un blockchain
public. Total opus, tranzacțiile din cadrul unui blockchain privat sau a unui blockchain de consorțiu,
pot fi falsificate, luând în considerare faptul ca pot lua parte la procesul deconsens doar un număr
limitat de participanți.
– Centralizarea: Diferența principală dintre cele trei tipuri de blockchain este aceea că blockchain-
ul public este decentralizat, blockchain-ul de consorțiu este parțial decentralizat, iar cel privat este
centralizat fiind controlat de un singur grup.
– Procesul de consens: Întreaga populație a planetei ar putea să se alăture procesului de consens în
cazul blockchain-ului public. În procesul de consens ce are loc in blockchain-ul privat si cel de
consorțiu pot lua parte doar persoanele cărora le este permis.
– Permisiunea de citre: Tranzacțiile înregistrate în blockchain-ul public, sunt vizibile tuturor
participanților, pe când în caMzul tranzacțiilor ce sunt înregistrate în blockchain-ul privat si în
blockchain-ul de consorțiu depinde , acestea putând fi publice sau private.
– Determinarea consensului:
1 – În cazul blockchain-ului public fiecare nod(participant) poate lua parte la procesul de consens.
2 – În cazul blockchain-ului de consorțiu doar un set selectat de nod-uri are responsabilitatea de a
valida blocul.
3 – În cazul blockchain-ului pivat, acesta este controlat de o singura organizație, astfel organizația
respectivă poate determina rezultatul final al consensului.
– Eficiența: Din cauza numărului mare de noduri prezente în blockchain-ul public, durata
propagării tranzacțiilor si a blocurilor este destul de mare. Ca și urmare, debitul tranzacțiilor este
limitat, iar latența este mare. Având mai puțini validatori , blockchain-ul de consorțiu si blockchain-
ul privat pot fi mult mai eficiente.
Blockchain-ul public este deschis publicului , astfel foarte mulți utilizator sunt atrași, iar
comunitățile sunt active. Zilnic apar noi blockchain-uri. Blockchain-ul de consorțiu poate fi folosit
pentru crearea de aplicații in mediul afacerilor.
3.1.4 Procesul de minare (Mining)
Procesul de minare reprezintă mecanismul ce permite securitatea centralizată într-un
blockchain. Minerii validează noile tranzacții, după care tot ei le înregistrează în registrul global
(blockchain-ul). Minerii concurează pentru rezolvarea unei probleme matematică dificilă care se
bazează pe un algoritm criptografic de hash. Rezolvarea problemei se numeste Proof-Of-
Work(PoW), acesta reprezentând dovada că un miner a petrecut mult timp si resurse pentru a
soluționa problema. Media minării unui bloc este de 10 minute.
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 10
Scopul procesului de minare este defapt găsirea unei valori pentru nonce ( definitia in
subcapitolul 3.1.1) din care să rezulte o valoare de hash a blocului mai mică decat nBits(ținta).
Singura cale prin care poate fi rezolvată această problmă matematică este prin verificarea fiecărei
soluții pentru a verifica corectitudinea, astfel că , pentru ca o valoare hash valida să fie creata pentru
un bloc, se vor încerca miliarde de valori nonce. Găsirea soluției nu necesită inteligență, dar
necesita o viteza de procesare mare. [https://whichblockchain.com/what-is-mining/ ,
https://dev.to/damcosset/blockchain-what-is-mining-2eod ]
Figura 3.6 Procesul de minare[4]
În Figura 3.6 este prezentat modul în care este găsită soluția problemei matematice.
Procesul de minare poate fi împărțit în două categorii: Minarea individuala si Minarea in
grup ( Pool Mining)
Minarea individuală (ilustrată în Figura 3.7) presupune că fiecare miner își pregătește
sistemul hardware după care începe procesul de minare. Cand o noua tranzacție are loc , toți minerii
din acea rețea blockchain primesc o problemă matematică. Sistemul fiecărui miner începe sa lucreze
la rezolvarea problemei iar primul miner care găsește soluția îi anunță pe ceilalți mineri că a găsit
soluția, iar aceștia o verifică pentru a evita validări false ale blocului. O dată ce soluția minerului
este verificată, acesta primește recompensa iar tranzacția este adăugată în blockchain.
Capitolul 1 Aparitia Tehnologei blockchain si a Criptomondelor 11
Figura 3.7 Minarea individuală [https://www.edureka.co/blog/blockchain -mining/]
Minarea în grup(Mining pool) este practicată de către doritorii să participe la procesul de
minare, dar care nu dețin destule resurse. Este format un grup de mineri numit Mining Pool.
Membrii acestui grup îsi combină resursele pentru a mina cu o viteză mult mai mare. Este similar
Minatului individual ,singura diferență fiind ca o dată ce soluția este găsită, recompensa este
împărțită membrilor grupului în funcție de cantitatea resurselor cu care au contribuit.
3.2 Ethereum Blockchain
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Acest capitol va avea rolul de a prezenta conceptele esențiale specifice domeniului în care se încadrează tema sistemului propus. În subcapitolele ce… [627103] (ID: 627103)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
