🇨🇿 Základy kryptografie pro uživatele Cardano peněženek

CZ překlad:

Základy kryptografie pro uživatele Cardano peněženek

V reálném světě jsou všechny klíče soukromé. V kryptografii využíváme soukromé klíče a veřejné klíče.

Asymetrická kryptografie a hašovací funkce jsou pro běžné uživatele kryptoměn složitá témata. Každý uživatel krypto-peněženky by měl znát základy kryptografie, aby mohl peněženku používat opravdu bezpečně. V tomto článku nebudeme diskutovat o tom, jak přesně a proč kryptografie funguje. Vysvětlíme si základní principy kryptografie z pohledu uživatelů peněženek a řekneme vám, jak se obvykle používají kryptografické nástroje. V článku bude nějaká teorie, ale slibujeme, žádná matematika. Pokusíme se najít vhodné analogie, které usnadní porozumění. Cílem tohoto článku není to, aby byl vyčerpávající a terminologicky přesný.

Pokud chcete držet své mince ADA v bezpečí, musíte se naučit základy. Jak uvidíte, nemusíte si toho zase tolik pamatovat. Pokud se však opravdu nechcete zabývat teorií, podívejte se alespoň na poslední část věnovanou peněženkám.

Už jsem slyšel něco o klíči

Kryptografie je praxe, vědní obor a také skupina technik pro bezpečnou komunikaci v přítomnosti třetích stran, které se snaží komunikaci nějak zneužít ve vlastní prospěch. Kryptografie je také o budování bezpečných protokolů, které zabraňují třetím stranám nebo veřejnosti číst soukromé zprávy a data. Zabývá se také různými aspekty zabezpečení informací, autenticity dat, integritou dat, bezpečnou autentizací atd.

Většina uživatelů často používá kryptografii pro převod čitelného textu na nesrozumitelnou podobu (vznikne jen jakási neuspořádaná změť znaků, která se také nazývaný ciphertext , nebo zašifrovaný text ). Kryptografie umí i opačný proces, tedy převést nečitelný text do původního stavu. Představte si, že máte nějaký text a nechcete, aby jej četl někdo jiný. Je to vaše tajemství , které chcete chránit . Zároveň chcete mít snadný přístup k původní formě, nebo poslat tajemství bezpečně přes internet někomu jinému a umožnit mu přečíst si dokument v originální podobě.

Proces převodu, kdy je čitelná forma dokumentu převedena na nečitelnou formu, se nazývá šifrování (encryption) . Opačný proces, tedy převod z nečitelné formy na čitelnou, dešifrování (decryption) .

Jakmile je původní text převeden na nečitelnou formu (text je zašifrovaný), nikdo nemůže původní formu nějak odvodit z té nečitelné (zašifrované). Obsah dokumentu je tedy bezpečně chráněn před zneužitím a může být poslán přes internet.

Image for post

Vstupem pro šifrovací algoritmus jsou čitelná podoba dokumentu a klíč. Výstupem bude nečitelný text/podoba.

Image for post

Vstupem pro dešifrovací algoritmus je nečitelná podoba dokumentu a klíč. Výstupem je opět původní čitelná forma dokumentu.

Nyní si představte, že mám v dokumentu nějaké tajemství. Kryptografie mi umožňuje dokument zašifrovat, abych jej mohl mít na svém počítači nebo poslat přes internet někomu jinému. Jde o to, že to nikdo jiný neumí zašifrovaný dokuemnt přečíst. Pokud chci nechat někoho jiného číst dokument, musím mu poskytnout také tajemství, které umožní dešifrování.

Šifrování vyžaduje tři věci:

  • Kryptografický algoritmus , což je v podstatě funkce, která bere nějaké parametry jako vstup k vytvoření výstupu. Algoritmus je založen na složité matematice a můžete si to představit jako soubor pravidel, která diktují, co přesně dělat, aby se původní text převedl na nečitelnou formu.
  • Digitální vstup , který má být převeden na nečitelný formát. Může to být soubor nebo obyčejný text, který má být chráněn.
  • Kryptografický klíč . Kryptografický klíč je část informace, která zásadně ovlivňuje výstup kryptografického algoritmu. Kromě toho se klíč používá pro reverzní proces a umožňuje obnovit původního dokumentu. POZOR: Bez klíče by po zašifrování souboru nebylo možné obnovit původní podobu.

