🇨🇿 Mohou pool operátoři měnit pořadí transakcí?

Provozovatelé staking poolů (SPO) vytvářejí bloky v síti Cardano. Nikdo jiný než oni nemůže kontrolovat, jaké transakce se do bloků dostanou. To je velká zodpovědnost, ale také příležitost ke zneužití jejich postavení. Popíšeme si základní principy distribuovaných sítí a vysvětlíme si, že možnost měnit pořadí transakcí není chybou v síti, ale vlastností, kterou lze zneužít.

TLDR:

  • Pravidla protokolu Cardano jsou definována ve zdrojovém kódu a kdokoli na světě může kód forknout a změnit.
  • Možnost měnit pravidla protokolu není chyba sítě, ale vlastnost distribuovaných sítí s otevřeným zdrojovým kódem.
  • Porušení základních pravidel není možné, protože ostatní uzly by je neakceptovaly.
  • Stoprocentní dodržování pravidel by vyžadovalo centralizaci nebo uzavřený zdrojový kód.
  • Pokud většina není schopna prosadit svůj požadavek, není síť dostatečně decentralizovaná.
  • Decentralizovaná síť je schopna zachovat si své základní vlastnosti bez ohledu na malý počet účastníků, kteří pravidla porušují.

Jak lze měnit pravidla protokolu?

V kontextu tohoto článku je důležité pochopit, jak jsou pravidla sítě definována a vynucována.

Cardano je síťový protokol. Protokol si můžete představit jako soubor pravidel, která umožňují uzlům komunikovat mezi sebou v rámci internetu. Pravidla protokolu najdete ve specifikaci. Pravidla definují všechna důležitá pravidla týkající se tvorby bloků, distribuce transakcí, validace a mnoha dalších věcí. Pravidla protokolu také definují způsob výběru transakcí pro nový blok. Tým IOG vytvořil podle specifikace uzel Cardano, což je kus softwaru. Provozovatelé poolu si na svůj počítač nainstalují uzel Cardano, který jim umožňuje komunikovat s ostatními. Pokud splní podmínky, mohou začít vytvářet nové bloky.

Cardano je projekt s otevřeným zdrojovým kódem. To znamená, že zdrojový kód je volně k dispozici na serveru GitHub. Kdokoli na světě může zdrojový kód forknout a změnit některá pravidla. Může to udělat i provozovatel poolu. Pokud tedy SPO chce, může změnit pravidla týkající se výběru transakcí do bloku.

Původní pravidlo týkající se výběru transakcí do bloku je definováno na principu “kdo dřív přijde, ten dřív mele”. Každý uzel Cardano si udržuje svůj vlastní mem-pool, do kterého vkládá transakce, které přicházejí ze sítě. Když se uzel stane vedoucím slotu, měl by podle původních pravidel vzít transakce z mem-poolu v pořadí, v jakém přišly, a vložit je do nového bloku.

Pokud má provozovatel poolu nějaký důvod toto pravidlo změnit, může tak učinit ve své vlastní verzi zdrojového kódu uzlu Cardano. Tuto verzi pak nainstaluje na svůj počítač. Po provedené změně může provozovatel vybírat transakce podle svých vlastních pravidel. Může například preferovat transakce z určitého DEX nebo jiné služby Defi. Za to může provozovatel dostat zaplaceno off-chain nebo může preferovat transakce pocházející z jeho vlastní služby Defi.

Decentralizace vs. centralizace

Je důležité si uvědomit, že možnost měnit pravidla protokolu není chybou sítě, ale vlastností open-source distribuovaných sítí. Decentralizovaná síť se skládá z nezávislých dobrovolníků, kteří se rozhodli provozovat pool (nebo uzel) Cardano. Nikdo nemá jejich seznam a nemůže jim diktovat, jak to mají dělat. Pravidla jsou definována ve zdrojovém kódu, který lze považovat za komunikační nástroj mezi týmem a provozovateli.

Operátoři mohou některá pravidla upravovat pouze částečně. Většinou jde o pravidla, která nelze stoprocentně vynutit. To platí i pro pravidla týkající se výběru transakcí, které mají být vloženy do bloku. Důvod je jednoduchý. Nikdo jiný než provozovatel poolu neví, jaké transakce jsou v mem-poolu jeho uzlu k dispozici. Teoreticky by to bylo možné zjistit sledováním síťové komunikace všech uzlů, jen aby se operátorům prokázalo, že mají v mem-poolu transakci, kterou záměrně ignorují ve prospěch jiné, která přišla později.

Operátoři nemohou měnit důležitá pravidla týkající se ověřování bloků a transakcí nebo měnové politiky. Porušení základních pravidel není možné, protože ostatní uzly by je neakceptovaly. Proto je důležitý konsensus sítě. Všechny uzly vzájemně dohlížejí na dodržování pravidel. Pokud by podvodný uzel vložil do bloku neplatnou transakci, nový blok by byl odmítnut všemi poctivými uzly.

Všechny ostatní blockchainové sítě fungují na úplně stejném principu. Také Bitcoiny a Ethereum umožňují producentům bloků měnit některá pravidla protokolu a mohou také vybírat transakce do bloku podle svého uvážení.

