Bitcoin.com

Что такое закрытые ключи?

Личный ключ — это секретное число, с помощью которого вы управляете своими криптовалютами. Узнайте, как личные ключи связаны с семенными фразами и адресами, а также какую информацию можно безопасно передавать другим.

Последнее обновление
Опубликовано
Время чтения4 min read
Автор
Neil Author
Нил Велардо
Crypto content specialist since 2017; reviews iGaming platforms firsthand
Проверил
Graham Stone Author Image
Грэм Стоун
Journalism graduate covering Bitcoin and crypto since 2017
What are Private Keys?

A закрытый ключ — это секретное 256-битное число, которое подтверждает, что вы владеете определённым количеством криптовалюты, и даёт вам право распоряжаться ею. Ваш кошелёк использует это число для формирования цифровой подписи при каждой отправляемой вами транзакции, а сеть проверяет эту подпись перед принятием платежа.

Кто владеет закрытым ключом, тот и владеет средствами. Здесь нет ни счетов, ни логинов, ни проверки личности, ни службы поддержки, способной обойти математические законы.

Большинство людей никогда их не видят. Современные кошельки скрывают приватные ключи за фразой восстановления и незаметно генерируют тысячи таких ключей в фоновом режиме, в результате чего пять отдельных объектов — приватные ключи, фразы восстановления, публичные ключи, адреса кошельков и расширенные публичные ключи — стали использоваться так, как будто они одно и то же. Но это не так, и именно эти различия определяют, какие из них можно передать постороннему человеку.

Основные выводы

  • Частный ключ — это случайно сгенерированное 256-битное число. Всё остальное в вашем кошельке, включая открытые ключи и адреса биткоинов, выводится именно из него.
  • Вывод открытого ключа происходит в одном направлении. Открытый ключ вычисляется из закрытого ключа за доли миллисекунды, и обратного вычисления практически не существует.
  • Фраза восстановления находится на один уровень выше ваших закрытых ключей. В соответствии со стандартами BIP-39 и BIP-32 двенадцать или двадцать четыре слова формируют исходный сед, с помощью которого можно сгенерировать практически неограниченное дерево закрытых ключей.
  • Личный ключ, пароль кошелька и парольная фраза по стандарту BIP-39 — это три разных вещи, утери которых влекут за собой три разных последствия.
  • Расширенный открытый ключ (xpub) не позволяет тратить ваши средства, но раскрывает все адреса в ветке вашего кошелька, поэтому к нему следует относиться как к закрытому ключу.
  • Биткойн никогда не был взломан в результате того, что кто-то угадал закрытый ключ. Все крупные кражи, связанные с ключевыми материалами, происходили из-за слабой системы генерации случайных чисел, вредоносного ПО или обмана пользователя.
  • Данные Chainalysis показывают, что доля краж из личных кошельков выросла с 7,3 % от общей суммы похищенной криптовалюты в 2022 году до 44 % в 2024 году, что делает безопасность личных ключей основным источником убытков, а не сбои в работе протоколов.
  • Программы и сервисы, рекламирующие возможность поиска или восстановления утерянного закрытого ключа, за редким техническим исключением, являются либо мошенническими, либо содержат вредоносное ПО.

Что такое закрытый ключ?

Частный ключ — это число. Это не пароль, не файл и не сертификат. Это число длиной 256 бит, что соответствует 32 байтам данных.

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

115 792 089 237 316,195 423 570 985 008 687 907 852 837 564 279 074 904 382 605 163 141 518,161 494 337

Эта верхняя граница соответствует порядку эллиптической кривой secp256k1 — именно эту кривую использует Биткойн; она определена в Спецификация SEC 2, разработанная Группой по стандартам эффективной криптографии. Ключи, выходящие за пределы этого диапазона, являются недействительными, и программное обеспечение кошелька проверяет это, хотя вероятность случайного попадания за пределы диапазона настолько мала, что её можно игнорировать.

Все форматы, которые вы видите в кошельках, — это всего лишь способы отображения одного и того же числа. Шестнадцатеричный формат, формат импорта кошелька и фраза из двенадцати слов — это разные «одежды» одного и того же значения.

Из того факта, что закрытый ключ представляет собой всего лишь число, вытекают два следствия.

Во-первых, их никто не выдает. Здесь нет ни реестра, ни заявки, ни разрешения. Создание биткоин-кошелька сводится к выбору большого случайного числа, поэтому любой человек в любой точке мира, имеющий устройство, может его создать. Именно это свойство и делает Биткойн не требующий разрешения.

