Проблема с кошельком Coinomi для ZEC – Новое исследование!

Ко мне обратился давний Zcash’er с проблемой поддержки Zcash кошельком Coinomi.

Данный кошелёк один из первых добавил прозрачный Zcash в ноябре 2016 года.

Но в процессе они не обновлялись и сейчас на форуме можно найти множество тем, в которых данная проблема упоминалась.

Описание:
“часть (прим. монет) была на кошельке Coinomi, а они перестали поддерживать обновления и монеты подвисли. Есть сид фраза, но пока не могу найти решение по импорту.”

Seed представлял собой 18 слов.

ПРЕДЛОЖЕННОЕ РЕШЕНИЕ

Такой можно применить в YWallet и Zingo! и они его нормально примут.

Но есть нюансы, если адресов было больше чем один.

YWallet при синхронизации считает только заглавные адреса дерева адресов, поэтому если адресов было несколько, то сразу рассматриваем Zingo, иначе баланс будет меньше ожидаемого.

На Zingo потребуется два раза провести синхронизацию: начальную и рескан после восстановления всех адресов путём создания. Адреса будут созданы один в один, потому что Seed-фраза всегда восстановит одно и только одно дерево адресов по цепочке. После того, как адреса буду добавлены нужно сделать рескан.

Но в рассматриваемом случае первый адрес был пустой, а адресов было больше чем два. Я не учёл этот момент и добавление нескольких затоши на каждый новый адрес, позволило бы зафиксировать восстановленное дерево перед ресканированием.

Поскольку я забыл это сообщить, ресканирование не привело к ожидаемому результату.

РЕШЕНИЕ КОТОРОЕ ПОМОГЛО

Цитирую:
"Решение - использовать кошелек Guarda, это просто находка из находок оказалась.

Я перепробовал и перечитал почти все, оставалось лишь Zecwallet FullNode и ZcasHD

Все кошельки (которые я пробовал) видели лишь один из адресов и сканировали только его, вероятно это был первый адрес. Zingo сутки сканировал, но все равно вокруг лишь одного из адресов (на котором не было баланса). Также я не нашел где можно сделать импорт по privat key. В основном по mnemonic.

Когда я вводил private key, везде выдавалось ошибку - Invalid key. Я даже засомневался в актуальности своих private key, так как у меня изначально была лишь seed фраза и ключи я получал из нее, через iancoleman.io

Успокаивало лишь то, что в iancoleman.io я видел все свои адреса (19 шт) по seed фразе. И не было понятно, почему другие кошельки не видят так же.

В Guarda я просто ввел свой private key и за секунду получил свой баланс, затем проделал это для второго кошелька."

:tada:

PS
Делитесь своими кейсами, если столкнулись с проблемами восстановления.

Yes, YWallet detects only the main addresses when restoring, but it has options to add the other addresses as sub-accounts or to sweep the funds using the private key.

https://ywallet.app/faq/#funds

1 Like

Hello @Shawn!

I was approached by a user on Youtube with a request to solve a problem with Coinomi wallet. I offered him to describe the problem on the forum. Since it was a new user (Vlad1), he posted his question in this thread. And I saw that the question was here, but now it is not, and the user was blocked. I didn’t even take the time to respond, and now I have a perfectly fair complaint about discrimination in the community. What are our forum regulations now for new users?

@artkor This looks like it was flagged as spam by mistake. Since it was a 10 months later reply the (very bad) Russian translator made it sound like an advertisement.

I can restore the post but am unable to restore the account. Please tell your friend to re-make the account with my apologies.

1 Like

Thank you, Shawn! Please restore the question, I’d to answer it. The problem seems to be widespread.

Question from Vlad1:

