Heš kalendar jeste struktura podataka koja se koristi za merenje protokom vremena dodavanjem heš vrednosti u bazu podataka na koju se samo dodaju podaci sa jednom heš vrednošću po protekloj sekundi. Može se posmatrati kao specijalna vrsta Merklijevog ili heš stabla, sa osobinom da u svakom datom momentu, stablo sadrži list za svaku sekundu od 01.01.1970. 00:00:00 UTC.

Heš stablo sa 8 čvorova i heš kalendar posle 7 sekundi
Heš stablo sa 8 čvorova i heš kalendar posle 7 sekundi

Heš stablo sa 8 čvorova i heš kalendar posle 7 sekundi.

Heš kalendar posle 31 sekundu
Heš kalendar posle 31 sekundu

Heš kalendar posle 31 sekundu sastoji se od 5 razvojenih heš stabala.

Čvorovi su numerisani sleva nadesno počevši od nule i svaki novi list se uvek dodaje zdesna. Periodičnim publikovanjem korena heš stabla moguće je koristiti heš kalendar kao osnovu za digitalnu vremensku shemu zasnovanu na heš-linkovanju.

Istorijat

uredi

Konstruktor heš kalendara je osmišljen od strane estonskih kriptografičara Ahto Buldasa i Mart Saarepera i zasnovan je na njihovom istraživanju na sigurnosnim svojstvima kriptografskih funkcija za sažimanje i digitalnoj vremenskoj shemi zasnovnoj na heš-linkovanju.[1] Njihov dizajn cilj je bio uklanjanje zavisnosti od trećom stranom odnosno da bi vreme vremenske sheme trebalo da bude verifikovano nezavisno od izdavaoca vremenske sheme.[2]

Konstrukcija heš kalendara

uredi

Postoje različiti algoritmi koji mogu da se koriste za izgradnju heš kalendara i izvlačenja relevantnog heš lanca po sekundi. Najlakše je zamisliti izgradnju kalendara u dve faze. U prvoj fazi, listovi se sakupljaju u kompletno binarno stablo, počevši sleva, pravivši svako stablo što je veće moguće.

 

Redak heš kalendar sa 1110 = 10112 listova

U drugoj fazi, više nepovezanih stabala se spajanjem korena inicijalnih stabala pretvaraju se u jedno stablo, ali ovog puta počevši zdesna, dodajući novi roditeljski čvor ukoliko je to potrebno (crveni čvorovi).

 

Kompaktan heš kalendar sa 1110 = 10112 listova.

Heš lanac može biti izvučen iz bilo kog heš stabla. S obzirom da je heš kalendar izgrađen na deterministički način, oblik stabla se svakog momenta može rekonstruisati znajući samo broj listova u stablu u tom momentu, što je jedan više nego broj sekundi počevši od 01.01.1970. 00:00:00 UTC do tog momenta. Dakle, zadajući vreme kada je stablo kalendara kreirano, kao i heš lanca izvučenog iz njega, vremenska vrednost koja odgovara svakom listu može biti izračunata.

Distribuirani heš kalendar

uredi

Distribuirani heš kalendar je distribuirana mreža čvorova heš kalendara. Da bi se osigurala visoka dostupnost servira, moguće je imati više kalendara na različitim fizičkim lokacijama koji svi komuniciraju međusobno da bi obezbedili da svaki kalendar sadrži identične heš vrednosti. Obezbeđivanje da kalendari ostanu u skladu je forma Bizantinovog praga tolerancije.

Ispod je prikazana grupa kalendara od 5 čvorova gde svaki čvor komunicira sa svakim drugim čvorom u grupi što dovodi do nepostojanja greške. Iako svaki čvor ima časovnik, časovnik se ne koristi za podešavanje vremena direktno, već kao metronom da bi obezbedilo "kucanje" čvorova u isto vreme.

 

Aplikacije

uredi

Grupa kalendara od pet čvorova je komponenta Keyless Signature Infrastructure (KSI), gde svaki list u heš kalendaru predstavlja agregatnu heš vrednost globalno distribuiranog heš stabla.

Vidi još

uredi

Reference

uredi

Spoljašnje veze

uredi