Во-вторых, само число и есть актив. Биткойн — это инструмент на предъявителя. Владение ключом означает владение стоимостью, точно так же, как владение банкнотой означает владение деньгами. Скопировав приватный ключ, вы не скопировали монеты, а создали второго человека, который может их тратить.

Как выглядит закрытый ключ?

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

ФорматПримерДлинаГде это можно увидеть
Исходные шестнадцатеричные данные0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D64 символаИнструменты разработчика, экраны экспорта ключей
WIF (без сжатия)5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ51 символ, начинается с цифры 5Старые бумажные кошельки, импорт данных из предыдущих версий
WIF (в сжатом виде)KwdMAjGmerYanjeui5SHS7JkmpZvVipYvB2LJGU1ZxJwYvP9861752 символа, начинается на букву K или LСтандартный экспорт с использованием одной ключевой фразы
Тестовая сеть WIFНачинается с цифры 9 или буквы cот 51 до 52 символовТолько для разработки и тестирования
Зашифровано по стандарту BIP-38Начинается с 6P58 символовБумажные кошельки, защищенные паролем

Формат импорта кошелька — это не отдельный ключ. Это то же самое 256-битное число, закодированное в формате Base58Check, к которому добавлены три элемента: байт префикса сети (0x80 для основной сети, 0xEF для тестовой сети), опциональный байт флага сжатия и четырёхбайтовая контрольная сумма, полученная в результате двойного хеширования по алгоритму SHA-256.

Именно эта контрольная сумма является практической причиной существования WIF. Достаточно ошибиться в одном символе в шестнадцатеричном ключе, чтобы получить другой, вполне действительный ключ, управляющий пустым кошельком. Если же ошибиться в одном символе в строке WIF, контрольная сумма не совпадёт, поэтому программа отклонит её и сообщит, что что-то не так. Код Base58 также исключает четыре символа, которые чаще всего путают на глаз: ноль, заглавную букву O, заглавную букву I и строчную букву l.

Ключ, начинающийся с 6P, не будет импортирован никуда без соответствующего пароля. Иногда люди находят старый бумажный кошелек, пытаются импортировать его содержимое и приходят к выводу, что средства пропали, хотя на самом деле ключ просто зашифрован.

Как генерируются закрытые ключи

Ваш кошелек запрашивает у операционной системы случайные данные, извлекает из них 256 бит и проверяет, находится ли полученное число в допустимом диапазоне. Вот и весь процесс.

Всё зависит от качества генерации случайных чисел. Криптографически безопасный генератор псевдослучайных чисел использует непредсказуемые физические источники, такие как аппаратные колебания тактовой частоты, тепловой шум и временные интервалы прерываний. Аппаратный кошелек, как правило, оснащён специальным генератором истинных случайных чисел, встроенным в его защищённый модуль.

Именно размер числового пространства обеспечивает эффективность этой системы. При длине ключа 256 бит существует примерно 1,16 × 10^77 возможных ключей — цифра, с которой в физическом мире нет ничего сопоставимого. Вероятность того, что два кошелька независимо друг от друга сгенерируют один и тот же ключ, в математическом смысле не равна нулю, но она настолько ниже всех других рисков, с которыми вы сталкиваетесь, что об этом никогда не стоит задумываться.

Эта защита действует только в том случае, если случайность является подлинной. Когда генератор случайных чисел выходит из строя, пространство ключей сокращается с 2^256 до того объёма, который генератор фактически способен произвести, и каждый ключ, когда-либо сгенерированный им, становится доступным для взлома методом перебора. Именно этот режим отказа лежит в основе практически всех новостей о «взломанных» биткойн-кошельках, и он подробно рассматривается ниже.

В результате две практики по-прежнему представляют реальную опасность.

  • «Мозговые» кошельки: Получение ключа путем хеширования запомненной парольной фразы. Злоумышленники заранее подготовили огромные словари хешированных фраз, включая целые книги и тексты песен, и автоматически просматривают полученные адреса. Любая парольная фраза, которую может запомнить человек, — это фраза, которую может угадать машина.
  • Домашняя случайность: Правильно выполненные броски кубиков являются безопасными, но почти всё остальное, что люди придумывают на ходу — включая временные метки, беспорядочное нажатие клавиш и функции генерации случайных чисел в универсальных языках программирования, — таковыми не является.

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

Что такое семенная фраза?

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

