🇨🇿 Transakční Poplatky A Síťová Architektura Jako Ochrana Proti Spamu

Na rozdíl od Bitcoinu nebo Etherea, které fungují na tradičním trhu s poplatky, Cardano využívá systém pevných a předvídatelných poplatků. Tyto poplatky, i když nejsou přemrštěné, jsou stanoveny na úrovni, která účinně odrazuje od spamových útoků. Na druhou stranu extrémně nízké transakční poplatky Solany jsou dvousečným mečem. I když činí transakce cenově dostupnými, vedou také k vysoké míře selhání – v současnosti neprojde asi 75 % uživatelských transakcí. Síť je zahlcena transakcemi generovanými boty.

Kromě transakčních poplatků hraje síťová vrstva klíčovou roli v prevenci spamových transakcí. Cardano node využívá mem-pool a jeho protokol je navržen způsobem řízeným poptávkou. Tento návrh umožňuje každému uzlu a každému propojenému uzlu regulovat rychlost příchodu dat a množství zbývajících dat. Na druhou stranu Solana nevyužívá mem-pool, místo toho všechny transakce směřují přímo k příštím validátorům. Tento článek objasní, proč je spamování Solana relativně snadné, zatímco s Cardano je náročné.

Jak vyvážit inkluzivitu a bezpečnost?

Stanovení správných poplatků za používání sítě je výzvou, které čelí každý blockchainový tým. Tyto poplatky by měly odrážet skutečné náklady na využití výpočetních zdrojů v distribuované síti.

Tým musí vzít v úvahu potřeby jak síťových operátorů, kteří provozují uzly produkující bloky, tak uživatelů. Zatímco operátoři cílí na maximální odměny, uživatelé preferují minimální poplatky. Vyvážení těchto zájmů je zásadní.

Tradiční trhy s poplatky, jako jsou ty používané v Bitcoinu nebo Ethereu, mají nevýhodu. S nárůstem využití sítě rostou i poplatky, takže síť je exkluzivní a přístupná pouze těm, kteří si mohou dovolit vysoké náklady.

Naproti tomu Cardano využívá fixní a předvídatelné poplatky. Uživatelé platí stejný poplatek za transakce stejné velikosti. Poplatek se skládá z pevné složky a variabilní složky na základě velikosti transakce v bytech.

Za 200bajtovou transakci na Cardano je poplatek vždy přesně 0,164271 ADA – nic více, nic méně. Tento poplatek se rovná zhruba 0,1 dolaru. S růstem ceny ADA bude růst i poplatek v dolarové hodnotě.

Ve srovnání s Bitcoinem nebo Ethereem, které využívají tradiční trh s poplatky, kde poplatky rostou s poptávkou sítě, je tento poplatek nízký. Na Ethereu se poplatky mohou pohybovat od 1 do 100 USD (a víc), i když se transakce nezdaří.

Struktura poplatků Solana se skládá ze dvou částí: základního poplatku a prioritního poplatku. Základní poplatek je fixní poplatek za transakci. V současné době je základní poplatek nastaven na 0,000005 SOL za podpis. Prioritní poplatek je volitelný dodatečný poplatek, který mohou uživatelé zaplatit, aby zvýšili pravděpodobnost, že jejich transakce bude zahrnuta do bloku. To je užitečné zejména pro časově citlivé transakce.

Poplatky jsou nestálé a mohou se v průběhu času měnit. Podobně jako u sítí využívajících trh poplatků, pokud je síť více využívána, poplatky rostou.

V současné době se transakční náklady na Solana pohybují od 0,00001 do 0,00003 SOL, což je přibližně 0,001 až 0,005 USD. Ve srovnání s Cardano jsou poplatky na Solaně výrazně nižší, s rozdílem asi 20 až 100krát.

Nízké poplatky jsou sice pro uživatele lákavé a dělají ze Solana inkluzivní síť, ale nechrání transakce se spamem. Boti dokážou poslat tisíce transakcí denně za pouhých pár dolarů. To je důvod, proč v současné době 75 % uživatelských transakcí na Solana selže.

Dalším zásadním aspektem, který je třeba zvážit v poplatcích za používání sítě, je dlouhodobá ekonomická udržitelnost jakéhokoli decentralizovaného blockchainu. To znamená, že poplatky by měly být dostatečné k pokrytí provozních nákladů. Nízké výnosy z poplatků mohou být vyváženy nekonečnou inflací coinů, ale to by mohlo časem mince potenciálně znehodnotit kvůli nekonečné inflaci.

Solana funguje na nekonečné inflaci mincí, zatímco Cardano má předem stanovený počet mincí, které budou v oběhu. V tomto okamžiku je obtížné určit, která strategie je výhodnější.

