2020-6-24 18:00 |
Пару недель назад известный поклонник криптовалюты Алистар Милн запустил конкурс по «взлому» собственного криптовалютного кошелька с 1 биткоином на счету. Время от времени он давал подсказки к словам мнемонической фразы адреса. Первый, кто угадал комбинацию, получил целый биткоин в качестве награды. По сегодняшнему курсу это эквивалент 9309 долларов, то есть сумма приличная.
К удивлению Милна, его пазл был "взломан" раньше, чем он того ожидал. Спустя несколько дней после разгадки головоломки стало известно имя победителя — им стал Джон Кантрелл, разработчик протокола Juggernaut на основе Lightning Network. Кантрелл сам рассказал, как ему удалось разгадать пазл и забрать желаемую награду.
Как взломать Биткоин-кошелек?Для начала давайте обозначим некоторые базовые понятия. Мнемоническая фраза — это комбинация из 12 или 24 слов, с помощью которой любой человек может получить доступ к средствам на криптовалютном кошельке. Мнемоническую фразу часто называют сид-фразой, это один из самых ценных паролей для каждого криптоэнтузиаста. Её нужно тщательно хранить и никому не показывать.
В данном случае сид-фраза состояла из 12 слов. У себя в Твиттере и других социальных сетях Милн постепенно публиковал подсказки к каждому слову, то есть части головоломки раскрывались день за днем. Её автор предполагал, что последние слова в комбинации следует раскрыть в один момент, чтобы исключить возможность брутфорса — перебора слов в сид-фразе с помощью программы. Но до этого дело не дошло.
I just published an article on how I checked over 1 trillion mnemonics in 30 hours to win @alistairmilne's 1 Bitcoin giveaway. I hope to pay-it-forward with a contest of my own that can't be won by software, details to come soon! https://t.co/5TNu1Z8CpL
— John Cantrell (@JohnCantrell97) June 18, 2020
Ирония в том, что Кантреллу как раз удалось успешно применить тактику брутфорса для получения доступа к награде. Спустя примерно 44 часа после публикации Милном подсказок к восьмому слову в комбинации Кантрелл с помощью подбора нашёл правильную комбинацию и тут же вывел биткоин из кошелька.
Took the 'hacker' just 44 hours to brute force. They paid a huge miner fee (0.01BTC!) so were worried about others doing the same and felt under pressure
— Alistair Milne (@alistairmilne) June 17, 2020
За транзакцию он заплатил достаточно высокую комиссию — аж 0.01 BTC. Всё ради того, чтобы его перевод первым попал в очередь на добавление в следующий блок и пришел на его кошелёк. Кантрелл побаивался, что другой участник конкурса может его опередить.
1 #bitcoin giveaway!
8th Seed word clues:
— contains the letters/string 'ram'
— contains the letter D
— was not built by slaves
— is something drawn
— Alistair Milne (@alistairmilne) June 15, 2020
Вернемся к свойствам мнемонических фраз. Они состоят из разных слов, однако в комбинациях применяется только набор из 2048 заранее определенных слов. Отчасти это упрощает подбор сид-фразы, так как при брутфорсе не нужно подбирать комбинацию из всего словаря английского языка, в котором есть десятки тысяч слов.
Однако даже в таких условиях найти разгадку было достаточно сложно. По словам Кантрела, количество возможных комбинаций с уже известными восемью словами достигало 1.1 триллиона единиц. Его ноутбук мог тестировать только 1250 комбинаций в секунду или 108 миллионов в день. Вот его цитата.
Это значит, что процессор моего компьютера нашел и применил бы нужную сид-фразу примерно за 25 лет, учитывая более триллиона комбинаций с восемью известными словами.
Чтобы решить проблему, Кантрелл обратился к облачным вычислениям. Он арендовал несколько десятков видеокарт на платформе Microsoft Azure и написал программу, которая распределяла работу по частям, делегируя их каждой видеокарте.
В один момент я тестировал примерно 40 миллиардов мнемонических фраз в час. То есть для тестирования триллиона комбинаций нужно было примерно 25 часов. Я знал, что в среднем это займет всего половину времени.
После тестирования 85 процентов комбинаций Кантрелл понял, что в его системе был фундаментальный недостаток. Его план базировался на том, что Милн давал слова в правильном порядке — что не гарантировалось.
То есть если бы слова действительно были в случайном порядке, количество возможных комбинаций возрастало в 40 320 раз.
To iterate all possible 12 word seeds using the same setup would take about 309,485,009,821,345,068,724,781,056 days.
— John Cantrell (@JohnCantrell97) June 18, 2020
Спустя день вычислений Кантрелл «уже был готов сдаться». Однако когда прогресс поиска сид-фразы достиг 91 процента, спустя более чем миллиард проверок энтузиасту всё же удалось достичь успеха. И да, он действительно заплатил высокую комиссию, чтобы его не опередил кто-то другой.
История получила интересный финал и прекрасно демонстрирует, что могут принести находчивость, знания и стремление. Теперь Кантрелл планирует запустить подобный конкурс, только на этот раз его "нельзя будет взломать" с помощью программ.
Мы считаем, что награда нашла достойного пользователя. Очевидно, получение целого биткоина в таких условиях было непростой задачей: всё же ради победы парню пришлось писать скрипты, арендовать оборудование и проводить другие не самые очевидные действия. Однако результат говорит сам за себя. Теперь у него есть известность, желание провести аналогичный розыгрыш и лишний биткоин на кошельке, конечно же.
Ваш заветный биткоин ждет, пока вы его заработаете. Чтобы ускорить этот процесс, присоединяйтесь к нашему крипточату миллионеров. И заглядывайте в Яндекс Дзен, конечно же.
ПОДПИСЫВАЙТЕСЬ НА НАШ КАНАЛ В ТЕЛЕГРАМЕ. ТУТ ХОРОШО!
Аналог Notcoin - Blum - Играй и зарабатывай Монеты