Стандарт, лежащий в его основе, — это BIP-39, опубликованный в 2013 году и в настоящее время практически повсеместно применяемый в сети Биткойн и других блокчейнах. Этот механизм объясняет ряд явлений, которые в противном случае выглядели бы как ошибки.

  1. Кошелек генерирует 128 бит энтропии для фразы из двенадцати слов или 256 бит — для фразы из двадцати четырёх слов.
  2. К ней добавляется контрольная сумма: четыре бита для двенадцати слов и восемь битов для двадцати четырёх, полученные на основе хеша SHA-256 данной энтропии.
  3. Объединённые биты разбиваются на группы по одиннадцать. Каждая группа из одиннадцати битов служит индексом для одного слова из фиксированного списка, состоящего из 2 048 слов. Одиннадцать битов дают ровно 2 048 возможных вариантов, поэтому список слов имеет именно такую длину.
  4. Полученные слова, расположенные в нужном порядке, и составляют вашу фразу.

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

Затем эта фраза проходит через функцию растяжения ключа под названием PBKDF2, использующую алгоритм HMAC-SHA512 с 2 048 итерациями, в результате чего формируется 512-битовый мастер-сед. В качестве соли для этой функции используется строка «mnemonic» плюс опциональная парольная фраза, указанная пользователем — именно эта деталь делает функцию парольной фразы настолько мощной и столь уязвимой для злоупотреблений.

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

Одна фраза-семя, множество приватных ключей

Главный канал подачи семян подключается к BIP-32, — стандарт иерархического детерминированного кошелька. Исходный сед генерирует главный закрытый ключ и главный код цепочки, и на основе этой пары кошелек может выводить дочерние ключи, а из каждого дочернего ключа — дальнейшие дочерние ключи без ограничений.

Полная цепочка выглядит следующим образом:

Фраза восстановления → мастер-сед → расширенный закрытый ключ → отдельные закрытые ключи → открытые ключи → адреса

Каждый шаг после ввода фразы является детерминированным. Одинаковая фраза, введенная в любой совместимый кошелек в любой точке мира, приведет к воссозданию идентичного дерева ключей. Ничто не хранится на сервере, и никакая информация о вашем кошельке нигде не существует, кроме как в виде вычислительного результата, полученного на основе этих слов.

Именно поэтому в случае утери один и тот же закрытый ключ и фраза восстановления не являются взаимозаменяемыми. Закрытый ключ предоставляет контроль только над средствами, привязанными к его собственному открытому ключу, и ни над чем больше. Фраза восстановления, напротив, предоставляет контроль над всем, что когда-либо было создано этим кошельком, и над всем, что он создаст в будущем.

Что такое путь вывода

Поскольку одно семя может дать бесконечное количество деревьев, кошелькам необходима согласованная конвенция, определяющая, на какую ветвь следует ориентироваться. BIP-44 определил структуру, записанную в виде пути:

m / purpose' / coin_type' / account' / change / address_index

В более поздних предложениях каждому типу адреса присваивался номер, обозначающий его назначение:

СтандартныйПрефикс путиТип адресаПрефикс адреса
BIP-44м/44'/0'/0'Legacy (P2PKH)1
BIP-49м/49'/0'/0'Вложенный SegWit (P2SH)3
BIP-84м/84'/0'/0'Встроенный SegWit (P2WPKH)bc1q
BIP-86м/86'/0'/0'Taproot (P2TR)bc1p

Этот тип_монеты Для Биткойна это поле равно 0, а для Эфириума — 60, благодаря чему одна фраза-ключ позволяет управлять активами на нескольких цепочках.

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

Что такое открытый ключ?

Открытый ключ — это точка на кривой secp256k1, вычисляемая путем умножения фиксированной точки-генератора кривой на ваш закрытый ключ. Эта операция записывается в виде K = k × G, где k — ваш закрытый ключ.

Умножение на эллиптической кривой является функцией с «тайным ходом». Вычисление K по k занимает микросекунды. Восстановление k из K потребовало бы решения задачи о дискретном логарифме на эллиптической кривой, для которой, несмотря на десятилетия научных исследований, не известно ни одного эффективного метода.

Открытые ключи бывают двух типов кодировки:

  • Сжатый, 33 байта, начинающиеся с 02 или 03. Это современный формат по умолчанию, в котором хранится только координата x плюс один байт, указывающий, какое из двух возможных значений y применяется.
  • Без сжатия, 65 байт, начинается с 04. В этом формате хранятся обе координаты в полном виде; он встречается в основном в старых кошельках и устаревших ключах.

Задача открытого ключа — проверка. Когда ваш кошелек подписывает транзакцию, сеть использует открытый ключ, чтобы подтвердить, что подпись могла быть создана только с помощью соответствующего закрытого ключа, при этом никогда не узнавая, каков этот закрытый ключ. В сети Биткойн для большинства операций используется алгоритм ECDSA типы транзакций и подписи Шнорра, введенные в BIP-340, для Главный корень тратит.

