DIJELOVI

Blockchain - The Backbone of Digital Currencies​

Što je Blockchain?

Blockchain je doslovno samo lanac blokova, ali ne u tradicionalnom smislu tih riječi. Kada u ovom kontekstu izgovorimo riječi "blok" i "lanac", zapravo govorimo o digitalnim informacijama ("blok") pohranjenim u javnoj bazi podataka ("lanac").

"Blokovi" na blockchainu sačinjeni su od digitalnih informacija. Konkretno, oni imaju tri dijela:

  1. Blokovi pohranjuju informacije o transakcijama kao što su datum, vrijeme i iznos najnovije kupovine, prijenos sredstava drugoj osobi itd.
  2. Blokovi pohranjuju informacije o tome tko sudjeluje u transakcijama. Blok za kupnju bilježi vaše ime zajedno s onim kome ste ga poslali. Umjesto korištenja stvarnog imena, vaša se kupnja bilježi bez identifikacijskih podataka koristeći jedinstveni "digitalni potpis", poput korisničkog imena.
  3. Blokovi pohranjuju informacije koje ih razlikuju od ostalih blokova. Kao što i ti i ja imamo imena koja nas razlikuju, svaki blok pohranjuje jedinstveni kôd koji se zove "hash" koji nam omogućava da ga razlikujemo od svakog drugog bloka. Recimo da prijatelju pošaljete 100 USD, a sat vremena kasnije pošaljete mu još 100 USD. Iako detalji vaše nove transakcije izgledaju gotovo identično vašoj ranijoj kupnji, možemo razlikovati blokove zbog njihovih jedinstvenih kodova.

Dok se blok u gornjem primjeru koristi za pohranjivanje jedne transakcije, realnost je malo drugačija. Jedan blok u blockchain-u može pohraniti do 1 MB podataka. Ovisno o veličini transakcija, to znači da jedan blok može pohraniti nekoliko tisuća transakcija u jednom mahu.

Kako funkcionira Blockchain

Kada blok pohranjuje nove podatke, dodaje se u blockchain. Blockchain se, kao što mu ime govori, sastoji od više sjedinjenih blokova. Kako bi se blok mogao dodati u blockchain, moraju se dogoditi četiri stvari:

  1. Mora se dogoditi transakcija. Nastavimo s primjerom slanja novca prijatelju. Nakon što pošaljete nešto novca, odlučite poslati više
  2. Ta se transakcija mora potvrditi. Nakon kupnje, vaša transakcija mora biti potvrđena. S drugim javnim zapisima podataka, poput Komisije za razmjenu vrijednosnih papira, Wikipedije ili vaše lokalne knjižnice, netko je zadužen za provjeru novih unosa podataka. No, s blockchainom, taj posao je prepušten mreži računala. Te se mreže često sastoje od tisuća (ili kod Bitcoina, milijuna) računala raširenih širom svijeta. Kad pošaljete svoju transakciju, mreža računala brzo provjeravaju da li se vaša transakcija dogodila na način na koji ste to rekli. Odnosno, oni potvrđuju detalje transakcije, uključujući vrijeme transakcije, iznos i sudionike.
  3. Ta se transakcija mora pohraniti u blok. Nakon što je vaša transakcija potvrđena kao točna, dobit će zeleno svjetlo. Iznos transakcije, vaš digitalni potpis i digitalni potpis vašeg prijatelja pohranjuju se u blok. Tamo će se transakciji vjerojatno pridružiti stotine ili tisuće drugih sličnih.
  4. Taj blok mora dobiti hash. Za razliku od anđela koji je zaradio svoja krila, nakon što su sve transakcije u bloku verificirane, mora mu se dodijeliti jedinstveni identifikacijski kod koji se zove hash. Bloku je dodijeljen i hash zadnjeg bloka dodanog u blockchain. U trenutku kad se napravi hash, blok se može dodati u blockchain.

Kada se taj novi blok doda u blockchain, on postaje javno dostupan svima na uvid - čak i vama. Ako pogledate Bitcoin blockchain, vidjet ćete da imate pristup podacima o transakcijama, zajedno s informacijama o tome kada ("Time"), gdje ("Height") i tko ("Relayed By") je blok dodao u blockchain.

Da li je Blockchain siguran?

Blockchain tehnologija se brine o pitanjima sigurnosti i povjerenju na nekoliko načina. Prvo, novi se blokovi uvijek pohranjuju linearno i kronološki. Odnosno, uvijek se dodaju na "kraj" blockchaina. Ako pogledate Bitcoin blockchain, vidjet ćete da svaki blok ima položaj u lancu, nazvan "visina". Od 31. kolovoza 2019., visina bloka je dosegla 592517.

