POD KAPOTOU
Anatomie transakce: co se děje mezi klikem a potvrzením
Zmáčkneš „potvrdit" a pak deset vteřin koukáš na kolečko. Rozebereme, co se v těch vteřinách děje, proč platíš poplatek a co znamenají všechna ta pole v detailu transakce.
Mezi klikem na „potvrdit" a hláškou „hotovo" uběhne pár vteřin, během kterých se stane překvapivě hodně. Když víš co, přestanou být tajemné dvě věci, které lidi nejvíc štvou: proč to někdy trvá a proč se platí poplatek i za neúspěšnou transakci.
Transakce je podepsaný příkaz, ne převod peněz
Nepřesouváš mince jako soubory. Vytvoříš instrukci — „z adresy A na adresu B tolik a tolik" — a podepíšeš ji privátním klíčem. Klíč přitom nikdy neopustí tvoje zařízení; podpis je matematický důkaz, že příkaz vydal jeho držitel. Síť si to ověří a stav upraví.
Právě proto je podpis tak citlivá věc. Podepisuješ obsah, ne úmysl. Když ti podvodná stránka podstrčí příkaz „povol mi nakládat se všemi tvými USDC" a ty ho odklepneš, síť poslušně provede přesně to, co jsi podepsal.
Projdi si tu cestu
Nastav poplatek a odešli transakci. Uvidíš, kde se čeká a proč se poplatek vyplatí:
- Podpis Peněženka podepíše instrukci tvým privátním klíčem. Klíč nikam neodchází.
- Mempool Transakce čeká ve frontě neodbavených. Tady se rozhoduje podle poplatku.
- V bloku Ověřovatel ji zařadil do bloku. Od téhle chvíle je v řetězu.
- Potvrzeno Nad blokem přibývají další. Čím víc jich je, tím míň jde s historií hnout.
Poplatek: komu a za co
Každá operace v síti stojí výpočetní práci a ta se měří v jednotkách zvaných gasJednotka výpočetní náročnosti. Prostý převod stojí 21 000 gasu, složitý obchod přes kontrakt klidně desetinásobek.. Kolik gasu operace spotřebuje, je dané. Kolik za jednotku zaplatíš, je aukce — a když je síť plná, vyhrávají ti, co nabídnou víc.
Odtud plyne to nepříjemné pravidlo: poplatek platíš za vykonanou práci, ne za úspěch. Když transakce spadne v půlce, práce už proběhla a síť si ji naúčtuje. Proto se u nových kontraktů vyplatí poslat nejdřív malou zkušební částku.
Rozeber si ji na součástky
Když si transakci otevřeš v prohlížeči blockchainu, vysype se na tebe tabulka polí. Klikni na kterékoli a řekneme ti, co znamená:
-
Adresa, ze které transakce odchází — odvozená z tvého veřejného klíče. Nikdo ji za tebe nemůže použít bez privátního klíče.
-
Kam to jde. Buď adresa člověka, nebo chytrého kontraktu — třeba právě burzy Polymarketu. Zkontroluj vždycky celou, ne jen první čtyři znaky.
-
Kolik nativní měny posíláš. U obchodu s tokenem tady bývá nula — samotné USDC se přesouvá až uvnitř kontraktu.
-
Pořadové číslo tvé transakce z téhle adresy. Zabraňuje tomu, aby někdo starou podepsanou transakci pustil znovu — a určuje pořadí odbavení.
-
Strop výpočetní práce, kterou povoluješ. Když dojde dřív, transakce spadne — a poplatek se stejně strhne, protože práce už proběhla.
-
Nejvyšší cena za jednotku práce, kterou jsi ochotný zaplatit. Když je síť volná, zaplatíš míň, než je tenhle strop.
-
Vlastní instrukce pro kontrakt. Tady se skrývá to, co transakce doopravdy dělá — a taky to, co ti podvodný web podstrčí k podpisu.
-
Otisk celé transakce. Slouží jako její identifikátor — podle něj ji najdeš v prohlížeči blockchainu a ukážeš komukoli.
Když se transakce zasekne
Občas transakce visí v mempoolu a nic se neděje — nabídla jsi málo a fronta ji
přeskakuje. Řešení je v poli nonce: pošleš novou transakci se stejným nonce, ale vyšším poplatkem. Síť odbaví jen jednu z nich a ta stará tiše zapadne.
V peněžence se tomu říká „speed up" nebo „cancel" a dělá přesně tohle.
Důsledek téhož pravidla: transakce z jedné adresy se odbavují v pořadí podle nonce. Když ti visí ta s číslem 42, nemůže projít 43, i kdyby za ni platil kolik chce.
Kolik potvrzení stačí
Jakmile je transakce v bloku, technicky proběhla. Jenže krátce po zařazení může síť ještě přehodit poslední bloky (reorgSituace, kdy si síť srovná dva souběžně navržené konce řetězu a jeden z nich zahodí. Týká se jen posledních bloků, hlubokou historii to nepotká.), takže se čeká na další bloky nad ní. U drobných částek stačí pár potvrzení, u velkých se čeká na finalitu — bod, od kterého by zvrat stál útočníka víc, než kolik by získal.
Pro nás je podstatné, že tenhle celý proces je veřejný v každé fázi. Transakci sharka vidíme už v momentě, kdy vleze do mempoolu — tedy dřív, než se vůbec dostane do bloku. Tam vzniká náskok, na kterém PolyTips stojí.
Co si odnést
- Transakce je podepsaný příkaz. Podepisuješ obsah, ne úmysl — čti, co odklepáváš.
- Poplatek platíš za práci, i když transakce spadne. Testuj malou částkou.
-
nonceurčuje pořadí. Zaseknutou transakci přebiješ novou se stejným nonce a vyšším poplatkem. - Blok = proběhlo. Potvrzení nad ním = už se s tím nehne.
- „Approve" je nejtišší a nejnebezpečnější transakce, jakou podepíšeš.
Tím máš základ pohromadě: trh, peněženku, řetěz i transakci. Zbytek je trpělivost — a dívat se tam, kde tečou velké peníze.