Открытый ключ — это не адрес. Адрес представляет собой его дальнейшее преобразование: сначала он подвергается хешированию, а затем кодируется в форматы, которые можно вставить в кошелек.

Что такое расширенный открытый ключ?

Стандарт BIP-32 определяет два расширенных ключа на каждом уровне дерева кошелька.

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

Один расширенный открытый ключ, начиная с xpub, содержит открытый ключ и тот же цепочный код. Он может вывести все открытые ключи и все адреса, расположенные ниже него, но не может сгенерировать ни одной подписи.

Именно это сочетание делает xpub действительно полезными. Продавцы генерируют новый адрес для каждого клиента на основе xpub, хранящегося на веб-сервере, при этом у этого адреса нет возможности расходовать средства нигде в сети Интернет. Системы отслеживания портфелей и кошельки только для просмотра отслеживают остатки на счетах таким же образом. Бухгалтеры проводят сверку истории транзакций, не прикасаясь к средствам.

Кроме того, это делает их объектом наблюдения. Если вы передадите кому-то свой xpub, этот человек сможет перечислить все адреса в этой ветке — как прошлые, так и будущие — и найти их все в блок-браузер, а также неограниченно долго просматривать полную информацию о вашем балансе и истории операций. Они не могут ничего забрать. Но они могут наблюдать за всем.

Существует ещё более серьёзный случай уязвимости, который удивляет даже опытных пользователей. При использовании «неусиленной» деривации xpub в сочетании с любым одним дочерним закрытым ключом из этой ветви математически достаточно для восстановления родительского расширенного закрытого ключа и, следовательно, всех ключей в этой ветви. «Усиленная» деривация обозначается апострофом в путях, таких как м/84'/0'/0', существует именно для того, чтобы предотвратить это, поэтому компоненты пути на уровне учетной записи по соглашению защищены дополнительными мерами безопасности.

Вы также можете столкнуться с ypub, zpub, и vpub. Они кодируют одну и ту же информацию с разными префиксами версий, которые указывают кошельку, какой тип адреса следует сгенерировать, и их перепутывание приводит к появлению описанного ранее симптома «пустого кошелька».

Как всё это связано

Каждый объект в вашем кошельке занимает фиксированное положение в одной цепочке, и именно это положение определяет, какие действия он может выполнять.

ОбъектЧто это такоеПроисходит отМожно потратить?Раскрывает историю?
Фраза для восстановления12 или 24 слова, кодирующие основную энтропиюСлучайное генерированиеДа, всёДа, всё
Основной набор семян512-битное значениеЭта фраза, а также любой парольДа, всёДа, всё
Расширенный закрытый ключ (xprv)Личный ключ и код цепочкиСемяДа, вся эта ветвьДа, вся эта ветвь
Закрытый ключ256-битное секретное числоДерево, или автономное поколениеДа, только собственные средстваТолько свой собственный адрес
Расширенный открытый ключ (xpub)Открытый ключ и код цепочкиxprvНетДа, вся эта ветвь
Открытый ключТочка кривой, 33 или 65 байтЛичный ключНетТолько свой собственный адрес
Адрес кошелькаХэшированный и закодированный открытый ключОткрытый ключНетТолько свой собственный адрес
Идентификатор транзакцииХеш, идентифицирующий одну транзакциюСама сделкаНетТолько эта транзакция

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

Чем можно безопасно делиться?

ПунктПоделиться?Что кто-то получает
Фраза для восстановленияНикогдаПолный контроль над каждым кошельком и адресом, который он генерирует. Необратимость
Закрытый ключНикогдаПолный контроль над средствами, находящимися по адресу этого ключа
Расширенный закрытый ключ (xprv)НикогдаПолный контроль над всей этой ветвью
Расширенный открытый ключ (xpub)ИзбегайтеПолная прозрачность ваших остатков и истории транзакций по многим адресам. Отсутствие возможности тратить средства
Открытый ключТехнически безопасно, используется редкоВозможность проверки ваших подписей и привязки данного ключа к соответствующему адресу
Адрес кошелькаДа, бесплатноВозможность отправлять вам средства, а также просмотр истории этого адреса
Идентификатор транзакцииДа, при необходимостиВозможность просматривать данные одной транзакции, включая адреса и суммы в ней

Обратить внимание стоит на две записи.

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

