Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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.
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.
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.