Отчёт о коллизии путей при резервном копировании кошелька XMR|Цена откатилась к $550|Сначала сохраните приватные ключи, а потом ловите падающий нож
Моя позиция — наблюдать со стороны: не трактовать сообщение об ошибке в коде как прямое свидетельство кражи средств из блокчейна и не покупать на падении лишь потому, что «у приватных монет есть своя история». 10 ноября в официальном репозитории Monero на GitHub появился issue
#11727 . Автор сообщения воспроизвёл на Linux с одноразовым кошельком определённую коллизию путей в wallet2::store_to(): если путь к целевому файлу ключей совпадает с путём к исходному файлу кэша, функция может вернуть успешный результат, однако после миграции целевой файл ключей уже оказывается очищен, и открыть кошелёк заново, располагая только файлами, полученными в результате миграции, невозможно. Сейчас на странице по-прежнему стоит статус Open, ответственный не назначен, связанного запроса на слияние с исправлением нет. Речь идёт о воспроизводимом сценарии, описанном в публичном сообщении; это не означает, что все кошельки Monero теряют ключи, и тем более не позволяет утверждать, что уже произошла масштабная кража монет.
Эта проблема касается дисциплины самостоятельного хранения средств. При делистинге на бирже, переносе кошелька или создании резервной копии на другом устройстве многие проверяют только сообщение «сохранение выполнено», но не тестируют восстановление офлайн. Если мнемоническая фраза и резервная копия ключей Monero не прошли независимую проверку, при совпадении путей к файлам, случайном удалении или поломке устройства даже хорошая ликвидность не вернёт доступ к средствам. Я бы сохранил исходный кошелёк и сид-фразу, провёл тестовое восстановление небольшой суммы с помощью официального ПО в новой пустой папке, сверил адрес и только после этого переносил средства; старые файлы до проверки резервной копии удалять не стал бы. Эта рекомендация по порядку действий — вывод из анализа рисков, связанных с описанным сценарием, а не официальная инструкция по исправлению проблемы.
Важно также отделять реакцию рынка от причин произошедшего. Котировка XMR/USD на Kraken составляет около $550,24; наблюдаемый диапазон за 24 часа — $535–588,30, цена открытия — примерно $582,10. Цена заметно снизилась, но открытых данных недостаточно, чтобы доказать, что падение вызвано этим issue. $535 — нижняя граница диапазона, $550 — ближайший уровень борьбы покупателей и продавцов, а $583–588 — зона сопротивления, которую цене нужно вновь преодолеть и удержать для отскока. Если цена пробьёт $535 вниз и не сможет вернуться выше при отскоке, я сочту, что краткосрочная поддержка не устояла и мой сценарий опровергнут. Если же цена вновь закрепится выше $583 при сохранении глубины рынка, тогда можно будет говорить о восстановлении склонности к риску.
Если бы я торговал сам: сейчас я бы не входил в рынок, оставаясь вне позиции и наблюдая; планируемый размер позиции — 0%. Рассматривать покупку я бы стал только в том случае, если спотовая цена снова поднимется выше $583, удержится при ретесте, а спред в стакане останется нормальным. Тогда можно было бы попробовать открыть длинную позицию объёмом не более 2% от общего капитала. Около $588 я бы сначала закрыл половину позиции; если цена затем закрепится выше $588, следующей целью стали бы $600, а оставшуюся позицию я бы защищал скользящим стоп-лоссом. Если после входа цена опустится ниже $570 — закрыть позицию по стоп-лоссу. Если возникнут проблемы с восстановлением кошелька, резко сократится ликвидность или официальное заявление проекта изменит оценку риска — закрыть позицию независимо от прибыли или убытка. Нет сигнала — нет сделки, а значит, нет и прибыли, которую можно было бы проанализировать. Для приватных активов возможность восстановить доступ к ключам и достаточная глубина рынка для выхода из позиции всегда важнее попыток угадать следующую свечу.
Источники: issue
#11727 в Monero GitHub; публичная котировка XMR/USD на Kraken (13 ноября, около 06:12 по пекинскому времени). #XMR
Всё вышеизложенное — лишь моё личное наблюдение за рынком и не является инвестиционной рекомендацией.