Xpub — это элемент, с которым чаще всего обращаются ненадлежащим образом, поскольку слово «public» в его названии создает впечатление, что он относится к той же категории, что и ваш адрес получателя. У служб поддержки, налоговых инструментов и приложений для управления портфелем есть веские причины запрашивать его. У тех же, кто запрашивает его в незапрашиваемом сообщении, таких причин нет.

Чем пароли, ПИН-коды и парольные фразы отличаются от ключей

Эти четыре термина используются неточно, и последствия их смешения не являются симметричными.

СрокЧто он защищаетПутешествуете с кошельком?Если ты его потеряешь
PIN-код приложения или биометрическая аутентификацияДоступ к приложению на одном устройствеНетПереустановите и восстановите систему с помощью вашей фразы
Пароль для расходовАвторизация внутри приложенияНетВосстановление из фразы или резервной копии
Резервный пароль для шифрованияЗашифрованный файл резервной копииНет, это защищает файлЗашифрованная резервная копия непригодна для использования
Парольная фраза BIP-39 (25-е слово)Ничего. Просто меняется, какой кошелек создается на основе вашей фразы-пароляДа, с точки зрения криптографииДоступ к этим средствам невозможен, и это навсегда

Первые три — это средства контроля доступа. Они хранятся на устройстве или в файле, их можно сбросить, восстановив данные из резервной копии, и злоумышленник, получивший доступ к одному из них, но не знающий вашей фразы-пароля, не получит никаких преимуществ в цепочке блоков.

Парольная фраза BIP-39 относится к совершенно другой категории. При преобразовании фразы в исходные данные она вводится в качестве соли в алгоритме PBKDF2, поэтому её добавление приводит к созданию совершенно другого кошелька из тех же двенадцати слов, с другими ключами и другими адресами. Сообщения об ошибке при вводе неверной парольной фразы не появляется, поскольку любая фраза создаёт технически корректный кошелек. Введите неверную фразу — и вы увидите пустой баланс без каких-либо пояснений.

Именно поэтому этот подход иногда называют «правдоподобным отрицанием»: одна и та же фраза может скрывать под собой как фиктивный кошелек без парольной фразы, так и настоящий кошелек. Именно поэтому количество людей, теряющих средства из-за парольных фраз, превышает количество тех, кого они защищают.

В Кошелек Bitcoin.com, каждый отдельный криптокошелек в приложении получает свою собственную двенадцатисловную фразу восстановления, поэтому для учетной записи, содержащей кошельки Bitcoin, Ethereum и Polygon, необходимо записать три фразы. Дополнительная функция «Облачное резервное копирование» шифрует всю эту информацию для восстановления в один файл, который хранится в вашей учетной записи Google Drive или iCloud и расшифровывается с помощью выбранного вами мастер-пароля. Bitcoin.com не хранит ни мастер-пароль, ни фразы восстановления, поэтому восстановление без одного из них невозможно ни для кого, включая нас.

В некоторых интерфейсах кошельков термин «парольная фраза» используется для обозначения двенадцатисловной фразы восстановления. В других сферах этой отрасли под «парольной фразой» понимается дополнительное слово по стандарту BIP-39. Прежде чем вводить что-либо в поле с таким названием, уточните, что именно имеет в виду приложение.

Как крадут закрытые ключи

Атаки на ключевые материалы в подавляющем большинстве случаев направлены против людей и устройств, а не против самой криптографии.

Масштаб этого сдвига поддаётся измерению. Компания Chainalysis обнаружила, что что в 2022 году на взломы личных кошельков пришлось 7,3 % от общей стоимости похищенной криптовалюты, а к 2024 году этот показатель вырос до 44 %. В 2025 году эта доля составила бы примерно 37 %, если бы отдельный инцидент с Bybit не исказил годовой итог. В настоящее время основная часть криптовалюты теряется именно из-за проблем с безопасностью индивидуальных ключей.

МетодКак это работаетОборона
Фишинг и поддельная служба поддержкиМошенник просит вас ввести вашу фразу для «подтверждения», «переноса» или «устранения» проблемыНи одна легитимная служба никогда не запрашивает у вас фразу или ключ
Неправомерные утвержденияЗапрос на подтверждение подписи приводит к расходованию средств, а не к тому, что обещает сайтВнимательно ознакомьтесь с тем, что вы подписываете, и отмените устаревшие разрешения
Перехват содержимого буфера обменаВредоносное ПО заменяет скопированный адрес на адрес злоумышленникаПроверьте полную строку после вставки и убедитесь в правильности отображения на экране устройства
Вредоносное ПО для кражи информацииПроводит сканирование устройства на наличие файлов кошельков, фотографий сед-фраз и строк ключейНи в коем случае не фотографируйте и не вводите фразы на устройствах, подключенных к Интернету
Резервные копии с синхронизацией в облакеФотография с фразой синхронизируется автоматически и становится доступной в случае взлома аккаунтаНе сохраняйте материалы для восстановления на устройствах, которые синхронизируются
Поддельные приложения-кошелькиПоддельное приложение в магазине приложений или рекламное объявление генерирует ключи, которые уже находятся у злоумышленникаУстанавливайте только с сайта официального издателя
Подделанные аппаратные кошелькиУстройство, продаваемое с предустановленной фразой злоумышленникаПокупайте напрямую у производителя, всегда создавайте собственные фразы
Физическое принуждениеПрямая угроза в адрес известного владельцаКонфиденциальность в отношении активов, защищенные паролем «ложные» кошельки

