Gap Limit ограничивает число последовательных неиспользованных адресов при поиске в детерминированной ветви. Он ограничивает поиск истории, а не количество выводимых ключей; превышение само по себе не означает криптографической потери средств.
Использованный адрес прерывает неиспользованную последовательность и сбрасывает счётчик. Пример с лимитом 20: у индекса 0 есть история, у индексов 1–20 её нет, поэтому сканирование остановится перед индексом 21 и может пропустить платёж там. Это не максимум двадцати адресов во всём кошельке. [BIP 44 — Account discovery and address gap limit]
BIP 44 задаёт Address gap limit 20 для поиска во внешней принимающей ветви. При создании адреса за этой границей программа должна предупреждать. Это конкретное соглашение о восстановлении, а не правило консенсуса или обязательная настройка каждого кошелька; другие системы могут использовать иные диапазоны. [BIP 44 — Account discovery and address gap limit]
BIP 44 ищет историю транзакций, а не положительный баланс. Адрес, получивший средства и затем потративший всё, остаётся использованным. Приравнивание пустого баланса к неиспользованному адресу могло бы преждевременно остановить поиск и пропустить последующие платежи. [BIP 44 — Account discovery and address gap limit]
BIP 44 начинает со счёта 0 и проверяет его внешнюю ветвь; при наличии истории переходит к следующему счёту. change=0 принимает платежи, change=1 получает собственную сдачу. Первый счёт без истории останавливает обнаружение счетов, поэтому стандарт ограничивает создание пропущенных пустых счетов. Лимит одной ветви не является общим счётчиком всех счетов. [BIP 44 — Account discovery and address gap limit]
Electrum FAQ прямо предупреждает, что адреса, созданные за Gap Limit, могут не обнаружиться автоматически при обычном восстановлении из seed. Документированные способы исправления — больший лимит или вывод дополнительных адресов до использованной позиции. Указанное в FAQ значение 20 по умолчанию относится к Electrum 2.0; здесь оно не выдаётся за настройку всех современных кошельков. [Electrum FAQ — Gap limit and generated addresses]
RPC importdescriptors в Bitcoin Core 29.0 различает range, next_index и timestamp. Диапазон выводимых индексов — не правило остановки после неиспользованных адресов; next_index задаёт следующий создаваемый индекс. timestamp задаёт начало сканирования. now не заменяет полного восстановления истории; документация также включает блоки до двух часов перед самым ранним timestamp и Mempool. Правильного диапазона без подходящей сканируемой истории поэтому недостаточно. [Bitcoin Core 29.0 — importdescriptors RPC]
BIP 32 выводит ключи детерминированно, но поиск должен начинаться с правильного кошелька, счёта, пути деривации и типа скрипта. Больший Gap Limit не исправит другой seed или отличающуюся passphrase. Сам xpub также не выводит потомков hardened; расширение сканирования не заменит отсутствующей возможности деривации. [BIP 32 — Hierarchical Deterministic Wallets] [BIP 39 — From mnemonic to seed]
Более широкий поиск означает больше выводимых адресов и запросов и может раскрыть удалённому серверу дополнительные связи кошелька. Восстановление проверяют по известным адресам и транзакциям, включая уже потраченные поступления. Расширенный поиск не меняет блокчейн и не перемещает монеты; успех зависит также от правильных исходных данных и доступной истории. [BIP 44 — Account discovery and address gap limit] [Electrum FAQ — Gap limit and generated addresses] [BIP 32 — Hierarchical Deterministic Wallets]
Для полной картины прочитайте эту статью вместе с HD Wallet, Derivation Path, Extended Public Key (xpub), Output Descriptor, Выход сдачи. На эту статью также ссылаются HD Wallet, Derivation Path.