Potenciál technológie blockchain pochopíte, ak spoznáte jej kľúčové vlastnosti.
Blockchain a hashovanie
Pre pochopenie fungovania blockchainu je nevyhnutné porozumieť špecifickému druhu šifrovania, ktoré využíva, tzv. hashovanie.
Bežné šifrovanie funguje tak, že sa pomocou kľúča zašifruje obsah a spätne ho možno dešifrovať opäť s pomocou kľúča. Na zašifrovanie a dešifrovanie sa zvyčajne používajú dva kľúče, pri šifrovaní ide o tzv. verejný kľúč, pri dešifrovaní o súkromný kľúč. Štandardne zašifrovaný obsah je teda možné s pomocou kľúča kedykoľvek dešifrovať.
Blockchain používa špecifický šifrovací algoritmus, tzv. hashovanie (vytváranie nejakého výstupu na základe vstupu). Existuje viacero druhov hashovacích algoritmov. Najznámejšie sú SHA256 a RIPEMD. SHA256 bol vyvinutý NSA a využíva ho nielen najznámejšia blockchainová sieť bitcoin blockchain, ale aj viaceré banky.
Hashovanie je jednosmerná forma šifrovania, ktorá sa nedá dešifrovať inak ako metódou pokus-omyl. Ak hashujeme identický obsah, tak jeho zahashovaný výstup bude vždy rovnaký. Ak teda poznáme iba výstup – hash, tak jediná možnosť ako zistiť vstup je skúšať rôzne vstupy a porovnávať hashe.
Druhou zaujímavou vlastnosťou je, že pri hashovaní neexistuje žiadna logická súvislosť medzi vstupom a výstupom (tzn. nevieme vytvoriť pravidlo „ak zmením vstup nejakým spôsobom, tak výstup sa zmení konkrétnym predvídateľným spôsobom“). Lepšiemu pochopeniu pomôže praktická ukážka toho, ako vyzerá zahasahované slovo „podnikajte.sk“ v porovnaní so slovom „podnikajte.sl“. Líšia sa v jednom písmene, ale výsledkom je úplne odlišný reťazec.
Ďalšia zaujímavosť hashovacieho algoritmu je, že výstup je rovnako dlhý (pri SHA256 je to 64 znakov, číslice 0-9 a písmená a-f) bez ohľadu na to, aký dlhý bol vstup. Táto vlastnosť robí hľadanie vstupu výpočtovo ešte náročnejším a zároveň umožňuje vysokú mieru kompresie. Pre lepšie pochopenie opäť malá ukážka ako to vyzerá, ak zashashujeme slovo „podnikajte.sk“ v porovnaní s kratším slovom „p.sk“.
Ak zahashujeme celý tento článok, ktorý má niekoľko strán, tak výsledok bude nasledovný: 3a8a085d13652b0b748c25835b6e22a1fdda9b41bfa35fbed6fd51d445f43f6d
Hashovací algoritmus a jeho výstup si môžeme prirovnať k odtlačku prsta, ktorý by mal mať každý človek unikátny. Ak chceme zistiť odtlačok prsta (výstup) konkrétneho človeka (vstup), tak jeho nájdenie je celkom rýchle a priamočiare. Ak však mám k dispozícii len odtlačok prsta (výstup), tak nájdenie konkrétneho človeka (vstup) je možné iba chodením po svete a porovnávaním odtlačku prsta, ktorý máme s odtlačkom prsta každého človeka, ktorého stretneme (metóda pokus-omyl).
Aj preto sa hashovanie nazýva digitálnym odtlačkom prsta – vstupnú hodnotu zmení hashovací algoritmus na digitálny odtlačok vo forme hashu.
Blockchain a jeho najdôležitejšie vlastnosti
Ak hovoríme o využití technológie blockchain, tak hovoríme o využití všade tam, kde je potrebná databáza transakcií (finančné transakcie, obchodný register, kataster,..).
Základné parametre blockchainu sú dva:
- Distribuované úložisko informácií - rovnaká kópia informácií (databázy) sa nachádza na mnohých uzloch (zariadeniach) rozmiestnených (distribuovaných) na rôznych miestach po svete.
- Nemenné úložisko - ak niečo zapíšeme do blockchainu, tak už to tam navždy ostane.
Hashovacie algoritmy ako algoritmus SHA256 nám významne napomáhajú pri zabezpečení toho, aby bol blockchain nemenným úložiskom.
Ako názov napovedá „block chain“ je teda reťazec blokov. Aby sme dosiahli efektívnejšiu správu poradia a obsahu blokov, každý blok je vstupom pre hashovanie a teda má svoj hash. V prípade použitia SHA256 ide o reťazec dĺžky 64 znakov. Každý blok obsahuje hash predošlého a nasledovného bloku, čím sa veľmi úsporne zabezpečí referencia a poradie blokov.
Tiež ak by niekto chcel meniť obsah bloku, tak sa zmení aj hash a ten nie je zhodný s tým, ktorý je uložený v predošlom/nasledovnom bloku a do celej siete sa vyšle signál o zmene stavu pre tento blok na konkrétnom uzle. Informácia na tomto uzle je potom celosvetovou sieťou vyhodnotená ako neplatná a uzol je vyradený.
Druhy blockchainu
Kategorizácia blockchainov vyzerá nasledovne:
- Verejné (bitcoin, ethereum a mnohé iné)
- S obmedzenými prístupovými právami:
- súkromné (private)
- hybridné (hybrid)
- konzorčné (consortium)
Verejný blockchain
Bitcoin blockchain je celosvetová sieť a je verejná, teda každý sa môže zúčastniť, zapisovať (máme na mysli vykonávať transakcie) a čítať. Ak pôjdete na stránku blockchain.info, môžete si prezrieť celú informáciu o prevodoch z peňaženiek (za predpokladu, že poznáte jej adresu), preto považujeme bitcoin blockchain za pseudonymný spôsob prevádzania hodnoty.
Súkromný blockchain
Súkromný blockchain sa využíva na účely zefektívnenia interných procesov veľkých firiem alebo verejnej správy, no existujú aj iné možnosti využitia.
Súkromný blockchain pozostáva z rádovo desiatok uzlov (nie nevyhnutne) a jeho prevádzka je plne v rukách jednej strany. Každá zmena protokolu je priamočiara a rozhoduje o nej majiteľ siete. Takýto druh blockchainu je napríklad open-source hyperledger, ktorý vyvinula spoločnosť IBM alebo quorum (využívaný JP Morgan). Nikto nemôže vidieť alebo zapisovať dáta na takýto blockchain bez predošlého súhlasu majiteľa.
Hybridný blockchain – niekedy potrebujeme obmedziť, kto zapisovať môže, no chceme, aby dáta kvôli transparentnosti videl každý (o takýto druh blockchainu môžu mať záujem napr. štátna správa).
Konzorčný blockchain – tento druh nám umožňuje vytvoriť preferenciu pre určité uzly, to znamená, že vrámci siete budú mať tieto uzly väčšie „hlasovacie právo“ (v prípade vnútropodnikových blockchainov napríklad chceme, aby konateľ mohol prispieť a ovplyvniť rozhodnutia vyššou mierou ako jeho podriadení a pod.)
Delenie blockchainu podľa ďalších vlastností
Každý z blockchainov môže byť tokenizovaný alebo fungovať bez tokenu. Token je reprezentant niečoho, čo má pre nás v kontexte nášho biznisu hodnotu. Token je možné zaviesť len na blockchainoch s natívnou kryptomenou. Zo spomenutých by sme medzi tokenizované zaradili bitcoin a ethereum, medzi netokenizované hyperledger.
Pri verejných netokenizovaných blockchainoch je náročné vymyslieť dostatočnú motiváciu pre tých, ktorí poskytujú svoju výpočtovú techniku na účely prevádzky blockchainu. A práve túto motiváciu poskytujú tokeny.
Ďalšou vlastnosťou, ktorá rozlišuje blockchainy je možnosť vytvárať smart kontrakty. Smart kontrakty si možno predstaviť ako malé programy, uložené na blockchaine, ktoré za istých podmienok vykonajú zápis alebo prevod.
Mnohí experti vidia sľubnú budúcnosť pre smart kontrakty na poli dodávateľských reťazcov, riadenia štátu, obchodných transakcií a mnohých iných.
V prípade dodávateľských reťazcov by smart kontrakty mohli významne zlepšiť likviditu, zjednodušiť účtovníctvo a pod. Medzi najvyspelejšie blockchain projekty, ktoré nám umožňujú vytvárať smart kontrakty patrí napríklad Ethereum alebo NEO. Bitcoin blockchain primárne neumožňuje vytvárať smart kontrakty, no isté možnosti existujú cez tzv. side chains, teda nadstavby k bitcoin blockchainu.
Blockchain slúži na ukladanie databáz nie na ukladanie súborov
Blockchain ako technológia nie je primárne určená na to, aby sme na nej ukladali priamo súbory. Predstavte si, koľko objemu firemných dát je len na vašom PC, nieto ešte na firemných serveroch.
V praxi sa využíva hashovací algoritmus na vytvorenie odtlačku súboru akejkoľvek veľkosti – výstupný hash sa potom môže uložiť na blockchain alebo sa využije ako vstup pre transakciu či smart kontrakt ako operáciu na blockchaine.
Niektoré blockchainy ako bigChainDB sú však stavané na to, aby boli úložiskom veľkého objemu dát (ak ide o umelecké diela, patenty a pod.).