mini|Pojednostavljeni prikaz lanca blokova: svaki blok sadrži kriptografski sažetak prethodnog bloka, čime se zapisi povezuju u hronološki niz.

Blockchain ili lanac blokova vrsta je distribuirane evidencije u kojoj se zapisi grupiraju u blokove, a oni se pomoću kriptografskih sažetaka povezuju u hronološki uređen lanac. Kopije evidencije održava više računarskih čvorova, koji primjenom zajedničkog protokola provjeravaju nove zapise i postižu saglasnost o stanju sistema. Takva struktura otežava naknadnu izmjenu podataka jer bi promjena jednog bloka obično zahtijevala izmjenu svih blokova koji ga slijede i prihvatanje nove verzije evidencije u mreži.

Tehnologija je postala šire poznata nakon što ju je osoba ili grupa pod pseudonimom Satoshi Nakamoto primijenila kao javnu knjigu transakcija Bitcoina. Iako se blockchain često poistovjećuje s kriptovalutama, njegovi se principi koriste i za pametne ugovore, praćenje robe, upravljanje digitalnim identitetima, evidencije u javnoj upravi i druge sisteme u kojima više učesnika treba dijeliti provjerljivu historiju podataka bez jedinstvenog upravitelja. Blockchain nije nužno potpuno decentraliziran niti su njegovi podaci bezuvjetno nepromjenjivi; stepen decentralizacije, način upravljanja, mogućnost ispravke zapisa i sigurnosna svojstva zavise od arhitekture konkretnog sistema.

Terminologija

Engleski izraz blockchain nastao je spajanjem riječi block ("blok") i chain ("lanac"). U bosanskom se upotrebljavaju neprilagođeni naziv blockchain i opisni izraz "lanac blokova". U stručnoj literaturi na hrvatskom jeziku pojavljuju se i oblici "ulančani blokovi" i "tehnologija ulančanih blokova", dok je u radovima na srpskom čest fonetski prilagođen oblik "blokčejn".

Blockchain je jedan od oblika tehnologije distribuirane evidencije (). Pojmovi nisu potpuni sinonimi: distribuirana evidencija ne mora podatke organizirati u linearno povezane blokove, dok blockchain upravo takvom strukturom uređuje historiju zapisa.

Historija

Tehnički prethodnici blockchaina razvijani su prije nastanka Bitcoina. David Chaum je u doktorskoj disertaciji iz 1982. opisao računarske sisteme koje mogu uspostaviti i održavati učesnici koji jedni drugima ne vjeruju. Stuart Haber i W. Scott Stornetta predstavili su 1991. sistem za kriptografsko vremensko označavanje digitalnih dokumenata, oblikovan tako da naknadna izmjena dokumenta ili vremena njegova nastanka bude uočljiva. Zajedno s Daveom Bayerom kasnije su primijenili Merkleova stabla, čime je veći broj zapisa mogao biti obuhvaćen jednim sažetkom.

Nakamoto je u radu Bitcoin: A Peer-to-Peer Electronic Cash System, objavljenom 2008, povezao digitalne potpise, mrežu ravnopravnih čvorova, vremensko označavanje i dokaz rada u sistem elektronskog novca bez centralnog posrednika. Prvi blok Bitcoinove mreže, poznat kao genezni blok, stvoren je 3. januara 2009, a mreža je počela raditi nekoliko dana kasnije.

Ethereum je proširio područje primjene uvođenjem opće platforme na kojoj se mogu izvršavati programi pohranjeni u blockchainu. Projekt je 2013. opisao Vitalik Buterin, a javna mreža pokrenuta je 2015. Njegovi pametni ugovori omogućili su razvoj decentraliziranih aplikacija, tokena, decentraliziranih finansijskih usluga i drugih sistema čija pravila izvršava mreža.

Struktura i način rada

Blokovi i kriptografsko povezivanje

Blok obično sadrži zaglavlje i skup potvrđenih zapisa ili transakcija. Tačan sastav zavisi od protokola, ali zaglavlje često obuhvata kriptografski sažetak prethodnog bloka, vremensku oznaku, podatke potrebne za postupak konsenzusa i sažetak sadržaja trenutnog bloka. Transakcije se u mnogim sistemima sažimaju pomoću Merkleova stabla, strukture podataka koja omogućava efikasnu provjeru pripada li određeni zapis bloku bez preuzimanja i obrade svih njegovih transakcija.