Давно было открыто 2 кошелька в одном Coinomi на монету ZEC. Практически каждый день на них присутствуют по одной входящей транзакции. и редко исходящие транзакции. В один момент Coinomi стал выдавать ошибку при попытке осуществить исходящую транзакцию. При помощи iancoleman.io были экспортированы ключи и кошельки перенесены в программный SafePal. Какое то время все было нормально. Потом также начала вылазить ошибка. Чисто случайно я попробовал сделать перевод указав меньшее количество монет. И она прошла. В итоге начал отправлять 20+20+10 . Больше 20 кошелек выдавал ошибку. Так опять продолжалось не которое время. И вот уменьшение суммы вплоть до 5 монет перестало помогать , кошелек упорно выдает ошибку
“-26:66:tx unpaid action limit exceeded” Также перепробовав несколько кошельков с желанием восстановить по приватному ключу, получал что приватный ключ неправильный. Бинго!!! Увидел эту тему. В Guard восстановление обоих кошельков по моему приватному ключу прошли успешно. Но… Опять вначале я не мог перевести за раз больше 20 монет и по мере опустошения кошелька стало максимум 15, потом 14, 10 . Больше за раз выдавал ошибку. Пробовал менять комсу, не помогло. Когда осталось в кошельке 5 с хвостиком монеты, получилось вывести с него до ноля. В итоге так и не понял с чем связанна проблема.

1 Like

Данный вопрос изначально был задан подписчиком канала @prozcash.

К сожалению, боты наводнили все наши ресурсы. Это стало проблемой, в том числе для регистрации новых пользователей форума. Автоматизированные системы борьбы с ботами стали очень суровыми. Vlad1 (человек, который задал вопрос) больше не может зарегистрировать новую учётную запись из-за бана по IP.

Но я постараюсь ответить на его вопрос, насколько мне хватит технических знаний.

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ о возникновении данной ошибки на старых кошельках.

Ошибка, которую он получает на кошельке “-26:66:tx unpaid action limit exceeded” достаточно свежая. Появилась она в старых кошельках в середине 2023 года после того, как в протокол было внесено предложение ZIP-317, направленное на борьбу со спам-атакой на блокчейн, в результате которой он сильно увеличивался в размерах, а мемпул был постоянно наводнён злоумышленными дешёвыми транзакциями.

Данное предложение вводит изменения в структуру комиссий для транзакций, чтобы ограничить количество мелких транзакций с низкими комиссиями, которые злоумышленники могут использовать для перегрузки сети (спам-атаки). Основная цель этого ZIP — повысить устойчивость сети к подобным атакам и улучшить её безопасность и производительность.

Побочным явлением внедрения данного предложения стало то, что у пользователей, которые занимаются майнингом Zcash продолжительное время начала появляться данная ошибка на старых кошельках. На практике, прозрачный адрес, предназначенный для поступления выплат от майнинг-пула имеет множество входящих TX, которые кошелёк пытается объединить для одной исходящей транзакции с обычным значением комиссии. Узел возвращает данную ошибку, потому что в соответствие с новыми требованиями протокола, комиссия за такую транзакцию должна быть несколько выше той, которую отправляет кошелёк. Кошелёк не знаком с данным требованием и просто не в состоянии рассчитать необходимую комиссию в автоматическом режиме.

Разработчики старых кошельков, особенно те, которые до сих пор не поддерживают функционал экранированных транзакций, не обновляют свои приложения и не адаптируют их под изменения протокола Zcash, архитектура которых больше напоминает дизайн обработки транзакций в сети Bitcoin. В частности, решением данной проблемы является автоматическое повышение платы за транзакцию с прозрачны

Поэтому главная рекомендация для того, чтобы не сталкиваться с ошибками является использование актуальных рекомендованных кошельков для Zcash, опубликованных на официальном сайте протокола: https://z.cash/ecosystem/?wallets=#tag-wallets

Возможные пути решения и ТЕОРЕТИЧЕСКАЯ ЧАСТЬ по восстановлению