100% čestné chování by vyžadovalo centralizaci nebo uzavřený zdroj. Centralizované systémy fungují tak, že je nasazena pouze jedna verze klienta, takže změna není v zásadě možná. Pokud by byl zdrojový kód uzavřený, provozovatelé by byli nuceni instalovat verzi, o které nikdo neví, jak skutečně funguje. Největší moc v blockchainových sítích mají producenti bloků. Pokud by úřady chtěly prosadit cenzuru transakcí, musely by ji požadovat od výrobců bloků. Ti by pak museli filtrovat transakce a záměrně ignorovat ty, které nesplňují podmínky stanovené úřadem.

Změnu pravidel protokolu lze považovat za zneužití moci, pokud není v souladu s očekáváním komunity. V decentralizované síti neexistuje autorita, která by diktovala, co je a co není v pořádku. Rozhodovat by měla většina. Pokud komunita není spokojena s chováním producentů bloků, měla by jednat. Pokud většina není schopna prosadit svůj požadavek, není síť dostatečně decentralizovaná. Budování veřejného, otevřeného, distribuovaného systému odolnému proti podvodníkům je odpovědností všech uživatelů. Většina musí mít možnost určovat pravidla, nikoliv menšina.

Jaký je nejlepší způsob výběru transakcí, které budou v bloku?

Cardano funguje na principu “kdo dřív přijde, ten dřív mele”. Jedním z důvodů je spravedlnost. Je to podobný princip jako čekání v dlouhé frontě. Také by se vám nelíbilo, kdyby někdo přišel a postavil se před vás. Funkčnost některých služeb Defi může být citlivá na včasné zpracování transakcí. Představte si, že se snažíte aktualizovat své zajištění, abyste nedostali margin call, a operátoři poolu vaši transakci ignorují, protože chtějí upřednostnit jiné.

Bohužel ani tento systém není ideální. Mohou nastat případy, kdy některé transakce mají přednost a měly by být zpracovány před těmi, které teoreticky mohou počkat. Například transakce týkající se margin call mají vyšší prioritu než distribuce NFTs. Obvykle to není problém, pokud je síť vytížena pouze na 40 %. Pokud je síť dlouhodobě vytížena na 90 %, měl by existovat nějaký systém priorit.

Bitcoin a Ethereum používají poplatkový trh (fee market). Výrobci bloků vybírají transakce na základě velikosti poplatku. Tento systém umožňuje uživatelům zaplatit více za dřívější zpracování transakcí, což jim v podstatě umožňuje upřednostňovat transakce. Na druhou stranu je tím porušena zásada spravedlnosti a inkluzivity. Decentralizace by neměla být jen pro bohaté. V případě Etherea navíc trh s poplatky umožňuje tzv. problém MEV.

Výběr transakcí do bloku je složité téma a je předmětem diskusí. Producenti bloků mohou zneužívat svého postavení a nerespektovat očekávané chování. Mohou preferovat určité transakce z vlastních sobeckých zájmů, nebo k tomu mohou být donuceni autoritou. V obou případech je důležité, aby komunita byla schopna prosadit své požadavky vůči producentům bloků.

Decentralizace má jednu velkou výhodu. Síť může tolerovat malý počet účastníků, kteří záměrně porušují pravidla. Pokud většina účastníků pravidla dodržuje, je síť schopna udržet si požadované vlastnosti, jako je například odolnost vůči cenzuře.

SPO se může rozhodnout, že bude ignorovat všechny transakce, které k němu směřují z jiných uzlů, protože je podplacen vlastníkem DEXu, aby zpracovával pouze jeho transakce. Pokud má SPO pouze 0,5% podíl, uživatelé sítě si toho ani nevšimnou, protože tento SPO vytvoří za celou epochu pouze řekněme 100 bloků (20 bloků denně). Problém by nastal, kdyby SPO měl větší podíl nebo kdyby vlastník DEXu podplatil více SPO.

Pro komunitu je důležité, aby na tyto problémy někdo upozornil. Ideální by bylo, kdyby existoval monitorovací systém, který by na nevhodné chování provozovatelů upozornil. Má to však jeden háček. Monitorovací systém by mohl mít negativní dopad na soukromí. Mohlo by být možné analyzovat bloky a upozornit na případy, kdy bloky z určitého SPO obsahují neobvykle velký počet transakcí z určité služby. Nejsem si jistý, zda je to ideální řešení.

Doufejme, že k řešení tohoto problému výrazně přispějí technologie input endorsers, protože do bloku se dostanou v podstatě všechny transakce, které se v síti objeví. Jednotliví operátoři budou mít menší vliv na obsah bloku, protože blok bude v podstatě jen odkazem na předem vytvořené dílčí bloky.

Závěr

Decentralizovaná síť se skládá z mnoha účastníků, kteří by v ideálním případě měli mít stejné postavení, ale v praxi tomu tak není. Ne každý může být provozovatelem poolu. SPO mají silnější postavení než uživatelé a mohou toho využít. Síť Cardano nevlastní pool operátoři, ale držitelé ADA. Každý držitel ADA má možnost ovlivnit kvalitu decentralizace sítě a do jisté míry i chování provozovatelů poolu. Poctivé chování lze v decentralizovaných sítích vynutit především prostřednictvím ekonomických pobídek. Každý držitel ADA by se měl zajímat o poctivé chování poolu, kterému deleguje mince.

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

Článek v AJ: Can SPOs reorder transactions? | Cardano Explorer