Všimněte si, že kryptografický klíč a soubor jsou vstupy pro kryptografický algoritmus. Algoritmus se chová vždy stejně — deterministicky . Různé vstupy pro algoritmus vedou k různým výstupům. Pokud se rozhodnete šifrovat jeden soubor vícekrát a pokaždé použijete jiný klíč, obdržíte různé šifrované výstupy. K zašifrování můžete použít klíč A a klíč B , což vyprodukuje zašifrované podoby A a B . Obě zašifrované podoby se výrazně liší, přestože vstupní soubor byl stejný. Jiné klíče pro každé šifrování zařídíly značně rozdílné výstupy. K dešifrování šifrového textu A je nutné použít pouze klíč A. Všimněte si, že použití klíče B k dešifrování šifrového textu A neumožní získat čitelnou podobu A.

Jakmile kryptografický algoritmus vytvoří výsledný šifrový text, můžete vymazat původní data včetně všech kopií. Pomocí klíče můžete znovu získat původní soubor z šifrového textu. Musíte tedy klíč uchovávat na bezpečném místě a nepřijít o něj!

Zkuste si sami zašifrovat nějaký text online: https://codebeautify.org/encrypt-decrypt

Je to stále složité na pochopení? Pomožme si analogií. Proces šifrování považujte za mletí masa přes masomlýnek. Když vložíte hovězí maso a trochu soli do mlýnku na maso, vyleze kaše. Při konzumaci kaše nemáte šanci poznat, že to původně bylo hovězí maso. Když dáte do mlýnku vepřové maso a trochu soli, vyleze znovu kaše, ale trochu jiná. Chuť kaše však bude velmi podobná té předchozí. Proces mletí vždy produkuje nějakou kaši bez specifické chutě a barvy (gurmán by řekl, že je to nemastné neslané).

Vložené maso a množství soli určují kvalitu kaše. Mlýnek na maso představuje kryptografický algoritmus. Maso je čitelný vstup (text) a sůl je kryptografický klíč. Kaše je nečitelný výstup. Každý kus masa a soli je jedinečný, takže výstupní kaše je také jedinečná (ale z pohledu útočníka nečitelná a vždy dost podobná).

Využili jsme vepřové maso a sůl pro zašifrování. Vznikne jakási nudná kaše bez chuti.

Na rozdíl od mlýnku na maso zvládne kryptografie také opačný proces a může obnovit původní maso z kaše (včetně původní chuti). K tomu potřebujete kaši a stejné množství soli, které bylo použito k vytvoření kaše. Proces lze opakovat znovu a znovu (můžete šifrovat a dešifrovat vícekrát za sebou).

Pokud útočník uvidí pouze kaši, nemá šanci odvodit, jak vypadalo maso nebo sůl. Útočník totiž nemá sůl! Chcete-li získat originální maso, musíte znát a mít k dispozici kombinaci kaše a soli. Jinými slovy, musíte přesně vědět, která sůl byla použita k výrobě kaše, ze kterého chcete vyrobit původní maso. Mít jen kaši nebo sůl je k ničemu. Jakmile máte kaši, můžete ji dát na stůl a každý ji může vidět a ochutnat. Bez přesného množství soli nikdo nemůže odvodit, že původní maso bylo 1,254 kg hovězího.

Ještě před chvíli to byla nudná kaše. Použili jsme správné množství soli a dokázali tak obnovit chutný hovězí stake.

Šifrovací algoritmus si můžete představit jako zdrojový kód, který může potenciálně kdokoli vidět (minimálně vývojáři), takže nemůže být tajný (alespoň tomu nemůžete věřit). Kryptografický klíč tedy musí být tím tajemstvím, které umožní bezpečné šifrování. Klíč umožňuje změnit prostý text na nečitelnou formu pomocí šifrovacího algoritmu a pomocí souvisejícího dešifrovacího algoritmu ho může zase obnovit do původní formy.

Zkusme jinou analogii, abychom vysvětlili funkci klíče. Na světě je mnoho dveří, které udržují tajemství. Pouze ten, kdo má klíč, se může dostat k tajemství tím, že odemkne dveře. Pouze držitel klíče má právo a možnost otevřít dveře a vstoupit dovnitř. Klíč otevírá tajemství.

