ADRESE I TAJNI KLJUČEVI
Svako ko se pridruţi bitkoinskoj mreži može da generiše sopstvenu bitkoinsku adresu (uglavnom niz od trideset ĉetiri slova i brojeva), kao i odgovarajući privatni kljuĉ (uglavnom niz od šezdeset ĉetiri karaktera).
Na primer, evo jedne prave bitkoinske adrese:
16R5PtokaUnXXXjQe4Hg5jZrfW69fNpAtF
Privatni kljuĉ ove adrese je:
5JJ5rLKjyMmSxhauoa334cdZNCoVEw6oLfMpfL8Hlw9pyDoPMf3
Samo osoba koja ima privatni kljuĉ može da potvrdi transakciju s te adrese (na ovoj adresi nema niĉeg, ne trudite se).
Svaka bitkoinska adresa ima jedan jedini privatni kljuĉ. Veza između privatnog kljuĉa i adrese utvrđuje se nizom složenih matematiĉkih jednaĉina, te je u suštini nemoguće sprovesti obrnut proces i pomoću javne bitkoinske adrese doći do privatnog kljuĉa.
Korisnik bitkoina može da generiše beskrajno mnogo bitkoinskih adresa i privatnih kljuĉeva. To ništa ne košta. Dužina adrese i sam broj mogućih adresa garantuje da je praktiĉno nemoguće dvaput generisati istu adresu.
ZAPOČINJANJE TRANSAKCIJE
Kada ima privatni kljuĉ, korisnik – recimo opet Alis – može poslati novac sa svoje adrese a da niko drugi ne dobije pristup njenom privatnom kljuĉu. Alis ne šalje nikom privatni kljuĉ, već ga unese u softver na svom raĉunaru, zajedno s detaljima transakcije. Ne šaljući ove podatke na mrežu, bit-koinski softver na Alisinom raĉunaru propušta ove informacije kroz niz složenih matematiĉkih jednaĉina, i kao ishod se dobija posebna šifra, koju ĉesto nazivamo digitalnim potpisom. Ovaj deo procesa može da se odigra ĉak i ako Alisin raĉunar nije povezan na internet.
Digitalni potpis – jedinstveni proizvod njenog privatnog kljuĉa i trenutne transakcije – Alis onda šalje na mrežu zajedno s transakcijom, veoma nalik na potpis na ĉeku.
POTVRDA VALIDNDSTI TRANSAKCIJE
Raĉunari koji dobiju Alisin digitalni potpis ne mogu obrnutim procesom da dođu do Alisinog privatnog kljuĉa, zahvaljujući matematiĉkim inovacijama. Ali kompjuteri mogu da propuste Alisin digitalni potpis i njenu javnu bitkoinsku adresu kroz drugi niz složenih matematiĉkih jednaĉina i utvrde da li je taj digitalni potpis zaista napravljen pomoću privatnog kljuĉa koji odgovara dotiĉnoj javnoj adresi. I opet, matematiĉke operacije sa obe strane ovog procesa veoma su
komplikovane – s jedne strane da se generiše potpis, i s druge da se potvrdi.
Raĉunari na mreži moraju da utvrde validnost svake transakcije pošto ne postoji centralni autoritet koji bi to obavio. Kada potvrde da Alis ima odgovarajući privatni kljuĉ, provere postoje li na Alisinoj bitkoinskoj adresi zaista novĉići koje ona pokušava da pošalje. Raĉunari na mreži ovo urade tako što pregledaju zapis svih prethodnih bitkoinskih dolazećih i odlazećih transakcija u kojima je Alisina adresa uĉestvovala.
STVARANJE BLOKOVA I
EVIDENTIRANJE TRANSAKCIJA
(POSTUPAK RUDARENJA BITKOINA)
Satoši je uviđao da bi bilo problematiĉno ako bi svaki raĉunar na mreži beležio svaku transakciju ĉim se dogodi. Transakcija možda pre stigne do jednog kompjutera nego do nekog drugog na mreži, što bi dovelo do neslaganja u pogledu svote na svakoj adresi. Bitkoin je morao da ima jednu konaĉnu evidenciju iz koje se vidi vreme svake transakcije, i Satoši je osmislio oštrouman naĉin da ovo postigne pomoću neke vrste neprestanog takmiĉenja u kom može uĉestvovati svaki pripadnik mreže.
Kako bi pobedili na takmiĉenju, svi raĉunari na mreži bi sastavili nedavne transakcije, koje su kružile mrežom, i napravili dugaĉke spiskove; ovi spiskovi nazivaju se blokovima.
Pošto bi sastavio transakcije u jedan blok, raĉunar bi onda provukao blok kroz još jednu specijalizovanu matematiĉku jednaĉinu, koju nazivamo heš funkcijom ili funkcijom sažimanja, i koja može da uzme bilo kakve podatke – ĉuveni Linkolnov govor ili vaše ime – i pretvori ih u jedinstven sažetak od šezdeset i ĉetiri karaktera.
Kompjuteri koji uĉestvuju u bitkoinskom takmiĉenju traže blok koji se može ubaciti u heš funkciju poznatu kao SHA 256 i tako generisati sažetak od šezdeset i ĉetiri karaktera sa određenim brojem nula na poĉetku. Ako, na primer, kompjuteri traže sažetak s pet nula na poĉetku, oba ova sažetka znaĉila bi pobedu:
000006d77563afal
914846b010bdl64f395bd34c2102e5e99e0cb9cfl73cld87
ili
000007ac6b77f49380ea90f3544a51ef0bfbfc8304816dlaab73daf77c20
99319
Zato što je SHA 256, kao i druge heš funkcije, nemoguće rekonstruisati obrnutim procesom, ne može se znati kakav blok će dovesti do sažetka s pet nula na poĉetku.
Imajući u vidu da SHA 256 i druge heš funkcije uvek generišu isti sažetak iz svakog pojedinaĉnog unosa, ako bi svaki kompjuter uneo iste transakcije u svoj blok, svaki kompjuter bi kao ishod dobio isti sažetak. Kako bi se napravila razlika između blokova, u nadi da će naći pobedniĉki blok, svaki kompjuter bi dobio zadatak da doda neki nasumiĉan broj na kraj bloka. Zbog osetljive prirode heš funkcija, promena nasumiĉnog broja na kraju bloka iz 20 u 22 mogla bi da promeni
sažetak iz sažetka s jednom nulom u sažetak s deset nula na poĉetku. Ako jedan nasumiĉan broj nije doveo do sažetka sa željenim brojem nula, kompjuter bi isprobao isto s drugim nasumiĉnim brojem dodatim na kraj da vidi hoće li to raditi.
Svi kompjuteri koji se nadaju pobedi uporno bi i dalje oprobavali nove nasumiĉne brojeve – i dodavali nove transakcije – sve dok jedan kompjuter ne bi našao blok koji vodi do sažetka s taĉnim brojem nula. Pošto je nalaženje rešenja podrazumevalo isprobavanje nasumiĉnih brojeva, ovo takmiĉenje je pre bilo igra na sreću nego takmiĉenje u veštini – ali kompjuter koji može svoja nagađanja najbrže da propusti kroz heš funkciju povećao bi sebi izglede za pobedu, baš kao što osoba s dvadeset tiketa za loto ima više šanse da pobedi nego neko ko imasamo jedan listić.
Broj nula potreban da bi se pobedilo na takmiĉenju bio je donekle nebitan, ali
je olakšavao podešavanje teţine takmiĉenja kako bi novi blokovi stizali otprilike
na svakih deset minuta. Ako raĉunan pobeĊuju ĉešće od toga, bitkoinski softver bi
se prilagodio i zahtevao da raĉunari naĊu saţetak s više nula na poĉetku. Ako
raĉunari ne pobeĊuju dovoljno ĉesto, softver bi mogao biti podešen tako da bude
potrebno manje nula. Kako je takmiĉenje postajalo teţe, zahtevalo je sve moćniji
hardver da bi se pobedilo.
OSVAJANJE BLOKOVA
Kad raĉunar pronaĊe pobedniĉki blok, poslao bi taj blok naokolo po mreţi kako bi
drugi kompjuteri utvrdili da je on zaista generisao saţetak sa ţeljenim brojem nula
na poĉetku. Kompjuteri bi onda dodali pobedniĉki blok blok-lancu koji postoji na
svim kompjuterima i tako uneli u evidenciju spisak transakcija u dotiĉnom bloku.
Taj blok je postajao zvaniĉnaevidencija svih transakcija koje su se odigrale nakon
prošlog pobedniĉkog bloka. Ako pobedniĉki blok izostavi nekoliko transakcija
ukljuĉenih u blokove koje su stvorili drugi raĉunari, te transakcije ne bi bile unete
u evidenciju blok-lanca i ostale bi za sledeći krug blokova. Pored transakcija i
nasumiĉnog broja, blokovi su takoĊe sadrţavali podatke o prošlom bloku i
informacije o stanju bitkoinske mreţe, te bi svi ovi podaci takoĊe bili zabeleţeni u
blok-lancu.
Kreativni metod stvaranja jedne jedine, neosporne transakcione evidencije
predstavljao je odavno traţeno rešenje zagonetke poznate kao problem vizantijskih
generala238. Pre bitkoina, informatiĉari su se s mukom trudili da naprave pouzdanu
mreţu ljudi koji nisu povezani, za sluĉaj da neki od njih nisu ljudi od poverenja.
Metod stvaranja blok-lanca, gde svaki blok potiĉe od samo jednog ĉlana mreţe, i
ĉinjenica da glas većine rešava sva neslaganja resili su ovaj problem.
STVARANJE NOVIH NOVČIĆA
Kada neki kompjuter generiše pobedniĉki blok, on takoĊe osvoji sveţanj novih
novĉića – pedeset bitkoina u vreme pojave ovog sistema. Ovi novĉići su stvarani na oštrouman naĉin. U suštini, kada kompjuteri generišu spisak transakcija u
jednom bloku, oni u taj spisak ukljuĉe i transakciju po kojoj jedna od njihovih
bitkoinskih adresa niotkuda dobije pedeset bitkoina. Kada blok osvoji loto, i doda
se u blok-lanac, ova naizgled izmišljena transakcija pretvara se u stvarnost i na
adresi o kojoj je reĉ naĊe se još pedeset bitkoina. Pošto se našla u bloklancu, ova
transakcija postaje stvarnost. Transakcija kojom se stvaraju novi bitkoini naziva se
novĉana baza svakog bloka. Ako raĉunar pokuša da dodeli sebi više od pedeset
novih bitkoina, drugi kompjuteri mogu da ne priznaju ceo blok, svejedno što je
raĉunar generisao saţetak s taĉnim brojem nula.
_____________
238Misaoni problem koji ilustruje poteškoće pokušaja koordinacije više uĉesnika bez pouzdanog metoda komunikacije. (Prim. prev.)
EVIDENTIRANJE TRANSAKCIJA
914846b010bdl64f395bd34c2102e5e99e0cb9cfl73cld87
99319
238Misaoni problem koji ilustruje poteškoće pokušaja koordinacije više uĉesnika bez pouzdanog metoda komunikacije. (Prim. prev.)
Коментари
Постави коментар