🇨🇿 Pochopení Cardano Poplatků

Většina blockchainů používá k výpočtu transakčních poplatků nějakou formu trhu s poplatky (market fee). Když chce blockchain používat velké množství lidí, poplatky rostou. Poplatky se zvyšují s rostoucí poptávkou po blokovém prostoru. Výši poplatků nelze předem předvídat a může se změnit. Poplatky jsou silně ovlivněny přetížením sítě, což není ideální. Cardano tento běžně používaný mechanismus nemá. Transakční poplatky jsou pevné a předvídatelné. Vysvětlíme vám, jak se počítá výše poplatků za transakce a skripty Plutus. Vysvětlíme si také, jak se Cardano chová při přetížení a plánované vylepšení zvaném odstupňované ceny.

Je nutné platit za výpočetní zdroje

Zpracování transakce nebo provedení chytré smlouvy v distribuované síti je nákladné. Aby to bylo možné, musí po celém světě běžet mnoho počítačů a poskytovat své zdroje do sítě. Spuštění uzlů není zdarma. Lidé, kteří uzly provozují, očekávají od sítě kompenzaci v podobě pravidelných odměn.

Než se transakce dostane do bloku, musí být rozšířena po celé síti. Spotřebovává výpočetní výkon uzlů, které musí transakci ověřit. Transakce je dočasně uložena v mem-poolu (dočasné paměti). Po vložení do bloku bude trvale uložena v blockchainu. To spotřebovává místo na disku. S každým novým přidaným blokem roste velikost blockchainu.

Blockchain je služba, za kterou musí uživatelé platit. Neexistuje žádná třetí strana, která by dotovala provoz sítě a vydělávala na uživatelských datech nebo reklamě. V každé decentralizované síti musí existovat nějaký mechanismus, který vyplácí odměny producentům bloků. Uživatelské poplatky jsou pro síť zdrojem příjmů.

Poplatky za běžnou transakci

Výpočet poplatků za běžnou transakci je velmi jednoduchý. Výpočet je založen na dvou parametrech a velikosti transakce. Vzorec vypadá takto.

Poplatek = A + B * velikost (TX)

A a B jsou parametry protokolu, které lze upravit. Size(tx) je velikost transakce v bajtech.

Parametr A odráží fixní náklady na zpracování jakékoli transakce bez ohledu na její velikost nebo složitost. To slouží jako ochrana proti DDOS útokům (Distributed Denial of Service).

Parametr B odráží variabilní náklady na zpracování transakce v závislosti na její velikosti. Čím větší je transakce, tím více zdrojů je potřeba k jejímu uložení a zpracování.

Parametry protokolu A a B jsou aktuálně nastaveny na 0,155381 ADA a 0,000043946 ADA/byte.

Běžná transakce může mít velikost 200 bajtů. V tomto případě výpočet vypadá takto:

A = 0,155381 ADA

B = 0,000043946 * 200 = 0,0087892 ADA

Poplatek = 0,155381 + 0,0087892 0,164271 = 0,164271 ADA

Za 200bajtovou transakci uživatel vždy zaplatí přesně 0,164271 ADA. Nikdy více ani méně. Výpočet je vždy úplně stejný.

Pokud by velikost transakce byla 300 bajtů, bylo by to dražší. Poplatek by byl 0,1685648 ADA.

Výši poplatků ovlivňuje pouze velikost transakce. V kontextu modelu UTxO to znamená, že transakce může mít více vstupních UTxO a více výstupních UTxO. Čím více UTxO, tím větší velikost v bajtech.

Nejběžnější transakce má jeden (nebo dva) vstupní UTxO a dva výstupní UTxO (jeden příjemce + vrácení části odeslané částky zpět odesílateli).

Pamatujte, že odeslání tokenů a NFTs nebo použití metadat zvyšuje velikost transakce a tím i poplatek.

Je možné, že se v budoucnu změní parametry A nebo B, případně se úplně změní systém výpočtu poplatku. Cílem je, aby uživatelé platili spravedlivý poplatek za službu poskytovanou distribuovanou sítí.

Je potřeba si uvědomit, že nedeterminismus vnáší do poplatkových systémů volatilita mincí, ve kterých se poplatky platí. Ačkoli jsou poplatky stabilní a deterministické v hodnotě ADA, kolísají v dolarové hodnotě. To není ideální. Uživatelsky nejpřívětivější by bylo vypočítat poplatek v dolarovém vyjádření, protože by to přineslo největší míru stability systému.

V době psaní tohoto článku platí uživatelé za běžnou transakci přibližně 0,07 USD (0,17 ADA). Pokud by se však tržní hodnota ADA na býčím trhu zvýšila 10x, poplatek by byl také 10x vyšší, což by bylo 0,70 USD (stále jen 0,17 ADA).

Poplatky za ověřování skriptů Plutus

Pokud transakce vyžaduje ověření skriptu Plutus, závisí výpočet poplatku na několika faktorech. Kromě velikosti transakce v bajtech je třeba při výpočtu zohlednit počet kroků výpočtu (CPU) a počet paměťových jednotek.

Transakce se skripty jsou obvykle výrazně větší, protože se musí zpracovat více dat.