Bezpečnost klíče a jeho jedinečnost ovlivňuje délka klíče . Obecně platí, že čím delší je klíč, tím lepší zabezpečení poskytuje za předpokladu, že je generován skutečně náhodně. Na světě existuje obrovské množství čísel, takže čím delší je klíč, tím vyšší je možnost vygenerovat opravdu jedinečný klíč. Délka klíče přímo ovlivňuje také obtížnost takzvaného útoku hrubou silou (brute-force attack).

Útok hrubou silou je kryptografický hack, který spoléhá na zkoušení všech možných kombinací dané šifry, dokud není objevena správná kombinace. Čím delší je klíč, tím více kombinací bude třeba testovat. Řekli jsme, že délka klíče je o číslech, takže čím delší je klíč, tím více čísel se musí zkusit. Útok hrubou silou může být časově náročný a obtížně proveditelný, pokud jsou použity metody na obfuskování dat (například se použije hashování). Někdy může být tento útok téměř nemožný. V tomto článku se nemusíte detailně zabývat útokem. Jen mějte na paměti pravidlo: čím delší klíč, tím lepší zabezpečení.

Nezapomeňte, že soukromý klíč je to, co musíte vždy udržet v tajnosti. Slovo soukromé znamená „vaše“. Je to tajemství, které nesmí přijít do rukou nikoho jiného. Jinak může být tajemství odhaleno, což může vyústit v nějakou finanční ztrátu.

Asymetrická kryptografie

Asymetrická kryptografie, také známá jako kryptografie s veřejným klíčem , používá dva klíče . Soukromý klíč (private key) a veřejný klíč (public key) . Můžeme také hovořit o páru klíčů . Pár klíčů vždy pracuje společně, klíče na sebe mají vazbu. Existuje tedy soukromý klíč A a související veřejný klíč A. Kromě toho může existovat soukromý klíč B a související veřejný klíč B. Dále existuje mnoho dalších párů klíčů. Jde o to, že soukromý klíč A a veřejný klíč B nelze smysluplně kombinovat.

Existuje určitý proces generování klíčů, kdy se nejprve vygeneruje soukromý klíč. Poté se na základě soukromého klíče, použitého jako vstup, vygeneruje také veřejný klíč. Proces generování klíčů je také druh kryptografického algoritmu, který vyžaduje nějaký vstup pro vygenerování privátního klíče. Takže jako uživatel musíte algoritmu poskytnout nějaký vstup. Vstupem může být buď náhodné číslo, nebo část textu, kterou si pamatujete. Případně vám některé nástroje mohou pomoci s vygenerováním náhody a vám pak stačí soukromý klíč udržet v bezpečí. Ke generování klíčů a potřebě poskytnout náhodný vstup se ještě vrátíme později.

Image for post

Za kryptografií je složitá matematika. Vy ji ale nepořebujete znát k tomu, abyste ji mohli využívat!

Jak název napovídá, soukromý klíč je tajemství , které nesmí být nikomu jinému odhaleno. Naopak, veřejný klíč můžete volně publikovat a nemusíte se obávat, že jej uvidí někdo jiný, nebo se jej pokusí použít. Toto je kouzlo asymetrické kryptografie. Můžete odeslat nebo odhalit veřejný klíč a sdílet některá tajemství, nebo dělat jiné zajímavé věci. Bezpečné šíření soukromého klíče někomu jinému je docela nebezpečný proces.

Nezapomeňte, že je možné znovu použít soukromý klíč pro vygenerování stejného veřejného klíče. Naopak to nefunguje. Není možné odvodit soukromý klíč od veřejného.

Existuje více možností, jak používat asymetrickou kryptografii, ale ukážeme si pouze tu, která nás nejvíce zajímá v rámci kryptoměn. Je to digitální podpis .

Vysvětlení zjednodušíme pouze na základní princip důležitý pro porozumění. Digitální podpis se používá tak, že každý příjemce může prostřednictvím veřejného klíče ověřit, že zprávu odeslal držitel soukromého klíče. Držitel soukromého klíče může sdělit svůj veřejný klíč každému, kdo má zájem o ověření pravosti (autenticity) zprávy. Jakmile je zpráva podepsána soukromým klíčem, může kdokoli na světě, kdo drží párový veřejný klíč, ověřit, zda byla zpráva odeslána držitelem soukromého klíče.

