Как можно взломать Биткоины




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

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

И вот я решил провести исследование на предмет того, на сколько это возможно.

В качестве аргумента была приведена статья о «Большом биткоин коллайдере».

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

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

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

Как говорится всей энергии в нашем пространсвте не достаточно было бы что бы сгенериривать два одиноковых ключа.
Взломать (Брут форсом) блокчейн можно , даже не квантовым компютером будуёшего но компютером работуюшим вне пространства/времени. Так как телепортация нам еще долго не светить и передвигатся быстрее скорости света тоже не планируется. Ресурса способного для взлома ключа быть не может.

И всё токо потому что сушествует всего 2 в 262 степени вариантов ключей.

Представьте вы создали идеальный компьютер, забудьте про GHash и Мегагерцы.

Вы создали — компьютер, который использует минимум теоретически необходимой энергии что бы записать простой бит (1 до 0 или 0 до 1)

Мы говорим про предел термодинамики; что-либо с более высоким кпд не возможно.

Теперь представьте вы использовали большую часть природных ресурсов нашей солнечной системы что бы сконструировать сферу Дайсона и заставили ВСЁ его пространство суперкомпьютером.

Теперь представьте вы сумели бы содержать этот компьютер в температуре максимальной к нулю градусов, при этом НЕ ЗАТРАЧИВАЯ на это дополнительной энергии.

Если вы соблюли все эти условия и использовали всю энергию этой звезды (не день и не неделею, а так долго, пока она полностью не погаснет) то вам всё равно не удастся посчитать до 2 в 256 степени, до того как закончится вся энергия.

И это просто перебором.

Просто счёт, не хеш, и не сравнивание, не поиски по регистру, просто счёт как 1.. 2.. 3.. …. 2во256степени.

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

И это строго подразумевает то что — атака «brute-force» (перебор *примечание) на ключи, размера 256 бит не выполнима. Пока наши компьютеры созданы из чего-то похожего на материю и занимают что-то похожее на пространство.

Биткоин — Ваши деньги находятся под зашитой закона вселенной.

Читайте также:  Стоит ли доверять Биткоин

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

В комментариях я хотел бы услышать ваши мнения.

Считается, что некоторые функции, в обратную сторону не работают. Википедия в статье оперирует таким понятием, как «вычислительная невозможность». В одном из каментов приводили как пример функцию

Кто-то может скажет, что эта функция в обратную сторону нерешаема. Я считаю, что это функция очень даже решаема, просто в обратную сторону она выдает бесконечное множество пар (A,B), если нам известно «В», то решением будет бесконечное множество возможных чисел «А». Не совсем то, что нам хотелось бы, но ведь мы и не думали, что попали в сказку? Это чем-то похоже на вырывание одного уравнения из системы уравнений — каждое уравнение в системе дает множество, но в системе пересечение этих множеств дает небольшое количество решений. Поэтому, точно так же, как мы не решаем отдельно каждое уравнение в системе уравнений, нет смысла рассматривать такие функции в отрыве от других функций, из который состоит криптоалгоритм. Поэтому на элементарные операции криптоалгоритма нельзя смотреть по отдельности, а если на них смотреть как на систему уравнений, то теоретически ее можно решить. И получается, что по аналогии можно посчитать sha256 в обратную сторону, достаточно только перенести ту же идею работы со списками на побитовые операции. Но начнем мы, конечно, не с sha-256, а с тривиальных примеров.

Пусть у нас есть битовые переменные a, b, c. Пусть так же мы знаем, что в результате взятия a&b мы получили 0, а бит «c» не участвовал в формуле. Попытаемся «проиграть» эту формулу в обратную сторону. Мы знаем, что операция И дает нам в итоге ноль, если хотя бы один из операндов поступающих на ее вход равен нулю. Таким образом, возможные значения abc, как они видятся операнду «а» можно представить списком из одного регэспа 0**. Где звездочка означает 0 или 1. Возможные значения переменных abc, как они видятся операнду «b» можно представить списком из регэкспа *0*. Список нам нужен потому, что в больших выражениях одного регэкспа нам мало. Под регэкспом я понимаю не традиционное регулярное выражение, а урезанный его вариант, в котором звездочка означает любое значение соответствующего бита.

