BIP-44 (Bitcoin Improvement Proposal 44) дополняет BIP-32 стандартной структурой пути, благодаря которой из одной seed-фразы получаются кошельки для разных монет, несколько счетов для каждой монеты и отдельные цепочки адресов для приёма и для сдачи. Именно поэтому одна мнемоническая фраза из 12 слов может хранить BTC, ETH, LTC и десятки других монет под одной резервной копией.

Путь из пяти уровней

BIP-44 задаёт путь в виде m / purpose' / coin_type' / account' / change / address_index:

  • purpose — для BIP-44 всегда 44' (более поздние стандарты используют 49', 84' и 86' для вариантов SegWit и Taproot);
  • coin_type — 0' для Bitcoin, 60' для Ethereum, 145' для Bitcoin Cash; значения регистрируются в SLIP-44;
  • account — 0' для первого счёта, 1' для второго и так далее;
  • change — 0 для адресов приёма, 1 для адресов сдачи;
  • address_index — 0, 1, 2… для каждого следующего адреса в счёте.

Поэтому первый адрес приёма в Bitcoin обычно находится по пути m/44'/0'/0'/0/0, а первый адрес Ethereum — по m/44'/60'/0'/0/0.

Почему это важно на практике

Три практических следствия.

Первое: разные кошельки по-разному нумеруют адреса Ethereum. MetaMask создаёт новые адреса, увеличивая последний индекс (m/44'/60'/0'/0/n), а Ledger Live — увеличивая номер счёта (m/44'/60'/n'/0/0). Поэтому, если ввести мнемоническую фразу из MetaMask в Ledger Live, первый адрес совпадёт, а следующие — нет. Многие обращения в поддержку из серии «куда делись мои деньги» на деле оказываются именно расхождением путей.

Второе: SegWit в Bitcoin (BIP-49, SegWit в обёртке P2SH) и нативный SegWit (BIP-84, адреса bech32) используют разные значения purpose. Кошелёк, восстановленный как «BIP-44 Bitcoin», покажет другие балансы, чем восстановленный как «BIP-84 Bitcoin», даже из одной и той же мнемонической фразы.

Третье: реестр coin_type (SLIP-44) неполон. Новые сети иногда используют тот же coin_type, что и совсем другая сеть (Polygon годами использовал 60' от Ethereum). В итоге кошелёк Polygon и кошелёк Ethereum, выведенные из одной seed-фразы, буквально используют одни и те же приватные ключи. Это не ошибка, а особенность, но для многих она становится сюрпризом.

Где вы столкнётесь с путём

Аппаратные кошельки показывают путь при восстановлении: Trezor Suite предложит «Standard» (BIP-44), «Native SegWit» (BIP-84) и «Taproot» (BIP-86). Выберите тот же вариант, что и в исходном кошельке, — и адреса вернутся. Выберете другой — адреса будут вполне корректными, просто другими, и с нулевым балансом.

Дополнительное чтение: BIP-32, BIP-39, Путь деривации.