В дополнение к этому посту
Я был не прав. С помощью подписи можно списать средства/сделать апрув/подменить любую транзакцию
Узнал я об этом примерно две недели назад и пошел проверять как это устроено. Оказалось все просто:
• Сайт строит скам-транзакцию
• Далее отправляет ее на подпись как сообщение, а не как транзакцию
• Получает подписанную транзакцию, которую может отправить без вашего ведома
Я зашел на сайт, который занимается скам подписью и решил проверить как все это устроено.
Далее Гений-Ortomich сделал статью-разбор и даже оставил исходники, как именно это делается:
https://teletype.in/@ortomich/new_scam
Также добавлю кое-что от себя:
• Если вы попались на это — не спешите выкидывать свой кошелек. Скамеры не получают доступ к вашему аккаунту, они могут лишь отправить одну транзакцию и только в той сети, в которой было подписано сообщение.
— Если транзакция была на апрув NFT/ERC20 токена, то вы можете снять этот апрув(setApprovalForAll=false для NFT и approve=0 для ERC20)
— Если транзакция просто отправила эфир/ERC20/ERC721 — смиритесь с потерей и используйте аккаунт дальше.
Также повторю некоторые слова из статьи:
• Не стоит бояться всех подписей. Метамаск видимо автоматически умеет детектить такие сигнатурки, которые на самом деле содержат в себе поля от транзакции и уведомит вас специальным текстом.
Если вы делаете свой продукт, где используются подписи:
• Переходите на другой формат. Например EIP-712 или просто показывайте пользователю текст + nonce, а не хэш.
— Так сделали почти все популярные маркетплейсы(OpenSea, LooksRare), кроме x2y2
Кстати, вот канал автора статьи, на котором очень много highlevel-инфы по EVM(Вот и та самая реклама за 10$???)
Post #882
21.8K
tern.ceo 🧑🏻⚖️ Подключая кошелек к сайту: • Вы сообщаете сайту адрес вашего кошелька и даете право сайту открыть окно метамаску и предложить отправить/подписать транзакцию. НЕ без вашего ведома. Подписывая сообщение: • Вы отправляете сайту пруф, что Вы действительно владеете…
- 👍 81
- 😱 5
- ❤ 2
- 🤔 2
- 😢 2
- 😁 1
- 😈 1