Coinnoti
☰
Češtinacs
Zpět na blog

Proč vaše peněženka zobrazuje převod, který jste nikdy neodeslali: transakce s nulovou hodnotou a otrava adres

Neznámá odchozí transakce automaticky neznamená, že byla vaše peněženka napadena. Zjistěte, co skutečně dokazují záznamy s nulovou hodnotou, podobně vypadající adresy a skutečné pohyby aktiv.

Co tento záznam dokazuje o mé peněžence?

Pokud se ve vaší historii náhle objeví údaj, že jste na neznámou adresu odeslali 0 USDT, samotný záznam nedokazuje, že někdo získal přístup k vašemu soukromému klíči. Třetí strana může vytvořit určité záznamy o převodu nulového počtu tokenů, v nichž uvede vaši adresu, aniž by potřebovala váš podpis nebo oprávnění utratit nenulovou částku. Záznam může existovat v blockchainu, i když jste transakci nikdy nezahájili.

Užitečnější jsou konkrétnější otázky: O jaké aktivum jde? Kolik se skutečně převedlo? Kdo transakci odeslal? Co umožnilo jakékoli skutečné utracení prostředků?

  • Událost s nulovým množstvím tokenů nedokazuje, že jste cokoli podepsali nebo utratili. U pravého tokenu přesná nula znamená, že tento konkrétní převod žádné tokeny nepřesunul.
  • Převod se známým názvem tokenu neurčuje identitu aktiva. Nesouvisející kontrakt může používat stejný název i symbol.
  • Drobná příchozí platba může být skutečná a současně vám do historie podstrčit zavádějící adresu odesílatele.
  • Potvrzený a nevysvětlený odchozí pohyb skutečných aktiv vyžaduje prošetření. Neignorujte ho jen proto, že jiné pole uvádí nulu.

Tento průvodce se týká Etherea, BNB Smart Chain (BSC) a podobných sítí používajících tokenové kontrakty ve stylu Etherea. Příklady jsou záměrně zjednodušené a smyšlené, nejde o snímky obrazovky ani zjištění vztahující se ke konkrétní peněžence.

Nejdříve zjistěte, které pole uvádí nulu

Pojem transakce s nulovou hodnotou lidé používají pro několik různých situací. Pouze jedna z následujících informací znamená, že množství tokenů je nulové:

  • Množství tokenů: 0 USDC. U pravého kontraktu USDC přesná nula znamená, že tento převod nepřesouvá žádné USDC.
  • Hodnota transakce: 0 ETH. K hlavní transakci nebylo připojeno žádné ETH. Tokeny se však stále mohou převádět a operace kontraktu se mohou vykonat.
  • Odhadovaná hodnota: $0.00. Rozhraní zobrazuje ocenění ve fiat měně. Z toho nelze určit množství tokenů.

Na BSC se v poli nativní měny obvykle používá BNB místo ETH. Interakce s kontraktem s nulovou nativní hodnotou může převádět tokeny, měnit oprávnění k utrácení nebo spouštět jiné operace. Nativní hodnota je oddělená od vstupních dat transakce.

Malé kladné množství se může zaokrouhlit na $0.00. Aktivum bez spolehlivé ceny může mít také neužitečné ocenění ve fiat měně. Rozbalte množství tokenů na plnou přesnost; i zobrazené množství 0.00 může skrývat menší kladnou hodnotu. Změna ocenění portfolia není spolehlivým záznamem jednotek, které na účet přišly nebo jej opustily.

Nula je povoleným množstvím tokenů, takže sama o sobě nedokazuje útok. Podobně vypadající adresy a zkopírované platební údaje jsou vodítka, která stojí za prověření.

Proč se dvě pole From mohou lišit

Historie peněženky může kombinovat informace z různých úrovní:

  1. Transakce: podepsaný pokyn odeslaný do sítě. U běžné transakce na Ethereu označuje hlavní pole From podepisující účet.
  2. Událost tokenu: záznam emitovaný kontraktem během vykonávání. Událost Transfer má vlastní pole From, To a množství.
  3. Řádek historie: způsob, jakým peněženka nebo prohlížeč blockchainu tyto informace zobrazuje. Událost může označit jako OUT, protože jako odesílatele uvádí vaši adresu.

Tato dvě pole From nejsou zaměnitelná. Výskyt vaší adresy v události není podpisem vaší peněženky. Škodlivý kontrakt může vaši adresu vložit do dat události, ale jeho protokol tím nepochází z pravého tokenového kontraktu. Kontrakt, který událost emitoval, je proto zásadní součástí důkazů.