Итак, решение данной проблемы заключается в миграции на актуальный кошелёк. Но на практике пользователь столкнётся с первичным ограничением выбора нового актуального кошелька, потому что не все кошельки в списке поддерживают старые методы резервирования.

  1. Одним из вариантов выхода из ситуации является адаптация старого метода резервирования с помощью указанного в начале темы сервиса iancoleman.io.

Сервис iancoleman.io представляет собой инструмент для работы с мнемоническими фразами (seed-фразами) и ключами криптовалютных кошельков. Он позволяет конвертировать мнемонические фразы в приватные ключи, публичные ключи и адреса для различных криптовалют. Это может быть полезно при миграции между кошельками или восстановлении доступа к вашим средствам.

:warning: Важно: при использовании таких сервисов будьте крайне осторожны, поскольку ввод seed-фразы на внешних сайтах может быть небезопасным, если сайт скомпрометирован.

  1. Другим вариантом будет использовать для восстановления доступа кошельки Zingo или YWallet, поскольку на текущий момент они имеют наиболее широкие возможности для восстановления по старым методам резервирования.

На практике, многие сталкиваются с ситуацией, что при первом сканировании данные кошельки будут сканировать лишь первые прозрачные адреса в дереве адресов. Старые кошельки для Zcash имеют максимально приближенную к Bitcoin схему синхронизации UTXO. То есть в целях повышения анонимности пользователя при каждой новой транзакции, кошелёк направлял выход остатков на новый чистый адрес. А значит ваш баланс может быть на достаточно «глубоком» адресе генерируемого подмножества, что особенно актуально для кошельков, обрабатывающих майнерские выплаты.

В Zcash разработчики актуальных кошельков делают акцент на работе с защищёнными адресами, которые итак не публичны, а значит нет необходимости генерировать новый адрес при каждой новой транзакции. Поэтому, несмотря на то что и Zingo и YWallet смогут принять ваш Seed, они вряд ли просканируют ваш баланс без особых настроек.

ПРАКТИЧЕСКАЯ ЧАСТЬ

Я предлагаю воспользоваться инструментом восстановления YWallet от @hanh, который есть в любом YWallet.

Оригинальная инструкция на английском языке: Sweep - YWallet

Инструкция для YWallet на мобильных устройствах:

  1. Установить YWallet: Installation - YWallet
  2. Создать аккаунт Zcash, надёжно зарезервировать фразу
  3. Перейти в меню в пункт “Sweep” в разделе “Tools”
  4. Заполнить данные:
  • в источнике (Source) нужно указать ваш Seed от множества адресов ИЛИ приватник от прозрачного адреса (в случае с Coinomi) - на скрине отмечено красными цифрами;
  • в назначении (Destination) либо выбрать пул, любой из трёх на вкладке. В таком случае средства будут перечислены на адрес нового аккаунта YWallet ИЛИ указать собственный адрес, к которому есть полноценный доступ (написано что окно формы появляется, если нет доступных адресов в действующем аккаунте) - на скрине отмечено бирюзовыми цифрами.
  • “GAP limit” - это сколько пустых адресов без активности может сгенерировать подряд кошелёк. Оставьте 40, это с избытком. Вообще стандарт из BIP-44 и BIP-32 - это 20 адресов.

:warning: Важно: Вы можете использовать данную функцию только для прозрачных адресов, и все доступные ZEC-активы будут собраны автоматически.

Инструкция для YWallet в десктопной версии:

Десктопная версия YWallet позволяет вам задействовать мощные ресурсы вашего ПК и в отличие от мобильной версии может работать в фоновом режиме.

SWEEP-форма заполняется примерно аналогично (нет выбора для экранированных адресов). Просто указываете приватник (seed-фразу) от прозрачных адресов и запускаете процесс.

Чтобы пункт меню “Sweep” появился на экране, в настройках меню “Settings” укажите режим кошелька “Mode” - “Advanced” (самая верхняя строчка) и примените настройку, нажав “OK” внизу экрана.

Этот инструмент помог уже многим людям восстановить свои активы.

1 Like