Sunteți pe pagina 1din 9

Registrul distribuit(ledger)

? Un registru distribuit(ledger) este un tip de baza de date care este


partajat, reprodus ?i sincronizat �ntre membrii unei re?ele. Registrul
distribuit �nregistreaza tranzac?ii, cum ar fi schimbul de mijloace fixe sau
date, �ntre utilizatorii re?elei.
? Utilizatorii re?elei iau decizii prin consens de actualizare a �nregistrarilor
din �ledger�. Nu exista implicarea niciunui mediator central sau ter?,
cum ar fi o institu?ie financiara sau un centru de compensare.
? Fiecare �nregistrare din registrul distribuit include o amprenta de timp ?i
o semnatura unica, astfel fac�nd registrul auditabil pentru toate
tranzac?iile din re?ea.
? Un framework pentru dezvoltarea de aplica?ii �n zona consensului sau a
serviciilor de �membership� de tip open source Hyperledger Fabric

Blockchain
? Reprezinta baza de date distribuita(nu exista un server central)
? Publica, neav�nd un de?inator.
? Continuu actualizata de orice utilizator.
? Securizata criptografic de fiecare utilizator
? Datele �n blockchain sunt imutabile
? Fiecare �nregistrare a bazei de date distribuite se nume?te bloc
? Fiecare nou bloc consta dintr-o familie de transac?ii care este
adaugata la sf�r?itul blockchain-ului.

Blockchain poate fi vazuta drept un registru public �n care toate


tranzac?iile sunt stocate sub forma unei secven?e lineare temporal
�nlan?uita de fi?iere numite block-uri.
? Lista de block-uri este nelimitata prin faptul ca noi blocuri pot fi
ata?ate �n coada ei.
? Tranzac?iile noi sunt �n mod constant procesate de �miner-i� �n
blocuri noi care sunt adaugate la sf�r?itul secven?ei ?i nu pot fi
niciodata modificate sau eliminate dupa ce au fost acceptate �n
re?ea.
? Implementarea criptografiei asimetrice ?i a algoritmului de consens
asigura securitatea ?i consisten?a

Anatomia unui block


? Un block este format dintr-un:
? Header(80 bytes), care include:
? Versiunea blocului
? Radacina arborelui Hash
? Amprenta-de-Timp � timpul curent in timp-universal(1-Ianuarie-1970).
? nBi?i- pragul ?inta pentru un block hash valid
? Nonce: un c�mp de 4 octe?i, care de obicei �ncepe cu 0 ?i cre?te pentru fiecare
calcul hash
? Block-ul hash parinte-o valoare hash de 256 de bi?i care indica blocul anterior.
? Corpul block-ului - este compus dintr - un contor de tranzac?ii ?i tranzac?iile
propriuzise.
? Numarul maxim de tranzac?ii pe care un bloc le poate con?ine depinde de
dimensiunea
blocului ?i dimensiunea fiecare tranzac?ie.
? Acestea sunt distribuite indirect prin radacina arborelui hash. Deoarece tranzac?
iile nu sunt
rulate direct, hashing-ul unui bloc cu 1 tranzac?ie expune acela?i efort ca ?i
hashing-ul unui
bloc cu 10.000 de tranzac?ii.