Alice, držitelka soukromého klíče, může říct: „Já jsem Alice a tohle je můj veřejný klíč. Jakmile obdržíte zprávu, můžete veřejným klíčem ověřit, že je opravdu ode mě. Tady máte klíč.”. Bob má zájem o ověření. Čeká tedy na zprávu a pro ověření pravosti použije veřejný klíč od Alice. Nikdo jiný na světě není schopen zprávu podepsat správně, pokud není kompromitován soukromý klíč, což například znamená, že byl Alici ukradený. S přesnějším vysvětlením přijdeme později.

Hashing

Nyní si něco řekneme o další operaci či funkci, která se v kryptografii používá. Jmenuje se hashování. Hashing je opět jen proces nebo funkce poskytovaná určitými nástroji. Představte si to jako použití určitého algoritmu , který vezme nějaký vstup a produkuje výstup . Je to podobné našemu mlýnku na maso, ale nyní ve hře není žádný klíč a používá se pouze jeden vstup pro získání jednoho výstupu.

Hashovací funkce bere jako vstup libovolně velká data a vyprodukuje takzvaný digitální otisk , který je obvykle mnohem kratší. Existuje více jmen pro digitální otisk, se kterým se můžete setkat, jako třeba hash , či digest atd. Vytvoření hashe je velmi rychlý proces bez ohledu na to, jak velká jsou vstupní data.

Jak můžete vidět níže na obrázku, jako vstup pro hashovací algoritmus SHA256 jsme použili poměrně dlouhý text. Výstup je pouze následující řetězec, tedy toto je reálný hash:

d6cf3060b4b819441c566d6bc4f54a93c54a91b8aded2022599866a9ef86350b

Nezáleží na tom, jak dlouhý nebo velký je vstup. Výstup má vždy podobnou délku.

Neváhejte si vyzkoušet hashování: https://www.tools4noobs.com/online_tools/hash/

Hašování je definováno hlavně těmito dvěma charakteristikami:

  • Nemožnost reverzního postupu pro získání originální podoby dat z hashe. To zajišťuje, že jakmile je hash vytvořen, neexistuje způsob, jak získat původní data (vstup) z výstupu (z hashe/digestu). V naší analogii s mlýnkem na maso můžete vždy snadno vytvořit kaši z masa. Z kaše však není možné vyrobit zpět maso. Navíc můžete do mlýnku na maso vložit 50 tun vepřového masa a výsledek bude pouze 10 gramů kaše. Maso představuje vstup (data, soubor, text). Kaše představuje hash (digest). Mlýnek na maso je hashovací funkce.
  • Jedinečnost výstupu , což zajišťuje to, že pro různá data je vždy vytvořen jedinečný hash. I kdybyste měli knihu a změnili jste pouze jeden znak, hash by vypadal docela jinak. Pokud byste měli jeden konkrétní stake a pokusili se opakovaně vyrobit kaši, pak by kaše byla vždy stejná. Ve skutečnosti, jakmile jednou projde stake mlýnkem na maso, nemá smysl ho tam zkoušet nacpat znovu. Tady naše analogie trochu selhává. Nicméně u digitálních dat je to možné.

Pokud opakujete hašovací proces znovu a znovu, vždy získáte stejný hash pro stejná vstupní data. Jakmile dojde ke ztrátě původních dat, nemůžete znovu vytvořit hash a není možné obnovit ani původní data z hashe.

Image for post

Digest je vždy steně krátký. Je to jen otisk původních dat.

Hash se používá k ověření pravosti dat. Vaše přítelkyně Carol vám chce poslat soubor a chce se ujistit, že dostanete originál. Carol vytvoří hash a pošle vám ho prostřednictvím Messangeru nebo ho zveřejní na svůj web. Carol vám poté pošle také data. Vy můžete udělat hash přijatého souboru a můžete lehce porovnat, zda je stejný jako ten od Carol. Pokud jsou oba hashe stejné, dostali jste původní data. Pokud ne, obdrželi jste falešná data.

Všimněte si, že se hash často používá pro stahování softwaru z internetu. Autor softwaru může publikovat hash na webu poblíž souboru ke stažení. Uživatelé tak mohou ověřit, že si stáhli správný soubor.

