Većina razgovora o Bitcoinu počinje i završava cijenom. Koliko vrijedi jedan BTC, da li će rasti, ko je kupio, ko je prodao i da li je tržište trenutno u fazi euforije ili panike. Sve to može biti zanimljivo, posebno onima koji Bitcoin posmatraju prvenstveno kao investiciju. Ipak, meni je mnogo zanimljivije ono što se nalazi ispod tržišnog grafikona.

Bitcoin je prije svega sistem pravila.

Nema centralnu bazu u kojoj administrator po potrebi mijenja stanje računa. Nema kompaniju koja može odlučiti da nekome poništi transakciju. Nema glavnog servera čiji bi prestanak rada automatski ugasio cijelu mrežu. Umjesto toga, postoje hiljade nezavisnih računara koji provjeravaju iste podatke prema istim pravilima.

To je daleko važnije od pitanja hoće li bitcoin sljedećeg mjeseca vrijediti više ili manje.

Cijena može privući pažnju, ali protokol objašnjava zašto Bitcoin uopšte može postojati.

Ono što korisnik ne vidi iza dugmeta „Pošalji“

Kada u Bitcoin novčaniku unesemo adresu, iznos i pritisnemo dugme za slanje, sve izgleda gotovo banalno. Navikli smo na aplikacije koje kriju tehničke detalje, pa lako stičemo utisak da novac jednostavno prelazi s jednog računa na drugi.

Bitcoin, međutim, ne vodi klasičnu tabelu korisničkih računa.

Ne postoji zapis prema kojem Noel ima određeni broj bitcoina, dok neka druga osoba ima neki drugi iznos. Protokol koristi model nepotrošenih transakcijskih izlaza, poznatih kao UTXO. Pojednostavljeno rečeno, Bitcoin prati dijelove vrijednosti koji su nastali ranijim transakcijama i koji još nisu potrošeni.

Ako novčanik prikazuje da korisnik raspolaže određenim iznosom, taj saldo može biti zbir više različitih izlaza. Kada korisnik šalje bitcoin, novčanik bira jedan ili više tih izlaza, troši ih u cijelosti i stvara nove. Jedan novi izlaz ide primaocu, dok se eventualni ostatak vraća pošiljaocu kao kusur.

Ovo na prvi pogled djeluje kao nepotrebno komplikovanje. Zapravo je riječ o jednom od osnovnih dijelova Bitcoinovog dizajna.

Takav model omogućava da se svaka potrošnja poveže s konkretnim prethodnim izlazom. Mreža ne mora vjerovati izjavi korisnika da ima dovoljno sredstava. Svaki čvor može provjeriti da li navedeni izlaz postoji, da li je već potrošen i da li je novi pokušaj trošenja pravilno odobren.

Upravo se ovdje vidi razlika između povjerenja u instituciju i provjere protokolskih činjenica.

Banka kaže da novac postoji jer ga njena baza prikazuje na računu. Bitcoin čvor sam provjerava lanac prethodnih transakcija i trenutno stanje nepotrošenih izlaza.

Privatni ključ nije lozinka koju neko može resetovati

Kod tradicionalnog internetskog naloga vlasništvo se obično dokazuje korisničkim imenom i lozinkom. Ako zaboravimo lozinku, servis nam može poslati novu poveznicu. Ako neko neovlašteno preuzme nalog, podrška možda može vratiti pristup.

Bitcoin nema takvu podršku.

Pravo na trošenje određene vrijednosti najčešće se dokazuje digitalnim potpisom napravljenim odgovarajućim privatnim ključem. Mreža ne mora znati ime, adresu stanovanja ili državljanstvo vlasnika. Ona provjerava da li potpis zadovoljava uslov definisan u prethodnom transakcijskom izlazu.

To korisniku daje stvarnu kontrolu, ali ta kontrola nije samo privilegija. Ona je i odgovornost.

