Aktualnosti Podjela u Bitcoin zajednici
Na raskrižju svjetova kretala čak između 350 i 1250 USD, što je bio povijesni maksimum vrijednosti bitcoina. Kada se ova vrijednost strmoglavila mnogo je ljudi prognoziralo kraj bitcoina no, kao što vidimo, to se ipak nije dogodilo. U trenutku pisanja ovog članka vrijednost jednog bitcoina je oko 230 USD i oko ove vrijednosti drži se već skoro posljednjih šest mjeseci.
Kućica od blokova
Bitcoin bankomati postali su sasvim uobičajena slika. Zamislite, međutim, da samo sedam ovakvih u cijelom svijetu može u jednoj sekundi napraviti transakciju.
Možda prvi put u svojoj povijesti, bitcoin se našao na prekretnici, gdje su čak dva glavna developera predložila prelazak na novu “inačicu” pod imenom bitcoin XT. Ovakav je prelazak, međutim, sve samo ne jednostavan, pa da vidimo o čemu je riječ… 30
listopad 2015. MREŽA
Bojan Ždrnja
V
jerujemo da su u posljednjih nekoliko godina svi naši čitatelji čuli za bitcoin. Za one koji su možda živjeli na udaljenom otoku (bez Interneta): riječ je o digitalnom platnom sustavu koji je napravio pravu malu revoluciju. Naime, korištenjem peer-to-peer tehnologije te bez centralnog autorizacijskog tijela kao što je to banka, bitcoin je postigao veći uspjeh od bilo koje digitalne valute do sada. Iako je bitcoin imao uspona i padova u povijesti, uspio se othrvati svim problemima i preživjeti: npr. krajem 2013. godine vrijednost bitcoina je iznimno fluktuirala - u studenom se
Vratimo se tehničkim karakteristikama bitcoina. Kao što je detaljnije opisano u posebnom okviru, osnovu bitcoina predstavlja blok. Blok se koristi kako bi se potvrdile transakcije iz peer-to-peer sustava: kada pojedini rudar dobije novu transakciju, on za nju, zajedno s ostalim do tog trenutka nepotvrđenim transakcijama računa Merkle stablo. Merkle stablo predstavlja niz kriptografskih sažetaka koji na temelju korijenskog sažetka omogućuju provjeru svih ostalih podataka, odnosno onemogućuju njihovo modificiranje. Za bitcoin je ovo ključno jer, kao što smo opisali u posebnom okviru, onemogućuje dvostruko trošenje. Jedan blok, dakle, sadrži podatke o svim transakcijama koje do tog trenutka nisu potvrđene. Bitcoin projekt definira maksimalnu vrijednost bloka od 1 MB. To znači da svaki rudar koji pokušava naći novi važeći bitcoin blok može raditi na bloku čija je maksimalna vrijednost 1 MB. Budući da blok sadrži i podatke o transakcijama (iako se kriptografski izračun radi samo na zaglavlju), ovakva maksimalna veličina bloka zapravo ograničava broj transakcija koje je bitcoin u stanju provesti u sekundi. Naime, prosječna veličina transakcije bitcoin sustava je 250 okteta. Ako uzmemo teoretsku maksimalnu veličinu bloka od 1 MB, to znači da jedan bitcoin blok može potvrditi maksimalno 1048576 / 250 = ~4200 transakcija. Kako je sustav zamišljen tako da generira približno 1 blok svakih 10 minuta (s time da, naravno, ovaj interval može biti manji, ali i veći), to znači da bitcoin može provesti 6-7 transakcija u sekundi - za cijeli svijet!
Čemu ovako (smiješno) ograničenje?
Vjerujemo da ćete se složiti s time kako sedam transakcija u sekundi nije niti približno dovoljno za cijeli svijet (usporedbe radi, još 2013. godine Visa je objavila da u vršnim trenucima njihova kartična mreža obrađuje čak 47.000 transakcija u sekundi). No, veličina bloka od 1 MB nije odabrana bez veze: riječ je o vrijednosti za koju su se glavni developeri odlučili kako bi smanjili zahtjeve za resursima same bitcoinove peer-to-peer mreže. Budući da se blokovi razmjenjuju preko peerto-peer mreže, pojedini rudari uvijek rade na prethodnom bloku dok ne dobiju kompletan novi blok, koji zatim spremaju u lanac. Zamislite sada da neki veliki korisnik bitcoina, koji ima ogromne mrežne i računalne resurse, odluči napraviti (i uspije u tome) blok veličine 1 TB. Svi ostali članovi bitcoin peer-to-peer mreže
Što čini bitcoin blok? rudarili bi prema starom bitcoin bloku dok ne skinu novi blok, a kako je njegova veličina 1 TB, to bi moglo potrajati. U međuvremenu, navedeni korisnik bitcoina ima prednost nad svim ostalima jer to vrijeme može iskoristiti za računanje novog bloka, što ga stavlja u povlašteni položaj. Uz navedeno, do izražaja dolazi i problem pohranjivanja podataka blokova. Prilikom provjere transakcije sustav mora pronaći prethodnu (ulaznu) transakciju, što također može predstavljati problem korištenja resursa računala.
Bitcoin blok predstavlja osnovni element bitcoinskog platnog sustava
Kad se male ruke (ne) slože
Logično pitanje koje ste sada možda postavili jest zašto se veličina bloka ne poveća na npr. 2 MB ili 10 MB? Ili, s obzirom na današnje računalne resurse na neku veliku vrijednost, npr. 1 GB? Ako zanemarimo prethodno navedene probleme (potrebnu mrežnu propusnost, diskovni prostor i slično), susrećemo se s još jednim problemom - ovu je promjenu potrebno napraviti u jednom trenutku: svi korisnici bitcoin sustava moraju u istom trenutku prijeći na novu maksimalnu veličinu bloka jer u suprotnom korisnici starog klijenta neće prihvaćati nove, velike blokove. I tu na scenu stupa bitcoin XT. Nakon dosta rasprave oko navedenog problema, dva vrlo utjecajna developera bitcoina predložili su pokretanje nove inačice bitcoina pod imenom bitcoin XT. Ključna razlika ove inačice u odnosu na staru je podrška za maksimalnu veličinu bloka od 8 MB. Ovo bi omogućilo procesiranje većeg broja transakcija u sekundi, tako da bi sustav bio u mogućnosti potvrditi do 50-ak transakcija u sekundi, što zadovoljava trenutne potrebe bitcoina. Ključan problem koji smo već naveli, jest taj da svi, ili barem većina korisnika bitcoina (rudara), mora prijeći na novu inačicu kako bi sustav zaživio. To ujedno znači i da bitcoin XT treba dobiti njihovu podršku, a mišljenja su trenutno vrlo podijeljena.
Bitcoin blok predstavlja ključnu komponentu bitcoinskog platnog sustava. Prilikom generiranja bitcoin bloka, u njega su zapisane sve transakcije koje je pojedini rudar dobio do tog trenutka, a koje nisu zapisane u prethodnim blokovima. Blokovi su nadalje međusobno povezani (tzv. vezana lista, gdje svaki novi blok ima pokazivač na sažetak prethodnog bloka; na slici prikazano kao Prev_Hash vrijednost). Korištenjem prikazane veze u bitcoinu se stvara lanac koji je osnova provjere transakcija i sprječavanja najvećeg problema digitalnog novca: dvostrukog trošenja. Naime, kako je digitalni novac izuzetno lako kopirati (zamalo pa CTRL+C ->
CTRL+V), bitcoinovo rješenje sprječavanja ovakve prijevare je upravo pomoću lanca blokova. Kada je napravljena nova transakcija, ona ulazi u sljedeći blok koji je vezan uz lanac. Nakon što blok bude prihvaćen, što se događa u trenutku kada rudar (engl. miner) nađe traženu vrijednost, sva računala koja sudjeluju u bitcoinovoj mreži prihvaćaju novi blok. Napadač koji bi htio provesti dvostruko trošenje morao bi generirati jednako vrijedan blok, što je izuzetno teško i praktički neisplativo. Što je više vremena prošlo, to je više novih blokova dodano u lanac te bi prethodno spomenuti napadač morao lažirati više blokova: kompleksnost ovog problema raste praktički eksponencijalno.
Blok, dakle, kao što se može vidjeti na slici, uz poveznicu na prethodni blok, sadrži još neke podatke od kojih je najvažniji Tx_Root - riječ je o korijenu Merkle stabla u koji su povezane sve transakcije koje navedeni blok potvrđuje. Iako se prilikom rudarenja bloka u obzir uzimaju samo označeni podaci, što znači da je jednako vremena potrebno za rudarenje bloka bez transakcija i bloka koji sadrži npr. 1000 transakcija, problem je što osim ovakvog “potpisa” blok mora prenijeti i podatke o samim transakcijama. Upravo ovdje nastaje problem trenutne skalabilnosti bitcoina koja ga ujedno i značajno ograničava s obzirom na trenutno maksimalnu veličinu kompletnog bloka od 1 MB.
Za ili protiv?
Jedan dio korisnika podržava migraciju na novi sustav bitcoin XT. Procjena je da trenutni sustav može zadovoljiti potrebe korisnika narednih godinu dana ili do početka 2017. godine. Nakon toga, broj transakcija u sekundi mogao bi toliko narasti da bi se sustav mogao naći u problemima u potvrđivanju, što bi dovodilo do sve većeg i većeg kašnjenja (efekt lavine). S druge strane, grupa korisnika koja je protiv trenutačnih promjena tvrdi da je riječ samo o privremenom rješavanju problema koje neće dugo živjeti te je problem potrebno riješiti dugotrajnijim rješenjem: tzv. Bitcoin Lightning mrežom. Iako je riječ o relativno kompleksnoj izvedbi, sama ideja je donekle jednostavna: Bitcoin Lightning rješava problem veličine blokova tako da dvije strane koje žele napraviti transakciju to rade između sebe. Kada je transakcija gotova, tek tada objavljuju rezultat “cijelom svijetu”. Bitcoin Lightning tako omogućuje veliku skalabilnost te osigurava mogućnost podržavanja mikro plaćanja, što danas predstavlja veliki problem. Uz navedeno, kao i uvijek, pojavio se još čitav niz prijedloga rješavanja opisanog problema.
Blok na slici sadrži 2512 transakcija i ukupna mu je vrijednost preko 32.000 bitcoina, što je u trenutku pisanja članka bilo preko sedam milijuna USD.
Bitcoin XT, koji se još naziva i BIP 101, samo je jedan od prijedloga modificiranja veličine bloka. BIP 100 predlaže periodičko povećanje veličine bloka koji, međutim, može narasti do maksimalne veličine od 32 MB, a BIP 103 predlaže godišnje povećanje bloka za 17,7% do 2063. godine.
Konačno, i uz Bitcoin Lightning pojavio se čitav niz prijedloga rješavanja problema mikro plaćanja, tako da je sigurno samo to kako ćemo još sačekati dok ne vidimo konačno rješenje ovog problema. No, uvjereni smo da će bitcoin i ove probleme prebroditi, kao i sve do sada. MREŽA listopad 2015.
31