Vrátíme-li se k tématu ochrany proti spamovým transakcím, tradiční trh poplatků využívaný Bitcoinem a Ethereem slouží jako účinný odstrašující prostředek proti spamovým transakcím. Podobně jsou poplatky na Cardano relativně vysoké, takže pokusy o síťový spam jsou nákladné. Solana poplatky jsou však tak nízké, že spamování se stává levnou záležitostí.

Blockchain síť by měla být univerzálně dostupná a nediskriminační vůči svým uživatelům. Nevyžaduje žádné postupy Know Your Customer (KYC). Síť v podstatě nemůže cenzurovat transakce. Každý uživatel, který za transakci zaplatí, by měl mít přiměřenou jistotu, že jeho transakce bude zahrnuta do nadcházejícího bloku. Zavedení jakékoli formy filtru proto není možné. Jediným omezením při využívání sítě jsou transakční poplatky.

Proč na Solana selže 75 % uživatelských transakcí?

Aby byla transakce zahrnuta do bloku a trvale zaznamenána v hlavní knize, musí projít dvěma základními vrstvami: síťovou vrstvou a konsenzuální vrstvou.

Zpočátku je transakce zpracována síťovou vrstvou v uzlu. Pokud úspěšně splní ověřovací kritéria této vrstvy, postoupí do konsensuální vrstvy. Konsensuální vrstva má za úkol určit obsah nových bloků a dosáhnout shody na bloku napříč všemi uzly v síti.

Tyto principy jsou společné pro všechny blockchainové sítě, i když se mohou v detailech lišit.

V určitých blockchainech, kde transakce vykazují nedeterministické chování, může transakce projít do konsensuální vrstvy a poté selhat. Důvody se mohou lišit. Například nemusí být splněny podmínky pro provedení smart contract transakce podle očekávání uživatele. Transakce se tedy provede, ale selže, přestože uživatel zaplatil poplatek.

Současný problém se Solanou není v tom, že by konsensuální vrstva zahazovala transakce. Transakce se spíše ani nedostanou ze síťové vrstvy do konsensuální vrstvy. Síťová vrstva je tak přetížená, že se uzel rozhodne část transakcí zahodit. Uzel se chrání před přetížením a potenciálním zhroucením, ke kterému by mohlo dojít v důsledku vyčerpání zdrojů.

Uživatelé, kteří se pokoušejí využít Solana, často zjistí, že jejich transakce selhávají. Poté jsou povinni znovu odeslat transakci, což by mohlo vyžadovat více pokusů. Je to především proto, že soutěží s transakcemi generovanými roboty. V síti dominují boti, kteří jsou rychlejší a jsou schopni generovat výrazně vyšší objem transakcí než uživatelé. Obrovské množství transakcí, které jsou generovány roboty, souvisí s arbitráží. Odhaduje se, že pouze 10 % transakcí tvoří uživatelé.

Na obrázku můžete vidět, jak boti a uživatelé soutěží o to, čí transakce se do bloku dostanou přes síťovou vrstvu a vrstvu konsensu.

Zvažte scénář, kde ze 100 transakcí je 10 od uživatelů a 90 od botů. Pokud se uzel rozhodne zahodit 30 % transakcí, je možné, že všechny uživatelské transakce mohou být v danou chvíli zahozeny. Pokud je uzel přetížen, může se rozhodnout vypustit ještě více transakcí. Běžně je to 50 % transakcí.

Síť Solana je funkční a výpočetní zdroje uzlů nejsou vyčerpány kvůli zahazování transakcí. Výsledkem je, že není třeba restartovat síť a riziko selhání uzlu je nízké. Restart by nevyřešil problém s roboty. Hlavní problém spočívá v obtížích, kterým uživatelé čelí při pokusu o odeslání transakcí. Přestože síť běží, je v podstatě nepoužitelná. Většinu transakcí, které se dostanou do bloků, generují roboti, přičemž jen několik z nich jsou uživatelské transakce.

Na obrázku můžete vidět červené transakce od botů a uživatelů, které uzel zahodil, a několik černých transakcí pouze od botů, kteří dosáhli konsensuální vrstvy a mají šanci být úspěšně zpracovány (a uloženy v účetní knize).

Je důležité si uvědomit, že zatímco každý uživatel má obvykle jedno připojení pro odeslání transakce, roboti mohou udržovat více připojení současně. To dává robotům významnou výhodu.

Navíc je běžné, že jeden robot posílá spamové transakce do více uzlů. Je to proto, že cílem robotů je, aby jejich transakce byly zpracovány co nejrychleji, a odesílání transakcí do více uzlů zvyšuje pravděpodobnost, že k tomu dojde.