Ako privatni ključ bude ukraden, napadač može potpisati transakciju. Ako ključ bude trajno izgubljen, ne postoji administrator koji može izdati novi. Protokol ne pravi razliku između osobe koja je legitimni vlasnik i osobe koja je nekako došla do ključa. On provjerava kriptografski dokaz, a ne životnu priču potpisnika.

Zbog toga mi je uvijek problematično kada se Bitcoin predstavlja kao laka i bezbrižna zamjena za bankovni račun. Nije. Samostalno upravljanje novcem zahtijeva razumijevanje sigurnosti, rezervnih kopija i oporavka novčanika.

Ali upravo tu leži i njegova posebnost. Kontrola nije obećanje kompanije koje važi dok je nalog aktivan. Kontrola je ugrađena u način na koji se sredstva mogu potrošiti.

Dodatne mogućnosti, poput višestrukih potpisa, omogućavaju da se rizik rasporedi. Kompanija, porodica ili organizacija može postaviti pravilo prema kojem su za trošenje potrebna dva od tri ključa. Gubitak jednog uređaja tada ne mora značiti gubitak sredstava, dok kompromitovanje jednog ključa napadaču ne mora biti dovoljno za krađu.

To nije savršeno rješenje za svaku osobu i svaku situaciju. Jeste, međutim, primjer kako se upravljanje povjerenjem može pretvoriti u precizno tehničko pravilo.

Konsenzus nije glasanje i rudari nisu gospodari mreže

Jedna od najčešćih zabluda jeste da rudari upravljaju Bitcoinom zato što stvaraju blokove. Njihova uloga jeste važna, ali nije neograničena.

Rudari biraju transakcije koje žele uključiti u kandidat za novi blok. Zatim pokušavaju pronaći odgovarajući rezultat procesa dokazivanja rada, odnosno proof-of-worka. Taj postupak zahtijeva veliki broj računarskih pokušaja i stvaran utrošak resursa.

Kada rudar pronađe validan blok, šalje ga mreži. Tu se, međutim, posao ne završava.

Svaki puni čvor nezavisno provjerava taj blok. Provjerava strukturu, transakcije, potpise, potrošene izlaze, dozvoljenu nagradu i ostala pravila protokola. Ako blok krši pravila, čvor ga odbacuje bez obzira na to koliko je rudarske opreme učestvovalo u njegovom stvaranju.

Rudar može predložiti blok. Ne može prisiliti nezavisan čvor da prihvati nevažeći blok.

Meni je to jedna od najvažnijih osobina čitavog sistema. Bitcoinov konsenzus nije zasnovan na tome da učesnici vjeruju najvećem ili najglasnijem akteru. Čvorovi ne glasaju o tome da li je nevažeća transakcija možda ipak prihvatljiva. Svaki od njih primjenjuje ista pravila i dolazi do vlastitog zaključka.

Proof-of-work omogućava mreži da među više validnih kandidata prati lanac s najviše akumuliranog rada. Zato nije sasvim precizno reći da Bitcoin uvijek bira najduži lanac. Presudan je rad uložen u lanac, a ne samo broj blokova.

Takav sistem čini mijenjanje potvrđene istorije sve skupljim. Što se više novih blokova nalazi iznad određene transakcije, to bi više rada bilo potrebno da se izgradi konkurentska istorija koja je ne sadrži.

Zbog toga potvrde nisu ukras u korisničkom interfejsu. One predstavljaju rast praktične sigurnosti transakcije.

Potvrđena transakcija nije isto što i viđena transakcija

Kada novčanik ili servis prvi put vidi transakciju, ona se najčešće nalazi u mempoolu. To je lokalni skup nepotvrđenih transakcija koje je određeni čvor prihvatio kao kandidate za buduće blokove.

Naglasak je na riječi „lokalni“.

Ne postoji jedan globalni mempool koji svi učesnici vide u potpuno istom trenutku. Različiti čvorovi mogu imati različit skup transakcija zbog mrešnog kašnjenja, vlastitih pravila prihvatanja, ograničenja memorije ili konflikata među transakcijama.

