Что такое приватный ключ для крипто-кошелька? Как его создать и где хранить?

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

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

Приватный ключ кошелька Биткоин, такого как Bitcoin Core, представляет собой секретный набор символов, позволяющий владельцу использовать имеющиеся на счету монеты. В каждом криптовалютном хранилище используется от одного и больше частных (закрытых) ключей, хранящихся в специальном файле. Особенность кода заключается в непосредственной связи с публичными адресами криптовалюты.

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

Что такое приватный ключ?

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

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

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

В видео ниже наглядно показано, как работают приватные и публичные ключи:

4 —реконструкция  QR-кода

Понятно, что нам предстоит восстановить QR-код размером 41×41 пикселей. Мы решили воспользоваться таблицей Google (в ней легко рисовать, выделять цветом и накладывать маску на QR-код).

Прошли следующие шаги:

  • Нарисовали каждый узор, входящий в стандарт (поисковые узоры, выравнивающий узор (в Версии 6 он всего один), полосы синхронизации и отступы (рамка) как показано на рис. №12)
  • Добавили биты из строки сведений о форматировании, найденные на предыдущем этапе.
  • Заполнили остальные блоки QR-кода по нашему скриншоту (рис. №11).

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


№16 —Тут мы собрали еще немного  битов из верхних рядов №17 — Делаем то же самое с левой стороной QR-кода (повернуто на 90°)

Внизу QR-код, который удалось реконструировать. Следующий шаг – определить последовательность битов и выделить кодовые комбинации и кодовые комбинации коррекции ошибок.


№18 — Пошаговая реконструкция QR-кода

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

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

Однако пользоваться таким длинным набором очень неудобно и, к тому же, ключ должен быть зашифрован. Поэтому приватный ключ от биткоин-аккаунта создается в виде 32-байтного числа, который состоит из 64 символов. На каждый символ приходится два значения (ноль или единица) из вышеназванного 256-битного числа. При этом используются цифры от 1 до 9 и буквенные символы от A до F.

Пример приватного ключа:

B4653223363AA61F20BD08FC233AC37262

Угадать или подобрать методом «brute force» приватный ключ практически невозможно. По сути он представляет собой число в диапазоне от 1 до 10 в 77-ой степени . Если представить, что у человека появилась возможность перебирать один триллион чисел в секунду, то на поиск одного приватного ключа ушло бы как минимум миллион возрастов существования планеты Земля.

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

Также стоит сказать, что с развитием криптосферы, появились разные форматы для хранения приватных ключей. Это альтернативные форматы, которые называются «Форматом Импорта Кошелька». Их три:

  1. Hex: 1E99674A4CA27608A45A1813ABB0E9E52CFA330AC563EDBB32C8AAC6A964AECA.
  2. WIF: 5J3nBbAG58CuQ346RNLpPUA
  3. WIF-сжатый: KxFC1jnghCoACiATWZ3oXa748VN6ac3TYzGkd7YbsqGLY

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

7 — Код коррекции ошибок

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

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

В QR-кодах применяются коды Рида-соломона (подтип кодов Боуза-Чоудхури-Хоквингема, которые мы видели, когда на этапе №3 расшифровывали цепочку данных о форматировании).

Мы не будем детально объяснять как пользоваться кодами Рида-Соломона. Об этом много и подробно написано на многих ресурсах. Если кратко, то:

Кодировщик Рида-Соломона выдает кодовые слова ККО. Они — остаток при делении многочлена, представляющего сообщение и неприводимый многочлен генератор.


№29 — неприводимый многочлен генератор для 28 коррекционных кодовых слов

Декодер Рида-Соломона устроен немного сложнее из-за того, что есть множество различных способов раскодировать сообщение. Для этого существуют различные алгоритмы раскодирования. Более подробно о процессе декодирования тут: https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders

Декодер Рида-Соломона способен одновременно исправлять нечитаемые данные и ошибки. Но его возможностям есть предел – граница Синглтона.