Stejně tak hash transakce identifikuje transakci, nikoli váš souhlas. Zahrnutá transakce označená Success znamená, že její vnější vykonávání nebylo vráceno zpět. Nejde o potvrzení důvěryhodnosti tokenu, příjemce ani účelu.

Pět příkladů historie transakcí s vysvětlením

Příklad 1: Odchozí převod nulového množství tokenů, který jste nepodepsali

Záznam v historii: OUT · 0 USDC · Z vaší adresy na neznámou podobně vypadající adresu.

  • From transakce: transakci odeslal nesouvisející účet.
  • From tokenové události: událost uvádí vaši adresu.
  • Emitující tokenový kontrakt: pravý kontrakt USDC v této síti.
  • Přesné množství tokenů: nula.

Co to dokazuje: pravý tokenový kontrakt zaznamenal převod nulového množství tokenů s vaší adresou. Tento konkrétní převod nepřesunul žádné USDC. Nedokazuje, že vaše peněženka transakci podepsala, že volající má oprávnění utratit kladné množství nebo že vám byl odcizen klíč.

Jak k tomu dochází: běžný tokenový standard ERC-20 vyžaduje, aby i převody nulového množství emitovaly události Transfer. V běžných implementacích delegovaná převodní funkce transferFrom kontroluje, zda požadované množství nepřekračuje povolený limit volajícího. Nula nepřekračuje ani nulový limit. Pokud to dovolují ostatní pravidla kontraktu, může volání uspět bez předchozího schválení.

Nejde o univerzální záruku pro každý token. Jednotlivé kontrakty mohou mít další omezení.

Co zkontrolovat dále: prohlédněte zbývající části transakce. Nulový řádek popisuje pouze sám sebe; jiná operace mohla mít odlišný dopad. Pokud jde jen o osamocený záznam otravy adresy bez podezřelého utrácení nebo změn oprávnění, vhodnou reakcí je vyhnout se podstrčené adrese, nikoli předpokládat, že je nutné peněženku vyměnit.

Příklad 2: Falešná transakce zobrazující velké množství tokenů

Záznam v historii: OUT · 2,500 USDC · Z vaší adresy na neznámou adresu.

  • Zobrazený symbol tokenu: USDC.
  • Emitující kontrakt: nesouvisející kontrakt, nikoli pravý USDC.
  • Množství uvedené v události: 2,500.
  • Pohyb pravých USDC v této transakci: žádný.

Co to dokazuje: jiný kontrakt emitoval záznam zobrazený pod označením USDC. Nedokazuje to, že z vašeho účtu odešlo 2,500 skutečných USDC.

Falešná transakce v peněžence může být skutečným údajem v blockchainu, který je zavádějícím způsobem vykládán. Útočníci mohou kopírovat název a symbol tokenu a emitovat události podobné vašim dřívějším platbám, včetně částek. Nestandardní kontrakty mohou také emitovat záznamy o převodech, které neodpovídají změnám jejich vlastních zůstatků.

Co zkontrolovat dále: určete síť a přesný kontrakt, který událost emitoval. Jeho adresu porovnejte s údaji o kontraktu, jež jste pro danou síť nezávisle získali od emitenta. Známý ticker, logo nebo označení ověření zdrojového kódu k prokázání identity emitenta nestačí.

Příklad 3: Drobná skutečná platba z podobně vypadající adresy

Záznam v historii: IN · 0.000001 USDC · Z neznámé adresy na vaši adresu.

Předpokládejme, že pravý tokenový kontrakt převod potvrdí a váš zůstatek tokenů se o tuto drobnou částku zvýší. V takovém případě skutečné tokeny dorazily. Jejich přijetí nevyžadovalo vaše schválení odesílatele a nedává mu oprávnění utrácet.

Past spočívá v adrese. Zvažte následující smyšlené příklady rozdělené mezerami, aby byly vidět všechny znaky. Skutečné adresy mezery neobsahují; tučně vyznačené prostřední části se liší:

Ověřený příjemce: 0x7a2f 1111 2222 3333 4444 5555 6666 7777 8888 9c4d

Podstrčená adresa: 0x7a2f aaaa bbbb cccc dddd eeee ffff 0000 1111 9c4d

Rozhraní zobrazující jen začátek a konec by mohlo obě adresy ukázat jako 0x7a2f...9c4d.

Co to dokazuje: někdo vám z dané adresy poslal malé množství. Nedokazuje to, že odesílatel je vaším obvyklým příjemcem nebo že účet ovládáte. Shodné viditelné znaky neprokazují vlastnictví.

Co zkontrolovat dále: získejte zamýšlenou cílovou adresu od nezávisle ověřeného kontaktu nebo z důvěryhodné stránky účtu příjemce. Porovnejte celou adresu. Otrava adres se snaží proměnit podstrčený záznam v historii v adresu, kterou zvolíte při pozdější platbě. Ke ztrátě může dojít až později, když schválíte naprosto platný převod na nesprávné místo.