Transakcija viđena u mempoolu još nije dio potvrđenog lanca. Može ostati nepotvrđena duže nego što korisnik očekuje. Može biti zamijenjena verzijom s većom naknadom. Može nestati iz mempoola pojedinog čvora ili doći u konflikt s drugom potrošnjom istog izlaza.

Ovo je posebno važno za trgovce i programere koji žele primati Bitcoin uplate.

Ozbiljan sistem ne bi smio imati samo dva stanja, „plaćeno“ i „nije plaćeno“. Mora razlikovati kreirani zahtjev za plaćanje, primijećenu nepotvrđenu transakciju, potvrđenu uplatu, konačno poslovno poravnanje, konflikt i moguću reorganizaciju lanca.

Za kupovinu kafe možda je prihvatljiv drugačiji rizik nego za prodaju automobila. Broj potrebnih potvrda zato nije mistično pravilo koje se uvijek mora primijeniti na isti način. To je poslovna i sigurnosna odluka koja zavisi od vrijednosti, vrste robe i mogućnosti zloupotrebe.

Čuvenih šest potvrda jeste korisna i poznata praksa za situacije u kojima se traži visok nivo sigurnosti. Nije naredba ugrađena u protokol.

Naknada ne zavisi prvenstveno od iznosa koji šaljemo

Još jedna stvar koju ljudi često pogrešno razumiju jeste način obračuna Bitcoin naknada.

Kod bankarskih usluga navikli smo da trošak može biti procenat prenesenog iznosa. Kod Bitcoina je presudna veličina transakcije u podacima i ponuđena naknada po jedinici prostora.

Transakcija koja troši veliki broj malih UTXO izlaza može biti skuplja od transakcije kojom se šalje mnogo veća novčana vrijednost iz jednog izlaza. Rudari raspolažu ograničenim prostorom u blokovima i najčešće daju prednost transakcijama koje nude bolju naknadu u odnosu na prostor koji zauzimaju.

To znači da upravljanje UTXO izlazima nije nevažan tehnički detalj. Način na koji novčanik bira sredstva utiče na naknade, privatnost i buduće troškove.

Ako novčanik stalno spaja veliki broj izlaza, posmatrači mogu zaključiti da ih kontroliše isti korisnik. Ako ostavlja veliki broj sitnih izlaza, njihovo kasnije trošenje može postati nepraktično kada mrežne naknade porastu.

Dobar Bitcoin novčanik zato radi mnogo više od pukog sabiranja salda. On pokušava izabrati odgovarajuće izlaze, procijeniti naknadu, napraviti razuman kusur i izbjeći nepotrebno otkrivanje veze među sredstvima.

Korisnik to uglavnom ne vidi. I ne mora vidjeti svaki tehnički detalj. Ali programeri koji prave novčanike, mjenjačnice i sisteme naplate moraju razumjeti posljedice svojih odluka.

Vlastiti čvor mijenja odnos prema povjerenju

Mogućnost pokretanja vlastitog Bitcoin čvora za mene nije samo hobi za tehnički radoznale ljude. Ona pokazuje šta otvoreni protokol znači u praksi.

Korisnik ne mora otvoriti račun kod vlasnika Bitcoin mreže, jer takav vlasnik ne postoji. Ne mora tražiti API ključ da bi provjerio blokove. Ne mora prihvatiti prikaz jednog javnog explorera kao konačnu istinu.

Može preuzeti odgovarajući softver, povezati se s mrežom i samostalno provjeriti istoriju i pravila.

Naravno, pokretanje čvora ima svoju cijenu. Potrebni su diskovni prostor, mrežni protok, vrijeme za početnu sinhronizaciju i određeno tehničko znanje. Ozbiljna produkcijska upotreba zahtijeva održavanje, nadzor i sigurnu konfiguraciju.