Общим для всех этих методов является то, что ни один из них не взламывает ключ. Они собирают его, и более широкий спектр мошенничества основана на том, чтобы убедить людей отдать его.

Можно ли взломать закрытый ключ?

Не путем догадок.

Предположим, у вас есть аппаратное обеспечение, способное проверять один триллион ключей в секунду, и вы запускаете один триллион таких машин параллельно. В результате за секунду проверяется 10^24 ключей. При 1,16 × 10^77 возможных ключей исчерпание всего пространства ключей займет порядка 10^45 лет. Возраст Вселенной составляет примерно 1,4 × 10^10 лет. Добавление дополнительных машин существенно не изменит результат, поскольку пространство ключей растёт экспоненциально с увеличением длины ключа, в то время как мощность оборудования растёт линейно.

Каждый реальный случай кражи, приписываемый «взломанным» ключам, на самом деле был связан с недостаточной энтропией, поскольку программное обеспечение кошелька изначально не использовало полное пространство ключей.

Наиболее ярким задокументированным случаем является «Молочный грусть», занесенный в каталог под номером CVE-2023-39910. Версии Libbitcoin Explorer с 3.0.0 по 3.6.0 генерировали семена кошельков с помощью псевдослучайного генератора чисел Mersenne Twister, инициализированного 32-битным значением системного времени. Это сократило эффективное пространство ключей с 2²⁵⁶ до 2³², что составляет примерно 4,3 миллиарда вариантов, которые потребительское оборудование может исчерпать за считанные дни. Злоумышленники поступили именно так: основная скоординированная атака на уязвимые кошельки произошла 12 июля 2023 года. полное раскрытие информации исследователями в котором описано обнаружение и связанная с ним уязвимость в расширении браузера для кошелька, зарегистрированная под номером CVE-2023-31290, у которой была та же первопричина.

Название происходит от первых двух слов первой фразы, которую произнес неисправный генератор. Все затронутые кошельки были созданы на основе надежной криптографии, и все они были опустошены.

Квантовые вычисления представляют собой единственный теоретический путь к самому закрытому ключу, поскольку алгоритм Шора в принципе способен решить задачу дискретного логарифма, на которой основана защита открытых ключей. Ни одной машины, способной на это, пока не существует, оценки необходимых ресурсов постоянно меняются, и Национальный институт стандартов и технологий стандартизировала схемы замены подписей, при этом рекомендовав организациям завершить переход к 2035 году. Биткойн пока не внедрил такую схему, и предложения о том, как это можно сделать, проходят процесс доработки. Правильно сгенерированный закрытый ключ является безопасным в отношении любого классического компьютера, существующего или планируемого к созданию.

Почему инструменты для поиска закрытых ключей не работают

Попробуйте поискать информацию о потерянном ключе — и вы найдете программы, обещающие сканировать, восстанавливать или подбирать частные ключи методом перебора, а зачастую и базы данных, в которых, как утверждается, содержатся списки ключей с указанием остатков на счетах.

Приведенные выше расчеты окончательно решают этот вопрос. Программное обеспечение, способное найти пополненный закрытый ключ путем поиска, привело бы к краху Биткойна, и Биткойн стал бы бесполезным, а не объектом рекламы. Ни один из продаваемых продуктов не обладает такой способностью.

Функции этих продуктов можно разделить на несколько категорий:

  • Доставка вредоносного ПО: Загруженная утилита сканирует ваше устройство на наличие файлов кошельков, фотографий сед-фраз и данных расширений браузера, а затем выводит их за пределы устройства.
  • Сбор фраз: В веб-форме вам предлагается ввести часть или полную фразу «для проверки», и средства перечисляются в течение нескольких минут.
  • Мошенничество с авансовыми платежами: Компания взимает авансовый платеж для начала процесса возврата имущества, предоставляет отчеты о ходе работы, а также запрашивает дополнительные платежи для покрытия сборов, налогов или расходов на разблокировку.
  • Театр: Сканер работает на глазах у всех в течение нескольких часов, генерируя случайные ключи и ничего не находя, потому что это — всё, на что он способен.