Semnatura Digitala
? Fiecare utilizator de?ine o pereche de chei una privata ?i una publica. Se
folose?te
cheia privata care va fi pastrata �n confiden?ialitate pentru a semna tranzac?iile.
Tranzac?iile semnate digital sunt difstribuite peste �ntreaga re?ea.
? Semnatura este utilizata �n doua faze: faza de semnare ?i faza de verificare.
? De exemplu, o utilizatoare Maria dore?te sa �l trimita un mesaj unui utilizator
Ion. �n
faza de semnare, Maria cripteaza datele ei cu cheia privata ?i �i trimite lui Ion
rezultatul criptat ?i datele originale. �n faza de verificare, Ion valideaza
valoarea cu
cheia publica a lui Maria. De aceasta maniera, Ion a putut verifica cu u?urin?a
daca
datele au fost sau nu schimbate.
? Algoritmul tipic de semnatura digitala folosit �n block-uri este cel de semnatura
digitala al curbei eliptice (ECDSA)
Principale caracteristici ale Blockchain z -Decentralizarea
? Descentralizarea-�n contextul clasic al tranzac?ionarii centralizate,
fiecare tranzac?ie trebuie sa fie validata de o structura centrala (cum ar
fi Banca Centrala) fapt ce conduce inevitabil la costuri ridicate pe
tranzac?ie precum ?i probleme legate de performan?a serverelor
centrale.
? �n opozi?ie cu abordarea centralizata a tranzac?ionarii existen?a unei
ter?e autorita?i nu mai este necesara �n cazul blockchain.
? Algoritmii de consens �n blockchain rezolva pro
z
Principale caracteristici ale Blockchain-Persisten?a
? Tranzac?iile pot fi validate rapid, iar cele respinse �n procesul de
validare nu ar trebui acceptate de �miner-ii� one?ti.
? Practic este foarte dificil sa ?tergem sau sa facem rollback la
tranzac?ii incluse �n blockchain.
? Block-urile care includ tranzac?ii invalide pot fi identificate imediat.
z
Principale caracteristici ale BlockchainAnonimitatea ?i Auditibilitatea
? Fiecare utilizator poate interac?iona cu blockchain-ul prin
intermediul unei adrese generate, care nu poate revela reala
identitate a utilizatorului.
? Datorita unor restric?ii interne blockchain nu poate garanta
pastrarea intimita?ii utilizatorului
? Blockchain-ul Bitcoin-stocheaza date despre utiliztor, balan?e
bazate pe modelul Unspent Transaction Output. Orice tranzac?ie
trebuie sa refere orice tranzac?ie trecuta ?i �necheltuita�.
Tranzac?ia poate fi u?or monitorizata .
z
Taxonomia sistemelor Blockchain
z
Clasificarea sistemelor Blockchain
? Sistemele actuale de blockchain se clasifica astfel:
? Blockchain public � toate �nregistrarile au caracter public ?i to?i
utilizatorii participa la procesul de stabilire al consensului.
? Blockchain privat � numai acele noduri care provin de la o anumita
organiza?ie le este permisa participarea la procesul de stabilire a
consensului.
? Blockchain asociat unui consor?iu � numai un grup de noduri
preselectate participa la stabilirea consensului.
z Determinarea consensului
? Sistemele centralizate impun controlul accesului, fapt ce conduce la stabilirea
unui nivel de �ncredere asupra celor care opereaza sistemul.
? Un blockchain este operat de persoane necunoscute ?i de par?i pentru care nu
putem realiza un nivel minim de �ncredere(nu stim daca este o persoana,
organiza?ie sau un robot care opereaza automat, sau orice altceva similar)
? Lipsa �ncrederii �n modul de operare al utilizatorilor blockchain este deosebit
de
importanta �n utilizarea "consensului". Deoarece orice entitate, poate trimite
informa?ii catre blockchain(adica poate sa adauge informa?ii �n baza de date),
este necesar ca operatorii distribui?i ai acestuia sa evalueze ?i sa cada de acord
asupra tuturor addendelor �nainte de a fi permanent �ncorporate �n blockchain.
Deoarece �ncrederea �n autor este minima, este vital ca toate informa?iile noi sa
fie revizuite ?i confirmate �nainte de a fi acceptate. Aceasta revizuire are drept
rezultat "consensul�.
z
Permisiunea Citirii
? Tranzac?iile �ntr-un Blockchain sunt vizibile utilizatorilor, �n timp ce pentru
un
Blockchain Privat sau de un Blockchain al Consor?iului depinde de un nivel de
control al accesului integrat �n protocol. Exista platforme dedicate pentru
Private Blockchain scalabile pentru pentru organiza?ii mari cum ar fi
MultiChain, Hyperledger ?i Chain.
? Pentru un Blockchain complet privat permisiunile de scriere sunt pastrate
centralizat de catre o singura organiza?ie. Op?iunile de citire pot fi publice sau
limitate �ntr-o masura arbitrara. Aplica?iile probabile includ gestionarea bazelor
de date, auditul etc. intern al unei singure companii, astfel �nc�t citirea �n
public
poate sa nu fie necesara �n multe cazuri, de?i �n alte cazuri este dorita
audibilitatea publica.
z
Imutabilitate
? Deoarece �nregistrarile sunt stocate pe un numar mare mare de
echipamente, este aproape imposibil sa se poata fi manipulate
tranzac?iile �ntr-un Blockchain Public.
? Nu acela?i lucru se poate spune daca ne referim la Blockchain-ul
Privat sau de Consor?iu, care pot fi manipulate datorita faptului ca
exista doar un numar limitat de participan?i.
z
Eficien?a
? Este nevoie de mult timp pentru a propaga tranzac?iile ?i blocurile
datorita, �n principal, numarului mare de noduri ale Blockchain-ului
public. Drept urmare debitul de tranzac?ionare este este limitat, iar
laten?a este ridicata.
? Cu mai pu?ine validari, Blockchain-ul de consor?ii ?i privat poate fi
mai eficient.

