🇨🇿 Pochopení Cardano certifikátů

Staking je založen na certifikátech, které jsou uloženy v blockchainu. Provozovatelé poolu (SPO) musí zaregistrovat svůj pool prostřednictvím certifikátů. Stakeři musí vytvořit certifikáty, aby mohli delegovat staking práva na vybrané pooly. Za tím vším jsou kryptografické klíče. Přijďte se ponořit do světa certifikátů Cardano.

Mintování bloků

V síti Cardano může produkovat bloky pouze entita, která vlastní coiny ADA. ADA je vzácný zdroj, na kterém je založena decentralizace a bezpečnost sítě. Každý subjekt, který chce vyrábět bloky v síti Cardano, musí provozovat uzel Cardano a registrovat jej jako pool prostřednictvím certifikátu. Všichni majitelé ADA, včetně provozovatelů poolu, mohou delegovat ADA coiny (stake práva) na vybraný pool, pro který také potřebují vytvořit certifikát a předložit jej blockchainu.

Tyto procesy neřídí žádná centrální jednotka. Kdokoli se může stát vlastníkem ADA coinů nebo se zaregistrovat jako provozovatel poolu bez povolení třetí strany. Kdokoli může delegovat ADA na vybraný pool.

Abyste správně porozuměli certifikátům a tomu, jak funguje produkce bloků, musíte nejprve vědět o struktuře adres.

Cardano používá jedinečnou strukturu adres, která umožňuje oddělit právo utrácet coiny od delegování staking práv. Platební adresy Shelley se skládají ze dvou částí: platební údaje (které definují, jak mohou být z dané adresy utraceny prostředky) a odkaz na stake adresu.

Stake adresa určuje, zda a jakým způsobem bude použita ADA na platebních adresách. Stake adresa umožňuje využít staking právo prostřednictvím oprávnění (staking key nebo hash skriptu).

Pro oba existují vyhrazené páry klíčů, tj. pár klíčů pro adresu útraty a pár klíčů pro stake adresu.

Na obrázku níže vidíte platební adresu Shelley. UTxO a přihlašovací údaje jsou uloženy v levé části s názvem Funds. Oprávnění definují možnost utrácet finanční prostředky prostřednictvím podpisového klíče nebo skriptu. V pravé části s názvem Stake Address Reference je odkaz na stake adresu.

Stake adresa se používá jako vstup pro vytvoření delegačního certifikátu. Všimněte si spojení mezi platební adresou a odkazem na stake adresu. Počet ADA na adresách se může změnit (uživatel adresy si může koupit více ADA coinů nebo je utratit), nebo může uživatel vytvořit více nových adres odkazujících na stejnou stake adresu.

Odkaz ukazuje na přihlašovací údaje, tj. na staking klíč (nebo hash skriptu), který lze použít k delegování ADA coinů ze sekce poolů. Případně může odkazovat na certifikát obsahující pověření nebo Null. Hodnota Null znamená, že prostředky nelze delegovat (tj. použít pro staking).

Všimněte si, že stake adresa obsahuje účet, který není založen na UTxO, ve kterém systém shromažďuje odměny za staking. Vlastník staking klíče (nebo skriptu) má kontrolu nad staking odměnami a může je vybrat. Stakeři i provozovatelé poolu používají podobný mechanismus k delegování ADA na pool.

Všechny ADA coiny (respektive stake adresy), které byly delegovány do poolu, jsou zahrnuty do celkového vkladu tohoto poolu ve volbě lídra slotu. Počet bloků, které mohou pooly razit za epochu (kolikrát jsou zvoleni jako vedoucí slotů), závisí na velikosti celkového stake (počtu mincí). Výše odměny závisí na počtu bloků, které pool razí (vedoucí automatů mohou minout slot a z nějakého důvodu blok nevytvořit). Pokud je celkový vklad nízký, může se stát, že pool nevyrazí ani jeden blok. V tomto případě nedostane žádnou odměnu.

Když provozovatel poolu vytvoří registrační certifikát, kromě dalších parametrů (o kterých si povíme níže) definuje odměnu pro sebe (pevnou odměnu a marži). To ovlivní výši odměny pro delegátory (stakery). Odměny jsou rozdělovány automaticky protokolem Cardano. Provozovatelé poolu nemají žádnou kontrolu nad distribucí staking odměn na účty odměn. Jak již bylo zmíněno, odměny z účtu odměn může vybírat pouze ten, kdo drží staking klíč.

