🇸🇰 Nie je dôvod báť sa modernej kryptografie pre konsenzus

Nie je dôvod báť sa modernej kryptografie pre konsenzus

Skúsme technický článok o kryptografii. Pokúsime sa vás presvedčiť, že na vytvorenie spoľahlivého konsenzu v sieti nepotrebujeme PoW.

Takmer všetky projekty kryptomien používajú na podpisovanie transakcií asymetrickú kryptografiu. Všetky transakcie sa vkladajú do bloku a protokol musí dospieť ku konsenzu, ktorý rozhodne, či bude blok nakoniec pridaný do blockchainu alebo nie. Prvým konsenzom bol Bitcoin PoW a v súčasnosti je na vzostupe PoS. Konsenzus PoW aj PoS využíva kryptografické nástroje. Mnoho ľudí sa však domnieva, že iba kryptografický nástroj používaný v PoW je platným riešením a akýkoľvek iný prístup nemôže fungovať v rámci PoS. Chceli by sme vám ukázať, že na to nie je žiadny silný dôvod.

Nechceme vám vysvetľovať, ako presne kryptografické nástroje fungujú alebo ako sa používajú na riešenie konkrétneho problému v danom projekte. Chceli by sme poukázať na základné princípy kryptografie. Mali by ste pochopiť, prečo je kryptografia bezpečná a za akých podmienok. Potom vám ukážeme, ako sa moderné kryptografické nástroje Verifiable Random Function a Key Evolving Signature dajú použiť v konsenze Ouroboros PoS.

Napriek tomu sme nedávno používateľom peňaženky vysvetlili základy asymetrickej kryptografie a hashovania. Môže vám to pomôcť pochopiť základy:

Asymetrická kryptografia

Asymetrická kryptografia alebo verejná kryptografia je základnou zložkou kryptomien, ako je Bitcoin a iné. Tieto kryptografické techniky zabezpečujú, že zdroj transakcií je legitímny a že hackeri nemôžu ukradnúť finančné prostriedky používateľov. Ľudia, ktorí odosielajú transakcie, si to nemusia uvedomiť, pretože všetko sa vykonáva prostredníctvom peňaženky. Pod kapotou sa nachádza dvojica kľúčov. Súkromný kľúč, ktorý musí byť utajený, a verejný kľúč, ktorý sa môže vysielať do siete.

Bitcoin používa algoritmus digitálneho podpisu eliptickou krivkou (ECDSA) na vytvorenie súboru súkromného kľúča a príslušného verejného kľúča. Verejný kľúč sa potom používa s hašovacou funkciou na vytvorenie verejnej adresy, ktorú používatelia Bitcoinu používajú na odosielanie a prijímanie finančných prostriedkov. Súkromný kľúč sa uchováva v tajnosti a používa sa na podpísanie digitálnej transakcie, aby sa zabezpečil legitímny pôvod transakcie.

Kúzlo, ktoré sa skrýva za ECDSA

Prečo kryptografia funguje?

RSA (Rivest-Shamir-Adleman) je ďalší asymetrický kryptografický algoritmus. Na naše vysvetlenie použijeme RSA, pretože je ľahké pochopiť základný koncept. Nechceme vám vysvetľovať, ako RSA funguje, ale hlavne prečo je bezpečný. Zjednodušíme to, ako sa len dá. Ak sa chcete dozvedieť, ako RSA funguje podrobnejšie, môžete si pozrieť nasledujúci odkaz. Na pochopenie podstaty článku ho však nepotrebujete.

Algoritmus RSA je založený na tom, že nájsť činitele veľkého zloženého čísla je ťažké. Keď sú celé čísla prvočísla, problém sa nazýva prvočíselná faktorizácia. Pozrime sa na nasledujúci vzorec. Trochu sa s ním pohráme.

P * Q = N

Kryptografia v pozadí blokov Cardano

Kryptomeny mohli byť vynájdené vďaka mnohým významným úspechom v oblasti kryptografie. Nie je prekvapením, že kryptografia sa používa nielen na podpisovanie transakcií, ale používa sa aj na vytváranie nových blokov. V článku sa pozrieme na to, ako sa vytvára nový blok v sieti Cardano z hľadiska kryptografie [Viac informácií ] (The cryptography behind Cardano blocks | Cardanians).

Pokúste sa nájsť prvočísla P a Q do nižšie uvedeného vzorca. Môžete použiť kalkulačku (skúste sa zamyslieť, ako by ste ho mohli vyriešiť):

P * Q = 3127

Ak sa pokúsite nájsť P a Q, môže sa vám to podariť, ale pravdepodobne nad tým strávite nejaký čas. Ak však sami vyberiete prvočíslo, úloha je veľmi jednoduchá. Ak teda vyberiete P a Q, výsledok dostanete takmer okamžite.