Proof-of-Work(PoW)
? Este o strategie de consens utilizata �n re?eaua Bitcoin.
? �ntr-o re?ea descentralizata, o �autoritate virtual� trebuie selectata pentru a
�nregistra tranzac?iile.
? Cea mai u?oara este selec?ia aleatorie.
? Selec?ia aleatoare este vulnerabila la atacuri. Daca un nod dore?te sa publice
un bloc de tranzac?ii, trebuie un volum mare de analiza(efort de calcul) pentru a
dovedi ca nodul nu este mali?ios.
? PoW � implica faptul ca fiecare nod al re?elei calculeaza o valoare hash a
antetului blocului. Antetul blocului con?ine un �nonce� ?i minerii ar schimba
frecvent �nonce� pentru a ob?ine valori hash diferite. Consensul presupune ca
valoarea calculata sa fie egala sau mai mica dec�t o anumita valoare data.
z
Proof-of-Work(PoW) [cont]
? C�nd un nod atinge valoarea ?inta, acesta va transmite blocul catre alte noduri
iar
toate celelalte noduri trebuie sa confirme reciproc corectitudinea valorii hash.
Daca blocul este validat, atunci al?i miner-i vor adauga acest nou bloc propriilor
blocuri.
? Nodurile care calculeaza valorile hash sunt numite �miner-i�, iar procedura PoW
este numita �minerit� �n Bitcoin.
? In re?ele descentralizate, este posibil ca blocurile valide sa poata fi generate
simultan atunci c�nd mai multe noduri gasesc �n acela?i timp un �nonce� potrivit.
Ca urmare, pot fi generate ramifica?iil.
? Este pu?in probabil ca doua ramifica?ii concurente sa genereze simultan acela?i
bloc.
? �n protocolul PoW, un lan? care devine mai lung este considerat drept unul
autentic.

2009-Satoshi Nakamoto, dezvolta Bitcoin , un �asset� digital fara �valoare


intrinseca� ?i fara un emitent sau gestionar central.
? Mai important dec�t aceasta este tehnologia care fundamenteaza acest produs
financiar, Blockchain, drept un instrument de distribuire a consensului(proof-
ofwork).
? Ether este o criptomoneda al carui blockchain este generat de platforma
ETHEREUM
? ETHEREUM este o stiva de tehnologii open source compatibila web 3.0(server
less architecture), care poate fi configurata drept un sistem de operare. OS este
una din numeroasele posibilita?i �n care poate fi configurat Ethereum. Poate fi
configurat ca o criptomoneda asociata unui blockchain, o platforma destinata
execu?iei de contracte smart etc.

Ethereum este o platforma software descentralizata care permite


