Algoritmi raspodijeljenog računanja, dizajna mehanizama i kriptografije čine sveto trojstvo blockchain tehnologije. Distribuirano računanje koristi decentraliziranu mrežu računala i postojalo je prije blockchaina u obliku bujica mreža.

Međutim, stranice za bujice nisu mogle upravljati ponašanjem sudionika, gdje dizajn mehanizma ulazi u blockchain. Pruža poticaj sudionicima mreže da rade za dobrobit mreže.

Kriptografija je ono što služi kao zaštita za zaštitu tih poticaja. Temeljna Bitcoin knjiga objasnila je kako ova tri znanstvena načela mogu igrati zajedno kako bi se stvorila sigurna, peer-to-peer razmjena vrijednosti koja bi eliminirala potrebu za trećom stranom u financijskim transakcijama.

Iako svako od ovih načela zaslužuje vlastitog objašnjenja, ovaj će se članak usredotočiti na kriptografiju i na to kako algoritmi šifriranja poslužuju blockchains.

Kratka povijest kriptografije

Kriptografija u nekom obliku postoji od vremena drevnog Egipta. Prije doba računanja, to je značilo korištenje jednostavnog kriptografskog algoritma zvanog šifra za prijenos poruka. Jedan od najčešće citiranih je Cezarova šifra, koje je koristio Julije Cezar za komunikaciju sa svojim generalima u Rimskom Carstvu. Cezarova šifra zamijenila je svako slovo poruke slovom koje dolazi tri mjesta iza njega u abecedi, pa A postaje D, B postaje E i tako dalje. Sve dok sustav koji se koristi za generiranje šifreta ostaje tajna, poruka bi također mogla ostati privatna.

Julije Cezar

Cezar je više od pukih salata, znate

Kasnije, u 16. stoljeću, Vigenere je predstavio koncept ključa za šifriranje u algoritme kriptografije, koji je mogao dešifrirati kodirane poruke. Koristiti Šifra Vigenere, tekst poruke transkribiran je u jednu ključnu riječ koja se ponavlja sve dok ne odgovara duljini znaka izvorne poruke. Ova ključna riječ zatim generira šifrirani tekst pomoću tablice.

Ovdje je presudan razvoj sigurnosti da su poruke prenesene pomoću Vigener šifre ovisile o tajnosti ključa, a ne o samom sustavu.

Razvoj 20. stoljeća

Problem s ovakvim kodovima je taj što se lako lome analizom učestalosti slova. Nijemci su koristili Stroj Enigma opsežno tijekom Drugog svjetskog rata jer je bio u stanju generirati šifretekstove koji se nisu mogli razbiti analizom frekvencije slova.

Stroj je koristio sustav više rotora za generiranje šifriranog teksta. Tako bi slovo “e” u izvornoj poruci odgovaralo nizu različitih slova u tekstu šifre. Ključ je bio početno podešavanje rotora.

Stroj Enigma

Smatralo se da je stroj Enigma neraskidiv

Iako su Nijemci mislili da je kod neraskidiv, Enigma jest napukao poljski već 1932. Kriptografi koji su radili za britansku vojsku u parku Bletchley, uključujući i sada već legendarnog Alana Turinga, kasnije su pronašli način da otkriju dnevne ključeve koje su koristili Nijemci.

Zora računarstva

Poslijeratni zahtjevi za šifriranjem u poslovnom i komercijalnom prostoru povećali su se kao sredstvo zaštite korporativnih tajni. Tijekom 1970-ih IBM je razvio algoritam kriptografije Data Encryption Standard (DES). Međutim, upotrijebio je mali ključ za šifriranje. Kako je doba računarstva svanulo, postalo je jednostavno grubo forsirati DES, pa je stoga bilo potrebe za ažuriranjem. Napredni standard šifriranja usvojen 2000. godine.