Ipak, poenta nije u tome da svaki čovjek mora držati čvor u dnevnoj sobi. Poenta je da mogućnost postoji i da nije rezervisana za banke, države ili licencirane posrednike.

Ako se aplikacija potpuno oslanja na jedan eksterni servis, ona ponovo uvodi centralnu tačku povjerenja. Taj servis vidi upite, može pogriješiti, imati prekid rada, promijeniti pravila korištenja ili ograničiti pristup.

Zbog toga vlastiti čvor ima poseban smisao za ozbiljne sisteme naplate. Eksterni API može poslužiti kao dodatni izvor ili praktična pomoć. Ne bi trebalo olako postati jedini autoritet za ono što se događa na mreži.

Blockchain ne može zamijeniti poslovnu bazu

Oko blockchain tehnologije godinama se stvarala predstava da će ona zamijeniti gotovo svaku bazu podataka. To nikada nije bilo naročito uvjerljivo.

Bitcoin blockchain može pokazati da je određeni izlaz stvoren ili potrošen. Ne zna šta je kupac naručio, da li je roba isporučena, koji je kurs korišten, kome treba poslati račun ili da li je korisnička podrška riješila reklamaciju.

Za sve to i dalje je potrebna interna baza.

Dobar sistem jasno razdvaja dvije vrste činjenica. Bitcoin čvor daje protokolske činjenice o transakcijama i blokovima. Poslovna baza čuva odnos tih događaja prema korisnicima, narudžbama, računima i internim pravilima.

Mislim da je ovo zdravo otrježnjenje nakon godina pretjeranih obećanja o blockchainu. Bitcoin ne mora zamijeniti svaku bazu da bi bio vrijedan. Dovoljno je da pouzdano radi ono za šta je dizajniran: prenos i provjeru digitalne vrijednosti bez centralnog operatora.

Obična baza podataka biće brža i jednostavnija kada svi učesnici već vjeruju istom administratoru. Bitcoin ima smisla upravo tamo gdje je mogućnost samostalne provjere dovoljno važna da opravda dodatnu složenost.

Sigurnost se najčešće lomi na običnim ljudskim greškama

Kriptografija na kojoj Bitcoin počiva ozbiljna je i godinama provjeravana. Ipak, većina praktičnih problema ne nastaje zato što je neko slomio SHA-256. Nastaje zato što je privatni ključ završio u pogrešnom logu, rezervna kopija nije testirana, server je loše zaštićen ili je neko slijepo potpisao transakciju koju nije pročitao.

To je manje spektakularno od priče o hakovanju protokola, ali je mnogo realnije.

Produkcijski sistem ne bi trebalo da drži sve ključeve na istom javno dostupnom serveru. Praćenje uplata može se odvojiti od potpisivanja. Watch-only novčanik može generisati i pratiti adrese bez mogućnosti trošenja, dok se potpisi stvaraju na izdvojenom uređaju ili u posebno zaštićenom servisu.

PSBT format dodatno olakšava takav način rada. Jedan sistem može pripremiti nepotpisanu transakciju, a zaseban uređaj provjeriti odredišta, iznose i naknadu prije dodavanja potpisa.

To nije čarobni štit. Ako osoba ne provjeri šta potpisuje, tehnička izolacija gubi dio smisla. Ipak, odvajanje uloga značajno smanjuje mogućnost da jedan kompromitovani server odmah dovede do gubitka svih sredstava.

Bitcoin nas ovdje podsjeća na neugodnu, ali korisnu istinu: sigurnost nije jedan proizvod koji kupimo. Ona je niz odluka, ograničenja i provjerenih procedura.

Lightning pokazuje da svaki problem ne mora rješavati osnovni sloj

Bitcoinov osnovni lanac nije napravljen za ogroman broj sitnih, trenutnih plaćanja. Prostor u blokovima je ograničen, potvrde zahtijevaju vrijeme, a naknade zavise od potražnje.