Rozhodnutí, která připojení by měl uzel zrušit, aby nebyl zahlcen transakcemi, je složitý problém. Na síťové vrstvě je analýza obsahu transakcí náročná kvůli výpočetním zdrojům potřebným pro analýzu obsahu zprávy. Kromě toho je téměř nemožné rozlišovat mezi transakcemi uživatelů a transakcemi generovanými boty. Boti generují spam transakce, ale z pohledu sítě a consensus layer to může být validní transakce obsahující fees. Je to validní spam transakce. Nejpřímější strategií může být náhodné vyřazení transakcí, ale to problém účinně neřeší.

Když uzel Solana zruší transakci, transakční poplatek se neplatí. Je tomu tak proto, že transakční poplatek vzniká pouze tehdy, když je transakce úspěšně zpracována a zahrnuta do bloku. Pokud je transakce zrušena dříve, než dosáhne konsensuální vrstvy, je to, jako by transakce nebyla nikdy odeslána, a proto není účtován žádný poplatek.

Tým Solany stojí před výzvou, že i když jsou transakce generované boty zahrnuty do bloku, související poplatky jsou ve srovnání s potenciálními zisky z arbitráže zanedbatelné. To platí, i když většina transakcí selže na konsensuální vrstvě a platí se poplatky.

Výpočty

Solana denně zpracovává přibližně 25 milionů uživatelských transakcí. Z těchto transakcí se vybrané uživatelské poplatky pohybují od 25 000 do 100 000 USD.

Odhaduje se, že uživatelské transakce tvoří asi 10 % z celkového počtu, přičemž boti tvoří až 90 %. To znamená, že spameři by museli utratit přibližně 50 000 $ (250 SOL) za den za transakční poplatky.

Ethereum na druhou stranu inkasuje kolem 400 ETH za denní poplatky, což odpovídá zhruba 1,5 milionu dolarů. Proto by spamování Etherea stálo asi 30krát více než spamování Solany.

Protokol Cardano inkasuje každý den poplatky kolem 12 000 USD. To je téměř pětkrát méně než Solana. Někdo by se mohl divit, proč Cardano není zahlceno transakcemi se spamem. Budeme se ponořit do síťové vrstvy, abychom na to odpověděli v další části článku.

Je nutné si uvědomit, že pokud by Cardano dokázalo zpracovat stejné množství transakcí jako Solana a této kapacity by bylo možné dosáhnout pomocí Input Endorsers, síť by na poplatcích inkasovala přibližně 2,5 mil. USD za den. Ochrana proti spamu by byla dostatečná.

Jediný blok v blockchainu Cardano pojme přibližně 250–300 základních transakcí. Pokud vezmeme v úvahu transakční poplatek 0,1 USD za každý, Cardano by získal příjem 25-30 USD za blok. Vzhledem k tomu, že Cardano generuje nový blok zhruba každých 20 sekund, znamená to denní produkci 4 320 bloků. Pokud by všechny tyto bloky byly vyplněny výhradně platnými transakcemi se spamem, iniciátorovi útoku by vznikly denní náklady přesahující 100 000 USD v transakčních poplatcích.

Architektura sítě Solana

V předchozí části článku jsme mluvili o síťové vrstvě pouze z pohledu validátorového uzlu. To bylo poněkud zjednodušené.

Uživatelé i boti se připojují k validátorům prostřednictvím serverů RPC. Uživatelé přímo nevědí, kdo je vedoucí validátor, takže své transakce posílají na server RPC, který předává transakce aktuálnímu a dalšímu validátoru podle plánu validátorů. Tento harmonogram je znám předem.

Pojďme sledovat životní cyklus transakce Solana. Transakce Solana nejsou šířeny do mem-poolu jako u jiných sítí. Místo toho musí být odeslány přímo jako paket UDP vedoucímu konsensuálního protokolu. Servery RPC, které znají plán lídra, proto odesílají transakce přímo těm validátorům, které v příštím kole vytvoří bloky.

Solana se snaží zpracovat všechny zadané transakce co nejdříve. Namísto rozptýlení transakcí do všech uzlů (což vyžaduje čas), jsou transakce směrovány k dalším validátorům s předpokladem, že budou všechny zahrnuty do dalšího bloku.

Jednodušeji řečeno, validátoři jsou zranitelní vůči útokům botů prostřednictvím omezeného počtu serverů RPC. Je to proto, že všechny transakce jsou těmito servery předány dalším validátorům. Když objem spamového útoku překročí kapacitu hrstky bloků Solana, dojde k zahlcení sítě. V důsledku toho začnou validátoři vyřazovat transakce.

