Вчера вечером пост в X набрал более 50 тысяч просмотров: пользователь Solana накануне несколькими переводами отправил незнакомцам около 10 SOL, чтобы выручить их. На следующий день он захотел вывести остаток на свой счёт Coinbase, но, по его словам, используемый им торговый терминал автоматически выбрал в качестве получателя адрес из списка «Недавние». В итоге весь баланс снова ушёл тому же человеку. Тот до сих пор не ответил.

Я не могу проверить подробности этой истории, да и судить о человеческой стороне мне не стоит. Но с инженерной точки зрения тут есть о чём поговорить: выбирать «последнего получателя» по умолчанию — очень опасное решение. В голове у тебя «вывести средства», а подписываешь ты перевод на адрес из предыдущей транзакции. Блокчейн не знает о твоих намерениях — он видит только строку символов, которую ты подписал.

Вот как я сам обычно перевожу деньги:
1. Добавляю свои часто используемые адреса в адресную книгу и присваиваю им метки. При выводе выбираю адрес только из адресной книги и не пользуюсь списком «Недавние». На бирже включаю белый список адресов для вывода.
2. Сначала отправляю небольшую сумму. Убедившись, что она дошла, перевожу остаток. Дополнительная комиссия — это страховка от необратимой ошибки.
3. Перед подписью сверяю первые 6 и последние 6 символов адреса. При подмене адреса мошенники рассчитывают на то, что начало и конец будут похожи. Если проверить только первые несколько символов, считай, не проверил ничего.
4. В горячем кошельке храню только ту сумму, которой собираюсь пользоваться в ближайшее время. Держать весь баланс в терминале, где можно случайно нажать не туда, — само по себе рискованно.

Даже если переводишь деньги незнакомцу, чтобы выручить его, следуй пункту 2.