Poznámka autora: Toto je update môjho pôvodného článku z roku 2016 – “Čo je to Blockchain alebo ako funguje technológia budúcnosti” – tak, aby bol prínosný aj v súčasnosti.
Print, rádio, televízia a internet boli vždy náhradou predošlých infraštruktúr a rozširovali potenciál a možnosti komunikácie. Ak to porovnáme s ľudským telom, môžeme tieto technológie porovnať s cievnym a nervovým systémom tohto sveta. No doteraz sme mozog, čiže vlastnú logiku a myseľ vždy ako ľudstvo držali zamknuté v súkromí. Práve teraz táto nová technológia, keď ju už porovnávame s ľudským telom, nám dáva možnosť vytvoriť kolektívnu myseľ, kolektívnu logiku a kolektívnu pamäť k odôvodneniu a vyhodnoteniu do budúcnosti všetkého čo sa okolo nás udeje.
Aj človek ako jednotlivec je porovnateľný s bunkou v ľudskom tele ktorá spoločne s ostatnými bunkami formuje telo ako celok – človeka, zároveň formujúce nás ako ľudstvo. Ak by sme mali teda kolektívnu myseľ a kolektívnu logiku ktorú by sme dokázali využívať, dokázali by sme ešte úžasnejšie veci ako si dokážeme predstaviť.
Znie to ako keby Bitcoin a Blockchain boli formou vedomia, čo je v podstate pravdou fungujúcou na podstate mapovania malých rozhodnutí jednotlivcov, ktoré spoločne ako celok tvoria nekonečne sa rozvíjajúcu kontinuitu vylepšení.
Predstavte si svet, kde nemusíte dôverovať cudziemu človeku na to aby ste s ním uzavreli dohodu. Predstavte si, že vôbec nemusíte dôverovať banke na to aby ste si u nej uložili vaše úspory. Predstavte si, že nemusíte dôverovať vláde, pretože je zo svojej podstaty nekorumpovateľná a spravodlivá.
Čo by sa stalo?
Bola by to utópia? alebo niečo čo zmenilo svet…
Presne toto je to čo sľubuje metóda, technológia alebo akokoľvek to nazveme – Blockchain.
Kryptomeny, ktoré sú postavené na blockchaine ako Bitcoin či Ethereum a podobne sú spomínané v médiách deň čo deň kvôli ich obrovskému potenciálu “rýchleho zbohatnutia”. Ale je za tým omnoho viac ako povrchná túžba zbohatnúť. Je za tým niečo, čo pomaly začína pretvárať náš svet a jeho budúcnosť.
Blockchain ako technológia(spolu s ďalšími protokolmi okolo) bola vytvorená ako riešenie na závažný problém, ktorý developeri dlho riešili: ako vytvoriť digitálne, slobodné peniaze a nezávislý finančný systém doslova dištancovaný od nazvime to – tradičných financií, či centralizovaného finančného systému. Skombinovaním kryptografie, ekonómie a počítačovej vedy vznikli nástroje na vytvorenie decentralizovaného, slobodného systému.
To, čo vzniklo je ale omnoho viac než nejaká online zmenáreň hodnoty a prostriedok naplnenia túžby zbohatnúť. Pomaly mení celý svet a v súčasnej dobe je čoraz viac ľudí, ktorí si začínajú uvedomovať potenciál tejto technológie a najmä jej slobodného ducha.
Aby Bitcoin naplnil svoj potenciál, nesmie byť len okruhom záujmu tých počítačovo zdatnejších. Od jeho vzniku v roku 2009 do cca roku 2016 bol Bitcoin v hľadáčiku záujmu len programátorov, hackerov a tých, ktorým o niečo viac záležalo na svojej digitálnej či svetskej slobode. V roku 2017 sa to začínalo pomaly meniť a dnes, v roku 2021 je Bitcoin široko-známym pojmom.
Ruku na srdce. Koľkí z nás vedia ako táto technológia funguje a vedeli by to vysvetliť napríklad svojim rodičom. Ak chceme využívať nielen Bitcoin ale kryptomeny ako také, základným predpokladom dôvery v technológie či vedu je poznanie. Poďme si teda spoločne v tomto článku vysvetliť ako funguje blockchain, Bitcoin a kryptomeny ako také tak jednoducho, aby sme ich fungovanie mohli vysvetliť aj našim rodičom či rodičom našich rodičov.
Začnime hypotetickým príkladom a odpoveďou na otázku – Prečo?
Začnem prostým, hypotetickým príkladom z bežného sveta. Predstavte si, že ste vysokoškolák Ferko, ktorý po spoločensky náročnejšej noci čistou náhodou minul všetky peniaze, ktoré mu dali rodičia na vifonky. Tak zdvihne telefón a zavolá domov “ocooo?? hejže mi máš požičať 20€”. On odpovie “samozrejme synu!”. Čo spraví teda otec? Otvorí internetbanking a obrazne povedané, povie systému “pošli 20€ na Ferkov účet”. Systém otvorí a overí otca v databáze, overí či má otec dostatok prostriedkov na účte a spracuje požiadavku. Ferkovi sa pripíšu na účet a hotovo. Ale čo sa práve stalo?
Ferko a otec dôverovali banke v ktorej majú uložené vlastné peniaze že spracuje ich požiadavku a pripíše čiastku na Ferkov účet. Nehýbalo sa žiadnymi papierikmi, žiadnou hodnotou. Všetko, čo bolo potrebné, bolo zmena čísla v databáze. Presnejšie, záznam v registri, ktorý ani Ferko ani otec reálne nemá pod kontrolou ani nevlastní, zmena oprávnenia na užitie hodnoty výmenou za tovar. Banka nie je povinná vykonať túto kvázi transakciu. Banka podlieha zákonom, reguláciám a nariadeniam a v neposlednom rade monetárnej politike, ktoré spoločne ako neviditeľná ruka zasahujú v určitých prípadoch do nášho majetku, siahajú na číslo v databáze priradené k nášmu menu a v krajných prípadoch obmedzia či zmrazia užívanie našich prostriedkov.
A tu je práve ten problém.
Správa našej hodnoty nášho majetku a samotná dôvera medzi nami závisí na tretích stranách ktoré sa nám ju sprostredkovávajú.
Po celé desaťročia sme závislí od týchto prostredníkov a možno sa pýtate, čo je na tom zlé? Odpoveďou na túto otázku by sme sa dostali do rôznych rovín od racionálne-pragmatických argumentov až po tie ideologické. Žiaden z nich však nie je irelevantný. Musíme však myslieť na to, že človek je tvor omylný a v neposlednom rade individualista a otrok primárnych pudov, kde prvé miesto pohlavného pudu nahradil pud mamonu, ktorý vedie ku korupcii a ohýbaniu reality.
Je ale fajn žiť s vedomím, že tu existuje odpoveď a riešenie na zdanlivo neriešiteľný problém chamtivosti centralizovaných inštitúcií či už sa jedná o centrálne banky alebo kľudne aj štáty.
Týmto riešením je Bitcoin spolu s technológiou blockchain. V skratke to môžeme popísať ako metódu spravovania registra medzi účastníkmi bez závislosti na tretích stranách, resp. niekom kto by ju spravoval za nás.
Ako to teda Bitcoin a blockchain funguje?
Podmienkou fungovania tejto metódy, nie len v našom hypotetickom príklade ale aj v reálnom svete je existencia minimálne troch účastníkov, ktorým sa nepáči závislosť na tretích stranách.
Uvedieme si hypotetický príklad. Vezmime si desiatich jednotlivcov, ktorí usúdili že si budú spravovať účtovnú knihu či register sami. Na základe vzájomnej dohody, všetci majú informácie o účte každého jednotlivca bez toho aby poznali identitu jeden druhého.
1. Prázdna zložka
Každý z nich má na začiatku prázdnu zložku. Postupne každý bude ukladať do tejto zložky stránky ktoré budú obsahovať záznamy o transakciách.
2. Transakcia
Každý sedí na svojom mieste, s prázdnou stránkou pred sebou a s perom v ruke. Každý z nich je pripravený zaznamenať akúkoľvek transakciu aká sa v systéme vyskytne.
Zrazu jeden z nich, nazvime ho číslo #8 chce poslať 10 bitcoinov číslu #4.
Pre vykonanie transakcie číslo #8 každému oznámi, “Chcem vykonať transakciu vo výške 10 bitcoinov číslu #4, všetci si to zaznamenajte do svojich stránok.”
Každý si najprv preverí či číslo #8 či má na svojom účte(peňaženke) dostatok prostriedkov aby mohol odoslať 10 bitcoinov. Ak áno, každý si zaznamená záznam o transakcii do svojich prázdnych stránok.
3. Ďalšie transakcie
Ako plynie čas, každý z jednotlivcov v skupine cíti potrebu vykonávať transakcie. Po každý raz keď chcú vykonať transakciu, musia ju všetkým oznámiť. Hneď ako to oznámi a ostatný ho počujú, každý z nich vykoná záznam vo svojej stránke.
Takto to pokračuje až každému dôjde voľné miesto na stránke. Za predpokladu, že na jednu stránku sa vojde len desať záznamov, hneď ako je desiaty záznam zapísaný, každému z nich dôjde voľné miesto. To je čas na zapečatenie a založenie papiera do zložky ktorá bola spomínaná v prvom kroku.
4. Založenie plnej stránky
V tomto momente keďže máme zapísanú celú stránku, potrebujeme ju založiť a zapečatiť. Skôr než ju založíme, potrebujeme ju zapečatiť unikátnym kľúčom na ktorom sa dohodnú všetci v skupine. Zapečatením sa uistíme, že raz keď stránka bola zapečatená a založená, nikto už nemôže vykonať na nej žiadne zmeny ani nijako zasahovať do jej obsahu ani dnes, ani zajtra, nikdy. Raz keď je uložená v zložke, navždy v nej ostane zapečatená. Zároveň ak každý v skupine dôveruje zapečatenej stránke, dôveruje aj jej obsahu.
A práve toto je jadrom celej tejto metódy.
(Takéto zapečatenie stránky sa v reálnom svete volá “Mining“.)
Zapečatenie stránky
Než sa dostaneme k pečateniu, najprv sa musíme naučiť čo to je a ako to funguje. Nazvime to spolu “čarostroj”.
Predstavte si čarovnú mašinku – čarostroj do ktorého vložíte “niečo” a z druhej strany vypadne “niečo iné”. Tento čarostroj (v reálnom svete kryptografická funkcia alebo Hash Function) má svoj vstup a výstup. Zľava niečo vložíme, z prava niečo vypadne.
Povedzme že do tohto stroja vložíme číslo 4 a z druhej strany vypadne ‘dcbea’.
Ako tento stroj spravil z čísla 4 túto hatlaninu? To vie iba hashovacia funkcia – náš čarostroj. Navyše podľa toho ‘dcbea’ nie je možné spätne určiť či zistiť, že pôvodným čislo na vstupe do čarostroja bolo číslo 4. Ak by ste vložili do čarostroja späť ‘dcbea’ nikdy vám nevráti číslo 4. Pokiaľ ale vložíte číslo 4, vždy vám vráti ‘dcbea’.
Poďme skúsiť iné číslo, napríklad 26. Čarostroj nám vypľul ’94c8e’. Takže výstup môže obsahovať aj číslice.
Teraz to prichádza tá zložitejšia časť. Aké slovo alebo číslo by som mal vložiť do čarostroja aby mi na druhej strane vyšiel reťazec znakov(string) alebo slovo(ľudskou rečou) začínajúce sa troma nulami? Napríklad, 000ab alebo 00098 alebo 000fa.
Vlastnosti tohto čarostroja (kryptografickej funkcie) neumožňujú vopred vypočítať čo má byť vložené aby sme dostali predpokladaný výstup. Ale ako pomocou takéhoto stroja zistíme slovo začínajúce troma nulami?
Môžeme skúsiť metódu, ktorou vložíme postupne všetky čísla vo vesmíre až kým nedostaneme očakávaný výstup. Optimisticky povedané, po niekoľkých tisícoch pokusov by sme nakoniec dostali očakávaný výstup.
Je extrémne náročné až nemožné vypočítať pomocou výstupu, vstup. Naopak, je ale veľmi jednoduché overiť či vopred daný vstup určil očakávaný výstup čo je najdôležitejšou vlastnosťou čarostroja (kryptografickej funkcie).
Ako ale funguje spomínané zapečatenie stránky?
Na zapečatenie stránky použijeme náš čarostroj pomocou ktorého vygenerujeme pečať pre našu stránku.
Predstavme si, že vám dám namiesto jednej až dve zložky. Prvá zložka obsahuje číslo 20893. Potom vás požiadam, “Dokážeš zistiť číslo, ktoré po pričítaní k tomuto číslu z prvej zložky a vložení do čarostroja dá slovo začínajúce troma nulami?”
Táto situácia je rovnaká ako z predošlého príkladu a už vieme že je jediná cesta pre vypočítanie takéhoto čísla je vyskúšanie postupne všetkých čísel vo vesmíre.
Po niekoľkých tisícoch pokusov určíme číslo 21191, ktoré po pričítaní čísla z prvej zložky (20893 + 21191 = 42084) a vložením do čarostroja určí slovo ktoré sme očakávali.
V tomto prípade toto číslo 21191 sa stane pečaťou pre číslo stránky 20893. Predpokladajme, že na stránke je vytlačené číslo 20893. Pre konečné zapečatenie označíme túto stránku pečaťou 21191. Hneď ako je pečať s číslom 21191 na stránke, stránka je zapečatená a už nikdy nemôže byť nijako zmenená ani nikdy už nemôže byť v nijakom prípade ovplyvnený jej obsah.
Toto číslo pečate je v realite známe ako “Proof of work”, v preklade, Dôkaz práce, čo dokazuje, že bolo vynaložené úsilie na jeho výpočet.
Ak by chcel ktokoľvek overiť či obsah stránky bol zmenený, jediné čo by potreboval spraviť je spočítať číslo stránky a číslo pečate, vložiť ho do čarostroja a ak vráti slovo ktoré začína troma nulami, obsah bol nezmenený. Pokiaľ ale nevráti očakávané slovo, strana sa zahodí pretože jej obsah nieje dôverihodný.
Konečne je stránka zapečatená
Takže v skratke ešte raz, na zapečatenie a založenie stránky ktorá obsahuje záznam o transakcii v skupine musíme zistiť číslo ktoré po sčítaní s číslom stránky a vložením do čarostroja vráti ako výstup ‘slovo’ začínajúce troma nulami.
Treba mať ale na vedomí, že kryptografickú funkciu nazývam čarostrojom a výstup z nej slovom schválne aby vysvetlenie celej metódy nebolo zbytočne zložitejšie ako je potrebné.
Teraz sa vrátime trocha späť. Máme dokončenú poslednú transakciu a viac sa nám ich na našu stránku nezmestí. Hneď ako všetci v skupine zapíšu poslednú transakciu,okamžite všetci začnú s výpočtom čísla pre zapečatenie. Prvý, kto zistí číslo pre zapečatenie strany, oznámi ho všetkým ostatným v skupine. Okamžite po oznámení čísla, všetci overia či číslo sedí jeho vložením do čarostroja. Pokiaľ je všetko v poriadku, všetci si stránku založia do zložky.
Povedzme ale že niekto v skupine oznámi že výpočet nesedí. Je to neobvyklá situácia ktorej dôvody môžu byť:
- dotyčný prepočul niektorú transakciu ktorá bola v skupine oznámená
- dotyčný sa pomýlil pri zapisovaní transakcie ktorá bola v skupine oznámená
- dotyčný sa pokúsil podvádzať pri zapisovaní transakcie alebo to niekto spravil zaňho
Je jedno aký bol dôvod, dotyčný ma len jedinú možnosť. Vyhodiť stránku a nahradiť ju kópiou stránky niekoho iného v skupine tak, aby ju mohol založiť do svojej zložky. Pokiaľ nezaloží stránku do zložky, nemôže pokračovať v zapisovaní ďalších transakcií, tým pádom nemôže byť viac súčasťou skupiny.
Načo by niekto míňal svoju energiu a prostriedky na výpočet niečoho, čo niekto môže v skupine vypočítať zaňho, zatiaľ čo on si počká na oznámenie výsledku?
Tu je potrebná motivácia. Každý, kto je súčasťou skupiny, nášho hypotetického blochchainu, má nárok na odmenu. Každý, kto ako prvý zistí číslo pečate, je odmenený za jeho úsilie(výpočtová sila a spotreba elektriny). V jednoduchom príklade, predstavte si že číslo #5 zo skupiny ako prvý vypočítal číslo pečate a za jeho úsilie dostal odmenu 7 BTC, ktoré proste vzniklo z ničoho. Inak povedané, číslu 5 sa navýši suma na jeho účte (peňaženke) bez toho aby ubralo z kohokoľvek účtu v skupine. V tomto momente vznikol Bitcoin.
Stránku ktorú som spomínal na začiatku, zoznam transakcií, si teraz môžeme predstaviť ako časť reťaze(anglicky Chain) a zložky do ktorých sa stránky zapečatené zakladali ako bloky (anglicky Blocks), teda logicky nám z toho vyplynie že je to reťazec blokov čiže – Blockchain.
A teraz všetci viete, čo to je a ako funguje Blockchain.
Nie všetko ale vyzerá tak jednoducho. V realite je to o čosi zložitejšie. Predstavte si, že máte v zložke už 5 zapečatených a založených stránok. Čo ak sa vrátim späť k druhej stránke a zmením jej obsah? Číslo pečate dá okamžite všetkým vedieť že niečo nieje v poriadku a niekto zasiahol do jej obsahu.
Ochrana voči zásahom
Pamätáte ako na začiatku sme mali dve zložky ktorá jedna bola označená číslom 20893 a druhú sme museli vypočítať? V reálnom prípade máme zložky tri. Dve s už určenými číslami a tretia ktorá je pripravená na výpočet. Jedna obsahuje číslo stránky zoznamu transakcií, druhá obsahuje číslo predošlej zapečatenej a založenej stránky a tretia je pripravená na výpočet. Keď všetky tieto čísla sčítame a vložíme do čarostroja, čiže kryptografickej funkcie, výstup z nej musí spĺňať požadované podmienky. S týmto malým trikom máme istotu, že každá stránka závisí na tej predošlej. Tým pádom, ak by chcel niekto modifikovať jej obsah, musel by zmeniť číslo pečate pri všetkých aby udržal reťazec konzistentný.
Ak ale nejaký jednotlivec sa rozhodne podvádzať a pokúsi sa modifikovať Blockchain, zložku obsahujúcu stránku so zoznamom transakcií, musel by modifikovať viacero zložiek a vypočítať číslo pečate pre všetky, čo ako už vieme je extrémne náročné. Z toho nám vyplýva že jedna entita v sieti nemôže ovplyvniť všetky ostatné. V našom prípade, jeden člen v skupiny nemôže poraziť ostatných deviatich členov. Pokiaľ sa mu predsa len podarí modifikovať Blockchain, stane sa to že sa jeho časť reťazca oddelí od existujúceho a viac nie je súčasťou pôvodného reťazca. Pravidlom je, že najdlhší reťazec je ten najdôveryhodnejší.
Čo ak namiesto jedného z desiatich budú podvádzať šiesti z desiatich?
V tomto prípade by celý protokol padol. Tento útok je známy pod pojmom “Útok 51% (51% Attack)”. Ak majoritná časť siete sa rozhodne podvádzať, celý protokol, celá metóda stratí svoj účel a zmysel. Toto je jediná slabina siete pre ktorú môže Bitcoin kolapsovať, ak sa to vôbec niekedy stane. Celý zmysel protokolu je postavený na predpoklade že majoritná časť siete bude vždy úprimná a dôveryhodná.
Chceš pokračovať vo vzdelávaní a možno si oddýchnuť nie pri čítaní ale pri kávičke a youtube? Odporúčam pozrieť jednu z mojich prednášok, kde môžeš pokračovať v nasávaní informácií.
Zdroje :