Iako mnogi ljudi toga možda nisu svjesni, šifriranje je danas dio svakodnevnog života. Razmjena poruka e-pošte i tekstualnih poruka, lozinki i SSL slojeva na web lokacijama uključuju upotrebu šifriranja. Također čini okosnicu kriptovalute. Tamo su mnogo različitih vrsta kriptografskih algoritama koji pokrivaju razne slučajeve upotrebe, a mnogi od njih su zastarjeli. Međutim, uporaba kriptografije u blockchainu uključuje digitalne potpise i raspršivanje.

Digitalni potpisi

Za plaćanje kriptovaluta potreban je digitalni potpis u obliku privatnog ključa. Kada netko unese svoj privatni ključ protiv platne transakcije, to šifrira transakciju. Kada uplata dosegne svoje odredište, primatelj može dešifrirati transakciju pomoću javnog ključa pošiljatelja.

To je poznato kao asimetrična kriptografija, jer ovisi o paru ključeva povezanih kriptografijom. Sigurnija je od simetrične kriptografije, gdje i pošiljatelj i primatelj koriste isti ključ. U tom slučaju, sam ključ također se mora poslati zajedno s plaćanjem, što znači da bi za zaštitu ključa bio potreban dodatni nivo zaštite.

Raspršivanje

Blockchains također ovise o raspršivanju. Hashing je kriptografska metoda pretvaranja bilo koje vrste podataka u niz znakova. Uz osiguravanje sigurnosti šifriranjem, raspršivanje stvara učinkovitiju pohranu podataka jer je raspršivanje fiksne veličine.

Karakteristike algoritma kriptografije hashiranja

Kriptografski algoritam raspršivanja mora ispunjavati određene kriterije da bi bio učinkovit:

  • Isti ulaz mora uvijek generirati isti izlaz. Bez obzira na to koliko puta prolazite kroz algoritam raspršivanja, on mora dosljedno proizvoditi isto raspršivanje s identičnim znakovima u nizu
  • Ulaz se ne može izvesti ili izračunati pomoću izlaza. Ne bi trebalo postojati način da se obrnuti postupak raspršivanja da bi se vidio izvorni skup podataka
  • Svaka promjena na ulazu mora proizvesti potpuno drugačiji izlaz. Čak i promjena velikog broja znakova u skupu podataka trebala bi stvoriti hash koji se značajno razlikuje
  • Hash mora imati fiksni broj znakova, bez obzira na veličinu ili vrstu podataka koji se koriste kao ulaz
  • Stvaranje hasha trebao bi biti brz proces koji ne koristi računarsku snagu u velikoj mjeri.

Kako izgleda algoritam raspršivanja

Kako hash algoritam generira hash. Zasluga za sliku: Wikimedia Commons

Kako funkcionira raspršivanje?

Blockchains raspršuju svaku transakciju prije nego što ih spajaju u blokove. Hash pokazivači povezuju svaki blok sa svojim prethodnikom, držeći hash podataka u prethodnom bloku. Budući da se svaki blok povezuje sa svojim prethodnikom, podaci u blockchainu nepromjenjivi su. Funkcija raspršivanja znači da će promjena u bilo kojoj transakciji proizvesti potpuno drugačije raspršivanje, što će izmijeniti raspršivanja svih sljedećih blokova. Da bi propagirao promjenu na blockchainu, 51% mreže moralo bi se složiti s njom. Stoga pojam “51% napada”.

Različiti blockchains koriste različite algoritme kriptografije. Bitcoin blockchain koristi algoritam SHA256, koji stvara 32-bajtno heširanje. I Dogecoin i Litecoin koriste Scrypt, koji je jedan od bržih i lakših algoritama kriptografije.

Kriptografija je složena i detaljna znanost koja seže daleko izvan opsega samo blockchaina. Dostupno je puno daljnjeg čitanja o kriptografiji, posebno za one koji su znanstveno ili matematički skloniji, to je fascinantna tema s puno istraživanja.