Kriptografska sažetna funkcija pretvara proizvoljnu količinu podataka u vrijednost određene dužine. Mala izmjena ulaznih podataka proizvodi drukčiji sažetak, pa promjena starijeg bloka prekida vezu sa sljedećim blokom. Napadač koji želi prikriti izmjenu morao bi ponovo izračunati veze prema svim kasnijim blokovima i, zavisno od protokola, nadmašiti ili uvjeriti ostale učesnike da prihvate izmijenjenu historiju.

Prvi blok u lancu naziva se genezni blok. Budući da nema prethodnika, njegovi početni podaci određuju se prilikom pokretanja mreže. Kada dva ili više valjanih blokova privremeno nastave isti prethodni blok, nastaje račvanje. Protokol tada određuje prema kojem će se kriteriju jedna grana prihvatiti kao mjerodavna, dok se druga odbacuje ili zadržava samo kao dio historije mreže.

Transakcije i digitalni potpisi

U sistemima zasnovanim na kriptografiji javnog ključa korisnik raspolaže parom kriptografskih ključeva. Javni ključ ili iz njega izvedena adresa može se objaviti, dok se privatni ključ čuva u tajnosti. Vlasnik privatnog ključa digitalno potpisuje transakciju, a drugi čvorovi pomoću javnog ključa provjeravaju potpis i utvrđuju je li transakciju odobrio ovlašteni korisnik.

Blockchain pritom ne dokazuje nužno istinitost podatka izvan mreže. Može potvrditi da je određeni zapis unesen, kada je uvršten i da nakon toga nije promijenjen bez traga, ali ne može samostalno utvrditi je li početno unesena tvrdnja tačna. Taj se problem u aplikacijama koje zavise od vanjskih podataka rješava izvorima podataka poznatim kao orakuli, što ponovo uvodi potrebu za povjerenjem u određene senzore, institucije ili pružaoce podataka.

Mreža čvorova

Čvorovi su računari koji pokreću programski klijent određenog blockchaina i međusobno razmjenjuju transakcije i blokove. Puni čvorovi provjeravaju pravila protokola i čuvaju cijelu evidenciju ili njen dovoljan dio, dok laki klijenti koriste sažetke blokova i oslanjaju se na pune čvorove za dio podataka. Validatori ili rudari, zavisno od mehanizma konsenzusa, predlažu nove blokove i učestvuju u određivanju njihove valjanosti.

Kopiranje evidencije na veći broj čvorova smanjuje zavisnost od jednog servera, ali povećava količinu pohranjenih i prenesenih podataka. Javni blockchaini zato obično imaju manji broj transakcija u sekundi od centraliziranih baza podataka, jer više učesnika mora provjeriti i uskladiti promjene.

Konsenzus

Mehanizam konsenzusa skup je pravila kojima distribuirani sistem bira redoslijed zapisa i zajedničko stanje evidencije. Njegova je svrha omogućiti mreži da nastavi raditi i kada pojedini čvorovi kasne, prestanu odgovarati ili šalju protivrječne podatke. Blockchaini koriste različite mehanizme, koji se razlikuju prema potrošnji resursa, brzini, pretpostavljenom broju nepoštenih učesnika i načinu raspodjele prava na predlaganje blokova.

Dokaz rada

Kod dokaza rada () učesnici poznati kao rudari traže vrijednost koja, zajedno s podacima bloka, daje sažetak u granicama koje propisuje protokol. Pronalaženje rješenja zahtijeva veliki broj pokušaja, dok ga ostali čvorovi mogu brzo provjeriti. Bitcoin kao mjerodavnu prihvata granu koja predstavlja najveću ukupnu količinu uloženog računarskog rada.

Ovaj postupak otežava prepisivanje historije jer bi napadač morao sustići rad poštenog dijela mreže. Sigurnost zato zavisi od raspodjele računarske snage. Učesnik ili udružena grupa koja kontrolira većinu snage može pokušati reorganizirati novije blokove, cenzurirati transakcije ili izvršiti dvostruko trošenje; takav se slučaj obično naziva napadom 51%. Ne omogućava, međutim, proizvoljno stvaranje tuđih digitalnih potpisa niti neposredno prisvajanje sredstava bez odgovarajućeg privatnog ključa.

Dokaz uloga

Kod dokaza uloga () pravo na predlaganje ili potvrđivanje blokova veže se za količinu digitalne imovine koju učesnik založi u protokolu. Nepropisno ponašanje može biti kažnjeno oduzimanjem dijela uloga. Postoje brojne izvedbe ovog modela, uključujući sisteme s delegiranjem, odborima validatora i različitim pravilima konačnosti.