Příklad 4: Nula ETH, ale odchází 2,500 pravých tokenů

Hlavička transakce: Value · 0 ETH.

  • Nativní hodnota připojená k volání: 0 ETH.
  • Převod pravých tokenů: 2,500 USDC z vaší adresy.
  • Změna zůstatku USDC způsobená transakcí: snížení o 2,500 USDC.
  • Stav vykonávání: Success.

Co to dokazuje: v tomto příkladu skutečné USDC odešly. Nula popisuje ETH připojené k volání, nikoli převod USDC, a nevylučuje poplatky za gas.

Co zůstává neznámé: proč platba proběhla a zda jste ji zamýšleli. Mohlo jít o směnu, vklad, naplánovanou operaci, platbu na chybnou adresu nebo neoprávněné utrácení. Než transakci zařadíte, porovnejte ji se svým úkonem a zamýšleným cílem.

Příklad 5: Pravé tokeny odcházejí, ale transakci odeslal jiný účet

Záznam v historii: OUT · 500 pravých USDC · Neznámý cíl.

Předpokládejme, že úspěšná transakce snížila váš skutečný zůstatek USDC o 500, přesto hlavní pole From uvádí někoho jiného.

Co to dokazuje: tokeny se přesunuly. Odlišný odesílatel transakce neznamená, že je tento pohyb falešný.

Dříve schválený subjekt může použít povolený limit tokenů, aniž by vás při každém výběru žádal o podpis nové transakce. Některé tokeny také podporují podpisy permit, které autorizují limit prostřednictvím podepsané zprávy odeslané jinou stranou. Chytré účty a delegované peněženky přinášejí další způsoby, jak může někdo jiný odeslat oprávněnou operaci.

Co zkontrolovat dále: prověřte subjekt oprávněný utrácet, příslušný limit či podepsané oprávnění a operaci peněženky. Pokud debet zůstává nevysvětlený, považujte jej za bezpečnostní incident. Důkazy mohou ukazovat na škodlivé schválení, klamavý podpis nebo kompromitované ovládání účtu; samotný řádek je nerozliší.

U běžné přímo podepsané transakce je vaše adresa v hlavním poli From důkazem platného podpisu k danému účtu. Ani to však nedokazuje, že jste úkonu rozuměli, zamýšleli daného příjemce nebo transakci osobně zahájili. Pole From tokenové události poskytuje mnohem slabší důkaz.

Co skutečně měřilo 270 milionů pokusů o otravu adres

Dvouletá analýza aktivity na Ethereu a BSC za období od 1. července 2022 do 30. června 2024 identifikovala přibližně 270 milionů podstrčených převodních záznamů zaměřených na 17 milionů adres.

Záznamy spadaly do tří kategorií:

  • 147.7 milionu převodů s nulovou hodnotou.
  • 118.4 milionu převodů padělaných tokenů.
  • 4.0 milionu drobných převodů.

Šlo o převodní záznamy přibližně v 18.2 milionu transakcí, protože útočníci mohou záznamy sdružovat. Cílené adresy nejsou totéž co lidé, napadené peněženky nebo oběti, které přišly o peníze.

Analýza identifikovala 6,633 úspěšných následných plateb v celkové hodnotě alespoň $83.8 million. Některé oběti zaplatily vícekrát. Detekce se zaměřila na vybrané stablecoiny, proto je odhad ztrát spodní hranicí v tomto rozsahu, nikoli souhrnem za všechny tokeny a sítě.

Praktickým důsledkem je, že kontrola pouze nulových částek přehlíží podstatnou část útoku. Padělané záznamy mohou napodobit významnou platbu a drobný příchozí převod může přesunout skutečné tokeny a zároveň představit nebezpečnou adresu.

