143 / 691GAP

Gap Limit

Лимит последовательных неиспользованных адресов

Gap Limit определяет, когда кошелёк при восстановлении перестаёт искать новые адреса. Платёж за длинной цепочкой неиспользованных адресов может остаться невидимым при стандартном сканировании.

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.

DOC · 001BIP 44 — Account discovery and address gap limitСпецификация ↗DOC · 002Electrum FAQ — Gap limit and generated addressesДокументация ↗DOC · 003Bitcoin Core 29.0 — importdescriptors RPCДокументация ↗DOC · 004BIP 32 — Hierarchical Deterministic WalletsСпецификация ↗DOC · 005BIP 39 — From mnemonic to seedСпецификация ↗
Сначала источники · Не является инвестиционной рекомендацией