Članovi bitcoin mreže
Bitcoin mreža sastoji se od dva tipa članova (računalnih programa): novčanika i rudara. Novčanici su korisnici bitcoin mreže, a rudari tu mrežu održavaju.
Novčanici služe za pregled stanja adresa, za pregled prošlih transakcija i za kreiranje novih adresa i transakcija. Svaki novčanik sadrži popis svojih adresa i njihovih privatnih ključeva, a najčešće sadržava i kopiju blok-lanca.
Rudari služe za potvrđivanje transakcija, tj. rudari preuzimaju nove transakcije koje kreiraju novčanici i dodaju ih u blok-lanac.
Novčanici i rudari međusobno se povezuju i razmjenjuju informacije o novim (nepotvrđenim) transakcijama i o novim blokovima dodanima u blok lanac.
I to su svi članovi bitcoin mreže: novčanici kreiraju transakcije, a rudari ih dodaju u blok-lanac.
Podaci u bitcoin mreži
Bitcoin mreža u osnovi se sastoji samo od jedne velike podatkovne strukture: blok-lanca. Svi podaci potrebni za funkcioniranje bitcoin mreže nalaze se u toj jednoj jedinoj strukturi.
Blok-lanac sastoji se od niza blokova poredanih u lanac. Svaki blok (osim prvog bloka – “izvornog bloka”) sastoji se od poveznice na prethodni blok i od popisa transakcija. “Izvorni blok” nema poveznicu na prethodni blok i sadrži samo jednu transakciju (nagradu rudaru).
Svaka transakcija se sastoji od dva popisa. Prvi je popis adresa sa kojih se šalje, gdje uz svaku adresu stoji koliko bitcoina se šalje sa te adrese. Drugi je popis adresa na koje se šalje, gdje uz svaku adresu stoji koliko bitcoina se šalje na tu adresu. Naravno, zbroj bitcoina na prvom popisu je jednak zbroju bitcoina na drugom popisu.
I to su svi podaci koji postoje u bitcoin mreži: blok-lanac je lanac blokova, gdje blokovi sadrže transakcije, a transakcije sadrže adrese i iznose.
Jedini podaci u bitcoin sustavu koji se ne nalaze u blok-lancu su privatni ključevi. Svaka adresa ima svoj privatni ključ koji je poznat samo vlasniku te adrese. Privatni ključ služi za kreiranje transakcija, tj. za “trošenje” bitcoina. Osoba koja posjeduje privatni ključ neke bitcion adrese može kreirati transakciju u kojoj se šalju bitcoini sa te adrese.