NFT безопасност
Дрейнъри, фалшиви минт сайтове, setApprovalForAll - как хората губят NFT-тата си.
Думите с точица са обяснени - посочи ги или ги цъкни. Някои ключови думи са и линкове към урока си - можеш да го отвориш директно, ако искаш.
Измамниците с дрейнър скриптове много обичат NFT пространството. Дрейнърът е злонамерен код на фалшив сайт, който ти източва целия wallet с един-два подписа. Не е нужно да си дал seed фразата си, стига да натиснеш „Confirm“ на грешното място.
Затова NFT безопасността има отделна страница. Тук транзакциите са по-сложни, подписите са повече, а измамниците виждат on-chain какво държиш и знаят точно какво да поискат. Общите правила са в крипто безопасността и при NFT важат с двойна сила.
Как работи един дрейнър
Дрейнърите се продават като готова услуга - измамникът получава копие на сайт и скрипт, който вижда какво държиш, щом свържеш wallet-а си, и ти дава да подпишеш първо най-ценното. Методът почти винаги е един от тези три:
- Апрув за цяла колекция - setApprovalForAll
- Подпис извън блокчейна - Seaport, permit и подобни
- Директна транзакция, която прехвърля активите ти, но е маскирана като „mint“ или „claim“
setApprovalForAll - ключът за цялата колекция
Това е функция в NFT стандартите ERC-721 и ERC-1155, с която даваш на някой адрес право да прехвърля всички твои NFT-та от дадена колекция (и сегашните, и бъдещите), докато не му отнемеш правото.
Маркетплейсите имат нужда от него, понеже така прехвърлят NFT-то ти на купувача, когато някой купи обявата ти. Затова при първия листинг от дадена колекция ще видиш такава заявка. На официалния маркетплейс това е нормално, но ако си влязъл в сайт за „минт“ или „клейм“ и той ти поиска това, значи искат да те оберат и чакат само да кликнеш.
Wallet-ът обикновено го показва с текст от типа „дай достъп до всички твои [колекция]“. Минтът никога не иска достъп до NFT-та, които вече имаш.
Подписът може да е толкова опасен, колкото транзакцията
Тук губят дори опитни хора, понеже си мислят „само подписах съобщение, не съм платил газ“.
Някои подписи извън блокчейна са просто вход в сайт - текст, който доказва, че wallet-ът е твой. Други обаче са пълномощно, тоест подписан документ, който някой друг може да изпрати в блокчейна по-късно, без повече да те пита.
- Seaport подпис - така се правят обявите в OpenSea, подписваш „продавам тези NFT-та на тази цена“. Фалшивият сайт ти дава да подпишеш поръчка, с която продаваш ценните си NFT-та за почти нищо. Ако вече имаш апрув към маркетплейса за тази колекция (а го имаш, щом някога си листвал от нея), поръчката може да се изпълни веднага.
- Permit подписи - същото, но за токени. С един подпис разрешаваш на някого да харчи токените ти, без да правиш отделна транзакция.
- PSBT при Bitcoin Ordinals - обявите там също са подписи. Фалшив сайт може да ти даде PSBT, който на практика продава инскрипциите ти за нищо.
- Solana - дрейнърите обикновено ти дават транзакция, маскирана като минт или клейм, която прехвърля всичко наведнъж.
Моето правило е: ако в подписа има твои активи, цени, адреси или думи като „order“, „permit“, „approve“, четеш го все едно е транзакция с парите ти. Ако wallet-ът показва само неразбираем низ от символи (blind signing), не подписваш. Новите wallet-и (Rabby, Phantom, MetaMask и др.) показват симулация на това какво ще излезе от wallet-а ти - гледай я всеки път.
Фалшиви минт сайтове и хакнати акаунти
- Копия на сайтове - класически фишинг, домейн с една буква разлика и същият дизайн. Често излизат като реклама над истинския резултат в Google.
- Хакнати Discord сървъри - хакнат модератор или бот публикува „surprise mint само за холдъри, 30 минути“. Изглежда официално, понеже е в официалния канал.
- Хакнати X акаунти - на проекта, на основателя, дори на известни личности. Пускат пост с линк за „airdrop“ или „mint“, често с ограничени отговори, за да не може никой да предупреди другите.
- Линкове в коментарите - под официалните постове на проекта веднага се появяват акаунти с почти същото име с „mint линк“. Официалният линк никога не е в коментар от друг акаунт.
- Фалшив „support“ - пише ти пръв в DM, „помага“ ти с някакъв проблем и те праща да „верифицираш“ wallet-а си. Истинският support никога не ти пише пръв.
- Фалшиви „verify“ ботове в Discord, които искат да свържеш wallet, за да влезеш в сървъра.
Защитата е скучна, но работи - bookmark на сайтовете, които ползваш, линкове само ако съвпадат в поне два официални източника, и съмнение към всичко, което има таймер. Измамниците винаги те карат да бързаш, повече за номерата им има в как да разпознаеш измама.
Спам NFT-та и „free mint“ примамки
В wallet-а ти се появява NFT, което не си купувал - „Честито, спечели 5 000 USDC, claim на сайт.xyz“. Или „free mint“ на колекция, за която никой не е чувал. И двете са примамка.
- Не отваряй линка от NFT-то и не се опитвай да го продадеш или изгориш през непознат сайт.
- Скрий го - повечето wallet-и и маркетплейси имат раздел за скрити или спам NFT-та.
- Самото NFT в wallet-а ти не може да ти вземе нищо, опасно е само това, което подпишеш заради него.
Истинският free mint е транзакция, в която плащаш само газ и получаваш NFT. Ако „безплатният“ минт иска апрув или подпис за активите ти, той не е безплатен. Как изглежда един нормален минт, виж в минт стратегиите.
Vault wallet за ценните NFT-та
Дръж ценните NFT-та в отделен vault wallet (най-добре на hardware wallet), който никога не свързваш към минт сайтове, клейм страници или нови проекти. Минтваш и пробваш нови неща от отделен hot wallet с малко пари, а когато нещо стане ценно, го местиш в сейфа. Подробно за разделянето има в hot и cold wallet.
Имай предвид, че hardware wallet-ът пази само ключовете ти, а не те пази от грешни решения. Ако с него подпишеш злонамерен апрув, губиш точно толкова. Някои проекти поддържат делегиране (примерно delegate.xyz) - от hot wallet-а доказваш, че притежаваш NFT-то в сейфа, без сейфът да се свързва никъде.
Revoke на старите апруви
Всеки апрув, който някога си дал, си остава активен, докато не го отнемеш. Ако маркетплейс, който вече не ползваш, или някой проект бъде хакнат година по-късно, старият апрув е отворена врата към NFT-тата ти.
- На EVM мрежите - Revoke.cash или token approval checker-ът в експлоръра (Etherscan има такъв). Прегледай всички апруви и отнеми тези, които не ти трябват. Revoke-ът е транзакция и плащаш газ, но си струва.
- Ако подозираш, че си подписал злонамерен Seaport подпис - отнеми апрува към маркетплейса за съответните колекции (без него поръчката не може да се изпълни) и премести NFT-тата в нов, чист wallet.
- Ако seed фразата ти е изтекла, revoke-ът не помага - създай нов wallet и премести всичко веднага.
Преди всеки подпис се питай едно нещо - какво точно ще излезе от wallet-а ми, ако това се изпълни? Ако не знаеш отговора, не подписвай.
Свързани уроци
Без сигнали и без обещания за печалба. Какво никога няма да направя