В нашем случае риск заключался в попадании за предел этой границы максимально возможной мощности кода. Рид-Соломон – оптимальная система прямого исправления ошибок и она «уязвима» для этого порогового эффекта. Это значит, что если вы превысили максимальную мощность кода, вы не можете применять коды коррекции. То есть пришло время подбора перебором.

Предел мощности кода (число ошибок и пропусков, которые возможно исправить) определяется представленной ниже формулой, как указано на стр 33 стандарта ISO:

e + 2*t ≤ d — p

Где:

  • e : количество пропусков (нечитаемых данных);
  • t : количество ошибок;
  • d : количество кодовых слов коррекции ошибок;
  • p : количество кодовых слов защищающих от неправильного раскодирования (0 в нашем случае: 6-H).

Эта формула означает, что вы можете корректировать до 14 ошибок или 28 пропусков на каждый блок (или комбинацию из ошибок и пропусков общим числом не более 28). Мы воспользовались тем, что мы знали где в QR-коды были пропуски, чтобы применить самый высокий уровень коррекции (28 кодовых слов на блок).

Давайте посмотрим превышается ли предел мощности кода в каждом из блоков:

  • Блок 1: Данные содержат 6 пропусков, ККО содержит 22 пропуска;
  • Блок 2: Данные содержат 12 пропусков, ККО содержит 21 пропуск;
  • Блок 3: Данные содержат 10 пропусков, ККО содержит 18 пропусков;
  • Блок 4: Данные содержат 6 пропусков, ККО содержит 21 пропуск.

С 28-мью пропусками блоки 1 и 3 не превышают лимит мощности и будут полностью восстановлены. То же справедливо и для блока 4, где всего 27 пропусков.

Единственный блок, превышающий лимит мощности кода – блок 2 с 33 пропусками. Его нам придется подбирать с помощью перебора. К счастью, мы уже сократили до минимума количество комбинаций.

Для чего нужен приватный ключ?

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

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

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

Открытый ключ (Public key)

Открытый ключ описывается следующим образом в желтой бумаге Эфириума.

«Где pu — открытый ключ, предполагается, что это байтовый массив размером 64 (сформированный из конкатенации двух положительных целых чисел каждое <2256), а pr — закрытый ключ, байтовый массив размером 32 (или одно целое положительное число в указанном диапазоне).»

Это достигается с помощью групповой операции эллиптической кривой в криптографии.

Для получения открытого ключа закрытый ключ умножается на G. Умножение, используемое для получения открытого ключа, является умножением эллиптической кривой, которое полностью отличается от обычного умножения, для которого мы собираемся использовать библиотеку JS.

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

var EC = require(‘elliptic’).ec; var BN = require(‘bn.js’); var ec = new EC(‘secp256k1’); var G = ec.g; // Generator point var pk = new BN(‘1’); // private key as big number var pubPoint=G.mul(pk); // EC multiplication to determine public point var x = pubPoint.getX().toBuffer(); //32 bit x co-ordinate of public point var y = pubPoint.getY().toBuffer(); //32 bit y co-ordinate of public point var publicKey =Buffer.concat([x,y]) console.log(«pub key::»+publicKey.toString(‘hex’))

Как создать надежный приватный ключ?

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

Бумажные кошельки

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

Шаг 1. Перейдите по ссылке выше. На экране появится окно с набором рандомных буквенных и числовых символов. Двигайте мышкой по экрану до тех пор, пока процент случайности не достигнет 100%:

Шаг 2. Когда показатель достигнет 100%, на экране появится QR-код и хеш приватного ключа:

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

Декстопные кошельки

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

Рассмотрим этот процесс на примере кошелька Exodus:

  • Зайдите в меню разработчика и выберите создание кошелька для биткоина.
  • Выберите раздел «Экспорт». Система покажет предупреждение о том, что при копировании и экспорте приватного ключа есть риск его утери и использовании третьими лицами. Согласитесь с экспортом.
  • Приватный ключ будет сохранен в папке на рабочем столе.

Для надежности файл с ключом скопируйте на носитель, к которому нет интернет-доступа, например, на флешку. Также можно переписать ключ на лист бумаги.

