Delovi
Blockchain
Što je Blockchain?
Bitcoin
Što je Bitcoin?
Pirate Chain
Što je Pirate Chain?
Blockchain - The Backbone of Digital Currencies
Što je Blockchain?
Blockchain je doslovno samo lanac blokova, ali ne u tradicionalnom smislu tih reči. Kada u ovom kontekstu izgovorimo reč "blok" i "lanac", zapravo govorimo o digitalnim informacijama ("blok") čuvanim u javnoj bazi podataka ("lanac").
"Blokovi" na blockchainu sačinjeni su od digitalnih informacija. Konkretno, oni imaju tri dela:
- Blokovi čuvaju informacije o transakcijama kao što su datum, vreme i iznos najnovije kupovine, prenos sredstava drugoj osobi itd.
- Blokovi čuvaju informacije o tome tko sudeluje u transakcijama. Blok za kupnju beleži vaše ime zajedno s onim kome ste ga poslali. Umesto korištenja stvarnog imena, vaša se kupnja beleži bez identifikacionih podataka koristeći jedinstveni "digitalni potpis", poput korisničkog imena.
- Blokovi čuvaju informacije koje ih razlikuju od ostalih blokova. Kao što i ti i ja imamo imena koja nas razlikuju, svaki blok čuva 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 primeru koristi za čuvanje jedne transakcije, realnost je malo drugačija. Jedan blok u blockchain-u može čuvati do 1 MB podataka. Ovisno o veličini transakcija, to znači da jedan blok može čuvati nekoliko hiljada transakcija u jednom mahu.
Kako funkcioniše Blockchain?
Kada blok sačuva nove podatke, dodaje se u blockchain. Blockchain se, kao što mu ime govori, sastoji od više sedinjenih blokova. Kako bi se blok mogao dodati u blockchain, moraju se dogoditi četiri stvari:
- Mora se dogoditi transakcija. Nastavimo s primerom slanja novca prijatelju. Nakon što pošaljete nešto novca, odlučite poslati više
- Ta se transakcija mora verifikovati. Nakon kupnje, vaša transakcija mora biti potvrđena. Sa drugim javnim zapisima podataka, poput Komisije za razmenu vrednosnih papira, Wikipedije ili vaše lokalne biblioteke, netko je zadužen za proveru novih unosa podataka. No, s blockchainom, taj posao je prepušten mreži računara. Te se mreže često sastoje od hiljade (ili kod Bitcoina, milijuna) računara raširenih širom sveta. Kad pošaljete svoju transakciju, mreža računara brzo proveravaju da li se vaša transakcija dogodila na način na koji ste to rekli. Odnosno, oni potvrđuju detalje transakcije, uključujući vreme transakcije, iznos i učesnike.
- Ta se transakcija mora spremiti u blok. Nakon što je vaša transakcija verifikovana kao tačna, dobit će zeleno svetlo. Iznos transakcije, vaš digitalni potpis i digitalni potpis vašeg prijatelja spremaju se u blok. Tamo će se transakciji verovatno pridružiti stotine ili hiljade drugih sličnih.
- Taj blok mora dobiti hash. Za razliku od anđela koji je zaradio svoja krila, nakon što su sve transakcije u bloku verifikovale, mora mu se dodeliti jedinstveni identifikacijski kod koji se zove hash. Bloku je dodeljen 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, videt ćete da imate pristup podacima o transakcijama, zajedno s informacijama o tome kada ("Time"), gde ("Height") i tko ("Relayed By") je blok dodao u blockchain.
Da li je Blockchain siguran?
Blockchain tehnologija se brine o pitanjima sigurnosti i poverenju na nekoliko načina. Prvo, novi se blokovi uvek čuvaju linearno i kronološki. Odnosno, uvek se dodaju na "kraj" blockchaina. Ako pogledate Bitcoin blockchain, videt ćete da svaki blok ima položaj u lancu, nazvan "visina". Od 31. Augusta 2019., visina bloka je dosegla 592517.
Nakon što je blok dodan na kraj blockchaina, vrlo se teško vratiti i promeniti sadržaj bloka. To je zato što svaki blok sadrži svoj hash, zajedno sa hashom bloka pre 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 promene, također se menja i hash kod.
Evo zašto je to važno za sigurnost. Recimo da hakeri pokušavaju promeniti onu transakciju sa vašim prijateljem tako da morate platiti veći iznos. Čim promene iznos u vašoj transakciji, isto će se promeniti 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 promenilo taj hash bloka. I sledeći hash i tako dalje.
Da bi promenio jedan blok, haker bi trebao onda promeniti svaki pojedinačni blok na blockchainu nakon njega. Preračunavanje svih tih hasheva trebalo bi ogromnu i nevjerojatnu količinu računarne snage. Drugim rečima, kada se blok doda u blockchain, postaje vrlo teško ga promeniti i nemoguće ga je izbrisati.
Da bi se rešilo pitanje poverenja, blockchain mreže su implementirale testove za računare koji se žele pridružiti i dodati blokove u lanac. Testovi, zvani „konsenzusni modeli“, zahtevaju od korisnika da se „dokažu“ prije nego što mogu sudelovati u blockchain mreži. Jedan od najčešćih primera koje je Bitcoin rešio naziva se "dokaz rada".
U sustavu dokaza rada, računari moraju "dokazati" da su "radili" rešavanjem složenog računarskog problema iz matematike. Ako računar reši jedan od ovih problema, postaje podoban da dodaju blok u blockchain. Ali, proces dodavanja blokova u blockchain, ono što se u svetu kriptovaluta naziva „rudarenje“, nije lak. Zapravo, prema blokchain stranici BlockExplorer, u Februaru 2019. izgledi za rešavanje jednog od ovih problema na Bitcoin mreži bili su oko 1 na 5,8 milijardi. Da bi se rešili složeni matematički problemi sa takvim omerima, računari 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 želeli koordinirati napad na blockchain, također bi morali rešiti složene matematičke probleme sa šansama 1 od 5,8 milijardi kao i svi ostali u mreži. Troškovi organizovanja 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 delu, pa možemo pogledati kako najranija primena blockchain tehnologije zapravo funkcioniše.
Blockchain tehnologiju se prvi puta opisali Stuart Haber i W. Scott Stornetta, dvoje istraživača koji su želeli implementirati sustav u kojem se vremenske oznake dokumenata ne mogu menjati. Ali tek nakon skoro dva desetljeća, lansiranjem Bitcoina u januaru 2009., blockchain je dobio svoju prvu primenu u stvarnom svetu.
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 poverenjem treće strane".
Evo kao to radi:
Tu su svi ti ljudi širom sveta koji poseduju Bitcoin. Prema studiji iz Centra za alternativne finansije 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 reč o štampanom novcu, uporabu štampane valute regulira i proverava središnje telo, obično banka ili vlada - ali Bitcoin ne kontrolira nitko. Umjesto toga, transakcije izvršene u Bitcoin-u overava mreža računara.
Kad jedna osoba plati drugoj pomoću Bitcoina, računari na Bitcoin mreži žure da provere transakciju. Da bi se to desilo, korisnici pokreću program na svojim računarima i pokušavaju rešiti složeni matematički problem, nazvan "hash". Kada računar reši problem "hashiranjem" bloka, njegov algoritamski rad će također potvrditi i transakcije u bloku. Završena transakcija javno se beleži i sprema kao blok u blockchainu, nakon čega postaje nepromenjiva. U slučaju Bitcoina, ali i većine ostalih blockchaina, računari koji uspešno proveravaju blokove nagrađuju se za svoj rad kriptovalutom. (Za detaljnije objašnjenje verifikovanja pogledajte: Što je Bitcoin rudarenje?)
Iako su transakcije javno zabeležene na blockchainu, korisnički podaci nisu - ili barem nisu u celosti. Za obavljanje transakcija na Bitcoin mreži, učesnici 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 na kojoj se čuvaju 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 komplikovanog 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 poverljivom.
Public & Private Keys
Evo verzije "Objasni kao da imam 5": Javni ključ možete smatrati školskim ormarom, a privatni ključ kao numerisanu kombinaciju ormara. Nastavnici, studenti, pa čak i vaše simpatije, mogu ubaciti pisma i beleške kroz otvor u vašem ormaru. Međutim, jedina osoba koja može uzeti sadržaj ormara je ona koja ima jedinstveni ključ. No treba napomenuti da iako se kombinacije školskih ormara čuvaju u kancelariji direktora, ne postoji centralna baza podataka koja čuva privatne ključeve na mreži blockchaina. Ako korisnik izgubi 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, njihov računar 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 manipulisanog 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 uvek biti onaj kojem većina korisnika veruje. 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 desilo. Recimo da u Bitcoin mreži postoji 5 milijuna računara što je malo, ali dovoljno lagan broj za deljenje. Da bi postigao većinu na mreži, haker bi trebao kontrolisatii najmanje 2,5 milijuna i jedno od tih računara. Pri tome bi napadač ili skupina napadača mogla ometati proces belež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šenog falsifikovanja, 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čunara. Kada je Bitcoin osnovan 2009. godine, a njegovih korisnika je bilo u desetinama, tada je napadaču bi bilo lakše kontrolisati 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 sprečava formiranje monopola na blockchainu, pa otuda i proizlazi decentralizovana priroda Bitcoina.