Certifikáty

V této části se zaměříme na certifikáty. Pro jednoduchost se nebudeme zabývat možností delegování staking práv prostřednictvím skriptů. Během vysvětlování budeme uvažovat pouze o dvojici klíčů. Podpisový klíč (soukromý klíč, který musí vlastník udržovat v tajnosti) a ověřovací klíč (veřejný klíč, který lze publikovat). Na obrázcích bude podpisový klíč zobrazen červeně a ověřovací klíč zeleně. Ověřovací klíče se většinou používají v hašované podobě. Na obrázcích to řešit nebudeme. Hašovanou formu si můžete představit jako další reprezentaci stejné hodnoty (z jednoho řetězce se stane jiný řetězec, při opakování vždy stejný).

Obrázek níže ukazuje kontrolu uživatele nad utrácením finančních prostředků a delegování staking práv prostřednictvím podpisových klíčů. Ověřovací útratový klíč se používá k vytvoření útratové adresy. Chcete-li utratit prostředky z adresy, je vyžadován odpovídající podpisový klíč. Ověřovací staking klíč se používá ke generování stake adresy. K delegování staking práv (ADA coiny) je vyžadován podpisový staking klíč. Uživatelé udržují podpisové klíče v tajnosti. Blockchainové adresy jsou veřejné.

Aby bylo možné používat ADA coiny pro výrobu bloků, je nutné zaregistrovat stake adresy a delegovat je do poolů. To se děje vytvořením certifikátů, které jsou následně odeslány do sítě prostřednictvím transakcí. Všechny certifikáty jsou uloženy v blockchainu, tedy veřejně dostupné všem účastníkům.

Certifikáty jsou platné, dokud nejsou přepsány vlastníkem podpisového staking klíče nebo dokud nevyprší jejich platnost. V případě vypršení platnosti lze certifikát obnovit. Týká se to pouze jednoho typu certifikátu, který musí provozovatelé poolu obnovit. Certifikáty používané běžnými stakeři jsou platné navždy až do přepsání (zrušení registrace).

Níže je uveden seznam všech certifikátů, které lze vytvořit a uložit v blockchainu Cardano.

  • Certifikát o registraci stake adresy stake
  • Certifikát o zrušení registrace stake adresy
  • Certifikát o delegování
  • Certifikát o registraci poolu
  • Certifikát o vyřazení poolu
  • Certifikát provozního klíče

Stakeři (tedy i provozovatelé poolu) používají pouze certifikáty související s registrací stake adres a delegováním. Provozovatelé poolu musí pool registrovat prostřednictvím certifikátu a pravidelně obnovovat jeho schopnost razit bloky, také prostřednictvím certifikátu.

Staker certifikáty

K delegování mincí ADA do poolu je třeba použít dva certifikáty: certifikát o registraci stake adresy a certifikát o delegování. Je možné zrušit registraci adresy stake prostřednictvím certifikátu o zrušení registrace stake adresy.

Na obrázku níže můžete vidět, jak uživatel vytváří certifikát o registraci stake adresy stake pro více platebních adres (všechny jsou spojeny se stejnou stake adresou). Pro registraci je potřeba vlastnit podpisový staking klíč. Tento proces je podobný jak pro stakery, tak pro provozovatele poolu.

Certifikáty pro registraci a zrušení registrace musí obsahovat stake adresu a pověření (ověřovací klíč). Při registraci staking adres se vytvoří účet odměny. Účet odměny je smazán, když je stake adresa odregistrována. Pro registraci stake adresy je nutný podpis, na rozdíl od zrušení registrace.

Jakmile jsou stake adresy zaregistrovány, mohou být delegovány do poolu.

Uživatel (na obrázku je to Alice) může převést staking práva dané stake adresy do staking poolu vytvořením delegačního certifikátu a jeho odesláním do Cardano blockchainu. Delegační certifikát obsahuje stake adresu spojenou s platebními adresami a ověřovací klíč (ID) staking poolu, což je identifikátor poolu, kterému mají být ADA coiny delegovány.

Na obrázku můžete vidět operátora poolu (Bob), který vlastní podpisový klíč, který představuje vlastnictví poolu. Alice našla v peněžence ID poolu podle jména. To znamená, že podle jména, které si Alice vybrala, vložila peněženka do certifikátu odpovídající ID.