Онлайн-кошельки

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

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

Например, таким сервисом является Bitcoin Wallet Blockchain.

Раньше в этом сервисе можно было получить ключи автоматически, однако с недавних пор эту опцию убрали. Теперь это можно сделать путем создания мнемонической фразы. Мнемоническая фраза — это особый список слов, которые впоследствии преобразовываются в хеш приватного ключа. В кошельке Blockchain мнемоническая фраза состоит из 12 слов.

Чтобы получить приватный ключ, нужно сделать следующее:

  • Перейти в раздел «Хранилище — Настройки — Безопасность — Создание резервной фразы».
  • Система предложить в несколько этапов выбрать 12 слов из рандомного набора. Нужно выбрать и запомнить. Для надежности можно записать эти слова на листе бумаге, который рекомендуется хранить в надежном месте, к которому нет доступа третьим лицам.
  • Кошелек предложить проверить, насколько хорошо вы запомнили выбранные слова — нужно ввести любые четыре из двенадцати.
  • Далее перейдите по ссылке iancoleman.io/bip39/. Обратите внимание, чтобы ссылка выглядела именно так, иначе есть риск стать жертвой фишинговой атаки.
  • Следующий этап очень важный: отключитесь от сети, чтобы обеспечить максимальную безопасность.
  • Перейдя на сайт, нужно выбрать язык мнемонической фразы, количество слов, ввести сами слова. Еще раз проверьте, правильно ли вы ввели слова — из-за ошибке в одной букве можно потерять все свои криптоактивы!

Система сгенерирует приватный ключ, который вы найдете в нижней части окна в разделе «Derivation Path».

Brain Wallet («мозговой кошелек»)

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

Этот метод называется Brain Wallet, т.е. «мозговой кошелек», так как ключ генерируется мозговыми усилиями владельца будущего ключа, и заключается в том, что пользователь должен придумать любую фразу или число и зашифровать его через алгоритм SHA-256.

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

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

Хешем числа 1 в системе SHA-256 является следующее значение:

  • 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm

Если вы пройдете по ссылке, то увидите, что за последние несколько лет этот ключ использовался в более чем 1200 транзакциях и на нем было совершено операций почти на 5 BTC:

Аналогичную ситуацию можно наблюдать и при использовании известной фразы «Быть или не быть» в качестве приватного ключа:

  • 1J3m4nneGFppRjx6qv92qyz7EsMVdLfr8R

Смотрите сами:

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

Некоторые сервисы предоставляют опцию создания «мозгового кошелька», например, тот же bitaddress.org.

Чтобы воспользоваться этой функцией, нужно перейти по вкладке «Умный кошелек»:

Далее нужно ввести фразу (обратите внимание, что ее должно быть невозможно или как минимум трудно угадать), подтвердить еще раз и нажать на кнопку «Просмотр». Сайт сгенерирует приватный ключ, который можно распечатать или переписать на бумагу:

Плюс этого способа в том, что даже потеряв приватный адрес, его можно восстановить, если преобразовать ее через стандартный алгоритм SHA-256 — такие конвертеры легко найти в интернете, например, этот.

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

Но если вы все еще очень боитесь, что кто-то сможет узнать ваш даже супер-сложный ключ, то есть еще один способ создания приватного ключа, который обеспечит 1000% безопасности. Возьмите монетку, подбрасывайте ее 160 раз подряд и записывайте «0», если выпала решка и «1», если выпал орел. После этого полученное число можно преобразовать в алгоритме SHA-256, и вы получите очень надежный приватный ключ, так как вряд ли кто-то сможет подбросить монету так же как вы.

3 — Стандарт оформления QR-кода. Часть 1

Важной задачей было разобраться в том, как работают QR-коды и насколько можно восстановить поврежденный QR-код с помощью кода с коррекцией ошибок.

Статья в Википедии дала базовую информацию, но реально полезным оказался стандарт ISO/IEC 18004 (бесплатная версия его первого издания есть на Swisseduc). Мы также нашли в сети вот это сокровище.