scrierea ?i execu?ia de �contracte inteligente�(en. Smart Contracts) ?i
aplica?ii distribuite �ntr-un context computational �fault tolerant�,
securizat ?i fara posibilitate de a fi controlat de ter?e par?i. Platforma
implementeaza propria moneda virtuala, Ether. Platforma asociaza
un limbaj de programare (Turing complet) care ruleaza peste un
blockchain, ajut�nd arhitec?ii ?i dezvoltatorii sa dezvolte ?i sa publice
aplica?ii distribuite.
ETHEREUM blockchain este �n esen?a o ma?ina-stare bazata-pe-transac?ii (tcs. O
masina-stare
este o abstrac?ie bazata pe citirea unor serii de caractere ca input, care vor
conduce la trecerea
�ntr-o noua stare odata cu scrierea unor caractere �ntr-o banda de ie?ire ).

ESM(ETHEREUM STATE MACHINE)


1. Starea ini?iala din care porne?te ESM se nume?te �genesis state�, ma?ina este
�n aceasta stare �nainte ca orice tranzac?ie sa se produca.
2. C�nd o tranzac?ie este executata se realizeaza tranzi?ia �ntr-o alta stare.
Aceasta stare este un �point in time� asociat starii curente a platformei
Ethereum. O stare Ethereum caracterizeaza milioane de transac?ii.

Blocuri
� Tranzac?iile sunt grupate �n blocuri, iar fiecare bloc este conectat la cel
anterior
� Pentru a trece dintr-o stare �n alta este necesar ca transac?ia sa fie valida.
� Pentru a fi clasificata drept �valida� o transac?ie trebuie sa treaca printr-un
proces de
validare numit �minare�
�Minarea se realizeaza c�nd un grup de noduri(ex. calculatoare) consuma resurse
pentru
a crea un bloc de transac?ii valide
� Pentru ca un bloc sa fie integrat �n blockchain este necesar ca fiecare miner sa
furnizeze o demonstra?ie matematica drept garan?ie a validita?ii transac?iei de
tipul:
daca demonstra?ia exista atunci blocul trebuie sa fie valid
�Procesul se nume?te �proof of work�

Blockchain
Complet distribuita similar BTC
Avantaje:
� Puternic Securizata
� Transparenta
� Imutabila
Dezavantaje:
� Scalarea
� Performan?ele

Blockchain Ethereum
Blocurile se compun din trei elemente
� Lista transac?iilor
? Lista tuturor transac?iilor incluse �n bloc
� Header-ul blocului
?Un grup de 15 elemente
� Lista �Unchi�(en. Ommer List)
? Lista ce include toate blocurile �Unchi�

ETHER
? Fiecare �miner� care valideaza un nou bloc pentru blockchain este
recompensat cu un anumit volum de asset-uri digitale(digital tocken)
numit Ether
?Blockchain este un system transac?ional de puncte de procesare cu
partajarea-starii.
?Starea curenta este singura referin?a globala pe care toata lumea
trebuie sa o accepte.
?Av�nd multiple stari sistemul ar fi haotic pentru ca nu am putea
decide care stare a fost cea care este asociata transac?iei corecte.

Fork
� Generarea de cai multiple �n blockchain sta la baza apari?iei
fork-urilor.
� Apari?ia fork-urilor are efecte disruptive.(ex. 64 milioane
ether distribuite prin hacking au condus la reluarea de la o
stare anterioara atacului si splitarea Ethereum �n doua sisteme
paralele).
� Pentru a stabili calea valida Ethereum utilizeaza un protocol
numit GHOST(Greedy Heaviest Observed Subtree)
� Protocolul indica faptul ca va fi aleasa calea care a oferit cel
mai mare volum de calcul.

Dubla cheltuiala(Double spending)


�Cheltuiala dubla� reprezinta un atac �n care un volum dat de criptomonede
este transac?ionat de multiple ori. Exista c�teva modalita?i principale de a
efectua o dubla cheltuire:
? Sunt operate doua tranzac?ii conflictuale �n succesiune rapida �n re?eaua
criptomonedei. Aceasta se nume?te �race attac�
? Sunt create doua transac?ii - una care vizeaza victima ?i una prin care se
crediteaza atactorul. Se face o achizi?ie de asset-uri de la victima, se ob?in
bunurile �n baza ei apoi se executa transac?ia de autocreditare, �n intervalul
de validare al transac?iei cu victima.