53 * 59 = N

Ako vidíte, riešenie N pre uvedený vzorec dokážete nájsť ľahko.

RSA

Pointa a dôvod, prečo kryptografia funguje, spočíva v tom, že neexistuje žiadny rýchly algoritmus, ktorý by bol schopný rýchlo nájsť riešenie pre prvý vzorec v reálnom čase. Predstavte si, aká náročná by bola úloha pre oveľa vyššie prvočísla.

Trochu sme to zjednodušili a RSA je zložitejšie ako len to. Mali by ste pochopiť, že jedinou možnou známou metódou, ako nájsť P a Q pre dané N, je vykonať mnoho pokusov. Koľko? P a Q môžu byť také veľké prvočísla, že najnovší stolový počítač by strávil roky hľadaním riešenia.

Ak by ste chceli prelomiť kryptografiu RSA, museli by ste použiť tzv. útok hrubou silou a pokúsiť sa nájsť súkromný kľúč zo známeho verejného kľúča. Počítač by musel vykonať mnoho pokusov, aby našiel riešenie pre P * Q = 3127. Tento príklad je však veľmi jednoduchý. Ako sme povedali, pri oveľa vyšších prvočíslach (prostredníctvom faktorizácie) je úloha značne komplikovaná.

Dôležitá je teda dĺžka kľúča. Čím vyššie sú prvočísla P a Q, tým vyššie bude N. Takže komplikovanejšia bude úloha pre počítač, ktorý sa pokúša kľúč prelomiť.

Prípadne sa môžete pokúsiť nájsť nejaký algoritmus, ktorý by úlohu vyriešil bez použitia hrubej sily. Jednoducho nejaký algoritmus, ktorý by viedol k výsledku okamžite. Ak sa vám to podarí, pravdepodobne získate Nobelovu cenu. To však pravdepodobne nie je možné. Aspoň si to myslia najlepšie matematické mozgy na svete.

Ako veľké prvočísla sa používajú v skutočnosti? V súčasnosti môže byť dĺžka kľúča od 2048 do 3072 bitov, takže prvočísla sú od 1024 do 2048 bitov. Najkratšie prvočíslo je 2 âµ¹², čo je číslo so 150 číslicami. V súčasnosti je to však pre moderné počítače príliš malé číslo.

RSA tvrdí, že 2048-bitové kľúče postačia do roku 2030. Ak sa vyžaduje bezpečnosť po roku 2030, mala by sa použiť dĺžka kľúča RSA 3072 bitov. Ak by ste sa pokúsili prelomiť RSA na stolnom počítači, nepodarilo by sa vám to počas života.

RSA si môžete vyskúšať sami tu:

Online RSA Key Generator.

RSA sa používa na zašifrovanie správy (jej uvedenie do nečitateľnej podoby), aby bola bezpečná na odoslanie cez internet alebo uloženie na pevnom disku. Neskôr môžete správu dešifrovať a získať pôvodný čitateľný text. Na šifrovanie a dešifrovanie sa používajú verejné a súkromné kľúče. Na obrázku nižšie si môžete pozrieť, ako to funguje, ale pre tento článok to nie je potrebné pochopiť. Nezáleží na tom, či použijete RSA alebo ECDSA, ktorý sa v súčasnosti používa v Bitcoine. Princípy sú podobné.

Ako funguje kryptografia s verejným kľúčom

Dôležité je, že šifrovanie a dešifrovanie časti textu alebo podpisovanie transakcie Bitcoin je veľmi rýchly proces a nepotrebujete naň veľký výpočtový výkon ani čas.

Kryptografia je bezpečná vďaka tomu, že jej prelomenie je výpočtovo náročný proces. Je to v podstate takmer nemožné. Poďme si ju bližšie rozobrať.

Útok hrubou silou

Útok hrubou silou, známy aj ako vyčerpávajúce vyhľadávanie, je kryptografický hackerský útok, ktorý spočíva v hádaní možných kombinácií danej šifry, kým sa neobjaví správna kombinácia. Čím dlhší je kľúč, tým viac kombinácií bude potrebné otestovať. Útok hrubou silou môže byť časovo náročný, ťažko vykonateľný, ak sa použijú metódy, ako je napríklad obfuskácia údajov, a niekedy úplne nemožný.

Množstvo času, ktoré je potrebné na prelomenie šifry, je úmerné veľkosti tajného kľúča. Maximálny počet pokusov sa rovná 2^veľkosti kľúča, kde veľkosť kľúča je počet bitov v kľúči. V súčasnosti je možné prelomiť šifru s približne 60-bitovým kľúčom pomocou útoku hrubou silou za menej ako jeden deň.

