Zakaj vaša denarnica prikazuje prenos, ki ga niste nikoli poslali: transakcije z ničelno vrednostjo in zastrupljanje naslovov
Neznana odhodna transakcija ne pomeni samodejno, da je bila vaša denarnica vdrta. Spoznajte, kaj dejansko dokazujejo zapisi z ničelno vrednostjo, podobni naslovi in resnični premiki sredstev.
Kaj ta zapis dokazuje o moji denarnici?
Če vaša zgodovina nenadoma kaže, da ste poslali 0 USDT na neznan naslov, sam zapis še ne dokazuje, da je kdo dostopal do vašega zasebnega ključa. Tretja oseba lahko ustvari določene zapise o prenosih nič žetonov, v katerih navede vaš naslov, brez vašega podpisa ali dovoljenja za porabo zneska, večjega od nič. Zapis lahko obstaja v verigi blokov, čeprav ga niste nikoli sprožili.
Koristnejša so ožja vprašanja: Za katero sredstvo gre? Koliko se je dejansko premaknilo? Kdo je oddal transakcijo? Kaj je odobrilo kakršno koli resnično porabo?
- Dogodek z ničelno količino žetonov ne dokazuje, da ste kar koli podpisali ali porabili. Pri pristnem žetonu natančno nič pomeni, da ta prenos ni premaknil nobenega žetona.
- Prenos pod znanim imenom žetona ne določa sredstva. Nepovezana pogodba lahko uporablja isto ime in simbol.
- Majhno vhodno plačilo je lahko resnično, hkrati pa v vašo zgodovino podtakne zavajajoč naslov pošiljatelja.
- Potrjen, nepojasnjen odhodni premik pristnih sredstev zahteva preiskavo. Ne prezrite ga samo zato, ker drugo polje prikazuje nič.
Ta vodnik obravnava Ethereum, BNB Smart Chain (BSC) in podobna omrežja s pogodbami za žetone po vzoru Ethereuma. Primeri so namenoma poenostavljeni in izmišljeni zapisi, ne posnetki zaslona ali ugotovitve o določeni denarnici.
Najprej ugotovite, katero polje prikazuje nič
Izraz transakcija z ničelno vrednostjo ljudje uporabljajo za različne stvari. Samo eden od teh prikazov pomeni, da je količina žetonov enaka nič:
- Količina žetonov: 0 USDC. Pri pristni pogodbi USDC natančno nič pomeni, da ta prenos ne premakne nobenega USDC.
- Vrednost transakcije: 0 ETH. Glavni transakciji ni bil priložen ETH. Žetoni se lahko kljub temu premikajo in izvajajo se lahko dejanja pogodbe.
- Ocenjena vrednost: $0.00. Vmesnik prikazuje vrednost v običajni valuti. To ne določa količine žetonov.
V omrežju BSC polje domače valute običajno uporablja BNB namesto ETH. Interakcija s pogodbo brez domače vrednosti lahko prenese žetone, spremeni dovoljenja za porabo ali sproži druge operacije. Domača vrednost je ločena od vhodnih podatkov transakcije.
Majhen pozitiven znesek se lahko zaokroži na $0.00. Tudi sredstvo brez zanesljive cene ima lahko neuporaben prikaz v običajni valuti. Razširite prikaz količine žetonov na polno natančnost; celo prikazanih 0.00 žetona lahko skriva manjši pozitiven znesek. Spreminjanje vrednosti portfelja ni zanesljiv zapis enot, ki vstopajo v račun ali ga zapuščajo.
Nič je dovoljena količina žetonov, zato sama ničla ne dokazuje napada. Podobni naslovi in kopirani podatki o plačilu so namigi za preverjanje.
Zakaj se polji Od lahko razlikujeta
Zgodovina denarnice lahko združuje informacije iz različnih plasti:
- Transakcija: podpisano navodilo, poslano omrežju. Pri običajni transakciji Ethereum glavno polje Od označuje račun podpisnika.
- Dogodek žetona: zapis, ki ga pogodba odda med izvajanjem. Dogodek Transfer ima lastna polja Od, Za in količino.
- Vrstica zgodovine: prikaz teh informacij v denarnici ali raziskovalniku. Dogodek lahko označi z OUT, ker dogodek navaja vaš naslov kot pošiljatelja.
Ti dve polji Od nista zamenljivi. Pojav vašega naslova v dogodku ni podpis vaše denarnice. Zlonamerna pogodba lahko v podatke dogodka vstavi vaš naslov, vendar zato njen dnevnik še ne izvira iz pristne pogodbe žetona. Pogodba, ki odda dogodek, je zato bistven del dokazov.
Podobno zgoščena vrednost transakcije identificira transakcijo, ne pa vašega soglasja. Vključena transakcija z oznako Success kaže, da se njena zunanja izvedba ni razveljavila. To ni potrditev žetona, prejemnika ali namena.
Pet pojasnjenih primerov zgodovine transakcij
Primer 1: Odhodni prenos nič žetonov, ki ga niste podpisali
Zapis v zgodovini: OUT · 0 USDC · Z vašega naslova na neznan podoben naslov.
- Od v transakciji: transakcijo je oddal nepovezan račun.
- Od v dogodku žetona: dogodek navaja vaš naslov.
- Pogodba, ki je oddala dogodek: pristna pogodba USDC v tem omrežju.
- Natančna količina žetonov: nič.
Kaj to dokazuje: pristna pogodba žetona je zabeležila prenos nič žetonov z navedbo vašega naslova. Ta prenos ni premaknil nobenega USDC. Ne dokazuje, da je vaša denarnica podpisala transakcijo, da ima klicatelj dovoljenje za porabo pozitivnega zneska ali da je bil vaš ključ ukraden.
Kako se to zgodi: ERC-20, razširjeni standard žetonov, zahteva, da tudi prenosi ničelne količine oddajo dogodke Transfer. V običajnih izvedbah delegirana funkcija transferFrom preveri, ali zahtevana količina presega dovoljeno porabo klicatelja. Nič ne presega dovoljenja nič. Če druga pravila pogodbe to dopuščajo, lahko klic uspe brez predhodne odobritve.
To ni splošno jamstvo za vsak žeton. Posamezne pogodbe lahko določijo dodatne omejitve.
Kaj preveriti zatem: preglejte preostanek transakcije. Vrstica z ničlo opisuje samo to vrstico; druga operacija bi lahko imela drugačen učinek. Če gre za osamljen zapis zastrupljanja brez sumljive porabe ali sprememb dovoljenj, se izognite podtaknjenemu naslovu, ne pa samodejno sklepati, da morate zamenjati denarnico.
Primer 2: Ponarejena transakcija z veliko količino žetonov
Zapis v zgodovini: OUT · 2,500 USDC · Z vašega naslova na neznan naslov.
- Prikazani simbol žetona: USDC.
- Pogodba, ki je oddala dogodek: nepovezana pogodba, ne pristni USDC.
- Prijavljena količina dogodka: 2,500.
- Premik pristnega USDC v tej transakciji: noben.
Kaj to dokazuje: druga pogodba je oddala zapis, prikazan pod oznako USDC. Ne dokazuje, da je vaš račun zapustilo 2,500 pristnih USDC.
Ponarejena transakcija v denarnici je lahko resničen podatek v verigi blokov z zavajajočo razlago. Napadalci lahko kopirajo ime in simbol žetona ter oddajajo dogodke, podobne vašim prejšnjim plačilom, vključno z zneski. Nestandardne pogodbe lahko oddajajo tudi zapise o prenosih, ki ne ustrezajo spremembam njihovih lastnih stanj.
Kaj preveriti zatem: ugotovite omrežje in točno pogodbo, ki je oddala dogodek. Primerjajte njen naslov s podatki izdajatelja o pogodbi za to omrežje, pridobljenimi neodvisno. Znan simbol, logotip ali oznaka preverjene izvorne kode ne zadostujejo za dokaz identitete izdajatelja.
Primer 3: Zelo majhno resnično plačilo s podobnega naslova
Zapis v zgodovini: IN · 0.000001 USDC · Z neznanega naslova na vaš naslov.
Predpostavimo, da pristna pogodba žetona potrdi prenos in se vaše stanje žetonov poveča za ta majhen znesek. Tukaj so prispeli resnični žetoni. Za njihov prejem vam ni bilo treba odobriti pošiljatelja in s tem pošiljatelj ni dobil pooblastila za porabo.
Past je v naslovu. Oglejte si izmišljena primera, razdeljena s presledki, da so vidni vsi znaki. Pravi naslovi nimajo presledkov; odebeljene srednje skupine se razlikujejo:
Preverjeni prejemnik: 0x7a2f 1111 2222 3333 4444 5555 6666 7777 8888 9c4d
Podtaknjeni naslov: 0x7a2f aaaa bbbb cccc dddd eeee ffff 0000 1111 9c4d
Vmesnik, ki prikazuje le začetek in konec, bi lahko oba prikazal kot 0x7a2f...9c4d.
Kaj to dokazuje: nekdo vam je s tega naslova poslal majhen znesek. Ne dokazuje, da je pošiljatelj vaš običajni prejemnik ali račun pod vašim nadzorom. Ujemanje vidnih znakov ne dokazuje lastništva.
Kaj preveriti zatem: predvideni cilj pridobite od ločeno preverjenega stika ali s prejemnikove zaupanja vredne strani računa. Primerjajte celoten naslov. Zastrupljanje naslovov poskuša podtaknjen zapis v zgodovini spremeniti v naslov, ki ga izberete za prihodnje plačilo. Izguba lahko nastane kasneje, ko odobrite povsem veljaven prenos na napačen cilj.
Primer 4: Nič ETH, vendar račun zapusti 2,500 pristnih žetonov
Glava transakcije: Value · 0 ETH.
- Domača vrednost, priložena klicu: 0 ETH.
- Prenos pristnih žetonov: 2,500 USDC z vašega naslova.
- Sprememba stanja USDC zaradi te transakcije: zmanjšanje za 2,500 USDC.
- Stanje izvedbe: Success.
Kaj to dokazuje: v tem primeru je pristni USDC odšel iz računa. Ničla opisuje ETH, priložen klicu. Ne opisuje prenosa USDC in ne izključuje stroškov plina.
Kaj ostaja neznano: zakaj je bilo plačilo opravljeno in ali ste ga nameravali izvesti. Lahko gre za zamenjavo, polog, načrtovano operacijo, plačilo na napačen naslov ali nepooblaščeno porabo. Preden ga razvrstite, ga povežite z dejanjem, ki ste ga izvedli, in predvidenim ciljem.
Primer 5: Pristni žetoni zapustijo račun, transakcijo pa odda drug račun
Zapis v zgodovini: OUT · 500 pristnih USDC · Neznan cilj.
Predpostavimo, da je uspešna transakcija zmanjšala vaše stanje pristnega USDC za 500, glavno polje Od pa navaja nekoga drugega.
Kaj to dokazuje: žetoni so se premaknili. Drug pošiljatelj transakcije še ne pomeni, da je premik ponarejen.
Predhodno odobren porabnik lahko uporabi dovoljenje za žetone, ne da bi morali za vsak dvig podpisati novo transakcijo. Nekateri žetoni podpirajo tudi podpise permit, ki prek podpisanega sporočila odobrijo dovoljenje, ki ga lahko odda druga oseba. Pametni računi in delegirane denarnice omogočajo dodatne načine, da nekdo drug odda pooblaščeno operacijo.
Kaj preveriti zatem: preglejte porabnika, ustrezno dovoljenje ali podpisano pooblastilo in operacijo denarnice. Če bremenitev ostane nepojasnjena, jo obravnavajte kot varnostni incident. Dokazi lahko kažejo na škodljivo odobritev, zavajajoč podpis ali ogrožen nadzor nad računom; vrstica sama tega ne razlikuje.
Pri običajni neposredno podpisani transakciji je vaš naslov v glavnem polju Od dokaz veljavnega podpisa za ta račun. Še vedno pa ne dokazuje, da ste razumeli dejanje, nameravali plačati temu prejemniku ali ga osebno sprožili. Polje Od v dogodku žetona je precej šibkejši dokaz.
Kaj je dejansko merilo 270 milijonov poskusov zastrupljanja
Dvoletna analiza dejavnosti v omrežjih Ethereum in BSC, od July 1, 2022 do June 30, 2024, je ugotovila približno 270 milijonov zastrupljenih zapisov prenosov, usmerjenih na 17 milijonov naslovov.
Zapisi so spadali v tri kategorije:
- 147.7 milijona prenosov z ničelno vrednostjo.
- 118.4 milijona prenosov ponarejenih žetonov.
- 4.0 milijona zelo majhnih prenosov.
To so bili zapisi prenosov v približno 18.2 milijona transakcij, saj lahko napadalci združijo več zapisov. Ciljni naslovi niso isto kot ljudje, ogrožene denarnice ali žrtve, ki so izgubile denar.
Analiza je odkrila 6,633 uspešnih nakazil napadalcem v skupni vrednosti najmanj $83.8 milijona. Nekatere žrtve so plačale večkrat. Odkrivanje se je osredotočilo na izbrane stabilne kovance, zato je ocena izgub spodnja meja znotraj tega obsega, ne skupna vrednost za vse žetone ali verige.
Praktični pomen je, da preverjanje zgolj ničelnih zneskov spregleda znaten del napadov. Ponarejeni zapisi lahko posnemajo pomembna plačila, zelo majhen vhodni prenos pa lahko premakne resnične žetone in hkrati vnese nevaren naslov.
Kako preveriti svoj konkretni zapis
- Odprite transakcijo v pravem omrežju. Uporabite možnost raziskovalnika v denarnici ali znan raziskovalnik, kot sta Etherscan ali BscScan. Preverite stanje transakcije. Za branje javnih podrobnosti transakcije ni treba povezati denarnice, odobriti žetonov, podpisati sporočila ali vnesti obnovitvene fraze.
- Ugotovite dejansko sredstvo. Razlikujte domači ETH ali BNB od žetona s tem imenom. Pri žetonih preverite točno omrežje in pogodbo, ki je oddala dogodek, glede na zaupanja vreden vir izdajatelja.
- Preberite količino s polno natančnostjo. Ločite količino žetonov od domače vrednosti transakcije in ocene v običajni valuti.
- Ločite pošiljatelja transakcije od pošiljatelja dogodka. Pri pametnem računu preverite tudi operacijo denarnice in dovoljenja. To, da nekdo drug plača plin, ne dokazuje, da se vaša sredstva niso premaknila.
- Preglejte celotno transakcijo. Oglejte si vse premike žetonov, prenose domačih kovancev in pomembne spremembe dovoljenj. Če raziskovalnik prikazuje spremembe stanja na ravni transakcije, z njimi uskladite rezultat. Današnje nespremenjeno stanje je šibkejši dokaz: kasnejši pologi ali izravnalni prenosi lahko zakrijejo prejšnje premike.
- Neodvisno preverite cilj. Uporabite zaupanja vredne podatke za plačilo prejemnika ali predhodno preverjen vnos v imeniku naslovov. Nedavna vrstica v zgodovini je dokaz, ki ga je treba preveriti, ne potrdilo pravilnega cilja.
Če raziskovalnik rezultata ne razjasni, uradni podpori ponudnika denarnice posredujte omrežje in javno zgoščeno vrednost transakcije. Opišite pričakovano dejanje, če je obstajalo. Ti podatki pomagajo ločiti neznano, a nameravano operacijo od nepojasnjene porabe brez razkritja skrivnosti, ki upravljajo vašo denarnico.
Kaj storiti po preverjanju
Če ste našli le osamljen zapis zastrupljanja
Skrijte ali prijavite neželeno vsebino, če denarnica to omogoča, in ne uporabljajte njenih naslovov. Skrivanje vrstice spremeni vmesnik, ne izbriše zgodovine verige blokov ali prekliče dovoljenj.
Prenos nič žetonov je mogoč ob dovoljenju nič, zato zapis sam ni razlog za preklic vseh odobritev ali prenos vseh sredstev. S tem zapisom morda sploh ni povezano dovoljenje za porabo, ki bi ga lahko odstranili. Nikoli ne uporabljajte oglaševanega spletnega mesta žetona ali povezave neznanca za »čiščenje« denarnice.
Če ste našli sumljivo dovoljenje za porabo
Po zaupanja vredni poti za upravljanje odobritev v denarnici preglejte in prekličite ustrezno dovoljenje. Odklop spletnega mesta od denarnice ne prekliče obstoječih odobritev žetonov v verigi. Preklic odpravi to dovoljenje, ne more pa popraviti ukradenega zasebnega ključa.
Če so se pristna sredstva premaknila brez vašega namena
Shranite zgoščeno vrednost transakcije, omrežje, prizadeto sredstvo in pomembne naslove. Preglejte nedavne podpise, odobritve in operacije denarnice po uradnih podpornih kanalih.
Če obstajajo dokazi, da sta vaša obnovitvena fraza ali zasebni ključ razkrita, na zaupanja vredni napravi ustvarite novo denarnico z novo obnovitveno frazo in skrbno načrtujte prenos preostalih sredstev. Drug račun, izpeljan iz ogrožene fraze, ne odpravi razkritja. Če sredstva samodejno izginjajo, ne dodajajte vedno znova denarja za plin: lahko ga pobere samodejni izpraznjevalnik.
Če ste plačilo zavestno podpisali, a kopirali zastrupljen ciljni naslov, zabeležite to razliko. Plačilo je lahko pravilno podpisano in izvedeno, čeprav je šlo napačnemu prejemniku. To samo po sebi ne dokazuje kraje vašega zasebnega ključa.
Pogosta vprašanja o neznanih transakcijah
Ali je napadalec povzročil, da sem plačal plin?
Pri običajnem zastrupljanju naslovov napadalec odda transakcijo in plača omrežno pristojbino. Zgolj navedba vašega naslova v dogodku žetona ne bremeni vašega računa. Toda sponzorirane transakcije in pametni računi pomenijo, da plačnik pristojbine sam ne dokazuje neškodljivosti operacije. Preverite dejanske učinke.
Kaj če transakcija ni uspela?
Razveljavljen prenos žetonov tega prenosa ni dokončal, čeprav je plin lahko še vedno zaračunan. Če denarnica uporablja delegiranje računa, to preverite posebej: Ethereum lahko ohrani delegiranje, tudi če poznejša izvedba ne uspe. Neznano delegiranje zahteva pregled.
Ali bi strojna denarnica preprečila zastrupljanje naslovov?
Omogoča dodatno preverjanje cilja pred podpisom. Če ga odobrite, pa ne more spremeniti naslova pod nadzorom napadalca v pravilnega. Primerjajte celoten naslov na zaupanja vrednem zaslonu za podpisovanje z neodvisno preverjenimi podatki prejemnika.
Ali lahko neznancem preprečim dodajanje teh zapisov?
Tretjim osebam praviloma ne morete preprečiti pošiljanja sredstev ali ustvarjanja ustreznih zapisov, povezanih z javnim naslovom. Filtri v denarnici in raziskovalniku lahko zmanjšajo število prikazanih zapisov. Shranite preverjene prejemnike in pred plačilom preverite celoten ciljni naslov; zgolj skrivanje zapisov z ničelno vrednostjo ne odkrije vseh različic s ponarejenimi žetoni ali majhnimi prenosi.