Nakon što je blok dodan na kraj blockchaina, vrlo se teško vratiti i promijeniti sadržaj bloka. To je zato što svaki blok sadrži svoj hash, zajedno sa hashom bloka prije njega. Hash kodovi su stvoreni pomoću matematičke funkcije koja digitalne informacije pretvara u niz brojeva i slova. Ako se te informacije na bilo koji način promijene, također se mijenja i hash kod.

Evo zašto je to važno za sigurnost. Recimo da hakeri pokušavaju promijeniti onu transakciju sa vašim prijateljem tako da morate platiti veći iznos. Čim promijene iznos u vašoj transakciji, isto će se promijeniti i hash bloka. Sljedeći će blok u lancu i dalje sadržavati stari hash, a haker će morati ažurirati taj blok kako bi sakrio zapis. Međutim, to bi promijenilo taj hash bloka. I slijedeći hash i tako dalje.

Da bi promijenio jedan blok, haker bi trebao onda promijeniti svaki pojedinačni blok na blockchainu nakon njega. Preračunavanje svih tih hasheva trebalo bi ogromnu i nevjerojatnu količinu računalne snage. Drugim riječima, kada se blok doda u blockchain, postaje vrlo teško ga promijeniti i nemoguće ga je izbrisati.

Da bi se riješilo pitanje povjerenja, blockchain mreže su implementirale testove za računala koja se žele pridružiti i dodati blokove u lanac. Testovi, zvani „konsenzusni modeli“, zahtijevaju od korisnika da se „dokažu“ prije nego što mogu sudjelovati u blockchain mreži. Jedan od najčešćih primjera koje je Bitcoin riješio naziva se "dokaz rada".

U sustavu dokaza rada, računala moraju "dokazati" da su "radila" rješavanjem složenog računalnog problema iz matematike. Ako računalo riješi jedan od ovih problema, oni postaju podobni da dodaju blok u blockchain. Ali, proces dodavanja blokova u blockchain, ono što se u svijetu kriptovaluta naziva „rudarenje“, nije lak. Zapravo, prema blokchain stranici BlockExplorer, u Veljači 2019. izgledi za rješavanje jednog od ovih problema na Bitcoin mreži bili su oko 1 na 5,8 milijardi. Da bi se riješili složeni matematički problemi sa takvim omjerima, računala moraju koristiti programe koji troše ogromne količine snage i energije (čitaj: novac).

Zbog dokaza rada napadi hakera nisu nemogući, ali su skoro pa beskorisni. Ako bi hakeri željeli koordinirati napad na blockchain, također bi morali riješiti složene matematičke probleme sa šansama 1 od 5,8 milijardi kao i svi ostali u mreži. Troškovi organiziranja takvog napada ne bi bili korisni.

Blockchain vs. Bitcoin

Cilj blockchaina je omogućiti pohranjivanje i distribuciju digitalnih informacija, ali ne i njihovo uređivanje. Taj koncept se teško može zamisliti bez da se tehnologija vidi na djelu, pa možemo pogledati kako najranija primjena blockchain tehnologije zapravo funkcionira.

Blockchain tehnologiju se prvi puta opisali Stuart Haber i W. Scott Stornetta, dvoje istraživača koji su željeli implementirati sustav u kojem se vremenske oznake dokumenata ne mogu mijenjati. Ali tek nakon skoro dva desetljeća, lansiranjem Bitcoina u siječnju 2009., blockchain je dobio svoju prvu primjenu u stvarnom svijetu.

Bitcoin protokol izgrađen je na blockchainu. U istraživačkom radu koji predstavlja digitalnu valutu, pseudonimni stvoritelj Bitcoina Satoshi Nakamoto nazvao ga je "novim elektroničkim novčanim sustavom koji je u potpunosti ravnopravan, bez potrebe za povjerenjem treće strane".

Evo kao to radi:

Tu su svi ti ljudi širom svijeta koji posjeduju Bitcoin. Prema studiji iz Centra za alternativne financije u Cambridgeu iz 2017. godine, taj broj je oko 5,9 milijuna. Recimo da jedan od tih 5,9 milijuna ljudi želi potrošiti svoj Bitcoin na namirnice. Tu nastupa blockchain.

Kada je riječ o tiskanom novcu, uporabu tiskane valute regulira i provjerava središnje tijelo, obično banka ili vlada - ali Bitcoin ne kontrolira nitko. Umjesto toga, transakcije izvršene u Bitcoin-u ovjerava mreža računala.