To znamená, že roboti nemusí cílit na mnoho validátorů Solana, nebo spíše serverů RPC, v celé síti, protože podle návrhu jsou všechny nové transakce směrovány na další validátory, které mohou být rychle zaplaveny transakcemi.

Na obrázku můžete vidět, jak RPC servery předávají všechny transakce validátorovému uzlu 1. Ten může být snadno zahlcen transakcemi a začít je zahazovat. Jakmile node 1 vytvoří blok, RPC servery analogycky pushují všechny transakce na dalšího validátora, třeba node 2. Pro snadnější pochopení jsem to zjednodušil.

Místo odeslání transakce a konkrétní použitý server RPC jsou irelevantní, protože všechny servery RPC mají za cíl předat transakci dalším validátorům. Když je síť bez přetížení, systém funguje hladce a poskytuje uživatelům téměř okamžitá potvrzení transakcí. Architektura sítě ve spojení s nízkými poplatky ji však bohužel činí náchylnou k spamu.

Nutno dodat, že kromě uživatelských transakcí jsou rozhodující součástí konsenzuálního mechanismu sítě Solana i hlasovací transakce. Validátoři v síti Solana si navzájem posílají hlasy pro potvrzení transakcí. Tyto hlasy jsou klíčovou součástí mechanismu konsensu společnosti Solana, který potvrzuje transakce.

Jak je Cardano chráněno před spamovými transakcemi?

Vedle přiměřených poplatků je decentralizace nejúčinnější obranou proti spamovým útokům. S přibližně 3 000 pooly je Cardano toho příkladem. Každý pool, což je uzel produkující bloky, je obvykle spojen se 2–3 reléovými uzly a je chráněn za nimi. Toto uspořádání zabraňuje přímé síťové komunikaci s uzlem produkujícím bloky.

Reléové uzly slouží jako proxy mezi uzly hlavní sítě a internetem a vytvářejí bezpečnostní bariéru kolem core uzlů produkujících bloky.

Nová transakce, jakmile je odeslána, je přenesena z přenosového uzlu do uzlu produkujícího bloky. Tato transakce je pak distribuována do všech ostatních uzlů produkujících bloky, což je proces, který také probíhá prostřednictvím přenosových uzlů.

Na rozdíl od Solana nejsou transakce zpracovávány okamžitě. Místo toho jsou uloženy v mem-poolech napříč mnoha síťovými uzly. Další vedoucí slotu, což je uzel, kterému bylo uděleno právo razit nový blok, načte transakce z mem-poolu a vloží je do nového bloku.

Na obrázku vidíte transakci (červený rámeček), která se postupně dostává do všech mem-poolů (žlutý rámeček) postupnou difuzí (červené šipky) transakce přes reléové uzly. Pro snazší pochopení jsem obrázek zjednodušil.

V každém okamžiku se bude obsah mem-poolů napříč všemi uzly lišit. Je to proto, že transakce jsou současně odesílány z různých míst a jejich šíření trvá dlouho. Výsledkem je, že každý mem-pool obsahuje jedinečný, ale velmi podobný soubor transakcí.

Každý z 3000 uzlů produkujících bloky má potenciál vytvořit nový blok obsahující srovnatelnou sadu transakcí. Uzel vybraný jako další vedoucí slotu bude zodpovědný za vytvoření tohoto nového bloku.

Pravděpodobně získáte představu, že bot může snadno naplnit mem-pooly všech ostatních uzlů v síti prostřednictvím jednoho uzlu, podobně jako je to ilostrováno na následujícím obrázku. Prostřednictvím uzlu 1 se všechny transakce dostanou do uzlu 2 a poté do uzlu 3.

V protokolu ve stylu řízeném poptávkou, jako je Cardano, každý uzel řídí rychlost přicházejících dat, maximální souběžnost (počet souběžných úloh) a množství zbývajících dat (data, která byla odeslána, ale dosud nebyla potvrzena). To znamená, že každý uzel vyžaduje více práce pouze tehdy, když je připraven, namísto toho, aby na něj byla tlačena.

Protokol NtN (Node-to-node) přenáší transakce mezi úplnými uzly. NtN obsahuje tři miniprotokoly (chain-sync, block-fetch a tx-submission), které jsou multiplexovány přes jeden TCP kanál.

NtN se řídí strategií založenou na pull-based, kde se uzel iniciátoru dotazuje na nové transakce a uzel respondéru odpoví na transakce, pokud nějaké existují. Tento protokol dokonale vyhovuje nedůvěryhodnému prostředí, kde je třeba obě strany chránit před útoky na spotřebu zdrojů z druhé strany.

