Kako funkcioniraju Bitcoin transakcije i tko ih procesuira?
Rudarenje, mineri, blokovi, blockchain. U nastavku objašnjavamo što su navedeni pojmovi te zašto su važni za odvijanje Bitcoin transakcija.
Korisnici nas često pitaju zašto moraju čekati na procesiranje Bitcoin transakcija te zašto mi ne ubrzamo proces. U ovom članku objasnit ćemo kako rade Bitcoin transakcije, tko ih procesira i kako cijeli proces funkcionira.
Kako izbjeći dugo čekanje na potvrdu
Ako vas ne zanimaju detalji funkcioniranja cijelog procesa, jedino što morate znati jest da mineri (rudari) slažu transakcije u blokove koji imaju limitiran kapacitet u odnosu na potražnju. Da bi vaše transakcije bile što prije potvrđene potrebno je platiti minerima dovoljno visoku transakcijsku naknadu.
Većina walleta (novčanika) koje preporučujemo automatski računaju potrebnu naknadu ovisno o tome koliko ste spremni čekati na potvrdu. No visoka naknada ne garantira da će vam transakcija biti brzo potvrđena, stoga korisnicima koji su u žurbi ili ne žele čekati preporučujemo korištenje ETH, NANO ili neke od drugih kriptovaluta kod kojih transakcije većinom brzo prolaze.
Bitcoin i njegovi klonovi jednostavno nisu dizajnirani da budu brzi. Brzina je izgubila primat zbog bitnijih karakteristika kao što su sigurnost i decentralizacija. Kada je brzina od iznimne važnosti, Bitcoin nije pravi izbor. U nastavku ćemo objasniti kako funkcionira procesiranje Bitcoin transakcija, od početka do kraja.
Blockchain
Bitcoin je prva kriptovaluta koja je uspješno implementirala blockchain tehnologiju i pokrenula revoluciju koja omogućuje transfer vrijednosti bez posrednika. Kao što samo ime govori, blockchain se sastoji od više blokova povezanih u neprekinuti lanac.
Svaki blok sadrži određen broj transakcija s obzirom na njegovu ograničenu veličinu. Bitcoin blokovi imaju limit od oko 1 MB, odnosno oko 2 MB uz Segwit nadogradnju.
S obzirom na još uvijek relativno slabu prihvaćenost Segwit nadogradnje, veličina većine Bitcoin blokova je oko 1.2 MB. Sada kada znamo veličinu blokova trebali bi moći izračunati koliko transakcija stane u jedan blok, usporediti s brojem nepotvrđenih transakcija i saznati trenutno stanje mreže.
No stvari nisu tako jednostavne jer Bitcoin transakcije nemaju fiksnu veličinu. Također postoji više različitih tipova Bitcoin transakcija. Kako bi razumjeli način na koji se formira veličina određene transakcije, prvo moramo razumjeti kako funkcioniraju Bitcoin walleti, odnosno Bitcoin ledger.
UTXO format
Unspent transaction output (UTXO) je model bilježenja stanja računa koji je izumio Satoshi Nakamoto i implementirao u Bitcoin. Zanimljivo je da se ovaj model ne spominje u Bitcoin whitepaperu (PDF).
Ovaj način organiziranja transakcija bitno se razlikuje od standarda na kojeg smo navikli korištenjem tradicionalnih bankarskih računa kakvog koristi i Ethereum (ETH).
Standardni računi imaju stanje (balans) računa koje se mijenja nakon svake transakcije i nije podijeljen na manje iznose. Može ga se promatrati kao jednu veliku novčanicu promjenjivog iznosa. S druge strane, UTXO model najlakše je zamisliti kao novčanik u kojem imamo više različitih novčanica. Svaki UTXO istovjetan je jednoj novčanici.
Uzmimo za primjer da želimo kupiti telefon vrijednosti 500 kn, a u novčaniku imamo tri novčanice od 200 kn. Prodavaču ćemo dati sve tri novčanice, a on će nam vratiti ostatak odnosno novčanicu od 100 kn. Na isti način funkcioniraju i BTC transakcije.
Vaš BTC wallet prikazuje sumarnu vrijednost, odnosno iznos BTC-a koji posjedujete no u stvarnosti je taj iznos podijeljen u više različitih UTXO-a (novčanica) ovisno o dinamici vaših transakcija. Drugim riječima walleti prikazuju zbirnu vrijednost svih UTXO-a koje posjedujete. Ovisno o rasporedu i iznosu pojedinih UTXO-a, bit će potrebno iskoristiti jedan ili više UTXO-a kako biste uspješno napravili transakciju.
Sada kada znamo kako funkcioniraju Bitcoin walleti možemo izračunati veličinu pojedine Bitcoin transakcije kao i prosjek. Dakle, veličina Bitcoin transakcije ne ovisi o iznosu Bitcoina koji šaljete nego o broju UTXO-a koje je potrebno procesirati da bi poslali proizvoljan iznos BTC-a.
Svaki UTXO koji imate u novčaniku povećava veličinu transakcije, a s veličinom raste i cijena transakcije. Statistike pokazuju da je prosječna Bitcoin transakcija teška oko 450 bajtova te da imajući na umu varijabilnu veličinu Bitcoin blokova, u svaki blok u prosjeku stane oko 1,800 transakcija.
Sljedeće pitanje je koliko trebamo platiti da bi naša transakcija bila ubačena u prvi sljedeći blok i dali nam se to isplati s obzirom na veličinu transakcije.
Bitcoin nodes
Bitcoin nodes su računala koja pokreću Bitcoin software, formiraju mrežni konsenzus i sudjeluju u procesiranju transakcija. Trenutni broj i raspodjelu nodeova možete vidjeti na slici iznad (izvor).
Kada vaš Bitcoin wallet, odnosno Bitcoin node na koji je wallet spojen emitira transakciju ostalim nodeovima na mreži, transakcija završi u mempoolu, odnosno bazenu koji sadrži nepotvrđene transakcije koje čekaju inkomponiranje u blok kako bi postale dio neprekinutog lanca transakcija - blockchaina.
U mempoolu se najčešće u svakom trenutku nalazi oko 10,000 transakcija. Transakcije se procesiraju prema naknadi. Transakcije s adekvatnom naknadom imaju prednost.
Kvalitetniji Bitcoin walleti automatski analiziraju mempool i predlažu optimalnu naknadu koju je potrebno platiti minerima kako bi vaša transakcija bila što brže potvrđena.
No ako ste u žurbi i niste sigurni hoće li transakcija biti ukomponirana u prvi sljedeći blok preporučujemo korištenje kalkulatora koji određuju potrebnu naknadu. Dobra iskustva imali smo s ovim kalkulatorom.
Ovisno o gužvi na Bitcoin mreži transakcijske naknade mogu biti prilično zamjetne pa se ovisno o veličini i iznosu transakcije ne isplati platiti žurnu naknadu potrebnu za ulazak u prvi sljedeći blok.
Razumnije je platiti manju naknadu i pričekati nekoliko sati na prvu potvrdu. No kada kupujete nešto ili koristite našu mjenjačnicu jedina razumna opcija je plaćanje žurne naknade kako biste izbjegli duga čekanja na isplatu.
Novi blokovi formiraju se u prosjeku svakih 10 minuta. No to je samo prosječno vrijeme koje ima znatna odstupanja u praksi. Nerijetko se dogodi da se formira nekoliko blokova jedan za drugim pa na sljedeći blok moramo čekati i do sat vremena.
Stoga je jasno da vam čak ni dovoljno visoka transakcijska naknada ne garantira brzu potvrdu u određenim slučajevima. Ipak, radi se o ekstremima na koje je dobro računati, ali uz dovoljnu naknadu većina transakcija dočeka potvrdu unutar 20 minuta.
Dok transakcija nije potvrđena, podložna je manipulacijama te primatelj nema pristup novčićima. Kako bi bili sigurni da transakcija neće biti stornirana potrebno je pričekati broj potvrda proporcionalan vrijednosti transakcije. Za manje iznose dovoljna je jedna dok se za veće iznose preporučuje pričekati 3 ili više potvrda. Zapamtite da nepotvrđene transakcije nisu konačne i relativno ih je jednostavno stornirati.
Bitcoin mineri
Bitcoin mineri (rudari) su specijalizirani uređaji dizajnirani za kreiranje novih Bitcoin blokova. Mineri skeniraju mempool u potrazi za transakcijama s najvećom naknadom koje će biti ukomponirane u sljedeći blok.
Mnogi misle kako mineri rješavaju kompleksne matematičke probleme no zapravo se ne radi o pametnom nego teškom poslu. Mineri nasumično pogađaju velike nizove brojeva dok ne pogode ispravno rješenje sljedećeg bloka.
Prvi miner koji pronađe rješenje dobiva nagradu koja trenutno iznosi 12.5 BTC-a plus sve transakcijske naknade koje su korisnici platili kako bi njihova transakcija bilo ukomponirana u blockchain.
S obzirom na eksponencijalni porast broja minera, pojedinačni mining uređaji ili čak farme uređaja nisu dovoljno snažne da bi pronašle rješenje koje otključava sljedeći Bitcoin blok. Stoga se više minera udružuje i rudari zajedno. Skup minera naziva se mining pool.
Kada mining pool pronađe Bitcoin blok, nagrada se dijeli proporcionalno broju minera koji je sudjelovao u pronalasku bloka. Ovo je ujedno jedna od najvećih mana Bitcoina - nekoliko najvećih poolova (slika iznad, izvor) kontrolira većinu mining snage što u teoriji čini Bitcoin mining relativno centraliziran i podložan manipulacijama.
No u praksi stvari funkcioniraju bez greške i nije bilo zamjetnih incidenata jer je svim akterima u interesu da poštuju pravila mreže. Za kraj pogledajte grafički prikaz ciklusa Bitcoin transakcija prikazan na slici ispod.
Do čitanja,
Bitcoin Store tim