Bitcoin – digitalni potpis

Nakon što smo se u prvom članku upoznali sa načinom na koji Bitcoin funkcionira, u sljedećim člancima baviti ćemo se sigurnosnim metodama koje omogućuju da čitav sustav funkcionira. Prva sigurnosna metoda koju ćemo pokušati objasniti je digitalni potpis koji potvrđuje autentičnost transakcije (vlasništvo nad bitcoinima).

Ukoliko osoba A želi sa svog računa skinuti 10 bitcoina i poslati na račun osobe B, osoba A će to učiniti pomoću transakcije. Budući da transakcije u Bitcoinu putuju od računala do računala, postoji mogućnost da bi jedno računalo u mreži moglo promijeniti transakciju dok ona bude „prolazila“ kroz njega i da bi novac mogao završiti kod druge osobe, a ne kod osobe B. Iz ovoga razloga, osoba A stvara digitalni potpis kojim potpisuje svoju transakciju.

Digitalni potpis ima ulogu posrednika u čitavom procesu potvrđivanja autentičnosti transakcije, kako je vidljivo sa sljedeće slike.

bitcoin1

Kada osoba A vrši transakciju u kojoj sa svojega računa  šalje računu osobe B 10 bitcoina, osoba A će stvoriti dva ključa. Privatni i javni ključ. Provlačenjem  privatnog ključa i same transakcije kroz matematičku funkciju nastati će digitalni potpis. Osoba A će potom odaslati transakciju i uz nju vezani digitalni potpis u mrežu.

bitcoin2

Kako transakcija bude putovala od računala do računala u mreži,svako računalo će provjeriti digitalni potpis koji dolazi uz samu transakciju kako bi se uvjerilo da je transakcija autentična.

Provjera se događa na sljedeći način. Svako računalo do kojeg dođe transakcija koja je potpisana digitalnim potpisom provući će transakciju, digitalni potpis i javni ključ osobe A kroz drugu matematičku funkciju i kao rezultat dobiti će povratnu informaciju odgovara li digitalni potpis javnom ključu osobe A.

bitcoin3

Ukoliko digitalni potpis odgovara javnom ključu osobe A, računalo će izmijeniti kopiju zapisa koji ima tako što će uvrstiti u taj zapis i transakciju u kojoj osoba A šalje osobi B 10 bitcoina. To će učiniti sva računala u mreži i na taj način će 10 bitcoina preći iz vlasništva osobe A u vlasništvo osobe B.

Budući da u stvaranje digitalnog potpisa ulazi i sama transakcija, svaki digitalni potpis će biti jedinstven za tu transakciju i različit za sve ostale transakcije.

bitcoin4

Ova jedinstvena veza sa transakcijom osigurava da niti jedno računalo u mreži ne može promijeniti sadržaj transakcije i učiniti da 10 bitcoina umjesto osobi B ode na primjer osobi  C. Ukoliko bi neko računalo u mreži pokušalo, na primjer, promijeniti sadržaj transakcije tako da umjesto broja 6 stavi broj 7 kao na slici:

bitcoin6bitcoin6

Iduće računalo u mreži bi prilikom provlačenja transakcije, digitalnog potpisa i javnog ključa osobe A kroz matematičku funkciju kao rezultat dobilo odgovor da digitalni potpis NE odgovara javnom ključu osobe A i ne bi izmijenilo zapis koji ima kod sebe (ne bi uvrstilo tu transakciju u zapis) kako je vidljivo na idućoj slici.

bitcoin7

Digitalni potpis također omogućuje i anonimnost osobe A koja je napravila transakciju i poslala novac osobi B.

Sva računala u mreži provjeravaju autentičnost digitalnog potpisa provlačenjem digitalnog potpisa, transakcije i javnog ključa osobe A kroz matematičku funkciju, a kao rezultat dobivaju pozitivan odgovor da digitalni potpis odgovara javnom ključu osobe A ili negativan odgovor da digitalni ključ ne odgovara javnom ključu osobe A. u čitavom ovom procesu računala u mreži ne znaju privatni ključ osobe A, niti ga koriste za provjeru odgovara li digitalni potpis javnom ključu osobe A. To znači da digitalni potpis kao posrednik omogućuje računalima u mreži da potvrde da je transakcija autentična, ali u isto vrijeme ta računala ne znaju tko je uputio tu transakciju.

U idućem članku baviti ćemo se sa lancem transakcija pomoću kojeg se utvrđuje koliko netko ima bitcoina (stanje računa).

You may also like

Leave a comment