Polkadot staking: Praktická část
Vítejte v pokračování naší série o stakingu, v první části jsme se podívali spíše na některé teoretické koncepty, které se u Polkadotu hodí znát a nyní se konečně zaměříme na jeho praktickou část.
Ukážeme si jak správně pracovat s typy účtů, které Polkadot nabízí, zabezpečíme si naše finance pomocí Ledgeru nebo cold peněženky a podíváme se na některé kritéria, která byste měli zohlednit při výběru validátora. A na závěr si jako bonus ukážeme nástroje, která mohou pomoci zvýšit Váš výdělek ze stakingu.
Typy účtů
Polkadot nabízí pro větší bezpečnost dva typy účtů — Stash a Controller. Toto rozdělení vychází z principu hot a cold peněženek — hot má přístup k internetu a slouží k manipulaci s Vašimi tokeny, cold by se naopak k síti neměla dostat nikdy a slouží jako bezpečné úložiště Vašich financí.
Stash
Stash slouží k uložení tokenů, které chcete nominovat. Stash účet má plná přístupová práva k Vašemu účtu, v případě ztráty Vašeho seedu přicházíte o své finance a v případě odcizení může kdokoliv Vaše prostředky vybrat. Proto Polkadot přichází s konceptem dvou oddělených účtů, kdy jeden slouží jako uložení Vašich prostředků a druhý má jen omezená přístupová práva pro jejich manipulaci (a proto jeho kompromitací nepřicházíte o své prostředky).
Controller
Controller doplňuje Váš stash účet tím, že mu delegujete jen omezená přístupová práva pro Váš stash. To poté v praxi znamená, že stash může být klidně jen papírová peněženka bez přístupu k internetu a controller napojený na Váš stash se stará o správu Vaší nominace. Pokud by byl Váš controller účet kompromitován, tak díky omezeným právům může útočník maximálně zrušit či změnit Vaši nominace, ale už nebude moci Vaše prostředky převést na jinou adresu.
Proxies
Způsob, jakým Polkadot umožňuje propojení účtů a delegaci přístupových práv se nazývá proxy. Těch máme dokonce několik druhů
- staking — přináší koncept controller účtu
- governance — má přístup pouze ke governance (například hlasování v referendech)
- non-transfer — účet může vykonávat jakékoliv operace, kromě převodu prostředů
Uznáváme, že běžný uživatel tuto funkcionalitu nejspíše moc nevyužije, ale zároveň věříme, že je dobré o existenci proxy účtů vědět, protože zvyšují bezpečnost a usnaďnují správu větších organizací (představte si třeba společnost s velkým množstvím tokenů, která se chce účastnit referend v Polkadotu — perfektní využití pro governance proxy, která zajistí, že nikdo s hlasovacím právem nedokáže takto svěřené prostředky odcizit).
Peněženky
Ukážeme si několik možných kombinací, které dle našeho názoru mohou nejlépe Vaše prostředky zabezpečit.
- Polkadot JS +Ledger
- Polkadot JS +Parity signer
- Polkadot JS +Webové rozšíření
- Subkey
Parity signer
Parity signer je aplikace pro chytré telefony, která z něj dokáže udělat cold peněženku. Princip je velice jednoduchý, vezmete Váš starý telefon, vyjmete SIM kartu, uvedete telefon do továrního nastavení, nainstalujete Parity signer a ujistíte se, že telefon není připojen k žádné síti (Bluetooth, WiFi a podobně). Díky odstřihnutí veškeré komunikace získáváte velice bezpečné úložiště pomocí kterého je snadné podepisovat transakce pomocí skenování QR kódu.
Po instalaci aplikace pouze stačí vytvořit účet na jedné z podporovaných sítí (Polkadot, Kusama, Ethereum), zadat PIN a samozřejmě zazálohovat Váš seed. Účet si naimportujete do Polkadot JS pěněženky přes Accounts ->Add via QR.
Pokud budete chtít kupříkladu poslat transakci, tak stačí kliknout na Send, zadat počet tokenů k transferu a poté kliknout na Sign via QR.
Poté se objeví QR kód, který stačí v aplikaci Parity signer naskenovat a podepsat— tento krok opět vyústí v QR kód, který tentokrát naskenujete ze svého počítače — a voilá, transakce je odeslána.
Staking
A to nás konečně přivádí k samotnému stakingu. Jak už je nejspíše čtenáři jasné, účet v Parity signer bude sloužit jako stash account a jako controller si založíme nový účet v polkadot.{js} rozšíření — jak už jsme si ukázali v našem úvodním článku o peněženkách.
Váš účet by tedy po založení obou měl vypadat takto — jak si můžete povšimnout, tak controller je injected účet (přidaný z webového rozšíření) a stash je external, to znamená vytvořený v Parity signer nebo případně jiným nástrojem.
A poté už není nic jednoduššího než nominovat Vaše tokeny a hned v prvním kroku zvolit stash a controller account. Tím pádem Váš stash zůstává bezpečný jako cold storage a pomocí controller účtu můžete nyní měnit výši Vaší nominaci či nominovat/odebírat další validátory. Pro detailního průvodce nominačním procesem se podívejte na náš první článek o peněženkách nebo na oficiální dokumentaci.
Ledger
Ledger je hardwarová peněženka, kterou nejspíše naši čtenáří důvěrně znají a hodně z Vás ji používá. Její bezpečnost spočívá v tom, že používá speciální počítačový čip pro uložení privátních klíčů a pro útočníka je tudíž téměř nemožné se k Vašemu klíči dostat.
První je potřeba nainstalovat Polkadot ze seznamu aplikací nabízenou v Ledgeru
Poté můžeme přejít do Polkadot JS peněženky a v nastavení povolit vyhledání hardware peněženek — takže Settings -> General — manage hardware connections a vybrat Attach Ledger via WebUSB. Poté se přesuneme do Accounts a zde by mělo být vidět tlačítko Add Ledger, kterým svůj Ledger přidejte. Nyní byste měli vidět Váš účet z Ledgeru v seznamu Vašich účtů.
Nyní je na Vašem zvážení, zda mít oddělený stash a controller nebo obojí nastavit jako účet z Vašeho Ledgeru. Můj názor je, že oddělení účtů má dvě následující výhody
- ještě o trochu zvýší bezpečnost, protože nikdy nebudete manipulovat svým stake s účtem s plným oprávněním (a i Ledger už měl své bezpečnostní problémy)
- pro změny Vašeho stake nemusíte u sebe mít Ledger, Váš controller účet může být klidně naimportovaný do mobilní peněženky, kde své nominace můžete pohodlně měnit
Ale na straně druhé je Ledger sám o sobě natolik bezpečné varianta, že scénář kdy nastavíte stash i controller jako Ledger účet je za nás naprosto v pořádku.
Rozšíření prohlížeče
To už zde zmíníme pouze v krátkosti, podrobný popis jsme totiž psali v našem článku o peněženkách. Jedná se o variantu, kdy stash i controller účty vytvoříme pomocí rozšíření. Z bezpečnostního hlediska už ovšem takové rozdělení nedává smysl, protože pokud někdo kompromituje Váš počítač, tak stejně bude mít přístup k oběma účtům. Proto tuto variantu určitě nedoporučujeme, případně pouze pro staking malého množství tokenů.
Subkey
Tuhle možnost zde zmíníme spíše tak trochu “pro nerdy” a pro ostatní, které zajímá jak Polkadot/Substrate funguje interně. Substrate je nástroj pro tvorbu a vývoj blockchainů, které potom můžou běžet na Polkadotu (kód samotného Polkadotu tvoří z 85% kód Substrate, který může kdokoliv využít pro stavbu svého vlastního chainu). No a Substrate není jeden obrovský kus kódu, ale je rozdělen do takzvaných knihoven či nástrojů. Jeden z nich je subkey, který slouží pro vytváření a manipulaci s Polkadot/Kusama (nebo ještě obecněji Substrate) adresami a účty. Takže se pojďmě podívat jak přes příkazovou řádku jednoduše vytvoříme adresu a podepíšeme pomocí ní transakci
$ subkey generate
Secret phrase `spend report solution aspect tilt omit market cancel what type cave author` is account:
Secret seed: 0x554b6fc625fbea8f56eb56262d92ccb083fd6eaaf5ee9a966eaab4db2062f4d0
Public key (hex): 0x143fa4ecea108937a2324d36ee4cbce3c6f3a08b0499b276cd7adb7a7631a559
Account ID: 0x143fa4ecea108937a2324d36ee4cbce3c6f3a08b0499b276cd7adb7a7631a559
SS58 Address: 5CXFinBHRrArHzmC6iYVHSSgY1wMQEdL2AiL6RmSEsFvWezd
Zde můžete v části Secret phrase vidět Váš seed, který byste si klasicky zazálohovali na papír. Poté můžeme jednoduchým způsobem podepsat jakoukouliv zprávu — co třeba vytvoření staking proxy na dalším účtu (který bude ve zprávě)? A tento účet (neboli controller) už klidně může být ve Vaší Polkadot JS připraven k nominování.
$ echo "jakákoliv zpráva či transakce k podpisu" | subkey sign "váš seed či privátní klíč"
Na první pohled tohle může vypadat extrémně složitě, ale uvědomme si několiv věcí
- Přesně tento kód většinou volají peněženky, címž si usnaďnují vytváření klíčů, generování seedu, podepisování transakcí a podobně.
- Představte si, že budete chtít podepisovat tisíce transakcí se stovkami účtů každý den — tady už se automatizace vyplatí a je potřeba mít možnost pracovat s účty přímo v kódu a ne pouze v uživatelském rozhraní
- Vždy budou existovat scénáře, kdy lidé ukládají obrovské množství tokenů a poté je rozumné jít cestou nejvetšího zabezpečení, a tou je mít klíče na air gapped zařízení — takové, které se nikdy nepřipojí k žádné síti a nedá se tudíž kompromitovat (což se například o Ledgeru zcela 100% říci nedá)
Samotným Substrate se budeme zabývat později, je to jedna z věcí, která je u Polkadotu naprosto revoluční a dokonce si troufám říci, že v rámci kryptoměn ani dnes nemá konkurenci :-) Každopádně to byla taková lehká “nerdy” odbočka, tak doufám, že jste se neurazili a jdeme pokračovat tím, co Vás nejspíše zajímá nejvíc a to je jak správně vybírat své validátory.
Jak správně vybrat validátora (a neprodělat na tom boty)
Pro výběr validátora existuje několik kritérií (případně metrik) na které byste se měli dívat. Ty si můžeme rozdělit na ty úplně základní, které by měl každý zohlednit a poté si řekněme trošku pokročilejší.
Základní kritéria
První se podívejme na obrázek přehledu staking v Polkadot JS peněžence. Rozebereme si zde jednotlivá políčka a řekneme si, jak jejich hodnoty ovlivňují Vaši nominaci.
Identita
Polkadot umožňuje za poplatek svázat adresy s identitou pomocí takzvaných registrars. Ti poskytují síti službu sloužící k ověření totožnosti či jiných údajů— to znamená, že kupříkladu k Vaší adrese můžete doplnit odkaz na Váš web či profil na sociální síti a registrar poté off-chain ověří, že jste to skutečně vy. V kontextu stakingu se nás to dotýký tak, že validátoři, kteří mají ověřenou identitu jsou dle našeho názoru důvěryhodnější (“nebojí se jít s kůží na trh”) než ti, kteří zůstávají anonymní. Proto při hledání validátora zaškrtněte only with identity (červené kolečko).
Oversubscribed validators
Jak jsme již zmínili v našem článku o teorii, odměna je v Polkadotu vyplacena pouze prvním 256 nominátorům per validátor — validátor, kterého podporuje více nominátorů než je toto číslo je pak nazýván oversubscribed. Proto vybírejte pro svou nominaci pouze validátory, kteří u svého názvu nemají žádnou z hnědých ikonek (zelené kolečko, význam slashingu si vysvětlíme dále).
Commission
Commission je poplatek za náklady spojené s provozováním validátora, jenž je určen procentuální výší z celkové odměny. Obecně, čím menší poplatek, tím lépe pro Vás. Ale na druhé straně i záleží jak velkou míru rizika jste ochotní akceptovat — může být skupina validátorů se skvělým hodnocením, ověřenou identitou a dostatkem stake, která dává záruka stabilní odměny s malou možností slashingu. Ovšem tito si účtují vyšší comission než validátoři s horšími parametery. Je tedy pak na každém jestli akceptuje vyšší míry rizika nebo je ochotný zaplatit mírně větší poplatek — navíc to tak samozřejmě nemusí být vždy, je to spíš ilustrace toho, že vyšší comission nemusí být nutně na škodu.
Jen ještě jedna poznámka, mnozí z Vás nejspíš uvažovali proč mají někteří validátoři comission nastavenou na 100% — je to tím, že celou nominaci pokrývá jeho vlastní stake a 100% comission je způsob jak si zajistit vyplácení celé odměny.
Slashing
Slashing je potrestání validátora za chování, které je pro síť škodlivé nebo je přímo považováno za útok. Jak jsme zmiňovali v teoretickém článku, výše trestu závisí od závažnosti jeho prohřešku. Důležitejší je ale fakt, že pokuta je placena procentuálně z celkového objemu validátorova stake — a to znamená, že i z Vašich prostředků. Proto doporučujeme se vyhnout velkým obloukem validátorům, kteří se slashingu dopustili. Znak slashingu symbolizuje druhá hnědá ikonka v zeleném kolečku našeho screenshotu.
Vlastní stake
Jedním z dalších kritérií pro výběr validátora je i jeho vlastní stake, protože ten určuje jak moc velkou důvěru v sám sebe a provoz svého validátora vlastně vkládá (viz slashing). Tudíž čím větší je validátorův vlastní stake, tím větší má motivaci se o provoz svého validátora pečlivě starat, protože případný slashing by finančně poškodil i jeho.
Pokročilá kritéria
Nyní se přesuňme na Target stránku v rámci Staking sekce.
Zde máme navíc dvě věci — sloupec profit/era, který Vám počítá výdělek pro Váš stake za každou éru zároveň je zde možnost si validátora přímo vybrat a nominovat.
Statistika
Polkadot JS nabízí ještě jednu možnost jak zjistit o validátorovi další informace. Na pravé straně tabulky s validátory se nachází malé tlačítko s grafem (zvýrazněné modře v našem screenshotu) — to Vás přivede na Validator stats obrazovku. Zde ideálně chcete vidět nulový slashing a konzistentní křivku u ostatních grafů (odměny ani era points by neměly neustále skákat nahoru a dolů, chceme vidět pěknou lineární čáru).
Era points
Jak jsme si vysvětlili v prvním článku, odměna validátora je vypočítávána pomocí bodovacího systému. Proto tyto dva grafy spolu úzce souvisí a graf odměn by měl vypadat hodně podobně jako graf nasbíraných bodů za éru.
Ještě poslední poznámka k grafickému rozhraní peněženky — osobně jsem si všiml, že jsou docela často přidávány nové funkce, takže se dá čekat, že v příštích týdnech opět přibyde něco, co nám práci s účty a stakingem zase trochu usnadní.
Nástroje
Poslední sekci už proleťme jen v rychlosti (už je to hrozně dlouhý článek a to přece nemůže nikoho bavit :-)). Představíme si dva nástroje, které Vám při volbě validátora a správě Vaší nominace mohou pomoci.
Telegram BOT
Prvním z nich je BOT pro komunikátor Telegram, který dokáže sledovat Vaši adresu a posílat notifikace na základě různých změn
- převod prostředků
- připsání odměny
- nastání slashingu
- jeden z Vašich nominovaných validátorů změnil commission
- a další funkce pro governance a treasury
BOT je stále ve vývoji, takže očekáváme, že budou brzy přidány další funkce, které notifikace ještě vylepší.
Polkastats
Polkastats.io je web, který sleduje dění v Polkadot síti a z ní odvozuje různé statistiky a predikce. Pro nás je zajímavá hlavně sekce Staking, kde můžeme procházet nominátory (a blednout závistí nad účty s miliony DOTs), případně se podívat do Targets na seznam validátorů a odhadovanou odměnu.
Z pohledu stakingu mi ale přijde nejzajímavější sekce Staking -> Election prediction, která se snaží předpovídat výsledek volby validátorů do budoucích ér — což se může obzváště hodit pokud chcete odhadnout, zda Váš validátor bude v další éře zvolen či ne.
Závěr
Uf, tak to máme za sebou :-) Pokud jste dočetli až sem, tak máte můj obdiv. Doufáme, že Vám tento návod pomohl k pochopení stakingu v Polkadotu a hlavně k maximalizaci Vašich výdělků. Happy staking :-)
Pokud se k vám tento článek dostal čirou náhodou, vězte že můžete být součástí FB komunity v naší skupině Polkadot CZ/SK nebo skupiny stejného jména na Telegramu!