Každý krok CPU představuje 1 pikosekundu doby provádění. Typické skripty by měly spotřebovat méně než 1 000 000 000 jednotek CPU (1 milisekundu).

Počet paměťových jednotek představuje počet bajtů, které skript alokuje. Typické skripty by měly spotřebovat méně než 1 000 000 paměťových jednotek (1 MB alokace paměti).

Poznámka: U běžných transakcí se při výpočtu poplatků nebere v úvahu počet kroků CPU a počet paměťových jednotek. Jsou nastaveny na 0.

Plutus fee estimator se dá použít k výpočtu poplatku za validaci scriptu. Odhad lze použít k výpočtu poplatků za transakce skriptů nebo dokončení DApps před nebo během vývoje.

Primitivní operace Plutus jsou vyhodnoceny na referenční architektuře, aby se zjistily náklady každého primitiva ve smyslu základních CPU a paměťových jednotek, které používá. Ty jsou škálovány na základě počtu jednotlivých primitiv, které skript používá, a celkové náklady na skript se vypočítají na základě aktuálních nákladů na každý CPU a paměťovou jednotku plus velikost transakce. Zahrnuje velikost skriptu a všechna data, která skript potřebuje.

V následující tabulce najdete několik příkladů skriptů a vypočítaných poplatků za jejich validaci.

Maximální možná cena za jeden skript by byla 2,17 ADA.

Používání aplikace může vyžadovat ověření více skriptů, takže celkový poplatek může být vyšší.

Žádný fee market

Síť Cardano neimplementuje prioritizaci transakcí. Transakce jsou prováděny na principu „kdo dřív přijde, je dřív na řadě“.

Pokud by tedy síť dosáhla maximální kapacity, transakce by se ve frontě mem-poolu zařadily do fronty. Mem-pool má však také omezenou kapacitu. Pokud se mem-pool zaplní, síť použije mechanismus zpětného tlaku. V tomto případě síť nepřijímá zadané transakce. Uživatelé se musí pokusit odeslat transakci znovu později.

Uživatelé si nemohou připlatit za to, aby byly jejich transakce zpracovány dříve, pokud je síť Cardano přetížená.

V síti Bitcoin a Ethereum si uživatelé mohou nastavit vyšší poplatek, než je současná úroveň a v podstatě tak upřednostňují transakce. Producenti bloků vybírají transakce podle toho, jak vysoké jsou poplatky. Snaží se maximalizovat svůj zisk, proto si vybírají transakce s nejvyššími poplatky.

Na jedné straně je tržní poplatek přirozeným tržním mechanismem, který reaguje na zvýšenou poptávku po blokovém prostoru. Nicméně na druhou stranu to dělá síť nespolehlivou a exkluzivní (upřednostňuje bohaté). Uživatelé, jejichž transakce byly přeskočeny, musí čekat na vyúčtování delší dobu (hodiny nebo i dny), nebo musí za transakci zaplatit více.

Pro některé případy použití je však nutné umět upřednostňovat transakce.

Tým IOG plánuje zavést tzv. odstupňované ceny (tiered pricing).

Tiered pricing dokument navrhuje rozdělení blokového prostoru na úrovně. Každá úroveň bude mít jiné zpoždění vypořádání a poplatek. Počet úrovní spolu se zpožděními a poplatky v každé úrovni se automaticky upraví v závislosti na aktuální poptávce.

Mechanismus si můžete představit jako víceproudou dálnici. Každý pruh bude mít jinou rychlost a jiné poplatky. Pravý pruh bude pomalý a poplatky budou levné, zatímco levý pruh bude rychlý, ale drahý. Mezi levým a pravým pruhem může být více jízdních pruhů. Uživatelé se mohou rozhodnout, který jízdní pruh zvolí na základě toho, jak rychle se potřebují dostat do cíle a kolik jsou ochotni zaplatit.

Závěr

Poplatky se shromažďují ve virtuálním banku (virtual pot) během epochy a rozdělují se prostřednictvím staking mechanismu mezi přechody mezi epochami. Do virtuálního banku se přidá 0,3 % ADA coinů z rezervy. Ve virtuálním banku jsou poplatky spolu s mincemi z rezervy. 20 % ADA coinů z virtuálního banku je vloženo do pokladny projektu. Zbytek se použije na staking odměny.

Blockchain síť dokáže zpracovat velké množství levných transakcí, díky čemuž je inkluzivní a užitečná. Nebo může zpracovat malý počet velmi drahých transakcí, takže je exkluzivní a nepoužitelná. V obou případech může mít síť stejný příjem z poplatků. Ideální je, pokud se síť dobře škáluje, protože není nutný žádný trh s poplatky a všichni uživatelé jsou spokojeni.

Cardano má pevné a předvídatelné poplatky v hodnotě ADA a dá se říci, že s uživateli jedná férově. Stále však postrádá mechanismus stanovování priorit. Pokud je síť přetížená, není možné upřednostnit transakci, která musí být vypořádána do určitého data a času v rámci finanční služby. S blížícím se býčím trhem by bylo hezké mít implementovaný tiered pricing.

Článek napsali Cardanians s podporou od Cexplorer.

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