Uvědomte si rozdíl mezi hašováním a asymetrickou kryptografií. V rámci hašování nejsou data považována za tajná a po použití hašovací funkce si data stále zachovávají původní podobu. Neexistuje žádná konverze (žádné šifrování). Hashing se používá k vytvoření otisku dat, který se následně využije pro ověření pravosti (respektive k tomu, že se data nezměnila a vy se díváte přesně na ty data, ke kterým máte někde schovaný či jinak dostupný hash). Asymetrická kryptografie se používá k ochraně původních dat nebo k ověření, že data zaslal drižel soukromého klíče. Vy máte soukromý klíč, který vám umožňuje zašifrovat původní data nebo podepsat zprávu.

Alice a Bob podruhé

Vzpomínáte si na výše uvedený příklad, kdy Alice poslala zprávu Bobovi? Pojďme to trochu zpřesnit. Při komunikaci mezi dvěma entitami je důležité zajistit, aby nebyla zpráva změněna někým během cesty od Alice k Bobovi. Zpráva samotná nemusí být nutně tajemstvím, které chce Alice chránit. Alice chce zajistit jen to, aby Bob uvěřil, že je text který obdržel autentický . Navíc chce Alice Bobovi prokázat , že poslala zprávu právě ona a že vlastní soukromý klíč, který odpovídá veřejnému klíči, přes který Bob zprávu ověřuje.

Digitální podpis je jen relativně krátká informace, která je připojena ke zprávě a používá se k ověření, zda se zpráva během přenosu přes internet nezměnila. Aby se zajistila integrita zprávy (důkaz, že se zpráva nezměnila), použije se hashování . Autor zprávy může navíc prokázat pravost (dokázat, že je odesílatel) , k čemuž se používá asymetrická kryptografie .

Digitální podpis je generován ve dvou krocích, ve kterých se používá jak hashování, tak asymetrická kryptografie. Digitální podpis je šifrovaný hash zprávy , kterou chce Alice poslat Bobovi.

Aby Alice podepsala zprávu, udělá následující:

  1. Alice použije hashovací funkci na zprávu, aby vytvořila hash (digest).
  2. Alice použije svůj soukromý klíč k zašifrování hashe. Pozor, ne zprávy samotné. Opravdu zašifruje pouze hash.
  3. Odešle zprávu Bobovi spolu s digitálním podpisem. Zpráva je čitelná, tedy nezměněná.

Bob obdrží zprávu s digitálním podpisem a ověří integritu a autenticitu zprávy následujícím způsobem:

  1. Bob dešifruje hash pomocí veřejného klíče (který obdržel už dříve od Alice). Jinými slovy, hash bude znovu “čitelný” (stále je to změť nic neříkajích znaků).
  2. Bob aplikuje stejnou hashovací funkci (stejnou, kterou použila Alice před odesláním zprávy) na přijatou zprávu, aby vytvořil hash (digest).
  3. Bob porovná oba hashe. Dešifrovaný hash od Alice (ten, který byl součástí zprávy od Alice) a hash, který Bob získal použitím stejné hashovací funkce na přijatou zprávu. Pokud jsou oba hashe stejné, Bob si je jistý, že zpráva byla odeslána Alicí a obsah zprávy je autentický. Pokud hashe nejsou stejné, stalo se něco špatného, ​​a zpráva byla kompromitována třetí stranou. Bob této zprávě nedůvěřuje.

Image for post

Credits: https://docs.huihoo.com/globus/gt4-tutorial/ch09s03.html

V tomto příkladu byl digitální podpis použit pro zajištění integrity a autenticity zprávy. Bob mohl ověřit, že zpráva byla opravdu podepsána Alicí a obsah je přesně takový, jak ho Alice napsala. Zpráva nebyla na své cestě Internetem šifrována a kdokoli ji mohl přečíst. Alice nepotřebovala zprávu zašifrovat, ale je snadné tak učinit. Pokud by Alice chtěla přidat soukromí a zprávu zašifrovat, mohla to lehce udělat a Bob by ji musel navíc ještě dešifrovat. Základní princip s digitálním podpisem by zůstal v podstatě stejný.

Konečně jdeme krypto

