Так как сейчас разговоры о криптовалюте идут даже на федеральных телеканалах, ко мне, как сотруднику банковской сферы, начали обращаться друзья и знакомые с самыми разными вопросами.
Один из самых частых вопросов - можно ли восстановить доступ, если "потерял" ключ от криптокошелька?
“Да я то откуда знаю!!!” - хотела было я им сказать, но решила разобраться в теме.
Да и самой очень интересно.
Что узнала расскажу ниже.
Когда о биткоине только начали говорить (2010-2013) - он почти ничего не стоял.
Поэтому пароль от кошелька с десятком, а то и сотней монет, не представлял большой ценности для среднестатистического человека.
Вот примерно тогда люди и начали забывать (терять) и свои ключи и сами кошельки.
После нескольких часов поиска я нашла, что как вариант - для восстановления доступа к забытому кошельку можно использовать приватный ключ.
Приватный ключ биткоина (Private Key) представляет собой последовательность из 64 символов состоящую из букв от "a" до "f" и цифр от "0" до "9". Почему именно так - потому что это "256-битное числовое значение и еще что-то там, какие-то математические термины...". )))
Из приватного ключа методом хэширования (с этим словом будем разбираться отдельно) с алгоритмом SHA-256 (Secure Hash Algorithm 256-bit) вычисляется адрес.
То есть адрес биткойн кошелька неразрывно связаны с приватным ключом.
Пока вроде все понятно - сначала приватный ключ (просто сочетание букв и цифр), а из него вычисляют адрес.
Супер - если можно посчитать в одну сторону, значит можно посчитать и в другую - уж кто кто, а я то это точно знаю - я же в банке работаю :))
Давайте разбираться с хешированием.
Хэширование (hashing) - это процесс преобразования данных (например, текстовой строки или любых других данных) в фиксированную длину (оно же "хеш-значение" или "хеш-код") с использованием "хеш-функции".
Самый простой пример - хеширование через функцию умножения рядом стоящих символов.
Допустим на входе у нас есть выражение из 8 символов 47838921, а на выходе нам нужен хеш-код из 3 символов.
умножаем:
4х7х8х3х8х9х2х1=96768=9х6х7х6х8=18144=1*8*1*4*4=128
хеш-код значения 47838921 равен 128
Функция алгоритма SHA-256, который используют в биткойне, намного сложнее и отвечает двум основным характеристикам:
- Детерминированность: одним и тем же входным данным всегда соответствует один и тот же хеш-код.
- Отсутствие коллизий: это когда разным входам соответствуют одинаковые хеш-коды.
Теперь самый важный вопрос
Зная хеш-значение (128) и зная функцию, по которой вычислили это значение - мы можем рассчитать значение, которое было на входе?
Увы и ах, но ответ "нет".
Никак нельзя из 128 получить 47838921.
Хэширование всегда работает только в одну сторону.
Как говорил доктор Быков - “Бедааа” ))). Получается зная адрес кошелька биткойн мы никак не можем рассчитать его приватный ключ.
Кому был важен ответ на вопрос из заголовка этой статьи - это он. Дальше можно не читать. :)))
Ну а если мой читатель энтузиаст и авантюрист, как я - комон! )))
Подойдем к вопросу глобально!
Нам изначально известны все приватные ключи начиная с
000000000000000000000000000000000000000000000000000000000000001
и заканчивая
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413f,
значит мы можем вычислить все соответствующие им адреса.
А из этого следует, что теоретически у нас есть ВСЕ адреса кошельков с соответствующими им приватными ключами.
То есть мы, теоретически, можем получить доступ к любому биткойн кошельку, зная только его адрес.
Теперь подключаем технологии.
При помощи программного обеспечения мы можем последовательно сгенерировать все приватные ключи биткоин и вычислить соответствующие им адреса биткойн кошельков.
Тогда, чтобы вернуть доступ к своему забытому кошельку достаточно просто дождаться, когда программа сгенерирует и вычислит ИМЕННО НАШ адрес!
А вот это уже интересно!
*Мозг судорожно ищет, куда применить это знание* )))
Стоп! Тихо! Всем стоять!!!
Я просто теоретически рассуждаю! )))
Я никого ни к чему не призываю - вся информация носит исключительно информационный характер - не более )))
Если у нас “есть доступ” ко всем кошелькам, значит нам остается только узнать, на каких адресах есть биткойны, а на каких нет.
Что-то похожее я нашла в формате “онлайн” на сайте secretscan.org
Там можно запустить автоматическую генерацию с проверкой баланса. Но глобальная проблема в скорости самой сети интернет - на проверку каждого полученного адреса уходит ооочень много времени. Кстати у меня на поиск всего одного кошелька с положительным балансом ушло 12 дней. Вот ссылка.
Медленно??? Это ооочень медленно!!!
Может если это делать офф-лайн, тогда ограничения скоростью интернета не будет?
Еще немного погуглив в этом направлении я нашла решение, которое оказалось достаточно простым. А именно -
Нам не понадобится интернет, если не проверять каждый полученный адрес на наличие положительного баланса, а просто сравнивать его со списком адресов, на которых точно есть биткоины.
Такой список, для примера, можно найти вот на сайте addresses.loyce.club
И потратив еще немного времени я нашла все эти функции в одной программе у “вольного программиста” на сайте checker.coin2.ru
Итак. Теоретически с помощью его программы можно восстановить доступ к забытому биткойн кошельку.
Принцип работы программы следующий.
В текстовый файл вписываем адрес нашего кошелька, к которому нужно восстановить доступ (ну или нескольких наших кошельков).
Загружаем этот файл в программу и запускаем.
Программа генерирует приватные ключи, вычисляет их адреса и сравнивает полученный адрес с загруженным списком.
Если совпадений нет - двигаемся дальше. Если совпало - отлично - вы вернули себе свои биткоины!
Судя по отзывам и скриншотам на другом сайте того же программиста shop.coin2.ru - программа очень неплохо работает.
Резюме!
Да, вернуть себе доступ к забытому биткойн кошельку теоретически возможно, но, скорее всего, это займет очень много времени.
Проще его не забывать и хранить в надежном месте.
Кстати, для этого придумано множество всяких интересных устройств.
Но об этом в следующей статье “Как не забыть свой “ключ” от криптокошелька”