№11  Область коррекции и маска для QR-кода были взяты с этого скриншота.

Прежде чем начать реконструировать QR-код давайте посмотрим что удастся узнать из этой картинки с помощью стандарта ISO и описания структуры QR-кода.


№12 Картинка из Wikimedia Commons

Нас интересовала синяя колонка (x:8, y:22–28).

Это часть строки данных форматирования (15-битовая последовательность. 5 бит данных и 10 бит коррекционного кода БЧХ). Биты расположенные в координатах (x:8, y:22–28) — это биты строки с 8 по 14. У нас было всего 7 из 15 битов, но их оказалось достаточно чтобы найти нужную информацию.

В строке данных форматирования закодированы уровень коррекции и узор маски, примененной в QR-коде. Есть 4 возможных уровня корректировки ошибок (L, M, Q, H) и 8 возможных узоров маски => 32 возможных строк сведений о форматировании.

Более детально о создании строк сведений можно прочитать на стр 76 стандарта (Приложение C — Информация о формате). Список 32 возможных вариантов можно найти здесь.

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


№13 Картинка из Wikimedia Commons

Сверху вниз у нас имеется биты с 8 по 14 строки сведений. Бит 14 самый важный. С его помощью мы можем теперь прочитать скриншот №11.

0011001XXXXXXXX

Заглянем в таблицу строк данных форматирования. Единственная совпадающая комбинация – с кодом уровня коррекци: H и узором маски: 3


№14 —  Картинка из Wikimedia Commons

Нам также было нужно найти формат кодировки QR-кода. Существует 5 видов форматов кодировки (в каждом используется особый метод конвертации текста в биты):

  • Цифровой (0–9)
  • Буквенно-цифровой (0–9; A-Z; девять других символов: пробел $ % * +- . / : )
  • 8-битный байт (JIS [японский промышленный стандарт] 8-битный набор символов. JIS X 0201 японская версия стандарта ISO 646)
  • Кандзи (символы Shift JIS [японская кодировка] могут кодировать каждый символ Кандзи на 2 байтах)
  • ECI (Интерпретация расширенного канала , когда вам требуется специальное/персонализированное кодирование)

Формат кодирования для нашего QR-кода 8-битный байт. Цифровой и буквенно-цифровой форматы не поддерживают буквы нижнего регистра, используемые в приватных ключах. Кандзи кодирует на 2 байтах (нам нужен всего один), а такой сложный формат как ECI в нашем случае явный перебор.

Мы почти готовы начинать реконструкцию QR-кода. Последнее что нам требуется узнать – его размер.

Существует 40 вариантов размера QR-кода (они называются версиями). Они варьируются в размере от 21×21 пикселей (Версия 1) до 177 x 177 пикселей (Версия 40). По мере возрастания порядкового номера версии размер кода вырастает на 4×4 пикселя. Каждая версия имеет максимальную емкость, зависящую от формата кодирования и уровня коррекции ошибок. Более детально см. стр. 28 стандарта ISO.

Мы знали, что наш QR-код должен содержать 52 символа (416 бит) с уровнем коррекции ошибок H.


№°15 — V6 самая маленькая версия, способная вмещать ключ размером 416 бит с уровнем коррекции H. V5 — слишком мала, V7 – слишком велика

Размер Версии 6 QR-кода 41×41 пикселей. Теперь у нас есть вся нужная информация для реконструкции QR-кода.

Как правильно хранить приватные ключи?

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

  • на бумаге (металле),
  • на электронных носителях,
  • в памяти.

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