Jak prověřit konkrétní neznámý záznam

  1. Otevřete transakci ve správné síti. Použijte možnost prohlížeče blockchainu ve své peněžence nebo známý prohlížeč, například Etherscan či BscScan. Zkontrolujte stav transakce. Čtení veřejných údajů nevyžaduje připojení peněženky, schvalování tokenů, podpis zprávy ani zadání obnovovací fráze.
  2. Určete skutečné aktivum. Odlište nativní ETH či BNB od tokenu používajícího toto jméno. U tokenů porovnejte přesnou síť a emitující kontrakt s důvěryhodnými údaji emitenta.
  3. Přečtěte množství v plné přesnosti. Oddělte množství tokenů od nativní hodnoty transakce a odhadu ve fiat měně.
  4. Oddělte odesílatele transakce od odesílatele události. U chytrého účtu prověřte také operaci peněženky a její oprávnění. To, že gas platil někdo jiný, nedokazuje, že se vaše aktiva nemohla pohnout.
  5. Projděte celou transakci. Prověřte všechny pohyby tokenů, převody nativní měny a související změny oprávnění. Pokud prohlížeč nabízí změny zůstatků pro celou transakci, použijte je k ověření výsledku. Dnešní nezměněný zůstatek je slabším důkazem: pozdější vklady či kompenzační převody mohou skrýt dřívější pohyb.
  6. Nezávisle ověřte cílovou adresu. Použijte důvěryhodné platební údaje příjemce nebo dříve ověřenou položku adresáře. Nedávný řádek historie je podklad k prozkoumání, nikoli potvrzení správného cíle.

Pokud výsledek z prohlížeče není jasný, sdělte oficiální podpoře poskytovatele peněženky síť a veřejný hash transakce. Popište očekávanou operaci, pokud nějaká byla. Tyto údaje pomohou odlišit neznámou, ale zamýšlenou operaci od nevysvětleného utrácení, aniž byste zveřejnili tajné údaje ovládající peněženku.

Co dělat po kontrole

Pokud jste našli pouze osamocený podstrčený záznam

Pokud to peněženka umožňuje, skryjte nebo nahlaste spam a nepoužívejte adresy z něj. Skrytí řádku změní rozhraní; nesmaže historii blockchainu ani nezruší oprávnění.

Nulový převod může nastat i s nulovým limitem, takže samotný záznam není důvodem rušit všechna schválení nebo přesouvat veškeré prostředky. K záznamu nemusí existovat žádné oprávnění k utrácení, které by šlo odebrat. Nikdy nepoužívejte propagované stránky tokenu ani cizí odkaz na obnovu k „vyčištění“ peněženky.

Pokud jste našli podezřelé oprávnění k utrácení

Pomocí důvěryhodné správy schválení v peněžence prověřte a zrušte příslušný limit. Odpojením webu od peněženky se nezruší jeho existující schválení tokenů na blockchainu. Zrušení řeší toto oprávnění; nenapraví ukradený soukromý klíč.

Pokud se skutečná aktiva přesunula bez vašeho úmyslu

Uschovejte hash transakce, síť, dotčené aktivum a související adresy. Přes oficiální podporu prověřte nedávné podpisy, schválení a operace peněženky.

Pokud existují důkazy o vyzrazení obnovovací fráze či soukromého klíče, vytvořte na důvěryhodném zařízení novou peněženku s novou obnovovací frází a pečlivě naplánujte přesun zbývajících aktiv. Jiný účet odvozený od kompromitované fráze problém neřeší. Pokud prostředky automaticky mizí, nepřidávejte další peníze na gas: může je odebrat automatizovaný zloděj.

Pokud jste platbu vědomě podepsali, ale zkopírovali otrávenou cílovou adresu, tento rozdíl zdokumentujte. Platba mohla být správně podepsána a provedena, přesto však dorazit nesprávnému příjemci. To samo o sobě nedokazuje odcizení soukromého klíče.

Časté otázky o neznámých transakcích

Přiměl mě útočník zaplatit gas?

V běžném scénáři otravy adres transakci odesílá útočník a platí síťový poplatek. Pouhé uvedení vaší adresy v tokenové události váš účet nezatíží. Sponzorované transakce a chytré účty však znamenají, že samotná identita plátce poplatku nedokazuje neškodnost operace. Prověřte skutečné účinky.

Co když transakce selhala?

Vrácený převod tokenů se nedokončil, přesto mohl být účtován gas. Pokud peněženka používá delegování účtu, prověřte je samostatně: Ethereum může delegaci zachovat, i když pozdější vykonávání selže. Neznámá delegace si zaslouží kontrolu.

Zabránila by hardwarová peněženka otravě adres?

Poskytuje další místo ke kontrole cílové adresy před podpisem. Pokud však schválíte adresu ovládanou útočníkem, nezmění ji na správnou. Porovnejte celou adresu na důvěryhodném podpisovém displeji s nezávisle ověřenými údaji příjemce.

Mohu zabránit cizím lidem přidávat tyto záznamy?

Obecně nemůžete třetím stranám zabránit v posílání aktiv nebo vytváření příslušných záznamů spojených s veřejnou adresou. Filtry peněženky a prohlížeče mohou omezit, co vidíte. Ukládejte ověřené příjemce a před platbou kontrolujte celou cílovou adresu; samotné skrývání nulových položek nezachytí všechny varianty s padělanými tokeny či drobnými převody.