Kad jedna osoba plati drugoj pomoću Bitcoina, računala na Bitcoin mreži žurno provjeravaju transakciju. Da bi se to desilo, korisnici pokreću program na svojim računalima i pokušavaju riješiti složeni matematički problem, nazvan "hash". Kada računalo riješi problem "hashiranjem" bloka, njegov algoritamski rad će također potvrditi i transakcije u bloku. Završena transakcija javno se bilježi i pohranjuje kao blok u blockchainu, nakon čega postaje nepromjenjiva. U slučaju Bitcoina, ali i većine ostalih blockchaina, računala koja uspješno provjeravaju blokove nagrađuju se za svoj rad kriptovalutom. (Za detaljnije objašnjenje verifikacije pogledajte: Što je Bitcoin rudarenje?)

Iako su transakcije javno zabilježene na blockchainu, korisnički podaci nisu - ili barem nisu u cijelosti. Za obavljanje transakcija na Bitcoin mreži, sudionici moraju pokrenuti program koji se zove "novčanik". Svaki novčanik sastoji se od dva jedinstvena i različita kriptografska ključa: javni ključ i privatni ključ. Javni ključ je lokacija s koje se pohranjuju i povlače transakcije. Ovo je ujedno i ključ koji se u blockchain zapisu pojavljuje kao korisnički digitalni potpis.

Čak i ako korisnik primi uplatu u Bitcoinu na njihov javni ključ, neće ih moći povući bez privatnog ključa. Korisnikov javni ključ skraćena je inačica njihovog privatnog ključa, stvorena pomoću kompliciranog matematičkog algoritma. Međutim, zbog složenosti ove jednadžbe, gotovo je nemoguće obrnuti postupak i generirati privatni ključ iz javnog ključa. Zbog toga se blockchain tehnologija smatra povjerljivom.

Public & Private Keys

Evo verzije "Objasni kao da imam 5": Javni ključ možete smatrati školskim ormarom, a privatni ključ kao numeriranu kombinaciju ormara. Učitelji, studenti, pa čak i vaše simpatije, mogu ubaciti pisma i bilješke kroz otvor u vašem ormaru. Međutim, jedina osoba koja može dohvatiti sadržaj ormara je ona koja ima jedinstveni ključ. No treba napomenuti da iako se kombinacije školskih ormara čuvaju u uredu ravnatelja, ne postoji središnja baza podataka koja čuva privatne ključeve na mreži blockchaina. Ako korisnik zametne svoj privatni ključ, izgubit će pristup svom Bitcoin novčaniku.

U Bitcoin mreži, blockchain održava, prosljeđuje i uzajamno se dogovara javna mreža korisnika. Kad se korisnici pridruže mreži, njihovo računalo dobiva kopiju blockchaina koji se ažurira kad god se doda novi blok transakcija. Ali što ako, ljudskom greškom ili naporima hakera, jedna korisnička kopija manipuliranog blockchaina bude različita od svake druge kopije blockchaina?

Protokol na blockchainu obeshrabruje postojanje više blockchaina kroz proces koji se naziva "konsenzus". U prisutnosti više različitih kopija blockchaina, protokol konsenzusa usvojit će najduži raspoloživi lanac. Više korisnika na blockchainu znači da se blokovi mogu brže dodati na kraj lanca. Po toj logici, blockchain zapis će uvijek biti onaj kojem većina korisnika vjeruje. Protokol konsenzusa jedna je od najvećih prednosti blockchain tehnologije, ali omogućuje i jednu od njenih najvećih slabosti.

Teoretski, moguće je da haker iskoristi pravilo većine koji se naziva 51% napad. Evo kako bi se to dogodilo. Recimo da u Bitcoin mreži postoji 5 milijuna računala što je malo, ali dovoljno lagan broj za dijeljenje. Da bi postigao većinu na mreži, haker bi trebao kontrolirati najmanje 2,5 milijuna i jedno od tih računala. Pri tome bi napadač ili skupina napadača mogla ometati proces bilježenja novih transakcija. Moglu poslati transakciju - a potom ju preokrenuti, tako da izgleda kao da i dalje imaju novčić koji su upravo potrošili. Ova ranjivost, poznata kao dvostruko trošenje, digitalni je ekvivalent savršene krivotvorine, a korisnicima će omogućiti da potroše svoje Bitcoine dva puta.

Takav napad je izuzetno teško izvesti na Bitcoin blockchainu, jer je napadaču potrebna kontrola nad milijunima računala. Kada je Bitcoin osnovan 2009. godine, a njegovih korisnika je bilo u desetinama, tada je napadaču bi bilo lakše kontrolirati većinu računske snage u mreži. Ova definirajuća karakteristika blockchaina označena je kao slabost manjih kripto valuta. Taj strah korisnika od 51% napada ustvari sprječava formiranje monopola na blockchainu, pa otuda i proizlazi decentralizirana priroda Bitcoina.

Volunteer to Support Privacy
hrHrvatski