А теперь расскажем, какие есть варианты хранения:

  • На бумаге или металле. Этот способ больше всего актуален для бумажных кошельков, однако так можно хранить приватный ключ, созданный любым методом — нужно просто переписать его. Однако такое хранение не безопасно: вы можете потерять лист, он может сгореть или размокнуть. Для большей прочности его можно заламинировать или сделать копию из металла.
  • На флешке. Это один из самых надежных способов. Нужно использовать отдельную флешку (желательно новую и проверенную на отсутствие вирусов) и выполнять все операции в оффлайн-режиме. Есть несколько вариантов хранения: в виде текстового документа, скриншота или оригинального файла в формате wallet.dat. Также обязательно нужно поставить на флешку пароль.
  • На компьютере. Это также достаточно надежный вариант хранения, если устройство не подключено к интернету и исправно работает. В противном случае он или может стать жертвой злоумышленников, или «полететь». Также рекомендуется поставить надежный пароль на сам файл с ключом и на компьютер.
  • В памяти. Это, пожалуй, самый безопасный способ хранения приватного ключа. Однако он подойдет только в том случае, если вы использовали мнемоническую фразу в качестве приватного ключа. Потому что запомнить набор из рандомных чисел и букв просто нереально.

6 — Раскодирование QR-кода

Следующий этап – чтение QR-кода и заполнение его как можно большим объемом кодовых слов данных и коррекции из таблицы, показанной на этапе №5.

Первый шаг – снятие маски с QR-кода. Мы пользовались таблицей Google для создания маски и функцией BITXOR для её нанесения.


№°23 — Когда маска накладывается на QR-код, каждый зеленый модуль маски меняет цвет модуля на противоположный

Результат наложения маски – читаемый QR-код. С чего начать чтение QR-кода и как его читать? В стандарте ISO объяснено как кодовые слова отображаются на QR-коде и приведены правила их чтения (стр. 46: Codeword placement in the matrix).

Давайте перенесем кодовые слова на наш QR-код.


№24 —Позиции кодовых слов данных и коррекции. Видны символы правильной и неправильной формы

Давайте их прочитаем. Каждый символ должен читаться по-разному в зависимости от его формы и направления написания, как показано ниже и как объясняется на стр. 47 стандарта ISO.


№25 — картинка из Wikimedia Commons

На картинке ниже – поэлементная (побитная) схема читабельного QR-кода. Каждый “X” – неизвестный бит.


№26 — Декодирование QR-кода «вручную», побитно. Весело, правда?

Теперь читаем и заполняем таблицы кодов данных и коррекции из этапа №4.


№27 —К кодовым словам данных после прочтения QR-кода и заполнения битов протокола добавляем данные, которые мы извлекли при анализе скриншотов

Кодовые слова #1 и #2 известны, поскольку они часть протокола(Указатель режима + Указатель числа символов).

Кодовые слова #3, #4, #6 и #7 известны из анализа скриншотов на этапе №2 (“KyUzsR”)

Кодовые слова с #54 по #60 также известны, поскольку они часть протокола (Терминатор + Биты-заполнители).

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

Наверное, вы уже задали себе вопрос почему каждый пятый бит кодовых слов, несущих сообщение/данные, мы установили в “0”? Это сделано потому, что мы знаем алфавит приватного ключа (Base58Check) и все символы этого алфавита начинаются с “0” если кодируются в 8-битном формате (5-й бит каждого кодового слова становятся первым битом каждой буквы сообщения в результате сдвига, произошедшего из-за битов первых 12 протоколов).


№28 — Таблица кодовых слов кодов коррекции ошибок после того, как мы прочли QR-код. Тут мы ничего не можем сделать, поскольку все они определяются кодировщиком Рида-Соломона

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

Безопасность криптографии

Не все пользователи считают приватные ключи биткоина надежной защитой публичного адреса. В действительности вероятность угадать настолько сложный пароль составляет менее 0,000001%

. Разработчик приложения Cashh App Дэнни Дикроэгер убежден, что при подобных обстоятельствах подбор приватного ключа может занять
100 лет
. Даже если удастся подобрать пароль, вероятность того, что на кошельке окажутся биткоины, составляет
0,0000000000000000000000000000000000000000000001%
. Поэтому использовать вычислительную мощность для поиска ключа становится экономически невыгодным.

That’s a massive overestimation. I calculated the actual odds. Even at 1,000,000,000 times the current computer power he has, running for 100 years, the odds he finds any private key with a balance are:

0.0000000000000000000000000000000000000000000001%

— Danny Diekroeger (@dannydiekroeger) May 25, 2020

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]