Na prelomenie šifier pomocou útokov hrubou silou sa často používajú veľmi rýchle špeciálne navrhnuté superpočítače. Sú vo vlastníctve veľkých výskumných laboratórií alebo vládnych agentúr a obsahujú desiatky alebo stovky procesorov. Prípadne sa na prelomenie tej istej šifry môžu použiť veľké siete tisícov bežných počítačov, ktoré spolupracujú. Kryptografické útoky hrubou silou sú veľmi škálovateľné procesy.

Na kryptografiu sa môžeme spoliehať dovtedy, kým veríme, že jeden subjekt nie je schopný zhromaždiť dostatočný počítačový výkon na prelomenie šifry. Inými slovami, veríme, že nikto nie je ochotný vykonať útok hrubou silou na prelomenie šifry, pretože by to bola drahá záležitosť.

Ako PoW funguje

V konsenze PoW sa tento princíp používa opačne. PoW možno tiež považovať za útok hrubou silou. Je to špeciálny druh riadeného útoku hrubou silou. Protokol bitcoin dokáže merať dostupný výpočtový výkon a dokáže vypočítať náročnosť úlohy. Protokol je teda schopný nastaviť náročnosť kryptografickej úlohy tak, aby sa správna kombinácia našla približne za 10 minút. Niekedy je to len minúta, inokedy to môže byť aj jedna hodina. Desať minút je približný čas, ak uvažujeme viac pokusov za sebou.

PoW používa kryptografický nástroj SHA-256. Kryptografický hash (niekedy nazývaný “digest” alebo “hash”) je druh “podpisu” pre text alebo dátový súbor. SHA-256 generuje takmer jedinečný 256-bitový (32-bajtový) podpis textu.

SHA-256 je hašovacia funkcia, ktorá ako vstup berie časť údajov a ako výstup vytvára digest. Vždy rovnaký digest (výstup) pre rovnaký vstup. Ak však zmeníte jediný znak na vstupe, bude digest úplne iný. Táto vlastnosť je kľúčová pre algoritmus “proof of work”, ktorý sa používa pri ťažbe.

SHA-256 si môžete vyskúšať tu:

SHA256 Online.

Na úspešné vyťaženie bloku sa baníci snažia zmeniť vstupy takým spôsobom, aby výsledný hash (výstup) začínal určitým počtom núl (cieľ obtiažnosti). Inými slovami, potrebujeme výstup, ktorý bude spĺňať požiadavky protokolu.

Hašovacia funkcia je veľmi rýchla a výstup vytvorí do sekundy bez ohľadu na veľkosť údajov. Ak však protokol stanovuje požiadavku, ako má digest (výstup) vyzerať, potom je potrebné stále dokola meniť špeciálne číslo, aby sa zmenil celý vstup. Výsledkom zmeny vstupu sú rôzne výstupy. Na nájdenie požadovaného výstupu je potrebné vykonať obrovské množstvo pokusov.

PoW používa hashovaciu funkciu, nie kryptografiu s verejným kľúčom. Napriek tomu možno oba nástroje považovať za kryptografické nástroje využívajúce určité matematické algoritmy, ktoré zabezpečujú bezpečnosť a ktoré možno prípadne prelomiť len prostredníctvom útoku hrubou silou. PoW sa prispôsobuje zložitosti úlohy tak, aby súčasná rýchlosť hashovania mohla nájsť riešenie približne za 10 minút.

Útok hrubou silou si vyžaduje veľa elektrickej energie a práve to chcel Satoshi dosiahnuť v prípade PoW. Úloha musí byť taká zložitá, aby sa spotrebovalo značné množstvo elektrickej energie. To je jeden z dôvodov, prečo je časový blok Bitcoinu nastavený na 10 minút a nie na niekoľko sekúnd. Funguje to dobre. Bráni to však škálovateľnosti, pretože výroba jedného bloku za 10 minút nie je pre globálny protokol dostatočná.

V digitálnom svete je ťažké generovať náhodnosť

Použitie moderných kryptografických nástrojov pri konsenze

Kryptomeny sa spoliehajú na kryptografické nástroje a tie sa vždy časom vylepšujú alebo sa vymýšľajú nové. Zároveň sa zvyšuje aj dostupný výpočtový výkon. Z času na čas musíme začať používať dlhšie kľúče. Veľkosť bloku v distribuovaných sieťach je obmedzená, takže sa musíme vyhnúť používaniu dlhších kľúčov. Niektoré kryptografické nástroje našťastie zastarali, zatiaľ čo niektoré iné boli vynájdené alebo vylepšené. Takže každých niekoľko rokov musíme meniť kryptografické nástroje. V skutočnosti sa Bitcoiny chystajú nahradiť ECDSA Schnorrovým podpisom.

