Как работает этот "механизм нулевых переводов" . Хакер получает доступ к устройству, и может просто плодить шаблоны транзакций стоимостью и ценностью в 0, и такие транзакции улетают без какого-либо подтверждения? Или как? Правильно ли я понял, что жертва уже была взломана и хакеру нужно было лишь чтобы жертва подписала транзакцию?
А защита от подобного - иметь нужные адреса в адресной книге и выбирать отправку только из книги? (но это не 100% защита, адресную книгу наверно можно и модернизировать) Увидев нулевые транзакции, начать шерстить комп на наличие вирусни, и только через время начать делать транзакции, и то проведя какую-нибудь мелочь для теста?
Доступа к устройствам жертвы даже не нужны. С помощью функции transferFrom (даже не сказать "хакер", скорее хитрожопый гад, так как никого взлома тут нет), инициирует транзакцию с нулевым количеством токенов от имени жертвы на поддельный адрес.
Такая транзакция не требует подтверждения и отображается в истории операций жертвы.
Как уже написал jokers10, жертва видит у себя в истории транзакций переводы похожие на реальные и по ним делает свой перевод.