Nyní přecházíme z teorie do praxe. Vlastnictví ADA mincí je realizováno skrze vlastnictví soukromých klíčů a Cardano adres . To je nezbytná pro poskytnutí digitálního podpisu . Síť nepracuje přímo se soukromými klíči, ta pouze kontroluje digitální podpisy. Pouze držitelé soukromých klíčů mohou inicializovat převod mincí z dané adresy. Převod je realizován skrze transakce . Uživatelé se tedy musí starat o své soukromé klíče, protože pouze to umožňuje mince utratit.

Kryptografie se vždy používá skrze vhodné nástroje. V případě kryptoměn je to realizováno pomocí peněženek . Pamatujte si, že peněženky ukládají vaše soukromé klíče , takže vlastnictví ADA mincí je vždy jen tak bezpečné, jak bezpečná je vaše peněženka. Soukromé klíče se používají k podepisování transakcí , takže není nutné odhalovat soukromé klíče někomu jinému na internetu! Cardano síť nepotřebuje váš soukromý klíč pro převod mincí. O vaše klíče by se neměl starat a zkoušet je získat nikdo jiný na světě.

Krypto-peněženka operuje jen s klíči. Nikdy nedrží mince.

Vysvětlili jsme, jak obecně funguje digitální podpis. Velmi podobný postup se používá k odesílání mincí z vaší peněženky někomu jinému na jeho adresu. Majitel mincí realizuje převod mincí skrze transakce. Do transakce se musí vložit platný digitální podpis. Síť totiž musí ověřit vlastnictví mincí před tím, než zahrne transakci do blockchainu, a za tímto účelem se zkontroluje právě digitální podpis. Transakci, která převádí mince z adresy odesílatele na adresu příjemce, může podepsat pouze vlastník soukromého klíče (tedy současně “vlastník” adresy). Jinými slovy, utracení finančních prostředků z dané adresy vyžaduje důkaz o vlastnictví skrze odpovídající soukromý klíč . Existuje vztah mezi soukromým klíčem a adresou a my si to vysvětlíme o něco později.

Proces převodu mincí z pohledu uživatele vypadá takto:

  1. Uživatel vytvoří transakci a definuje, kolik ADA mincí má být odesláno.
  2. Peněženka vybírá mince na konkrétní adrese a k podpisu transakce používá náležitý soukromý klíč.
  3. Transakce je poté odeslána do sítě.
  4. Nějaký node se rozhodne přidat tuto transakci do bloku. Node ověří digitální podpis (a navíc provede další ověřování). Poté přidá blok do své vlastní blockchainu.
  5. Node distribuuje nový blok na další nody.
  6. Ostatní nody ověřují blok včetně všech transakcí a rozhodují, zda si přidají blok do jejich lokálních blockchainů.
  7. Pokud si většina nodů přidala blok do svých blockchainů, může příjemce vidět ADA mince na své adrese.

Nezapomeňte, že pokud dojde ke ztrátě soukromého klíče, nikdo nebude moci utratit finanční prostředky z adresy. Síť to nemůže udělat, protože není schopna ověřit digitální podpis. Z technického hlediska se klienti řídí pravidly, která jsou definována programátory ve zdrojovém kódu. Pokud majitel ztratí soukromý klíč, mince nebudou nikdy utraceny a zůstanou navždy trčet na dané adrese.

Cardano, stejně jako jiné kryptoměny, používá asymetrickou kryptografii, takže používá páry klíčů . Soukromý klíč a odpovídající veřejný klíč. Nyní přichází magie. Veřejný klíč se používá jako adresa , na kterou lze zaslat mince. Odpovídající párový soukromý klíč se používá k utrácení mincí z této adresy . Můžete si představit, že veřejný klíč je účet a soukromý klíč je heslo potřebné k utrácení mincí.

Vždy, když peněženka vytvoří novou adresu, vygeneruje se dvojice klíčů. Nejprve se vygeneruje soukromý klíč a z něj se vytvoří odpovídající veřejný klíč. Veřejný klíč se pak použije pro adresu. Veřejný klíč nemusí být nutně používán tak, jak je vygenerovaný. Místo veřejného klíče se může použít hash této adresy , což tvoří další vrstvu zabezpečení (z hlediska úspory místa je vhodnější používat co nejkratší adresy). Jsou možné i další modifikace adresy.