Существует узкая категория законных методов восстановления данных. Извлечение данных из физически повреждённого аппаратного кошелька, восстановление фразы, в которой отсутствуют одно или два слова, когда контрольная сумма ограничивает поиск, или подбор пароля методом перебора, структуру которого вы частично помните, — всё это реальные инженерные задачи, имеющие реальные решения. Такие сервисы точно описывают, что они могут, а что не могут сделать, и никогда не запрашивают полную фразу.

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

Если ваши ключи или фраза восстановления стали доступны посторонним

«Утечка» означает, что кошелек скомпрометирован навсегда. Смена PIN-кода или переустановка приложения ничего не дадут, поскольку злоумышленник может восстановить кошелек на своём устройстве, используя только фразу.

Четыре шага в следующем порядке:

  1. Создайте новый кошелек на чистом устройстве. Если исходное устройство может содержать вредоносное ПО, не используйте его. Прежде чем продолжить, запишите новую фразу в автономном режиме.
  2. Незамедлительно перечислите средства. Отправляйте все средства на адрес из нового кошелька. Автоматизированные боты отслеживают взломанные адреса и могут счищать поступающие средства в течение нескольких секунд после их поступления.
  3. Отменить все действующие разрешения на использование токенов связанные со старыми адресами, чтобы впоследствии контракты не могли извлечь активы.
  4. Полностью откажитесь от использования этой устаревшей фразы. Его уже никогда не удастся сделать безопасным. Не используйте его повторно и не оставляйте после себя пыль, которую однажды, возможно, захотите собрать.

Если сумма средств настолько велика, что бот, выполняющий массовые операции, опередит вас при ручном переводе, холодильное хранение — это идеальное место для всего, что вы спасаете.

Заметка по поводу хранения криптовалюты. Если вы купили криптовалюту на бирже и никогда её не выводили, у вас вообще нет приватного ключа. Он хранится на платформе; ваш логин — это учетные данные для доступа к их системе, а не к блокчейну, и взлом аккаунта — это проблема службы поддержки, а не криптографическая проблема. Компромиссы между хранить ключи у себя или доверить их платформе определите, в какой из этих ситуаций вы когда-либо можете оказаться.

Заключение

Частный ключ — это очень большое случайное число, и все остальные элементы вашего кошелька либо производятся от него, либо служат для его защиты. Открытые ключи и адреса располагаются ниже по цепочке от ключа и могут передаваться другим пользователям. Фразы восстановления и расширенные частные ключи находятся выше него и управляют всем, что расположено ниже. Расширенные открытые ключи занимают промежуточное положение: они не влияют на ваш баланс, но представляют угрозу для вашей конфиденциальности.

Сама по себе криптография надежна с 2009 года. Проблема заключается в том, как с ней обращаются: неисправные генераторы случайных чисел, фразы, сфотографированные на телефонах, которые синхронизируются с облаком, и люди, которых убедили вводить двенадцать слов в форму. Если знать, какой объект у вас в руках и к какой категории он относится, можно предотвратить большинство таких инцидентов. В случае сумм, которые вы не можете себе позволить потерять, механизмы с несколькими подписями и Разделение ключей MPC устранить единственную точку отказа, создаваемую этой фразой, что является основной причиной, по которой следует тщательно взвешивать меры безопасности при выбор кошелька.

Часто задаваемые вопросы

