Saturday, March 15, 2014

Bitcoin: tehničko pojašnjenje (drugi dio)

5. poglavlje: Network



Ovdje se navode koraci opisani prethodno u ovom tekstu. Također je vidljivo da iako je moguće da dijelovi mreže imaju različite blokove neko vrijeme. Ta će situacija trajati sve dok se ne "riješi" idući blok transakcija, tj. dok se ne nađe dokaz rada za idući blok. Tad će jedan lanac blokova postati dulji te će se nastaviti raditi na njemu. Onaj drugi blok kao da se nikad nije dogodio.

6. poglavlje: Incentive



Svaki blok započinje posebnom transakcijom koja onome tko je riješio prethodni blok daje određenu svotu bitcoina. Nakon što su u prethodnom vremenskom intervalu prikupljene transakcije i nakon što je pronađen dokaz rada za taj blok, čvor koji je uspješno riješio taj blok dobiva određenu svotu bitcoina u posebnoj transakciji koja se prva uključuje u idući blok. To potiče klijente da nastave s rješavanjem blokova odnosno verificiranje transakcija.

Također se govori o tome da će postojati unaprijed određeni broj bitcoina koji će biti moguće dobiti rješavanje blokova. Nakon što prestanja stvaranje novih bitcoina, klijenti će i dalje verificirati transakcije jer će se verifikacija i dalje plaćati.

Govori se i o napadu s 51% resursa. Iako je moguće da će takav napadač moći poništavati svoje transakcije, isplativije je ako nastavi verificirati transakcije.

7. poglavlje: Reclaiming disk space



Da bi se smanjilo zauzeće prostora na disku, transakcije se mogu sažeti u Merkleovo stablo te se u blok umjesto samih transakcija zapisuje korijen stabla.

Na slici iz ovog poglavlja prvi se puta vidi da se blok sastoji od dva dijela: zaglavlja (header) i "tijela". U zaglavlju se nalazi nonce, hash prethodnog bloka i korijen Merkleovog stabla. U ostatku bloka, "tijelu", nalaze se transakcije koje je klijent skupio. Transakcije je moguće sažeti "rezanjem grana" Merkleovog stabla.

8. poglavlje: Simplified Payment Verification



Transakcije je moguće verificirati bez pokretanja cijelog čvora (full node). CIjeli čvor  je čvor koji kod sebe drži kopije svi blokova i svih transakcija na njima. Ako je na klijentu pokrenut cijeli čvor, transakcije se verificiraju tako da se provjeravaju sve prethodne transakcije koje vode do ove sadašnje.

Za razliku od toga, pojednostavljeni čvor drži kod sebe samo zaglavlja transakcija. Takav čvor ne može sam za sebe provjeravati transakcije nego "vjeruje" drugim čvorovima da ispravno verificiraju transakcije. Nakon što se određena transakcija "zakopa" ispod x blokova, pojednostavljeni klijent prihvaća tu transakciju kao ispravnu.

Pojednostavljeni čvor ipak može provjeriti nalazi li se neka transakcija u određenome bloku. Kombinirajući zaglavlja blokova koje čvor čuva i hasheva određenih transakcija koje su dohvaćene iz mreže, moguće je provjeriti je li određena transakcija u bloku zahvaljujući svojstvima Merkleovog stabla.

Pojednostavljeni se klijenti oslanjaju na ostale čvorove u mreži da im jave što je ispravno. U slučaju napada korištenjem 51% resursa jednostavni će čvorovi prihvaćati neispravne transakcije kao ispravne.

9. poglavlje: Combining and Splitting Value



Transakcije mogu imati više ulaza te jedan do dva izlaza. Bitcoin se prebacuje s vlasnika na vlasnika tako da se svi bitcoin s jedne adrese prvog vlasnika prebace na adresu drugog vlasnika. U slučaju da je korisnik želio prebaciti manje bitcoina nego zapravo ima na toj adresi, ostatak bitcoina će mu se vratiti. Dakle transakcija će imati jedan izlaz ako se svi bitcoini s jedne adrese prebacuju na drugu, a dva ili više ako se prebacuje manje te je ostatak potrebno vratiti pošiljatelju.

Bitcoin se ponaša slično novčanicama. Kada je u dućanu potrebno platiti određeni iznos, kupac prodavaču daje novčanicu određene denominacije. Ako je denominacija veća od ukupnog troška, prodavač kupcu vraća ostatak.

10. poglavlje: Privacy



Iako se sve transakcije moraju javno objaviti moguće je zadržati dozu privatnosti tako što će javni ključevi biti anonimni. Kada se provede bitcoin transakcija, moguće je vidjeti koliko je sredstava preneseno na neku adresu, ali ne zna se kome ta adresa pripada. Za dodatnu razinu sigurnosti potrebno je generirati novi par ključeva za svaku transakciju.

No comments:

Post a Comment