Při vytvoření transakce je nutné operovat s veřejným klíčem, jež reprezentuje adresu a ze které mají být odesílány mince. Pro ověření ze strany sítě je nutné přidat digitální podpis. Součástí transakce musí být také adresa příjemce, protože vlastnictví mincí se přesune z adresy odesílatele na adresu příjemce. Od vlastníka soukromého klíče k jinému vlastníkovi soukromého klíče. Mince si však můžete poslat sami sobě.

Node, který vytváří blok, zahrnuje transakci do bloku a ověřuje digitální podpis. Když je blok rozšířen na další nody, všechny full nody validují celý blok a všechny transakce včetně všech digitálních podpisů. Pokud je digitální podpis správný a všechny ostatní kontroly prošly, budou převedeny mince novému vlastníkovi.

Peněženka vždy ukládá všechny soukromé klíče pro všechny adresy. Pokud vygenerujete 10 adres, vygeneruje se 10 soukromých klíčů a 10 veřejných klíčů. Jako uživatel Cardano peněženky máte štěstí, že nikdy nemusíte přímo pracovat se soukromými a veřejnými klíči. Vaše peněženka pro vás vše potřebné zařídí. Stačí používat adresy. Nikdy nemusíte vidět soukromé klíče. Pokud neznáte soukromé klíče, pak je menší pravděpodobnost, že vám budou odcizeny. Z bezpečnostních důvodů se nesnažte vidět své soukromé klíče.

Kde je tedy tajemství, které byste měli střežit? Pamatujte si, že vše, co potřebujete, je SEED peněženky, nebo přístupová fráze ( passphrase )!

Obnovení Daedalus peněženky přes SEED.

SEED může být číslo nebo několik slov (12, 24, …), které se používají jako vstup pro vytvoření soukromého klíče. Říkejme tomu kořenový soukromý klíč (root private key) . Kořenový soukromý klíč používá peněženka k vygenerování všech ostatních soukromých klíčů . Důležité je, že existuje deterministický proces , který generuje vždy stejný kořenový soukromý klíč pro daný SEED. Jinými slovy, ze stejného SEEDu se vygeneruje vždy stejný kořenový soukromý klíč.

Image for post

Jeden SEED umí opakovaně vyrobit stejnou sadu privátních klíčů a adres.

Jakmile znáte SEED, můžete použít stejný proces ke generování všech dalších soukromých klíčů potřebných pro podepisování transakcí a samozřejmě všech adres. Můžete tak ztratit mobilní telefon, váš počítač se jednoho dne nemusí spustit nebo může dojít k odcizení hardwarové peněženky. Nezáleží na tom, pokud si pamatujete, nebo máte bezpečně uložený SEED. Pokud ano, jste stále vlastníkem všech ADA mincí, protože můžete nainstalovat stejnou peněženku (nebo dokonce jinou peněženku) a obnovit kořenový soukromý klíč včetně všech soukromých klíčů a adres. Mince zůstanou sedět na stejné adrese v blockchainu, dokud se nepoužije soukromý klíč. Síť v každém okamžiku ví, na jaké adrese jsou všechny mince. Mince nelze nikdy ztratit. To, co lze ztratit, je pouze soukromý klíč, který umožňuje utracení mincí. Takže jedině vlastník soukromého klíče může selhat. Ne síť.

Právě proto vám peněženka vždy při zakládání dává pokyn, abyste si SEED bezpečně uložili a znovu zadali pro ověření. SEED by měl být ideálně napsaný na kusu papíru . Jakmile budete mít SEED, vše bude možné kdykoliv obnovit.

SEED patří na papír.

Pamatujte si, že vše, co potřebujete pro bezpečné držení mincí, je SEED. Nikdy neposkytujte SEED někomu jinému, protože jakmile útočník zná váš SEED, může snadno obnovit vaši peněženku a utratit vaše ADA mince. Během obnovy peněženky se ze SEEDu vygeneruje kořenový soukromý klíč a poté všechny soukromé klíče jeden po druhém. Prvně je vygenerován první soukromý klíč, poté adresa a z blockchainu lze ověřit, že na adrese jsou nebo byly nějaké mince. V takovém případě je vygenerován další soukromý klíč a proces se opakuje, dokud není nalezeno několik prázdných adres. To totiž znamená, že jste tyto adresy nepoužili (peněženka vás obvykle přinutí adresu použít před tím, než vám dovolí vygenerovat jinou). Obnoví se tak všechny adresy, které jste kdy použili. Generování soukromých klíčů je také deterministický proces . Dá se využít například zvýšení čísla o jedna (inkrementace), což je dostatečné pro vygenerování jiného unikátního soukromého klíče.