Фраза-семена — это то же самое, что и закрытый ключ?
Нет. В структуре кошелька фраза-семенная фраза находится выше ваших приватных ключей. Согласно стандартам BIP-39 и BIP-32, эта фраза генерирует мастер-семенную фразу, а мастер-семенная фраза, в свою очередь, генерирует целое дерево приватных ключей. Любой, кто владеет этой фразой, контролирует все ключи в этом дереве, в то время как отдельный приватный ключ контролирует только средства, привязанные к его собственному публичному ключу. На практике это означает, что человек, владеющий вашей фразой, обладает такими же полномочиями, как и тот, у кого есть все ваши ключи сразу.
Могут ли два человека иметь один и тот же закрытый ключ?
Теоретически это возможно, но на практике такого не произойдет. Существует примерно 1,16 × 10^77 действительных закрытых ключей. Кошельки используют криптографически безопасную генерацию случайных чисел, и вероятность коллизии двух независимо сгенерированных ключей на несколько порядков меньше, чем вероятность всех остальных рисков, с которыми вы сталкиваетесь, вместе взятых. Коллизии никогда не наблюдались и не являются проблемой, на которую стоит ориентироваться при планировании.
Может ли кто-нибудь вычислить мой закрытый ключ по моему открытому ключу или по моему адресу?
Практически таких методов не существует. Получение открытого ключа из закрытого представляет собой быстрое умножение на эллиптической кривой, а обратный процесс означает решение задачи дискретного логарифма на эллиптической кривой, которая десятилетиями сопротивляется как академическим, так и коммерческим попыткам взлома. Адреса добавляют ещё один уровень хеширования. Квантовые компьютеры — единственный теоретический путь, однако на сегодняшний день не существует ни одной машины, которая хотя бы отдаленно была бы способна на это.
Какова длина приватного ключа биткоина?
256 бит, что составляет 32 байта. В виде необработанного шестнадцатеричного кода это 64 символа. В формате импорта кошелька это 51 символ, начинающийся с цифры 5, или 52 символа, начинающиеся с буквы K или L, для сжатого варианта. В качестве фразы восстановления по стандарту BIP-39 эквивалентный уровень безопасности выражается в виде 12 слов для 128 бит энтропии или 24 слов для 256 бит.
Имеет ли значение порядок слов в моей семенной фразе?
Да, полностью. Каждая позиция слова соответствует определённой группе из одиннадцати битов. Изменение порядка слов приводит к появлению других битов, что, в свою очередь, приводит к формированию другого начального значения и другого кошелька. Последнее слово также содержит контрольную сумму, поэтому фраза с изменённым порядком слов, как правило, будет сразу отклонена, а не приведёт к незаметному открытию пустого кошелька.
Где хранится мой закрытый ключ?
В кошельке с самостоятельным хранением ключи генерируются по запросу на основе седа на вашем собственном устройстве, а сам сед хранится в защищённом хранилище устройства. В аппаратном кошельке ключевой материал остаётся внутри защищённого элемента и никогда его не покидает, при этом устройство подписывает транзакции внутренне. На счете с хранением ключей платформа хранит ключи, а вы вместо этого получаете логин. Ключи никогда не хранятся в блокчейне, который регистрирует только транзакции и участвующие в них адреса.
Безопасно ли делиться своим xpub?
Относитесь к нему как к конфиденциальной информации. С помощью xpub невозможно совершать транзакции, поэтому его раскрытие не приведет к непосредственному хищению ваших средств. Однако он позволяет получателю вычислять и отслеживать все адреса в данной ветке вашего кошелька, предоставляя ему постоянный доступ к полной информации о вашем балансе и истории транзакций. Делитесь им только с программами или людьми, которым вы доверяете такую информацию, и никогда не отвечайте на незапрошенные запросы.
Является ли идентификатор транзакции конфиденциальной информацией?
Нет. Идентификатор транзакции (ID) идентифицирует одну конкретную транзакцию в блокчейне и не дает права управления каким-либо кошельком. Предоставление этого идентификатора для подтверждения платежа или проверки подтверждения является обычной практикой. Однако он позволяет любому пользователю узнать адреса и суммы, указанные в данной транзакции, поэтому единственным соображением здесь является конфиденциальность.
Существуют ли на самом деле программы для поиска или восстановления закрытых ключей?
Инструменты, которые якобы позволяют найти утерянный секретный ключ или взломать его методом перебора, не работают, поскольку поиск в пространстве 256-битных ключей вычислительно невозможен. Продукты, рекламирующие такую возможность, как правило, являются вредоносным ПО или мошенничеством с авансовыми платежами. Легитимные методы технического восстановления существуют для узких задач, таких как извлечение данных из повреждённого оборудования или восстановление фразы при отсутствии одного-двух слов, и такие службы никогда не запрашивают полную фразу восстановления.
Что произойдет, если я потеряю свой закрытый ключ, но у меня останется фраза восстановления?
Ничто не теряется. Эта фраза позволяет восстановить каждый закрытый ключ, который когда-либо был сгенерирован вашим кошельком, поэтому восстановление фразы в любом совместимом кошельке восстанавливает доступ. Это работает только в обратном направлении: закрытый ключ не может восстановить фразу или получить доступ к какому-либо другому ключу в кошельке.

Начните безопасно инвестировать с помощью кошелька Bitcoin.com

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

A screenshot of the Bitcoin.com Wallet app

Отсканируйте, чтобы загрузить кошелек Bitcoin.com

Отсканируйте этот QR-код с помощью мобильного устройства — вы будете автоматически перенаправлены на соответствующую страницу магазина.