To nije slučajna greška koju niko nije primijetio. Osnovni sloj daje prednost provjerljivosti, sigurnosti i otpornosti sistema. Za česta i mala plaćanja razvijen je Lightning Network.

Lightning omogućava da učesnici zaključaju sredstva u kanal, a zatim razmjenjuju nova stanja bez zapisivanja svake pojedinačne uplate na osnovni blockchain. Plaćanja mogu prolaziti kroz mrežu povezanih kanala i biti izvršena veoma brzo.

Meni je važna upravo ta podjela uloga.

Ne mora svaki sloj raditi sve. Osnovni lanac može služiti kao sloj konačnog poravnanja i sigurnosti, dok viši sloj preuzima brza svakodnevna plaćanja. Sličan princip odavno postoji i u klasičnim finansijama, gdje se korisnička plaćanja i konačno međubankarsko poravnanje ne odvijaju nužno na istom tehničkom nivou.

Lightning donosi vlastite zahtjeve, poput upravljanja kanalima i likvidnošću. Ipak, pokazuje da se skaliranje može graditi bez pretvaranja osnovnog protokola u nekontrolisano složenu platformu.

Najvažnija osobina Bitcoina nije spektakularna

Bitcoin nije najbrža baza podataka. Nije besplatan platni sistem. Njegov programski jezik namjerno je ograničen. Privatnost nije automatska, a odgovornost za ključeve može biti nemilosrdna.

Ipak, ocjenjivati ga samo prema brzini bilo bi kao ocjenjivati sef prema tome koliko se brzo otvara.

Njegova svrha nije da pobijedi centralnu bazu u broju transakcija u sekundi. Centralna baza će gotovo uvijek biti brža jer njen administrator kontroliše infrastrukturu i određuje stanje. Bitcoin pokušava postići nešto drugo: omogućiti učesnicima koji ne moraju vjerovati jedni drugima da provjere prenos digitalne vrijednosti prema javnim pravilima.

Tu vidim njegovu pravu vrijednost.

Svako može provjeriti da li je transakcija validna. Svako može pokrenuti čvor. Niko ne može jednostavno otvoriti administratorsku konzolu i pripisati sebi dodatni bitcoin mimo pravila. Rudar može proizvesti blok, ali ga mreža ne mora prihvatiti. Programer može napraviti aplikaciju bez dozvole centralnog vlasnika protokola.

To možda ne zvuči uzbudljivo kao obećanje o brzom bogaćenju. Meni je mnogo važnije.

Cijena može rasti i padati. Tržišni narativi mogu se mijenjati svakih nekoliko mjeseci. Tehnički temelj ostaje razlog zbog kojeg Bitcoin nije samo još jedan broj na serveru neke kompanije.

Ko želi ozbiljno razumjeti Bitcoin, trebalo bi makar nakratko zaboraviti grafikone. Treba pogledati kako nastaje transakcija, šta potpis zaista dokazuje, zašto čvor odbacuje nevažeći blok i kako mreža bez centralnog administratora dolazi do zajedničke istorije.

Tek tada Bitcoin prestaje biti apstraktna priča o digitalnom zlatu. Postaje ono što zaista jeste: otvoren sistem preciznih pravila u kojem povjerenje nije uklonjeno čarolijom, nego zamijenjeno mogućnošću samostalne provjere.

Upravo zbog toga mislim da Bitcoin zaslužuje pažnju čak i ljudi koji nikada neće postati trgovci, rudari ili kripto entuzijasti. On je praktičan dokaz da digitalna vrijednost ne mora nužno zavisiti od jednog vlasnika baze, jednog procesora plaćanja ili jedne institucije koja svima govori šta je konačno stanje.

To je njegov najvažniji doprinos. Ne obećanje da ćemo se svi obogatiti, nego mogućnost da pravila novca budu javna, provjerljiva i jednaka za svakoga ko učestvuje u mreži.

IZVOR: Bitcoin iznutra: protokol, transakcije i konsenzus