Vlastnictví mincí

Pojďme se podívat na jeden zajímavý detail týkající se vlastnictví mincí. Informace o tom, na kterých adresách jsou ADA mince aktuálně uloženy, jsou vždy uloženy v blockchainu . Takže mince ADA nemohou být nikdy ztraceny tak, aby o nich blockchain nevěděl. Síť prostřednictvím distribuovaných klientů dělá pouze to, co vývojáři zapsali do zdrojového kódu . Zdrojový kód v podstatě určuje podmínky , za kterých se mince mohou pohybovat z adresy na jinou adresu. Jednou z podmínek je prokázat to, že o přesun mincí žádá skutečný vlastník. Vlastník musí mít soukromý klíč k adrese, aby dokázal vlastnictví a tento důkaz je součástí každé transakce. Všichni klienti v síti mohou vlastnictví snadno ověřit a odmítnout přidat transakci do bloku, pokud neexistuje náležitý důkaz vlastnictví. Nikdo není schopen vynutit utrácení mincí bez odpovídajícího soukromého klíče. Pokud většina nodů v síti používá oficiálního a nemodifikovaného klienta (vytvořeného z veřejného open-source kódu), nemůže nikdo jiný než vlastník soukromého klíče utratit mince. Blockchain je pouze databáze pro ukládání informací o mincích. Distribuovaný algoritmus v klientech ( síťový konsensus ) se podílí na převodu mincí a potřebuje důkaz, který lze poskytnout pouze prostřednictvím soukromého klíče.

Peněženka Daedalus pouze načte blockchain od samého začátku (všechny bloky) a jakmile se synchronizuje (všechny bloky byly načteny), zobrazí se váš zůstatek. Peněženka neukládá žádné mince. Peněženka operuje pouze se soukromými klíči, které jsou potřebné k utrácení mincí z daných adres prostřednictvím transakcí. Algoritmus distribuované sítě zkontroluje transakci a pokud je důkaz o vlastnictví správný, mohou být mince utraceny.

Vzpomínáte si ještě, že nelze vytvořit soukromého klíč z veřejného klíče? V kontextu kryptoměn to znamená, že nejde vytvořit privátní klíč (nutný k podepsání transakce) z veřejné adresy. Můžete znát adresu, na které máte mince a podívate se na to třeba v blockchain exploreru. Vidíte však jen to, co je zapsáno v ledgeru. Otázka je, jestli jste schopni mince utratit, tedy jestli máte k dané adrese také odpovídající soukromý klíč. Pokud máte peněženku a nepamatujete si SEED, hodně riskujete. Jakmile se stane něco špatného a vy o peněženku z nějakého důvodu přijdete, přicházíte také o mince. Důvod je prostý. Nejste schopni peněženku včetně všech privátních klíčů obnovit.

Každopádně z uživatelského hlediska mince vlastní jedině ten, kdo je schopný mince utratit. Tedy vlastník soukromých klíčů.

Závěr

Pokud byste si měli pamatovat jedinou věc z dnešního článku, mělo by to být toto. Chraňte svůj SEED a nikdy ho nikomu nedávejte ani neukazujte. Jedině tak zůstanete vlastníkem vašich mincí.

Určitě jste slyšeli větu: „Pokud nevlastníte klíče, nevlastníte mince.“. Jak jsme řekli, své soukromé klíče pravděpodobně nikdy neuvidíte a neměli byste se o to ani snažit, takže SEED a vlastní peněženka jsou nejdůležitější věci, které byste měli mít na paměti. Věta byla pravděpodobně použita v kontextu s burzami. Pokud máte mince na burze, rozhodně nejste vlastníkem mincí. Vy se můžete k burze pouze přihlásit a musíte doufat, že tam mince budou. Důvěřujete burze a to se nevyplácí.

Mohli bychom poskytnout více detailních informací, ale na jeden článek toho bylo už dost. Příště podíváme na konkrétní věci podrobněji.