Otázka je, prečo nepoužívať modernú kryptografiu aj v rámci konsenzu. Môžeme dosiahnuť rovnakú bezpečnosť ako v prípade PoW a zároveň lepšiu škálovateľnosť. Naozaj nie je silný dôvod používať konsenzus využívajúci pomalý útok hrubou silou na dosiahnutie sieťového konsenzu, ak môžeme použiť modernú kryptografiu.

Cardano Ouroboros PoS bude využívať dva kryptografické nástroje: Key Evolving Signature (KES) a Verifiable Random Function (VRF). Môže sa tak vyhnúť použitiu útoku hrubou silou a môže dospieť ku konsenzu do 20 sekúnd a prostrediu, ktoré bude 50x decentralizovanejšie ako Bitcoin. Očakáva sa, že v sieti Cardano bude 1000 poolov.

Ako sa KES a VRF používajú v systéme Ouroboros

Protokol Ouroboros dokáže vybrať uzol s právom vytvoriť nový blok. Neexistuje žiadna otvorená súťaž ako v PoW. Po výbere víťaza nestojí vytvorenie bloku takmer nič. Tým sa zavádza známy problém Nothing on stake, keď sa škodlivý agent môže náhodne pokúsiť vytvoriť ďalšie vetvy reťazca ľubovoľnej dĺžky len vďaka tomu, že vytvorenie bloku nič nestojí.

Ouroboros tento problém rieši zavedením slotov a epoch. Každá epocha má 21 600 slotov. Na začiatku každej epochy vyberie špeciálny algoritmus náhodnosti viacerých strán sadu vedúcich slotov pre celú epochu.

V tomto momente vstupuje do hry overiteľná náhodná funkcia. Globálna náhodná veštiareň vytvára novú a čerstvú náhodnosť pre každú epochu. Samotný blockchain sa stáva jeho zdrojom novej náhodnosti.

Náhodne vybraní lídri slotov získajú právo vyrobiť blok v danom slote. Pre každú epochu teda existuje akási pevná množina lídrov. Náhodný protivník teda nemôže len tak prísť a pokúsiť sa oklamať celú sieť. Slot-leaders sú naplánovaní na celú epochu a dá sa ľahko overiť, že blok bol vytvorený naplánovaným slot-leaderom.

Tento mechanizmus chráni sieť pred problémom Nič v stávke. Protivník nemôže len tak náhodne vygenerovať nejaký náhodný podvodný reťazec z toho istého bloku genézy, pretože množina slot-leaders by bola od začiatku rovnaká a musel by nejakým spôsobom poškodiť reálne existujúce uzly, ktoré boli v tom čase lídrami.

Tým sa však zavádza ďalší vektor útoku. Uzly, ktoré boli v minulosti vybrané ako slot-leaders, by mohli byť hacknuté, alebo stratené, alebo by jednoducho predali svoje súkromné kľúče. A ak by sa protivníkovi podarilo zhromaždiť dostatok takýchto kľúčov za celú históriu reťazca, mohol by ho byť schopný znovu vytvoriť, ale so svojimi transakciami. Aby sa vylúčila možnosť, že by minulí lídri slotu svoje kľúče prezradili, protokol Ouroboros Praos sa rozhodol ich zničiť. Takže každý slot-leader má v čase svojho slotu dve sady kľúčov: svoj súkromný kľúč ako uzol (ako štandardné kľúče z peňaženky) a špeciálny blokový podpisový kľúč (odvodený z jeho súkromného kľúča špeciálnou funkciou). Keď príde jeho slot, uzol si vytvorí špeciálny kľúč, potom ho použije na podpísanie svojho bloku a potom ho zničí. V budúcnosti nie je protivník schopný reprodukovať ten istý kľúč, takže nemôže získať právo na obnovenie minulých slotov.

V tomto momente Key Evolving Signature umožňuje uzlu vygenerovať nový tajný kľúč pred vysielaním nového bloku. Verejný kľúč zostáva rovnaký, ale tajný kľúč môže byť znovu vytvorený. Tajný kľúč sa teda môže použiť na podpis bloku len raz.

Záver

Projekty kryptomien sú na úplnom začiatku a musia sa vyvíjať, aby boli globálne škálovateľné a mohli dosiahnuť vyššiu mieru prijatia. Ak máme škálovateľný projekt, môžeme k prijatiu prispieť. Bitcoin sa nikdy nebude škálovať a je naivné myslieť si, že môžeme všetko postaviť na Bitcoine. Musíme použiť najlepšie dostupné kryptografické nástroje, aby sme vytvorili škálovateľný a stále decentralizovaný projekt.

Cardano ponúkne škálovateľnosť, bezpečnosť a decentralizáciu na najvyššej možnej úrovni. Používatelia sa spoliehajú na asymetrickú kryptografiu a nie je dôvod báť sa používať nástroje Verifiable Random Function a Key Evolving Signature v konsenze.


Pôvodný článok: No reason to be afraid of modern cryptography for consensus | Cardanians