Certifikát o registraci stake adresy je potřeba pouze tehdy, když chce staker zaregistrovat novou stake adresu na blockchainu, což je jednorázová operace. Certifikát o delegování je potřeba vždy, když staker chce delegovat nebo znovu delegovat svůj stake do poolu podle vlastního výběru.

Dodejme, že uživatelé nemusí certifikáty vytvářet ručně a pomáhají jim v tom peněženky. Stačí si vybrat jeden z poolů nabízených peněženkou a podepsat transakci. Transakce obsahuje certifikát a po zařazení do bloku bude certifikát součástí blockchainu.

Certifikáty provozovatele poolu

Provozovatel poolu musí vytvořit několik párů klíčů, které jsou vyžadovány pro registraci poolu.

  • Pár klíčů pro staking pool (studený klíč)
  • Pár klíčů pro Key-Evolving Signature (KES) (horký klíč)
  • Pár klíčů pro Verification Random Function (VRF) (horký klíč)
  • Pár klíčů pro stake adresu (studený klíč)

Pár klíčů pro staking poolu se používá pro identifikaci poolu (ověřovací klíč), podepisování certifikátů pro registraci poolu (a vyřazení) a delegování (přenos) práv pro KES klíč v certifikátu operačního klíče. Více si o tom povíme později.

Podepisovací klíč KES se používá pro podepisování ražených bloků uzlem. Ověřovací klíč KES se používá pro validaci bloků jinými uzly.

Podepisovací VRF klíč používá uzel ke zjištění, zda se stal vedoucím slotu v daném slotu. Na všech uzlech poolu probíhá v každém slotu soukromá loterie, ve které jeden nebo více uzlů získá právo razit blok. Ověřovací VRF klíč používají ostatní uzly k ověření VRF důkazů, které jsou vloženy do nově ražených bloků. Jakýkoli uzel může ověřit, že navrhovatel nového bloku skutečně vyhrál loterii VRF v daném slotu.

Provozovatel poolu také vlastní staking klíče ze své stake adresy, která se používá jako adresa pro odměnu pro registrovaný pool.

Nejdůležitějším párem klíčů jsou klíče pro staking pool, protože identifikuje pool a certifikáty pro registraci poolu (vyřazení) a certifikáty provozního klíče musí být podepsány pomocí podpisového klíče.

Pokud dojde ke kompromitaci podpisových klíčů uložených uzlem v horkém úložišti, lze klíč poolu pro podpisy použít k vytvoření nových certifikátů, které zruší platnost předchozích. Provozovatel poolu má plnou kontrolu nad poolem, pokud je jediným vlastníkem klíče pro staking pool.

Registraci poolu můžete vidět na obrázku níže. Operátor poolu (Bob) vytvořil 4 páry klíčů: klíče pro staking poolu, klíče KES, klíče VRF a klíče stake adresy. Ověřovací klíč staking poolu se používá k identifikaci poolu a také jako jeden ze vstupů pro vytvoření registračního certifikátu poolu. Dále ověřovací VRF klíč, ověřovací klíč stake adresy (adresa odměny), seznam dalších stake adres operátora, parametry definující odměnu pro operátora (pevný poplatek a marže) a IP nebo DNS adresy všech přenosových uzlů jsou vloženy do certifikátu.

Volitelně lze do certifikátu vložit URL a hash obsahu URL pro další metadata o poolu. Tato data se zobrazují v peněženkách uživatelům, kteří hledají pool, do kterého by delegovali ADA. Pokud není poskytnuta žádná URL a hash obsahu, staking pool nebude uveden v peněženkách (může to být soukromý pool).

Certifikát musí být podepsán podpisovým klíčem staking poolu. Toto je nejdůležitější krok při vytváření certifikátu, protože to nemůže udělat nikdo jiný než vlastník klíče.

Všimněte si, že v horkém úložišti na uzlu jsou klíče KES a VRF. Uzel potřebuje klíče, aby mohl produkovat bloky (loterie VRF a podepisování bloků).

Do certifikátu lze vložit seznam staking adres kontrolovaných provozovatelem poolu. Pokud jsou tyto adresy delegovány do stejného poolu, který je registrován prostřednictvím certifikátu, ADA se bude počítat jako zástava operátora (kůže ve hře operátora). Vložení stake adres do certifikátu nestačí k delegování ADA coinů. Operátor poolu musí vytvořit delegační certifikát a odeslat jej do sítě, podobně jako to dělají stakeři. Při rozdělování odměn nebudou odměny vypláceny na účty těchto staking adres, ale na účet stake adresy (adresa odměn) provozovatele poolu. Na obrázku je to Klíč stake adresy.