ETHEREUM - Starea Globala


? ETHEREUM poate fi vazuta ca o ma?ina-stare pentru
distribuirea consensului distribuit �n care transac?iile
genereaza schimbare de �stare globala� cu modificarea
de?inerii asupra criptomonedei.
? Tranzi?iile de stare sunt influen?ate de regulile consensului,
permi?�nd tuturor participan?ilor convergen?a la o stare
comuna (consens) a sistemului, dupa ce mai multe blocuri
sunt minate.
z
Arborele Hash asociat transac?iilor A�D z
? Un arbore Hash sumarizeaza
toate transac?iile unui bloc prin
furnizarea unei amprente
digitale a �ntregului set de
transac?ii, astfel fac�nd
posibila verificarea transac?iilor
associate acelui bloc.
? Arborele se genereaza
bottom-up de la hash-urile
fiecarei transac?ii(en.
Transaction ID)
z
Radacini Merkle �n ETHEREUM
? Ethereum utilizeaza trei diferite Radacini Merkle(en.
Merkle Roots) �n fiecare bloc:
? Prima radacina este cea asociata familiei de
transac?ii din bloc.
? A doua radacina reprezinta starea
? A treia radacina este destinata veniturilor rezultate din
transac?ii

Componen?a transac?iilor(I)
? nonce: numarul de tranzac?ii trimise de expeditor.
? GasPrice: numarul de Wei pe care expeditorul este dispus sa �l
plateasca pe unitatea de gaz necesara pentru executarea
tranzac?iei.
? gasLimit: cantitatea maxima de gaz pe care expeditorul este
dispus sa o plateasca pentru executarea acestei tranzac?ii.
Aceasta suma este setata ?i platita �n avans, �nainte de
efectuarea oricarui calcul.
? To: adresa destinatarului. �ntr-o tranzac?ie care creeaza
contracte, adresa contului contractor nu exista �nca ?i este
folosita o valoare goala.
z
Componen?a Tranzac?iilor(II)
? value: cantitatea de Wei care urmeaza sa fie transferata de la expeditor la
destinatar. �n cadrul unei tranzac?ii care creeaza contracte, aceasta valoare
serve?te ca sold ini?ial �n cadrul contului contracte nou creat.
? v, r, s: utilizat pentru a genera semnatura care identifica expeditorul
tranzac?iei.
? init (exista doar pentru tranzac?iile care creeaza contracte): Un fragment de
cod EVM care este utilizat pentru a ini?ializa noul cont contractual. init este
rulat o singura data ?i apoi este aruncat. C�nd este ini?ial rulat init, acesta
returneaza corpul codului asociat contului
? data (c�mp op?ional care exista numai pentru apelurile de mesaje): datele
de intrare (adica parametrii) ale apelului pentru mesaje. De exemplu, daca
un contract inteligent serve?te ca serviciu de �nregistrare de domenii, un
apel la acel contract ar putea a?tepta c�mpuri de intrare, cum ar fi domeniul
?i adresa IP.
z
Tranzac?ia z
? Conform celor prezentate
anterior legat de "Conturi�:
tranzac?iile de tip �apeluri de
mesaje�, dar ?i tranzac?iile care
creeaza contracte - sunt ini?iate
de conturi aflate �n proprietate
externa ?i trimise �n blockchain.
Un alt mod de a g�ndi este ca
tranzac?iile sunt ceea ce pun �n
legatura lumea exterioara de
starea interna a Ethereum.

Blocuri Unchi/Ommer
? Un ommer este un bloc al carui parinte este acela?i cu parintele parintelui
blocului
curent.
? Din cauza modului �n care este construit Ethereum, timpul de generare a unui bloc
este mult mai mic(aprox. 15 secunde) comparativ cu Bitcoin (aprox. 10 minute).
Aceasta permite procesarea mai rapida a tranzac?iilor.
? Cu toate acestea, unul dintre dezavantaje este tratarea concurentei procesului de
minerit. Blocurile concurente sunt denumite "blocuri orfane" (adica blocuri minate
neincluse �n lan?ul principal).
? Scopul �blocurilor unchi� este de a sprijini recompensarea minerilor pentru
includerea blocurilor orfane. �Blocurile unchi� trebuie sa fie "valide�(cel mult ?
ase
genera?ii de la current).
? Blocurile unchi primesc o recompensa mai mica dec�t un bloc complet. Cu toate
acestea, exista �nca un stimulent pentru ca minerii sa includa blocuri orfane �n
blockchain ?i sa ob?ina recompensa.

