Realizarea securit at ,ii cibernetice folosind Blockchain [622005]
Realizarea securit at ,ii cibernetice folosind Blockchain
Iorgulescu Tiberiu
January 28, 2018
1 Rezumat
^In acest articol ^ mi propun s a analizez impactul adus de tehnologia Blockchain ^ n contextul
actual al securit at ,ii cibernetice. Pentru aceasta, voi descrie mai ^ nt^ ai starea curent a a securit at ,ii
cibernetice s ,i problemele cu care se confrunt a. Deoarece tehnologia blockchain r aspunde doar la
o parte din problemele securit at ,ii cibernetice, voi descrie r aspunsul acestei tehnologii la ecare
dintre aceste probleme specice. De asemenea, voi analiza principalele aplicat ,ii ^ n care este
folosit a aceast a tehnologie.
2 Introducere
^Intr-o privire de ansamblu, securitatea informat ,iilor are trei dimensiuni[8]: condent ,ialitatea ,
integritatea s,idisponibilitatea .
Condent ,ialitatea se refer a la prevenirea accesului neautorizat la informat ,ii. Aceasta este
impus a, ^ n general, e prin comunicarea pe un canal sigur, ^ n care p art ,i tert ,e nu au acces, e
prin criptarea informat ,iei, astfel ^ nc^ at chiar dac a poate interceptat a comunicat ,ia, informat ,ia
nu poate obt ,inut a sau poate obt ,inut a mult prea greu f ar a a cunoas ,te un secret a priori.
Integritatea const a ^ n imposibilitatea de a modica o informat ,ie f ar a ca destinatarul s a re-
alizeze c a informat ,ia nu mai este conform a cu originalul. Prin comunicarea pe un canal sigur,
aceasta este impus a ^ n mod automat, ^ n lipsa erorilor care pot ap area pe canalul de comunicat ,ie.
Astfel, este sucient a o vericare pentru erori, folosind metodele cunoscute ca checksum ,cyclic
redundance check (CRC) , codul Hamming etc. Pe un canal nesigur se folosesc de obicei rezu-
mate1ale informat ,iei. Acest rezumat depinde at^ at de informat ,ia a c arei rezumat se face, c^ at
s,i de un secret care trebuie s ,tiut de p art ,ile care comunic a s ,i de nimeni altcineva, astfel ^ nc^ at ^ n
urma unor modic ari s a nu poat a recalculat un rezumat valid de c atre un atacator pe canalul
de comunicat ,ie care a modicat informat ,ia original a.
Disponibilitatea const a ^ n securizarea informat ,iei la atacuri de tip denial of service , care
au ca scop blocarea accesului la informat ,ii inclusiv a celor care sunt autorizat ,i s a le acceseze.
Rezistent ,a la astfel de atacuri este realizat a at^ at printr-o proiectare a accesului la informat ,ie
astfel ^ nc^ at s a nu e permis a blocarea resurselor cu o cerere mult prea mare, dar s ,i prin ltrarea
unui num ar prea mare de cereri s ,i limitarea acestora la condit ,iile^ n care se poate r aspunde la ele.
Securitatea informat ,iilor nu este un lucru nou. ^In comunicarea direct a, prin limbajul vorbit
sau cel al trupului, pentru a transmite informat ,ii condent ,iale este sucient s a se ia m asuri
de precaut ,ie pentru ca nimeni din proximitate s a nu poat a vedea sau auzi mesajul. Odat a
cu aparit ,ia comunic arii indirecte, c^ and informat ,iile au ^ nceput s a e transmise diferite medii,
^ n special prin aparit ,ia scrisului ca mediu de comunicare, s-au dezvoltat diferite metode de
securiza informat ,ia. De exemplu, una dintre primele dovezi ale folosirii criptograei se a
a ^ n
cartea Ieremia[12], unde este folosit cifrul Atbash pentru criptarea cuv^ antului Babilon .
1eng. digest
1
Cu toate acestea, nevoia de securizare a informat ,iilor a ^ nceput s a capete o important , a
deosebit a ^ n ultimul secol prin dezvoltarea ^ ntr-un ritm foarte alert a telecomunicat ,iilor, care
cel mai adesea au loc pe canale nesigure. De exemplu, ^ n Internet, pentru ca informat ,ia s a
ajung a la destinat ,ie, ea trece printr-un num ar de noduri intermediare, ^ n care informat ,ia este
vulnerabil a la interceptare.
Securitatea cibernetic a are ca scop impunerea respect arii unora sau a tuturor componen-
telor care stau la baza securit at ,ii informat ,iei (condent ,ialitate, integritate s ,i disponibilitate), ^ n
funct ,ie de necesitatea acestora, ^ n mediul virtual, care subsumeaz a toate comunicat ,iile pe canal
electronic.
3 Tehnologia Blockchain
3.1 Problema
Problema securit at ,ii cibernetice are ca principal a t ,int a informat ,iile critice, care ar putea aduce
benecii atacatorilor, cum ar date personale ale utilizatorilor sau date despre tranzact ,ii ban-
care. Deoarece tehnologia Blockchain are aplicat ,ii ^ n mod special ^ n domeniul tranzact ,iilor
monetare, ^ n continuare atent ,ia se va ^ ndrepta cu prec adere spre acest domeniu.
Tranzact ,iile monetare sunt destul de simplu de f acut^ n mediul zic, deoarece valuta det ,inut a
de cump ar ator este transferat a v^ anz atorului ^ n schimbul unui produs sau serviciu. ^In mediul
virtual, ^ ns a, apar mai multe probleme, ^ n special din cauza faptului c a este foarte us ,or de
multiplicat o anumit a informat ,ie, deoarece aceasta este reprezentat a doar printr-un s ,ir de bit ,i
care pot copiat ,i foarte us ,or, spre deosebire de un obiect zic, care pentru multiplicare necesit a
cunoas ,terea tehnologiei de fabricare s ,i, poate, chiar o investit ,ie care s a fac a posibil a folosirea
tehnologiei. Astfel, dac a valuta ar det ,inut a de ecare utilizator ^ n parte ^ n mediul virtual, as ,a
cum se ^ nt^ ampl a ^ n cazul real (^ n mediul zic), ar foarte us ,or ca cineva s a ^ s ,i multiplice banii
pe care ^ i det ,ine.
Aceast a problem a este denumit a ^ n literatura de specialitate problema dublei cheltuieli2s,i
^ n mod clasic este rezolvat a printr-o parte tert , a de ^ ncredere care mediaz a tranzact ,iile dintre
client ,i.^In acest fel pot privite tranzact ,iile bancare online, ^ n care b ancile sunt tert ,ii de
^ ncredere care det ,in fondurile ec arui client s ,i nu permit folosirea aceloras ,i fonduri ^ n mai multe
direct ,ii. Neajunsul acestei solut ,ii este faptul c a exist a un singur punct de control, iar dac a
acesta este atacat cu succes, tot sistemul va compromis. De asemenea, din punct de vedere
al disponibilit at ,ii, un punct de control este foarte vulnerabil la atacuri de tip DDoS3. O a treia
problem a cu aceast a solut ,ie pe baza unei p art ,i tert ,e de ^ ncredere este nevoia de a ^ ncredint ,a date
personale acestei p art ,i care mediaz a tranzact ,iile. Odat a cu r asp^ andirea tehnologiei, protect ,ia
datelor private reprezint a o problem a din ce^ n ce mai actual a, iar^ ncredint ,area datelor personale
unui singur punct de control poate conduce la scurgeri de informat ,ii condent ,iale4.
3.2 Solut ,ia
Ca r aspuns la aceste probleme a venit tehnologia blockchain , care este o solut ,ie distribuit a care
poate verica toate tranzact ,iile^ ntr-un mod sigur at^ ata timp c^ at peste jum atate din participant ,ii
la aceast a ret ,ea distribuit a sunt utilizatori corect ,i.
Aceast a solut ,ie a fost descris a init ,ial ^ ntr-un articol[11] semnat de Satoshi Nakamoto s ,i
foloses ,te o ret ,ea descentralizat a ( peer-to-peer ) ^ n care rezultatul adev arat (^ n care se pune
2eng. double-spending problem
3Distributed Denial of Service
4De exemplu, atacul asupra Snapchat din 2014 care a rezultat ^ n lansarea c atre public a unui num ar mare de
poze private ^ mpreun a cu numerele de telefon de la care proveneau
2
^ ncrederea) este dat de majoritatea care det ,ine cea mai mare putere de calcul5.
Aplicat ,ia la care face direct a aplicat ,ie articolul este Bitcoin , un sistem de pl at ,i electronice
folosind o moned a virtual a care ^ ncearc a s a simuleze aurul din lumea real a, ^ n sensul ^ n care des ,i
acesta nu are o valoare intrinsec a, se obt ,ine ^ n urma unui efort (minerit)[4] s ,i poate folosit ca
moned a de schimb ^ n urma unor produse sau servicii.
^In cele ce urmeaz a, va prezentat a tehnologia blockchain ^ n varianta ^ n care a fost init ,ial
descris a de Satoshi Nakamoto. Des ,i au ap arut dup a aceasta multe alte versiuni care au dorit s a
aduc a diferite schimb ari la metoda de baz a, substratul este comun s ,i este sucient a ^ nt ,elegerea
modului ^ n care lucreaz a Bitcoin pentru a putea extinde apoi cunos ,tint ,ele s ,i la celelalte variante
construite pe baza acestuia.
3.3 Principii de baz a
Blockchain-ul este un lant ,de blocuri care cont ,in informat ,ii despre toate tranzact ,iile efectuate
de utilizatori. Dac a la un moment dat apare o bifurcat ,ie ^ n lant ,, ^ n care mai mult ,i competitori
vor s a continue ^ n mod diferit un lant ,, varianta valid a a lant ,ului este varianta care cont ,ine lant ,ul
cel mai lung6. Astfel, starea sistemului, versiunea valid a, adev arul , este determinat exclusiv de
informat ,ia stocat a ^ n cel mai lung lant ,, pentru c a mult ,imea tranzact ,iilor validate determin a
starea de fapt a ec arui utilizator al ret ,elei s ,i a averii ec aruia.
Blockchain-ul are la baz a o ret ,eapeer-to-peer , ^ n care orice participant care dores ,te s a
efectueze o tranzact ,ie r asp^ andes ,te un mesaj cu respectiva tranzact ,ie tuturor nodurilor din ret ,ea,
sau unui num ar sucient de mare de noduri. Astfel, ecare nod (care mai este numit s ,iminer )
va obt ,ine un num ar de tranzact ,ii pe care le grupeaz a ^ ntr-un as ,a numit bloc. Formarea acestui
bloc necesit a resurse de calcul destul de mari7, astfel ^ nc^ at toate nodurile se a
a ^ n competit ,ie
pentru a primul care reus ,es,te s a construiasc a un bloc nou. De asemenea, noul bloc trebuie
s a e pus ^ n continuarea unui lant ,de blocuri deja existent, deci datele noului bloc depind de
datele existente ^ n blocul precedent (care la r^ andul s au este dependent de datele existente ^ n
blocul precedent s ,.a.m.d). ^In momentul ^ n care un bloc nou este construit de un nod, acesta este
trimis tututor celorlalte noduri pentru a ad augat la lant ,.^In aceste condit ,ii, dac a blocul este
^ ntr-adev ar valid (vezi Sect ,iunea 3.4), toate nodurile trebuie s a adauge noul bloc s ,i sa continue
construct ,ia unui nou bloc ^ n continuarea acestui bloc care tocmai a fost primit. Motivul pentru
care nodurile nu continu a s a lucreze la blocul anterior noului bloc primit este faptul c a este
considerat valid lant ,ul cel mai lung. Astfel, dac a se continu a lucrul la un bloc mai vechi, lant ,ul
^ n care acesta ar ultimul bloc este cel mai probabil un lant ,mai scurt, iar toate celelalte noduri
^ l vor considera invalid, deci orice recompens a primit a ^ n urma construirii acestui bloc este de
asemenea nul a.
3.4 Construirea unui bloc
Deoarece blocul se a
a la baza construirii unui blockchain, felul ^ n care acesta este construit
are o important , a deosebit a. F ar a a intra ^ n detalii care t ,in de o anumit a implementare, blocul
cont ,ine o list a de tranzact ,ii valide (semnate corespunz ator de cel care efectueaz a tranzact ,ia),
care sunt grupate s ,i peste care este efectuat un rezumat. De asemenea, blocul cont ,ine s ,i rezu-
matul blocului anterior, astfel ^ nc^ at s a se poat a verica dependent ,a direct a a noului bloc de
locul anterior.
5Aceast a metod a se mai numes ,te s ,iproof-of-work (PoW), spre deosebire de proof-of-stake (PoS). Mai multe
detalii la Sect ,iunea 3.7
6Lant ,ul cel mai lung se stabiles ,te nu neap arat prin num arul de blocuri pe care le cont ,ine, ci prin dicultatea
de a construi acest lant ,
7pentru a respecta denit ,iadestul de mari trebuie ca timpul necesar pentru construi un bloc valid s a e mult
mai mare dec^ at timpul necesar pentru a verica validitatea unui bloc
3
Aceste informat ,ii ar ^ ns a foarte us ,or de obt ,inut, deci nu ar respectat a condit ,ia ca
blocurile s a e sucient de greu de construit pentru a nevoie de resurse sucient de mari de
calcul pentru a primul care descoper a un bloc nou. De aceea, pentru a introduce dicultate
^ n construirea de noi blocuri, la bloc mai trebuie ad augat un num ar, numit nonce , care s a re-
specte proprietatea ca rezumatul ^ ntregului bloc, incluz^ and acest num ar, s a cont ,in a un anumit
num ar de bit ,i de 0 la nalul semn aturii. Problema este explonent ,ial mai grea cu c^ at num arul de
zero-uri necesar este mai mare. Astfel, ecare nod din ret ,ea va ^ ncerca s a caute numere pentru
a primul care descoper a un num ar care rezult a ^ ntr-un bloc valid , deci a c arui semn atur a s a
cont ,in a un num ar de zero-uri init ,iale corespunz ator.
^In acelas ,i timp, ceea ce face aceast a metod a una care s a dea tuturor nodurilor ( minerilor ) o
s,ans a proport ,ional a cu puterea lor de calcul este faptul c a ecare nod are un bloc diferit pentru
care trebuie s a g aseasc a un nonce corespunz ator, deci o c autare liniar a nu ar dezavantaja nici
pe cei mai ^ ncet ,i mineri. Diferent ,a dintre blocurile pentru care se ^ ncearc a g asirea acestui nonce
const a, pe de o parte, ^ n faptul c a este posibil ca tranzact ,iile incluse ^ n bloc s a e diferite de
la un bloc la altul (tranzact ,iile sunt transmise dup a metoda best eort , deci nu ajung toate
neap arat la tot ,i), dar mai ales deoarece exist a o tranzact ,ie special a pe care ecare miner o face
c atre sine (vezi Sect ,iunea 3.5), care va schimba semn aturile chiar a dou a blocuri care cont ,in
aceleas ,i tranzact ,ii culese din ret ,ea.
O ment ,iune care merit a f acut a legat de construirea unui bloc nou este faptul c a ad augarea
unui num ar mai mare de tranzact ,ii nu ^ ncetines ,te cu nimic c autarea unui nonce corespunz ator,
deoarece rezumatul blocului se face doar peste un rezumat al tuturor tranzact ,iilor8.
3.5 Recompensarea minerilor
Recompensele minerilor vin^ n general din dou a direct ,ii. Pe de o parte, ecare bloc nou construit
aduce o recompens a pe care minerul s ,i-o ofer a singur prin includerea unei tranzact ,ii speciale,
care nu are surs a, dar are ca destinat ,ie minerul (sau pe oricine dores ,te minerul care construies ,te
blocul). Aceast a recompens a are, deci, efect numai atunci c^ and minerul reus ,es,te s a constru-
iasc a primul blocul, s a ^ l trimit a celorlalt ,i mineri s ,i, astfel, acest bloc s a fac a parte din lant ,ul
principal. Des ,i aceasta s-ar putea s a nu se ^ nt^ ample pentru multe blocuri, statistic, num arul
de blocuri construite de un miner ar trebui s a e proport ,ional cu puterea sa de calcul. De
asemenea, recompensa are o valoare predeterminat a, care depinde de indicele blocului curent
fat, a de ^ nceputul lant ,ului9(altfel, ecare miner s-ar putea recompensa dup a bunul plac). Dac a
un miner nu ^ s ,i ofer a o valoare corespunz atoare, blocul s au nu va inclus ^ n lant ,chiar dac a
este primul creat, deoarece nu este considerat valid de c atre ceilalt ,i mineri.
A doua surs a de venit a minerilor sunt tranzact ,iile primite, care de multe ori pl atesc o tax a
minerului care ^ i va include tranzact ,ia ^ ntr-un bloc valid. Aceste taxe sunt la latitudinea celui
care efectueaz a tranzact ,ia, ^ ns a cu c^ at ofer a o tax a mai mare minerilor, cu at^ at tranzact ,ia are
prioritate mai mare pentru a inclus a ^ ntr-un bloc de c atre mineri (deoarece minerii pot alege s a
includ a ^ ntr-un bloc ce tranzact ,ii vor) s ,i, deci, tranzact ,ia va mai rapid a. Deoarece recompensa
pentru ecare bloc nou scade ^ n timp, aceasta va deveni principala surs a de venit a minerilor.
3.6 Rezistent ,a la atacuri
Pornind de la problema de la care a pornit solut ,iablockchain , s,i anume problema dublei cheltu-
ieli, voi descrie ^ n cele ce urmeaz a c^ at de eciente sunt atacurile de acest tip.
8se folosesc arbori Merkle , iar ^ n semn atura blocului este inclus a numai r ad acina Merkle
9la un anumit num ar de blocuri, se ^ mplines ,te o epoc a , iar recompensa pentru ecare bloc se ^ njum at at ,es,te,
pentru a diminua in
at ,ia
4
Pentru a putea realiza un astfel de atac, trebuie efectuat a o tranzact ,ie care s a e validat a de
v^ anz ator, iar apoi trebuie realizat a o alt a tranzact ,ie pe un lant ,paralel (deoarece pe acelas ,i lant ,
nu vor putea avea loc dou a tranzact ,ii care s a aib a ca surs a aceleas ,i fonduri ale unei persoane,
dar destinatari diferit ,i), aceast a a doua tranzact ,ie trebuie s a duc a aceleas ,i fonduri c atre alt
v^ anz ator, sau chiar c atre portofelul personal, iar acest lant ,paralel trebuie s a ^ ntreac a ^ n dimen-
siune lant ,ul original pentru ca prima tranzact ,ie s a e invalidat a (des ,i produsul sau serviciul a
fost obt ,inut, deoarece init ,ial a fost validat a tranzact ,ia de c atre v^ anz ator).
Dac a prima tranzact ,ie a fost inclus a ^ ntr-un bloc ^ n lant ,, exist a, cu sucient a putere de
calcul, s ,ansa ca dou a blocuri consecutive s a e calculate ^ ntr-un lant ,paralel ^ nainte ca al doilea
bloc s a e calculat pe lant ,ul principal. Problema const a ^ n faptul c a pentru lant ,ul principal par-
ticip a toat a ret ,eaua, pe c^ and pe lant ,ul paralel particip a numai atacatorul. Dac a este ment ,inut a
premisa c a atacatorii nu det ,in mai mult de 50% din puterea de calcul a ret ,elei, cu sunt calculate
mai multe blocuri pe lant ,ul principal, timpul necesar atacatorului pentru a ^ ntrece acest lant ,
cres ,te exponent ,ial.
Astfel, pentru a limita s ,ansele de reus ,ita ale unui astfel de atac, dac a v^ anz atorul vrea s a
e sigur de o tranzact ,ie, acesta trebuie s a as ,tepte un num ar de blocuri ad augate la lant ,dup a
blocul care cont ,ine tranzact ,ia sa. ^In general, dup a un num ar de 3 blocuri ad augate la un lant ,,
informat ,iile din bloc sunt considerate sigure, deoarece este foarte greu pentru un atacator s a
calculeze mai mult de 3 blocuri ^ n avans fat , a de lant ,ul principal.
O problem a care a ap arut de cur^ and a fost creat a prin dezvoltarea metodelor de minerit.
Dac a la ^ nceput era sucient a utilizarea calculatoarelor personale, ^ ntre timp s-a trecut la
folosirea pl acilor video dedicate pentru astfel de calcule, deoarece erau mult mai eciente la
raportul dintre recompense s ,i electricitatea consumat a, iar apoi de la pl aci video dedicate s-a
trecut la circuite integrate specice pentru astfel de calcule ( ASIC10). Deoarece nu oricine ^ s ,i
permite folosirea unor astfel de dispozitive pentru minerit, a ap arut problema concentr arii unei
mari p art ,i din putere de calcul ^ n m^ ainile c^ atorva companii mari care se ocup a cu as ,a ceva.
Problema a fost diminuat a prin metode mai noi de construire a blocurilor, cum este cea folosit a
deEthereum11, care face algoritmul mult mai dependent de memorie[7], astfel ^ nc^ at folosirea
mijloacelor rapide de calcul folosite de ASIC nu mai sunt suciente pentru a ^ mbun at at ,i cu
mult ecient ,a calculelor. O alt a solut ,ie care ar putea implementat a pe viitor tot ^ n ret ,eaua
Ethereum este utilizarea metodei proof-of-stake ^ n favoarea metodei proof-of-work (pentru mai
multe detalii, vezi Sect ,iunea 3.7).
De asemenea, pentru a diminua posibilitatea unui astfel de atac, este o practic a bun a s a se
ofere taxe pe tranzact ,ii sucient de mari astfel ^ nc^ at c^ as ,tigul unui participant care det ,ine putere
de calcul s a e comparabil ^ n cazul unui atac cu c^ as ,tigul proces arii unui num ar mare de blocuri
^ n mod cinstit.
3.7 Proof of Work vs Proof of Stake
Conceptul de Proof of Work se refer a la dovada corectitudinii unui rezultat ^ n funct ,ie de c^ at a
putere de calcul a fost folosit a. Aceasta este folosit a ^ n prezent ^ n blockchain-ul din ret ,eaua
Bitcoin , deoarece lant ,ul valid este cel ^ n care s-a depus cel mai mult efort pentru calcularea
unor blocuri valide.
Din cauza dezvolt arii unor centre mari de calcul, s-a ^ naintat ideea ^ nlocuirii Proof of Work
cuProof of Stake , ^ n care ^ ncrederea este acordat a participant ,ilor ^ n funct ,ie de averea pe care
aces ,tia o au ^ n valuta ret ,elei respective, ceea ce aduce o protect ,ie mai mare fat , a de centralizarea
ret,elei. Totus ,i, aplicarea ^ n mod brut a acestei solut ,ii poate conduce la anumite probleme prin
faptul c a poate s a devin a mai ecient pentru un miner s a voteze pe toate lant ,urile paralele care
10Application Specic Integrated Circuit
11https://www.ethereum.org/
5
se formeaz a, ^ n loc s a lucreze numai pe cel mai ^ naintat, as ,a cum este cel mai ecient ^ n metoda
PoW (vezi sect ,iunea 3.6), ceea ce ar putea afecta prevenirea problemei dublei cheltuieli[6]. Pen-
tru rezolvarea acestei probleme, au fost g asite dou a posibile solut ,ii.
Prima solut ,ie este denumit a Slasher s,i penalizeaz a utilizatorii dac a contribuie cu blocuri la
mai multe lant ,uri ^ n acelas ,i timp. ^In cazul ^ n care un participant al ret ,elei este prins c a a validat
blocuri din lant ,uri paralele, acestuia i se ia recompensa pentru acele blocuri, iar 33% din c^ as ,tig
revine participantului care a descoperit aceast a neregul a. Aceast a solut ,ie are ^ ns a neajunsurile
ei, deoarece minerii trebuie s a e frecvent conectat ,i la ret ,ea, iar dac a 25 din 30 mineri asignat ,i
consecutiv s a valideze blocuri coopereaz a la un atac, atunci este posibil ca aces ,tia s a poat a sim-
ula o majoritate s ,i s a efectueze o dubl a cheltuial a. Aceast a problem a apare ca urmare a faptului
c a validatorii pentru blocuri trebuie cunoscut ,i cu mult timp ^ nainte. Dac a aceste riscuri sunt
acceptabile, solut ,ia este una viabil a.
A doua solut ,ie este penalizarea particip arii ^ ntr-un lant ,invalid. Aceast a abordare este oare-
cum similar a cu cea de PoW, unde penalizarea particip arii la un lant ,gres ,it este implicit a.
Aceast a abordare aduce un risc mai mare minerilor care, f ar a intent ,ie, este posibil s a nu
minat pe lant ,ul c^ as ,tig ator atunci c^ and apar bifurcat ,ii, ^ ns a pe termen lung aceste riscuri sunt
diminuate. Astfel, avantajul metodei este faptul c a validatorii nu trebuie cunoscut ,i cu mult
timp ^ nainte.
Din punct de vedere al impactului asupra mediului, Proof of Stake are avantajul c a nece-
sit a mult mai put ,ine resurse pentru a produce blocuri, deci este mai ecient pentru mediul
^ nconjur ator. De exemplu, metoda Slash consum a cu aproximativ 90% mai put ,in a energie
(ret ,elele PoW ale Bitcoin sau Ethereum folosesc aproximativ energie electric a ^ n valoare de
$1M[6], dar nis ,te ret ,ele de tip PoS ar putea consuma cu 95-99% mai put ,in a energie[9]).
3.8 Limit ari
3.8.1 Valabilitate post-cuantic a
La momentul actual, cele mai populare implement ari de blockchain folosesc algoritmi crip-
tograci siguri pentru generarea semn aturilor (ECDSA), dar aces ,ti algoritmi care se bazeaz a pe
curbe eliptice, des ,i sunt considerat ,i dicil de spart pe calculatoarele existente, ar putea spart ,i
relativ us ,or cu un calculator cuantic folosind algoritmul lui Shor[13]. ^Inc a nu se cunosc imple-
ment ari sucient de bune pentru astfel de calculatoare, dar este foarte posibil ca algoritmi care
stau la baza acestei tehnologii s a devin a redundant ,i odat a cu aparit ,ia calculatoarelor cuantice
s,i, deci, s a necesite schimb ari majore ^ n implementarea lor.
3.8.2 Anonimitate
Des ,i exist a posibilit at ,i de a face utilizatorii ret ,elei mult mai greu de identicat, implement arile
curente nu aloc a o foarte mare important , a acestui fapt[3]. Astfel, din cauza faptului c a toate
tranzact ,iile sunt publice, dac a se cunosc destinatarii anumitor tranzact ,ii, se pot urm ari apoi
celelalte tranzact ,ii care au loc legate de contul respectiv.
Una dintre solut ,iile la aceast a problem a sunt solut ,ii denumite external mixer care produc
diversiuni ^ n
uxul tranzact ,iilor s ,i m aresc anonimitatea participant ,ilor. O alt a solut ,ie ar
folosirea mai multor adrese sau a mai multor portofele electronice pentru ca activit at ,ile unei
persoane s a nu e legate de o singur a adres a ^ n ret ,ea.
6
4 Aplicat ,ii
^In aceast a sect ,iune voi analiza 3 aplicat ,ii ale tehnologiei blockchain s,i inovat ,iile pe care le-a adus
ecare: Bitcoin , promotorul acestei tehnologii, Ethereum , care se bazeaz a pe Bitcoin , dar aduce
un ^ ntreg arsenal de noi posibilit at ,i prin EVM (vezi Sect ,iunea 4.2.1) s ,iHyperledger Fabric , care
schimb a destul de mult abordarea acestei tehnologii.
4.1 Bitcoin
Bitcoin12este promotorul monedelor virtuale distribuite s ,i ^ nc a det ,ine cea mai mare piat , a de
capital dintre acestea (conform Coin Market Cap13).
Articolul ^ n care se propunea sistemul Bitcoin a fost publicat de Satoshi Nakamoto ^ n anul
2008, pe 31 octombrie, urm^ and ca la ^ nceputul anului 2009 s a e lansat a s ,i prima implementare
a acestui sistem. Primul bloc construit poart a numele de genesis block s,i nu are nicio referint , a
spre un bloc anterior.
4.1.1 Reprezentarea unei monede
Monedele sunt reprezentate de fapt prin tranzact ,ii. Astfel, starea valorii unui client este deter-
minat a exclusiv de tranzact ,iile care au avut adresa sa ca destinatar sau ca surs a. Astfel, averea
unui client este dat a de suma valorilor care au intrat ^ n cont minus suma valorilor care au ies ,it
din cont. Astfel, monedele unui client sunt reprezentate chiar de tranzact ,iile care au avut loc
spre un anumit client, dar care n-au fost ^ nc a tranzact ,ionate mai departe.
4.1.2 Reprezentarea unei tranzact ,ii
Se poate pune ^ ntrebarea: dac a un client a avut multe tranzact ,ii mici, cum poate s a fac a o
tranzact ,ie mare mai departe? Dar dac a a primit ^ ntr-o tranzact ,ie o sum a mare de bani, cum
poate s a trimit a suma mai departe ^ n cantit at ,i mai mici? Sau, cu alte cuvinte, cum se poate
obt ,ine granularitatea monedelor, dac a acestea sunt reprezentate prin tranzact ,ii?
Aceast a granularitate este obt ,inut a prin faptul c a ecare tranzact ,ie are o list a de intr ari s ,i
o list a de ies ,iri. Pentru ca tranzact ,ia s a e valid a, trebuie ca lista de intr ari (mai mult ,i bani
provenit ,i din foste tranzact ,ii) s a cont ,in a o sum a mai mare sau egal a cu suma ies ,irilor (sume care
s a ajung a la divers ,i destinatari). Astfel, dac a un client a primit prin mai multe tranzact ,ii mici
bani, acesta poate face o tranzact ,ie mare c atre un client prin ad augarea tuturor tranzact ,iilor
mici la intr ari s ,i construirea unei ies ,iri cu destinatarul. De asemenea, dac a utilizatorul a primit
^ ntr-o singur a tranzact ,ie un num ar mare de monede virtuale, pentru a face o tranzact ,ie mai
mic a, acesta va pune tranzact ,ia mare la intrare s ,i va scoate dou a tranzact ,ii la ies ,ire: una cu
pret ,ul pe care vrea s a ^ l pl ateasc a destinatarului, iar cealalt a cu restul, care are ca destinatar
propriul s au portofel.
Aceste tranzact ,ii sunt semnate de sursa tranzact ,iei cu ajutorul cheii private, pentru a putea
validate apoi cu cheia public a. De asemenea, implementarea Bitcoin permite implementarea
unor condit ,ii mai complexe ^ n care s a aib a loc transferul, de exemplu livrarea sumei dup a un
anumit timp. Aceste condit ,ii sunt realizate prin nis ,te script-uri care sunt implementate ^ ntr-
un limbaj de programare bazat pe stiv a, asem an ator limbajului Forth [5]. Acest limbaj nu este
complet Turing , as ,a cum este, spre exemplu, limbajul folosit ^ n tranzact ,iile pe ret ,eaua Ethereum
(vezi Sect ,iunea 4.2.1).
4.1.3 O problem a controversat a: dimensiunea maxim a a blocurilor
Din cauz a c a ecare nod trebuie s a verice toate nodurile valide, este posibil s a se ^ ncerce un
atac de tip denial of service prin inundarea ret ,elei cu blocuri mari invalide. Din aceast a cauz a,
de exemplu^ n Bitcoin, Satoshi Nakamoto a ad augat o limit a de 1MB pentru ecare bloc. Totus ,i,
12https://bitcoin.org/en/
13https://coinmarketcap.com/all/views/all/
7
aceast a limit a afecteaz a scalabilitatea sistemului, deoarece limiteaz a num arul de tranzact ,ii care
pot procesate ^ ntr-un interval de timp. Aceasta din cauz a c a blocurile din ret ,eaua Bitcoin
sunt create aproximativ la un interval de 10 minute. Acest interval este respectat deoarece s ,i
dicultatea cre arii de noi blocuri este una dinamic a, ^ n funct ,ie de capacitatea total a lucru a
ret,elei (modicarea dicult at ,ii este realizat a prin cres ,terea sau sc aderea num arului de bit ,i de 0
care trebuie obt ,inut ,i la semn atura unui bloc pentru a obt ,ine un bloc valid, vezi Sect ,iunea 3.4).
Astfel, s-a dezvoltat o controvers a cu privire la cres ,terea limitei pentru dimensiunea unui bloc,
care pe de o parte cres ,te scalabilitatea sistemului, dar pe de alt a parte dezavantajeaz a minerii
cu mai put ,ine resurse, c arora le va mai greu s a aib a de-a face cu blocuri mai mari s ,i, deci, ar
putea conduce la o centralizare mai mare a ret ,elei.
^In urma acestei controverse, au ap arut mai multe propuneri de schimbare, care n-au fost
^ ns a acceptate de toat a comunitatea. Astfel, au ap arut as ,a numitele soft forks , care au adus
modic ari compatibile ^ napoi14cu lant ,ul principal15s,ihard forks , cele mai multe av^ and la baz a
problema dimensiunii blocurilor16
4.1.4 Maleabilitatea tranzact ,iilor
Din cauz a c a unele implement ari nu au reguli foarte stricte, este posibil ca anumite semn aturi
de tranzact ,ii s a e schimbate, ceea ce ar determina schimbarea identicatorului tranzact ,iei.
^In acest sens, tranzact ,ia nu mai este legat a de tranzact ,iile anterioare, deci orice tranzact ,ie
ulterioar a pe baza acestei tranzact ,ii modicate nu mai este valid a.
Maleabilitatea tranzact ,iilor nu reprezint a o problem a pentru majoritatea tranzact ,iilor, care
sunt ad augate imediat la blockchain s ,i deci nu mai pot modicate, iar abia dup a ce au
fost ad augate la blockchain s ,i conrmate sunt folosite mai t^ arziu. Exist a ^ ns a anumite ret ,ele
construite deasupra ret ,eleiBitcoin , cum ar ret ,eaua Lightning Network , care pentru tranzact ,ii
mici nu necesit a conrmarea tuturor tranzact ,iilor pentru a folosite mai departe s ,i, deci,
maleabilitatea ar putea reprezenta un pericol de folosire a unor fonduri care sunt invalide.
4.2 Ethereum
Ca urmare a r asp^ andirii interesului pentru tehnologia blockchain, ^ n urma aparit ,ieiBitcoin au
^ nceput s a apar a diferite variat ,iuni ale aceluias ,i concept, care s a adauge capabilit at ,i noi.
Astfel, la sf^ ars ,itul anului 2013, inventatorul Ethereum , Vitalik Buterin, a propus o solut ,ie
a unui singur blockchain care s a poat a ^ ngloba toate capabilit at ,ile celorlalte solut ,ii. Astfel,
acest blockchain trebuia s a poat a programat s a execute calcule complexe care s a subsumeze
celelalte proiecte.
Implementarea ideii a avut loc ^ n anul 2014, cu ajutorul lui Vitalik Buterin, Gavin Wood s ,i
Jerey Wilcke. Aceast a idee a avut succes destul de mare, t ,in^ and cont c a la momentul actual
Ethereum este a doua moned a ca piat , a de capital dup a Bitcoin.
Acest proiect are la baz a principiile din Bitcoin, as ,a ^ nc^ at ^ n continuare voi intra numai ^ n
detaliile care diferent ,iaz a Ethereum de Bitcoin.
4.2.1 Programare ^ n blockchain
Ethereum nu este limitat numai la o moned a virtual a, ci poate folosit pentru calcule complexe
care vor executate ^ n paralel de multe noduri, ceea ce duce la rezultate cu un grad de abilitate
14eng. backwards compatible
15Un exemplu de soft fork este 2015 BIP66 Blockchain Fork , care a schimbat structura unui bloc de la versiunea
2 la versiunea 3. Des ,i 95% din mineri au agreat trecerea la noul bloc, 40% din mineri, des ,i creau blocuri noi
(versiunea 3), validau s ,i blocurile vechi (versiunea 2), ceea ce aducea vulnerabilit at ,i de conrm ari false. ^In urma
^ nt ,elegerii cu minerii care validau blocurile vechi, problema a fost rezolvat a.
16Bitcoin XT s ,i Bitcoin Classic au fost primele ^ ncerc ari de a cres ,te limita blocurilor, dar care n-au avut parte
de sust ,inere s ,i au es ,uat. ^In prezent, Bitcoin Cash este succesorul celor dou a init ,iative, care ^ n prezent este listat
^ n cele mai mari servicii de schimb de valute electronice precum Coinbase ,Bitnex ,Bitstamp ,CEX.IO ,Kraken ,
ShapeShift s,.a.
8
extrem de mare, disponibilitate permanent a s ,i rezultate persistente care nu pot s ,terse /
modicate ulterior.
Pentru a face acest lucru posibil, a fost creat a o mas ,in a virtual a denumit a Ethereum Virtual
Machine (EVM), ^ n care pot rulate programe scrise ^ ntr-un limbaj complet Turing .
Pentru a preveni construirea unor programe foarte lungi care s a e rulate pe celelalte noduri
din ret ,ea, ecare program consum a o anumit a cantitate de combustibil pe ecare instruct ,iune,
^ n funct ,ie de dicultatea acesteia. Acest combustibil trebuie pl atit de generatorul tranzact ,iei
care consum a combustibilul. Aceste taxe sunt culese de c atre minerii care ruleaz a programele,
astfel ^ nc^ at minerii sunt ^ ncurajat ,i s a ruleze programe s ,i s a nu le aleag a mereu pe cele mai scurte
pentru a construi blocuri mai rapid.
4.2.2 Contracte inteligente
^In ret ,eaua Ethereum exist a dou a tipuri de conturi :Externally Owned Accounts (EOA) s,iCon-
tracts Accounts .
EOA pot privite ca persoanele care particip a la ret ,ea, asem an ator cu participant ,ii din
ret,eaua Bitcoin, pe c^ and conturile de tip contract reprezint a nis ,te entit at ,i care pot rula un cod
atunci c^ and un EOA interact ,ioneaz a cu acesta (trimite o tranzact ,ie c atre un contract). Conform
documentat ,iei ociale Ethereum, contractele au 4 scopuri principale[1]:
1. Stocarea unor date
Aceasta ar putea^ nsemna stocarea membrilor care apart ,in unei organizat ,ii, sau s a simuleze
o valut a
2. Retransmitere de mesaje
Acest contract ar putea funct ,iona pe post de ltru care impune anumite politici, de
exemplu trimiterea unei tranzact ,ii dup a ce a fost semnat a de mai multe surse
3. Contract care mediaz a relat ,iile dintre mai mult ,i utilizatori
De exemplu, un contract care t ,ine nis ,te bani p^ an a la o anumit a dat a, sau un contract care
pl ates ,te automat pentru rezolvarea unei probleme matematice dicile
4. Bibliotec a de funct ,ii
Serves ,te funct ,ii c atre alte contracte
4.3 Hyperledger Fabric
Hyperledger Fabric este un framework de blockchain s ,i face parte din proiectele Hyperledger
sust ,inute de The Linux Foundation .
Spre deosebire de Bitcoin s ,i Ethereum, care sunt permissionless , adic a oricine dores ,te poate
s a participe la ret ,ea, Hyperledger Fabric este permissioned , adic a doar anumit ,i utilizatori au
dreptul de a intra ^ ntr-o ret ,ea de acest tip.
Acest tip de ret ,ea este concentrat a pe a oferi posibilitatea de a construi tranzact ,ii private s ,i
contracte condent ,iale, spre deosebire de cele din Ethereum, care sunt publice.
4.3.1 Arhitectura
Hyperledger Fabric ruleaz a o ret ,ea distribuit a format a din mai multe noduri care comunic a
^ ntre ele. Ret ,eaua ruleaz a chaincodes , care sunt nis ,te programe instalate pe ret ,ea s ,i cu care
apoi se poate interact ,iona. Aceste programe sunt importante deoarece tranzact ,iile sunt create
prin interact ,iunea cu chaincodes [2].
Tranzact ,iile sunt de dou a tipuri: Deploy transactions , care se ocup a cu instalarea de noi
codechains s,iinvoke transactions , care invoc a anumite funct ,ii din chaincodes deja instalate s ,i
care pot modica starea acestor programe s ,i, eventual, ^ ntoarce un rezultat.
9
Starea sistemului blockchain este dat a de o mult ,ime de perechi cheie-valoare ( Key Value
Store (KVS) ) care sunt versionate17s,i pot modicate de chaincodes .
Nodurile din sistem nu sunt toate de aceeas ,i natur a, as ,a cum era le Bitcoin sau Ethereum,
ci au anumite roluri: client ,i,puncte de comunicare (pe care le vom numi ^ n continuare peers ,
dup a denumirea consacrat a din limba englez a) s ,iordonatori .
Client ,ii sunt utilizatorii sistemului, care se conecteaz a la peers pentru a putea comunica cu
restul ret ,elei. Aces ,tia pot invoca tranzact ,ii.
Peers sunt nis ,te noduri care ment ,in starea registrului18pe baza informat ,iilor primite de la
ordonatori . De asemenea, aceste noduri au s ,i rolul de a conrma anumite tranzact ,ii ^ nainte de
a ^ nregistrate permanent.
Ordonatorii formeaz a serviciul de ordonare , care se ocup a cu livrarea ^ ntr-o ordine crono-
logic a a tranzact ,iilor tuturor nodurilor s ,i client ,ilor implicat ,i ^ n aceste tranzact ,ii, pentru ca
informat ,ia det ,inut a de ecare participant s ,i ordinea tranzact ,iilor s a e identic a (ceea ce se
numes ,te ^ n literatura de specialitate difuzare cu ordine total a19).
4.3.2 Fluxul de lucru
Traseul unei tranzact ,ii urmeaz a urm atorul model[2]:
1. Un client Creeaz a o nou a tranzact ,ie s ,i o trimite la nodurile care trebuie s a o valideze
(anumit ,ipeers ) (specicate de protocolul contractului)
2.Peers corespunz atori certic a dac a tranzact ,ia este bine format a, c a nu a fost executat a ^ n
trecut, c a are o semn atur a valid a (este trimis a^ ntr-adev ar de clientul care zice c a o trimite)
s,i c a clientul este autorizat s a fac a tranzact ,ia – iar apoi, dac a trece etapa de vericare,
execut a tranzact ,ia trimit ,^ and-o la chaincode -ul corespunz ator s ,i obt ,in nis ,te r aspunsuri, pe
care apoi le semneaz a s ,i le trimit ^ napoi la client.
3. Clientul compar a rezultatele primite de la tot ,i vericatorii, iar dac a acestea sunt identice,
atunci tranzact ,ia este valid a. De aici se disting dou a cazuri:
(a) Dac a tranzact ,ia era una de interogare, atunci nu registrul public de informat ,ii nu va
schimbat, deci operat ,ia se ^ ncheie
(b) Dac a tranzact ,ia are s ,i rolul de a modica starea sistemului, atunci tranzact ,ia este
trimis a mai departe la serviciul de ordonare care are as ,az a tranzact ,ia conform cu o
ordine cronologic a s ,i o trimite apoi c atre toate copiile ale registrului public pentru a
actualizate cu noile date. Nodurile care cont ,in registrele publice ( peers ) mai veric a
o dat a dac a tot ,i validatorii au aprobat aceast a tranzact ,ie s,i actualizeaz a registrul cu
noile informat ,ii.
Pentru a se ajunge la un consens cu privire la ordonare, se foloses ,te o versiune ^ mbun at at ,it a
a algoritmului Practical Byzantine Fault Tolerance (PBFT) , numit a SIEVE [10].
Dup a cum se poate observa, aceast a solut ,ie se adreseaz a mediilor de afaceri, ^ nchise, care
necesit a o str^ ans a leg atur a ^ ntre participant ,i s,i identitatea lor ^ n lumea real a (spre deosebire de
anonimitatea care ar idealul ^ n ret ,elele de monede virtuale).
De asemenea, Hyperledger Fabric prezint a doar un framework care s a poat a aplicat ^ n mai
multe asociat ,ii de afaceri, spre deosebire de ret ,elele Bitcoin s,iEthereum , care sunt nis ,te ret ,ele
globale s ,i ^ s,i propun s a adune tot ,i utilizatorii ^ ntr-o singur a ret ,ea.
17Faptul c a sunt versionate ^ nseamn a c a pentru ecare cheie exist a o mult ,ime ordonat a de valori care reprezint a
toate versiunile prin care a trecut valoarea respectiv a, adic a istoricul valorilor pe care le-a avut cheia ^ n timp.
18eng. ledger
19eng. total-order broadcast
10
5 Concluzii
Dac a ^ n anul 2008 tehnologia blockchain era doar o idee interesant a care ^ s ,i propunea obiective
care nu mai fuseser a atinse la un nivel global p^ an a atunci (o moned a descentralizat a global a), ^ n
ziua de azi aceast a tehnologie este conrmat a de piat ,a de capital pe care o au proiectele bazate
pe aceasta (Bitcoin – aprox. $260M, Ethereum – aprox. $73M), dar s ,i de proiectele sust ,inute
de organizat ,ii cu greutate (Hyperledger este sust ,inut de The Linux Foundation , peste care este
construit s ,iIBM Blockchain ).
Securitatea este obt ,inut a prin algoritmi de consens care folosesc metode de tip Proof of
Work ,Proof of Stake ,SIEVE s,.a.. Aces ,tia rezolv a problema dublei cheltuieli prin implicarea
majorit at ,ii ret ,elei ^ n a stabili corectitudinea tranzact ,iilor.
Pe l^ ang a securitatea dat a de algoritmii criptograci considerat ,i siguri la momentul ac-
tual, aceast a tehnologie aduce s ,i alte benecii, precum disponibilitate ridicat a, costuri reduse
(deoarece lipsesc intermediarii), abilitate mai mare, transparent , a s,i ^ ncredere mic a ^In sensul ^ n
care nu este nevoie ca un utilizator s a ^ s ,i pun a ^ ncrederea ^ ntr-o entitate .
De asemenea, cu ajutorul contractelor inteligente, se pot impune politici complexe care s a
determine tranzact ,ii conform unor reguli clare stabilite de participant ,i a priori.
Aceast a tehnologie aduce o nou a gam a de posibilit at ,i ^ n privint ,a tranzact ,iilor electronice
prin
exibilitatea pe care o ofer a, iar domeniile ^ n care poate folosit a sunt nelimitate.
11
Bibliograe
[1] Account types, gas, and transactions. http://ethdocs.org/en/latest/contracts-and-
transactions/account-types-gas-and-transactions.html. Accessed: 2017-12-27.
[2] Architecture explained. http://hyperledger-fabric.readthedocs.io/en/release/arch-deep-
dive.html. Accessed: 2017-12-27.
[3] Bitcoin wiki: Anonimity. https://en.bitcoin.it/wiki/Anonymity. Accessed: 2017-12-26.
[4] Bitcoin wiki: Frequently asked questions. https://en.bitcoin.it/wiki/Help:FAQ. Accessed:
2017-12-26.
[5] Bitcoin wiki: Script. https://en.bitcoin.it/wiki/Script. Accessed: 2017-12-26.
[6] Ethereum – proof of stake faq. https://github.com/ethereum/wiki/wiki/Proof-of-Stake-
FAQ. Accessed: 2017-12-26.
[7] Ethereum's memory hardness explained, and the road to mining it with custom
hardware. https://www.vijaypradeep.com/blog/2017-04-28-ethereums-memory-hardness-
explained/. Accessed: 2017-12-26.
[8] Jason Andress. The basics of information security: understanding the fundamentals of
InfoSec in theory and practice . Syngress, 2014.
[9] Vitalik Buterin. Slasher: A punitive proof-of-stake algorithm.
https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/.
Accessed: 2017-12-26.
[10] Allen Clement, Edmund L Wong, Lorenzo Alvisi, Michael Dahlin, and Mirco Marchetti.
Making byzantine fault tolerant systems tolerate byzantine faults. In NSDI , volume 9,
pages 153{168, 2009.
[11] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system, 2008.
[12] Scott B Noegel. Atbash in jeremiah and its literary signicance: Part 1. Jewish Bible
Quarterly , 24:160{166, 1996.
[13] Peter W Shor. Polynomial-time algorithms for prime factorization and discrete logarithms
on a quantum computer. SIAM review , 41(2):303{332, 1999.
12
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: Realizarea securit at ,ii cibernetice folosind Blockchain [622005] (ID: 622005)
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.