Когда мы берем логическое «И» над приходящими на входы списками, нам надо скомбинировать каждый входящий регэксп на правый вход с каждым входящим на левый. В данной задаче нам просто — входит только по одному регэкспу, вот их и комбинируем. Для «И», если на выходе надо получить 0 — левый список просто дополняем правым. Схематически я это показал на картинке в виде графа:

Читайте также:  Где продать машину за Биткоины

Пояснение. Результат f подается снизу, на выход, и поднимается в противоположную стрелкам сторону — вверх, раздваиваясь на узлах, до тех пор, пока не приходит в конечную переменную. Конечная переменная формирует список возможных значений переменных (тот который видится с позиции этой переменной), необходимых для достижения пришедшего результата. Для переменной «а» это 0**, для переменной «b» это *0*. Фактически, это все звездочки, но только одна из них, в позиции переменной, заменена на пришедшее f. Далее этот список спускается вниз по стрелкам, комбинируясь в узлах с другими такими же списками. Переменную «с» я добавил специально, чтобы показать, что неучаствующие в выражении переменные не мешают нам, а спускаются вниз в исходном виде. На выходе мы получили список, состоящий из двух регэкспов. Каждый регэксп определяет набор возможных значений, которые при желании мы легко можем сгенерировать из этого регэкспа. Это и есть ответ.

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

Теперь то же самое, но только для f=1. Получаем а=1**, b=*1*. Правило объединения, если для «И» нам на выходе надо получить 1 — сложнее. Мы должны объединить с правой и левой части непротиворечивые регэкспы, построив при этом список новых регэкспов. У меня получились следующие итоговые правила:

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

Обработав входы по этому правилу, получим:

Думаю, идея ясна. Для «ИЛИ» и «НЕ» можно построить аналогичные правила:

Тут еще показано, что для лог «НЕ» мы оперируем не со списками регэкспов, а с самой f, инвертируя ее. Списки регэкспов через «НЕ» проходят без изменений и без инверсий.

Таким образом, для sha256 мы можем построить граф, разбить наш message digest на биты, подать эти биты на выходы и нам вернется список возможных значений переменных прообраза.

Целей максимально оптимизировать алгоритм не ставилось. Понятно, что работать с битами через символы — расточительно, и можно сильно повысить скорость алгоритма, если переложить его на си и ассемблер с побитовыми операциями. Однако, есть еще один путь оптимизации — минимизация размеров списков, которыми мы оперируем. При объединении списков часто возникают дубликаты и непротиворечащие регекспы, которые надо откидывать. Кроме того, иногда, два регэкспа могут быть объединены в один новый, который в свою очередь можно подвергнуть дальнейшей оптимизации. Например, 000100 и 001100 можно объединить в 00*100, правило такого объединения относительно легко выводится — допустимо только изменение одного бита, важно только чтобы вновь созданный регэксп не представлял никаких лишних значений переменных. Поэтому *0 нельзя объединить с 0*, получив при этом **, потому что ** представляет 11, чего не допускал ни первый ни второй регэксп.
Кроме этого, в узлах списки мы будем кэшировать — считаем их однократно для каждого f которое пришло снизу.

Читайте также:  Как низко упадет Биткоин

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

Конечно, это не фонтан, я понимаю, что 8 неизвестных бит — это достаточно мало, чтобы подобрать их прямым перебором, но целью эксперимента была именно проверка способа. У меня получилось этим способом найти букву T, зная sha-256 от фразы «The quick brown fox jumps over the lazy dog», и зная все буквы этой фразы, кроме самой буквы T. Программа должна сработать и для больших неизвестных, просто будет работать дольше, и потребует больше памяти. По этой причине, невозможно считать все буквы неизвестными — не хватит вычислительных ресурсов, а значит практического применения нет. Вычисление буквы T занимает 82сек на 3ггц Phenom. Конечно, прямой перебор всех неизвестных бит (256 значений) занял бы доли секунды, так что в этом смысле тоже практической пользы от программы нет.

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

Хардкорная конфа по С++. Мы приглашаем только профи.

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

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

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

При взломе системы, специалистам потребовалось знать минимум информации о пользователе. Так, кроме его фамилии и имени для взлома также потребовалась информация о его номере телефона.

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

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

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

Читайте далее:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Adblock detector