Dokaz uloga ne zahtijeva takmičenje u izvođenju velikog broja izračunavanja kao dokaz rada, zbog čega troši znatno manje električne energije. Ipak, donosi druge probleme, među kojima su koncentracija uloga, složenost protokola, upravljanje validatorima i određivanje uvjeta pod kojima se transakcija smatra konačnom.

Konsenzus u mrežama s dozvolom

Privatni i konzorcijski sistemi često koriste protokole bizantijske tolerancije grešaka, kod kojih je identitet validatora unaprijed poznat. Takvi protokoli mogu brže potvrđivati transakcije i ne trebaju otvoreno rudarenje, ali zahtijevaju pravila o tome ko smije postati validator i kako se upravlja članstvom. Njihova sigurnost zato više zavisi od organizacijskih odnosa i pravne odgovornosti učesnika nego kod otvorenih mreža.

Vrste blockchaina

Prema uvjetima pristupa i načinu upravljanja razlikuju se javni, privatni i konzorcijski blockchaini.

Javni blockchain omogućava svakome da čita evidenciju, šalje transakcije i, ako ispunjava uvjete protokola, učestvuje u konsenzusu. Bitcoin i Ethereum primjeri su takvih mreža. Otvorenost olakšava nezavisnu provjeru podataka, ali otežava zaštitu privatnosti i povećava zahtjeve za skaliranjem.

Privatni blockchain vodi jedna organizacija, koja određuje ko može pristupiti mreži, slati zapise ili potvrđivati blokove. U tom slučaju sistem može pružiti zajedničku evidenciju i sljedivost promjena, ali nema isti oblik decentralizacije kao javna mreža. Kritičari zato ističu da se dio privatnih primjena može efikasnije ostvariti konvencionalnom distribuiranom bazom podataka.

Konzorcijski blockchain zajednički vodi više unaprijed određenih organizacija. Primjenjuje se kada poslovni partneri ili javne ustanove žele dijeliti evidenciju, ali ne žele da njome upravlja samo jedan član niti da joj svako može pristupiti. Granice između ovih vrsta nisu uvijek oštre, a pojedini sistemi kombiniraju javno provjerljive zapise s privatnim podacima ili ograničenim pravom potvrđivanja.

Pametni ugovori i tokeni

Pametni ugovor program je čiji se kod i stanje pohranjuju ili izvršavaju u distribuiranoj mreži. Kada su ispunjeni unaprijed zadani uvjeti, mreža izvršava odgovarajuće instrukcije, naprimjer prenosi tokene, mijenja zapis ili dozvoljava pristup usluzi. Naziv ne znači da je svaki takav program pravno obavezujući ugovor; pravni učinak zavisi od sadržaja, identiteta stranaka i primjenjivog prava.

Programi na javnim mrežama obično se izvršavaju deterministički, što znači da svi čvorovi za isti ulaz moraju dobiti isti rezultat. Jednom postavljeni kod često je teško izmijeniti, pa programske greške mogu imati trajne finansijske posljedice. Mehanizmi nadogradnje i administrativni ključevi olakšavaju ispravke, ali istovremeno povećavaju kontrolu manjeg broja učesnika.

Token je digitalna jedinica zabilježena u blockchainu. Može predstavljati obračunsku jedinicu mreže, pravo korištenja usluge, upravljački glas, finansijsko potraživanje ili vezu s određenom digitalnom ili fizičkom imovinom. Nezamjenjivi tokeni razlikuju se po jedinstvenom identifikatoru, ali zapis u blockchainu sam po sebi ne jamči autorsko pravo, vlasništvo nad fizičkim predmetom niti trajnu dostupnost povezane datoteke.

Primjene

Kriptovalute i finansijske usluge

Najraširenija primjena blockchaina jesu kriptovalute. U tim sistemima distribuirana evidencija bilježi raspoloživa sredstva i prijenose između adresa, dok protokol sprečava da ista jedinica bude potrošena više puta bez centralne banke ili obračunske ustanove. Blockchaini se koriste i za digitalne tokene, prekogranične prijenose, poravnanje transakcija i decentralizirane finansijske aplikacije.

Finansijske primjene nose rizike povezane s promjenama tržišne vrijednosti, greškama u pametnim ugovorima, pranjem novca, krađom privatnih ključeva i nejasnim pravnim položajem digitalne imovine. Transakcija provedena na blockchainu može biti tehnički konačna i kada je nastala prijevarom ili greškom, pa povrat sredstava često zavisi od saradnje drugih korisnika, posrednika ili upravljačkih tijela.

Lanci opskrbe