Všimněte si, že klíč KES nebyl vložen do tohoto certifikátu.

Certifikát vyřazení poolu obsahuje pouze ověřovací klíč poolu (ID) a číslo epochy, od kterého by pool měl přestat produkovat bloky, a tím být vyřazen.

Když provozovatel poolu odešle certifikát o registraci poolu do sítě, pool se zaregistruje, ale ještě nemůže začít vyrábět bloky. Operátor musí zaslat ještě jeden certifikát, a to certifikát operačního klíče.

Pro dosažení maximální bezpečnosti klíčů je nutné, aby obsluha dodržela uspořádání horkých a studených klíčů. To výrazně snižuje riziko spojené s vystavením klíčů na uzlu (klíče KES a VRF v horkém úložišti).

Operátor vždy uchovává klíč poolu v cold úložišti (off-chain) a v pravidelných intervalech jej používá k podpisu nového certifikátu operačního klíče. Podepisovací klíč pro pool se používá k přenosu podpisového práva na klíč KES (nazývaný také operační klíč), který je uložen v horkém úložišti v uzlu a používá se k podepisování nových bloků. V případě kompromitace horkého klíče KES může operátor okamžitě vytvořit nový certifikát operačního klíče (s vyšším číslem čítače) a tím zneplatnit předchozí.

Platnost podpisového klíče KES vyprší v pravidelných intervalech, konkrétně po 90 dnech. Operátor poolu musí vždy vytvořit nový certifikát provozního klíče, podepsat jej pomocí podpisového klíče poolu a odeslat jej do sítě.

Starý podpisový klíč KES bude použit k vygenerování nového klíče KES. Starý klíč KES je následně smazán. To chrání neměnnost historie blockchainu. Klíč KES lze použít pouze k podepisování bloků v daném časovém období. Ověřovací klíč KES, který byl vložen do certifikátu registru podílových poolů, zůstává stejný (není nutné jej měnit při vytváření nového podpisového klíče KES).

Certifikát operačního klíče obsahuje slot, od kterého bude platný 90 dní (období KES), ověřovací klíč KES, ověřovací klíč poolu (ID) a číslo čítače. Číslo čítače je hodnota, která udává, kolikrát byl certifikát operačního klíče obnoven. Tato hodnota se zvýší pokaždé, když je vytvořen nový certifikát operačního klíče. Tím se okamžitě zneplatní starý certifikát (s nižším číslem čítače).

Na obrázku níže můžete vidět, jak provozovatel poolu vytvořil certifikát provozního klíče, který umožňuje uzlu razit nové bloky po dobu 90 dnů prostřednictvím obnoveného podpisového klíče KES.

Jakmile síť dosáhne slotu specifikovaného v certifikátu operačního klíče, může být pool zvolen jako vedoucí slotu a vytvořit nový blok. Blok bude podepsán platným klíčem KES. Všechny ostatní uzly v síti mohou podpis snadno ověřit prostřednictvím ověřovacího klíče KES, který byl součástí registračního certifikátu poolu.

Závěr

Všichni účastníci mohou najít všechny informace o distribuci ADA na platebních adresách, stake adresách, delegování do poolů a o poolech z dat on-chain. Díky certifikátům a kryptografickým důkazům obsaženým v hlavičkách bloků může každý ověřit bloky a ověřit, že byly raženy a správně podepsány uzly, které se skutečně staly lídry slotů v daných slotech.

Zabezpečení a decentralizace Cardana jsou založeny na vlastnictví podpisových klíčů a certifikátů, které jsou veřejně dostupné všem prostřednictvím blockchainu. Každý, kdo v podstatě vlastní ADA coiny, může Cardano decentralizovat, protože má přímou kontrolu nad tím, kdo bude produkovat bloky. Držitelé ADA mohou používat certifikáty k registraci poolů a delegovat na ně coiny ADA, aniž by museli získat povolení od třetí strany.

Článek připravili Cardanians s podporou Cexplorer.

Přečtěte si celý článek: https://cexplorer.io/article/understanding-cardano-certificates