Pozorujte kontrast mezi Cardano a Solana. V případě Solana servery RPC delegují úkoly na validátory. V případě Cardano však každý uzel proaktivně chrání své zdroje.

Každý uzel má za úkol ověřit transakci před jejím předáním. Pokud uzel odešle neplatné nebo nevyžádané transakce, bude ostatními uzly odpojen. Pro zachování stejného počtu spojení má možnost navázat spojení s jiným uzlem.

Pokud bot odešle platné transakce do jednoho uzlu, může nasytit mem-pool tohoto uzlu. Jakmile je mem-pool uzlu plný, přestane přijímat nové transakce (nepřidá je do mem-poolu). Ostatní uzly začnou stahovat transakce pouze v případě, že mají volné místo ve svých mem-poolech. Transakce, které získají, mohou být kombinací transakcí generovaných roboty a transakcí od uživatelů.

Uzel může přijímat uživatelské transakce ze svých přenosových uzlů. Pokud má uzel dostatek transakcí k naplnění mem-poolu, nebude muset stahovat transakce z jiných uzlů. Toto je standardní operace pro všechny uzly v síti. Pokud by měl bot cílit na jeden uzel, nebyl by schopen zabránit zahrnutí většiny uživatelských transakcí do následujících bloků.

Pravděpodobnost úspěšných útoků stoupá s počtem uzlů, na které se roboti zaměřují, protože by zaplnily více mem-poolů platnými transakcemi se spamem. To však výrazně komplikuje a eskaluje cenu útoku.

Každý uzel, který se rozhodne odmítnout transakce a považuje je za generované robotem, v podstatě chrání ostatní uzly v síti.

Na obrázku můžete vidět, že robot posílá platné spamové transakce do uzlu 1. Mem-pool uzlu 1 může být plný platných spamových transakcí. Alice a Bob posílají platné uživatelské transakce do uzlu 3. Uzel 3 měl prázdné místo v mem-poolu a stáhl pouze jednu platnou spamovou transakci z uzlu 2. Pokud se uzel 3 stal v příštím kole lídrem slotu, většina transakcí v blok bude od uživatelů.

Když bot submituje transakci, přidá se do mem-poolu, čímž se účinně rezervuje ADA, která byla použita jako transakční poplatek. Cardano mem-pool má dvojnásobnou kapacitu bloku a pojme přibližně 500 až 600 transakcí. Pokud by měl bot za cíl naplnit 100 mem-poolů odlišnými transakcemi, vedlo by to k celkem 60 000 transakcím, což by stálo přibližně 6 000 USD na poplatcích. Síť dokáže tento objem transakcí zpracovat do hodiny. Navzdory tomu bude síť pravděpodobně pokračovat ve zpracování značného počtu uživatelských transakcí prostřednictvím uzlů, na které se útočník přímo nezaměřil a které obsahují uživatelské transakce ve svém mem-poolu. Část transakcí však mohou být staženy od jiných nodů, tedy mohou to být spam transakce.

Závěr

Poplatky a síťová architektura jsou v podstatě primární obranou proti spamovým transakcím. Arbitrážní roboti jsou povinni předkládat platné transakce včetně poplatků. Nejedná se o tradiční útok DDOS, jehož cílem je zaplavit uzel transakcemi na síťové vrstvě. Pokud roboti odešlou do sítě velký objem transakcí, uzly mohou začít zahazovat uživatelské transakce na úrovni sítě. To představuje riziko pro všechny sítě, protože se jedná o legitimní transakce, které zahrnují zaplacené poplatky. Pokud může útočník více profitovat z arbitráže, poplatky nemusejí poskytovat dostatečnou ochranu proti spamovým transakcím. Útočníkovi nedojdou prostředky a může pokračovat v útoku, dokud bude arbitráž zisková. Další klíčovou vrstvou ochrany je proto síťová architektura.

Při diskuzi o decentralizaci a výrobě bloků by se dalo konstatovat, že Solana je podstatně centralizovanější (a tedy náchylnější k zahlcení transakcí) než Cardano, vzhledem k tomu, že plán lídra je předem určen a všechny transakce jsou na ně směrovány. Všimněte si že vůbec nezáleží na počtu validátorů. Tým Solana stojí před obtížným úkolem se s tím vypořádat, podobně jako tým Cardano, který musí zlepšit škálovatelnost. Žádná z těchto výzev není triviální.

Přečtěte si originál v AJ: https://cexplorer.io/article/transaction-fees-and-network-architecture-as-spam-protection