Deo zbornika Učimo blockchain

Struktura blockchain bloka

Blockchain se kao što mu samo ime govori sastoji od blokova. Blok je struktura podataka u kojoj su zapisane digitalne informacije koje se dijele putem blockchaina. Iz tablice vidimo da se jedan blok sastoji od zaglavlja u kojem su upisani metapodaci te liste digitalnih informacija varijabilne dužine:

Veličina Naziv Opis
4 bajta Veličina bloka Veličina bloka u bajtovima
80 bajtova Zaglavlje bloka Meta-podaci o bloku
1-9 bajtova Brojač zapisa Koliko zapisa sadrži blok
Varijabilno Zapisi Zapisi pohranjeni u bloku

Zaglavlje bloka

Zaglavlje svakog bloka sastoji se od 80 bajtova podataka koji služe kao dodatne tehničke informacije o bloku i povezivanju blokova u lanac. Struktura zaglavlja bloka dana je u tablici:

Veličina Naziv Opis
4 bajta Verzija Verzija protokola u vrijeme nastajanja bloka (specifično za Bitcoin)
32 bajta Hash prethodnog bloka Referenca na prethodni blok u lancu koji još nazivamo roditelj bloka
32 bajta Korijen binarnog hash stabla Kriptografski hash koji sadrži informacije o svim zapisima u bloku
4 bajta Vremenska oznaka Vrijeme kada je blok kreiran i uključen u blockchain
4 bajta Težinska oznaka Težina algoritma čije je rješenje potrebno za uključivanje bloka u blockchain
4 bajta Nonce Broj pomoću kojeg je riješen algoritam za uključivanje bloka u blockchain

Hash prethodnog bloka predstavlja rezultat dvostruke primjene SHA-256 hash funkcije nad zaglavljem prethodnog bloka u lancu. Hash bloka, koji je zapravo hash zaglavlja bloka, je jedinstveni identifikator svakog pojedinog bloka. Primijetimo, hash bloka zapravo nije dio strukture bloka. On se izračunava na strani svakog čvora kada čvor ima potrebe za tim, na primjer kada primi novi blok koji je uključen u lanac. Također, u svrhu vremenske uštede čvor može održavati zasebnu bazu podataka u kojoj su spremljeni hash-evi blokova.

Vremenska oznaka predstavlja vrijeme kada je blok dodan u lanac.

Težinska oznaka i nonce su meta-podaci koji se koriste prilikom dodavanja bloka u lanac.

Korijen binarnog hash stabla predstavlja informaciju dobivenu od svih zapisa u bloku.

Izvor: Domina Hozjan, Blockchain (diplomski rad), Prirodoslovno–matematički fakultet, Zagreb, 2017.