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, разработанная Группой по стандартам эффективной криптографии. Ключи, выходящие за пределы этого диапазона, являются недействительными, и программное обеспечение кошелька проверяет это, хотя вероятность случайного попадания за пределы диапазона настолько мала, что её можно игнорировать.
Все форматы, которые вы видите в кошельках, — это всего лишь способы отображения одного и того же числа. Шестнадцатеричный формат, формат импорта кошелька и фраза из двенадцати слов — это разные «одежды» одного и того же значения.
Из того факта, что закрытый ключ представляет собой всего лишь число, вытекают два следствия.
Во-первых, их никто не выдает. Здесь нет ни реестра, ни заявки, ни разрешения. Создание биткоин-кошелька сводится к выбору большого случайного числа, поэтому любой человек в любой точке мира, имеющий устройство, может его создать. Именно это свойство и делает Биткойн не требующий разрешения.
Во-вторых, само число и есть актив. Биткойн — это инструмент на предъявителя. Владение ключом означает владение стоимостью, точно так же, как владение банкнотой означает владение деньгами. Скопировав приватный ключ, вы не скопировали монеты, а создали второго человека, который может их тратить.
Как выглядит закрытый ключ?
Ниже приведён один реальный закрытый ключ в форматах, в которых он может отображаться в кошельке. Данный ключ уже более десяти лет публикуется в документации по Биткойну и библиотеках кода и используется здесь исключительно в качестве примера. Ни в коем случае не отправляйте средства на адреса, полученные на его основе.
| Формат | Пример | Длина | Где это можно увидеть |
|---|---|---|---|
| Исходные шестнадцатеричные данные | 0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D | 64 символа | Инструменты разработчика, экраны экспорта ключей |
| WIF (без сжатия) | 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ | 51 символ, начинается с цифры 5 | Старые бумажные кошельки, импорт данных из предыдущих версий |
| WIF (в сжатом виде) | KwdMAjGmerYanjeui5SHS7JkmpZvVipYvB2LJGU1ZxJwYvP98617 | 52 символа, начинается на букву K или L | Стандартный экспорт с использованием одной ключевой фразы |
| Тестовая сеть WIF | Начинается с цифры 9 или буквы c | от 51 до 52 символов | Только для разработки и тестирования |
| Зашифровано по стандарту BIP-38 | Начинается с 6P | 58 символов | Бумажные кошельки, защищенные паролем |
Формат импорта кошелька — это не отдельный ключ. Это то же самое 256-битное число, закодированное в формате Base58Check, к которому добавлены три элемента: байт префикса сети (0x80 для основной сети, 0xEF для тестовой сети), опциональный байт флага сжатия и четырёхбайтовая контрольная сумма, полученная в результате двойного хеширования по алгоритму SHA-256.
Именно эта контрольная сумма является практической причиной существования WIF. Достаточно ошибиться в одном символе в шестнадцатеричном ключе, чтобы получить другой, вполне действительный ключ, управляющий пустым кошельком. Если же ошибиться в одном символе в строке WIF, контрольная сумма не совпадёт, поэтому программа отклонит её и сообщит, что что-то не так. Код Base58 также исключает четыре символа, которые чаще всего путают на глаз: ноль, заглавную букву O, заглавную букву I и строчную букву l.
Ключ, начинающийся с 6P, не будет импортирован никуда без соответствующего пароля. Иногда люди находят старый бумажный кошелек, пытаются импортировать его содержимое и приходят к выводу, что средства пропали, хотя на самом деле ключ просто зашифрован.
Как генерируются закрытые ключи
Ваш кошелек запрашивает у операционной системы случайные данные, извлекает из них 256 бит и проверяет, находится ли полученное число в допустимом диапазоне. Вот и весь процесс.
Всё зависит от качества генерации случайных чисел. Криптографически безопасный генератор псевдослучайных чисел использует непредсказуемые физические источники, такие как аппаратные колебания тактовой частоты, тепловой шум и временные интервалы прерываний. Аппаратный кошелек, как правило, оснащён специальным генератором истинных случайных чисел, встроенным в его защищённый модуль.
Именно размер числового пространства обеспечивает эффективность этой системы. При длине ключа 256 бит существует примерно 1,16 × 10^77 возможных ключей — цифра, с которой в физическом мире нет ничего сопоставимого. Вероятность того, что два кошелька независимо друг от друга сгенерируют один и тот же ключ, в математическом смысле не равна нулю, но она настолько ниже всех других рисков, с которыми вы сталкиваетесь, что об этом никогда не стоит задумываться.
Эта защита действует только в том случае, если случайность является подлинной. Когда генератор случайных чисел выходит из строя, пространство ключей сокращается с 2^256 до того объёма, который генератор фактически способен произвести, и каждый ключ, когда-либо сгенерированный им, становится доступным для взлома методом перебора. Именно этот режим отказа лежит в основе практически всех новостей о «взломанных» биткойн-кошельках, и он подробно рассматривается ниже.
В результате две практики по-прежнему представляют реальную опасность.
- «Мозговые» кошельки: Получение ключа путем хеширования запомненной парольной фразы. Злоумышленники заранее подготовили огромные словари хешированных фраз, включая целые книги и тексты песен, и автоматически просматривают полученные адреса. Любая парольная фраза, которую может запомнить человек, — это фраза, которую может угадать машина.
- Домашняя случайность: Правильно выполненные броски кубиков являются безопасными, но почти всё остальное, что люди придумывают на ходу — включая временные метки, беспорядочное нажатие клавиш и функции генерации случайных чисел в универсальных языках программирования, — таковыми не является.
Пусть этим занимается кошелек. Генерация ключей — одна из немногих областей, где стандартные инструменты однозначно превосходят всё, что вы сможете создать самостоятельно.
Что такое семенная фраза?
Фраза-семя, также называемая фразой восстановления или мнемонической фразой, представляет собой список из двенадцати или двадцати четырёх обычных слов, в котором зашифрован главный секрет всего кошелька. В структуре кошелька она находится на один уровень выше ваших приватных ключей, поэтому при восстановлении этой фразы восстанавливаются все адреса, которые вы когда-либо использовали, а не только один.
Стандарт, лежащий в его основе, — это BIP-39, опубликованный в 2013 году и в настоящее время практически повсеместно применяемый в сети Биткойн и других блокчейнах. Этот механизм объясняет ряд явлений, которые в противном случае выглядели бы как ошибки.
- Кошелек генерирует 128 бит энтропии для фразы из двенадцати слов или 256 бит — для фразы из двадцати четырёх слов.
- К ней добавляется контрольная сумма: четыре бита для двенадцати слов и восемь битов для двадцати четырёх, полученные на основе хеша SHA-256 данной энтропии.
- Объединённые биты разбиваются на группы по одиннадцать. Каждая группа из одиннадцати битов служит индексом для одного слова из фиксированного списка, состоящего из 2 048 слов. Одиннадцать битов дают ровно 2 048 возможных вариантов, поэтому список слов имеет именно такую длину.
- Полученные слова, расположенные в нужном порядке, и составляют вашу фразу.
Список английских слов специально составлен с учетом особенностей рукописного ввода. Ни у двух слов не совпадают первые четыре буквы, поэтому для восстановления фразы достаточно ввести только первые четыре символа каждого слова, а в случае неправильного прочтения слова вероятнее всего, что ввод завершится ошибкой, чем что система молча заменит его на другое допустимое слово.
Затем эта фраза проходит через функцию растяжения ключа под названием 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-кода или переустановка приложения ничего не дадут, поскольку злоумышленник может восстановить кошелек на своём устройстве, используя только фразу.
Четыре шага в следующем порядке:
- Создайте новый кошелек на чистом устройстве. Если исходное устройство может содержать вредоносное ПО, не используйте его. Прежде чем продолжить, запишите новую фразу в автономном режиме.
- Незамедлительно перечислите средства. Отправляйте все средства на адрес из нового кошелька. Автоматизированные боты отслеживают взломанные адреса и могут счищать поступающие средства в течение нескольких секунд после их поступления.
- Отменить все действующие разрешения на использование токенов связанные со старыми адресами, чтобы впоследствии контракты не могли извлечь активы.
- Полностью откажитесь от использования этой устаревшей фразы. Его уже никогда не удастся сделать безопасным. Не используйте его повторно и не оставляйте после себя пыль, которую однажды, возможно, захотите собрать.
Если сумма средств настолько велика, что бот, выполняющий массовые операции, опередит вас при ручном переводе, холодильное хранение — это идеальное место для всего, что вы спасаете.
Заметка по поводу хранения криптовалюты. Если вы купили криптовалюту на бирже и никогда её не выводили, у вас вообще нет приватного ключа. Он хранится на платформе; ваш логин — это учетные данные для доступа к их системе, а не к блокчейну, и взлом аккаунта — это проблема службы поддержки, а не криптографическая проблема. Компромиссы между хранить ключи у себя или доверить их платформе определите, в какой из этих ситуаций вы когда-либо можете оказаться.
Заключение
Частный ключ — это очень большое случайное число, и все остальные элементы вашего кошелька либо производятся от него, либо служат для его защиты. Открытые ключи и адреса располагаются ниже по цепочке от ключа и могут передаваться другим пользователям. Фразы восстановления и расширенные частные ключи находятся выше него и управляют всем, что расположено ниже. Расширенные открытые ключи занимают промежуточное положение: они не влияют на ваш баланс, но представляют угрозу для вашей конфиденциальности.
Сама по себе криптография надежна с 2009 года. Проблема заключается в том, как с ней обращаются: неисправные генераторы случайных чисел, фразы, сфотографированные на телефонах, которые синхронизируются с облаком, и люди, которых убедили вводить двенадцать слов в форму. Если знать, какой объект у вас в руках и к какой категории он относится, можно предотвратить большинство таких инцидентов. В случае сумм, которые вы не можете себе позволить потерять, механизмы с несколькими подписями и Разделение ключей MPC устранить единственную точку отказа, создаваемую этой фразой, что является основной причиной, по которой следует тщательно взвешивать меры безопасности при выбор кошелька.