InterPlanetary File System(IPFS)


� IPFS este un sistem de fisiere distribuit peer-to-peer care poate conecta
oricare doua echipamente de calcul cu acela?i system de fi?iere.(Juan
BENET)
� IPFS generalizeaza Merkle DAG, o structura de date care poate gestiona
sisteme de fi?iere versionate, blockchain-uri ?i chiar un �Permanent Web�
� IPFS combina un DHT(Distributed Hash Table), un schimb intens de blocuri
?i un spa?iu de nume auto-certificat.
� IPFS nu are niciun punct de e?ec, iar existen?a nodurilor nu implica rela?ii
de �ncredere
Concepte cheie
Similar modului �n care Bitcoin lucreaza, IPFS combina o serie de bune practici
care au
contribuit la succesul ideii de system P2P, dar �n acela?i timp �ncearca sa
limiteze
problemele care au facut ca multe dintre ele sa e?ueze(Tapestry).
1. Identificarea bazata pe con?inut cu con?inutul securizat; Rezolvarea loca?iilor
utiliz�nd
Distributed Hash Table (DHT)
2. Traficul de Block-uri bazat pe Bittorrent un peer-to-peer FDP(File Distribution
Protocol)
3. Optimizarea traficului de block-uri utilizand protocolul Bitswap
4. Merkle DAG (Directed Acyclic Graph) versionat-bazat pe orgaizarea fisierelor,
similar
sistemului de control al versiunilor Git.
5. Secuitate asigurata cu Self-Certification servere pentru nodurile de stocare.
Arhitectura IPFS.
Fisierele sunt stocate
distribuit, iar
DHT(Distributed Hash
Table), utilizeaza hash-ul
fisierului drept o cheie
asociata locatiei fisierului.
Odata ce locatia a fost
determiata, transferul se
realizeaza peer-to-peer ca
un transfer decentralizat.

Relatia cu Blockchain
� IPFS poate fi un sistem decentralizat, independent de fi?iere.
� Acesta poate fi complementar sistemului centralizat bazat pe HTTP.
� Am discutat despre aceasta �n contextul sistemelor blockchain, deoarece
poate avea un rol important in stocare descentralizata pentru aplica?ii
blockchain associate cu volume mari de date pentru care va stoca numai
hash-ul pe blockchain.
� In this case instead of a centralized store, IPFS can be the decentralized
store that work in tandem with the decentralized ledger technology of the
blockchain to create a powerful solution for many storage-rich business
usecases.
� In locul unei stocari centralizate, IPFS poate stoca descentralizat �n tandem
cu tehnologia descentralizata blockchain pentru a crea o solu?ie economic
acceptabila.

Un contract smart (din eng. contract inteligent) este un program pe calculator


destinat sa
faciliteze, verifice, sau sa aplice negocierea sau executarea unui contract.
Contractele smart
permit executarea de tranzac?ii credibile fara par?i ter?e care sa valideze
tranzac?iile. Aceste tranzac?ii sunt publice ?i ireversibile.[1]
Contractele smart au fost propuse pentru prima data de catre Nick Szabo �n 1994.[2]
Sus?inatorii contractelor smart sus?in ca mai multe tipuri de clauze contractuale
pot fi auto-executate ?i auto-aplicate
par?ial sau complet. Scopul contractelor smart este de a oferi securitate
superioara contractelor tradi?ionale ?i de a reduce
riscurile ?i costurile de tranzac?ie asociate cu aceste contracte. Mai multe
criptomonede au implementat diverse tipuri de contracte smart.

S-ar putea să vă placă și