June 8, 2021

ФБР и Бедкоен

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

Как ты, наверное, слышал, некие злые хакиры атаковали нефтепровод в США и попросили выкуп в этих клятых биткоинах, и даже его получили! Но далее ФБР ловко вычислило сервер в Калифорнии, где хранился приватный ключ от кошелька злоумышленников и тут же выдернуло 69BTC обратно. Из 75BTC, да. Ну, уже как бы неплохо.

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

Правильно! Благословенный Питон!

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

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

Поэтому мы покупаем новый чистенький комп, или берём тщательно обнуленный старый, и ставим на него Питон, PIP и две либы:

pip install bipwallet

pip install yaml

Больше интернет нам не понадобится. Теперь суем комп в глубокий подвал, где не ловят ни GSM, ни посторонние WiFi, ни Масковский Starlink. Для надежности можем обернуть фольгой или обить свинцом. Отныне никакой утечки, даже нигде не задокументированной и самой параноидально-заговорщической у нас не будет.

Начнём с простого. Запилим новый питоновский проект и импортируем либы:

import yaml

from bipwallet import wallet

А? Круто, да? Ещё не очень, но вот дальше давайте забабахаем сид-фразу нашего нового хакирского кошелька.

seed_phrase = wallet.generate_mnemonic()

Можете вывести ее на экран через:

print (seed_phrase)

Вот на этом месте вам надо охуенно осознать один важнейший момент: мы только что в одну строчку кода получили сид-фразу на оффлайновом компе.

Когда ты генеришь кошель в какой-то приложухе или на сайте криптосервиса, тут возможен какой-то MITM-перехват. Троян у тебя на компе, товарищ майор на проводе, сам сервис может пиздеть, что не хранит сиды — а вот в оффлайне передачи никакой нет. Даже если параноидально предположить, что закладка в самой библиотеке bipwallet, всё равно сливать некуда, мы не в сети.

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

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

Ты понимаешь, какой Святой Грааль кроется в твоей могучей программе? Вооот!

Но сид-фраза — это скучно. Пойдём выковыряем из неё всякого полезняка, а заодно откроем для себя новое свойство блокчейна Bitcoin.

Так и пишем дальше:

wallet_list = wallet.create_wallet(network="BTC", seed=seed_phrase, children=0)

print(yaml.dump(wallet_list))

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

Чо такое children? Это количество дополнительных кошельков. Дело в чем: одна сид-фраза подходит сразу к миллиарду разных кошельков, и это не форма речи. Их действительно миллиард, и меняя children от 0 до 999999999 ты можешь получить список адресов любой бляць длины. Это разные кошельки, но у них один сид. Сгенерировав одну сид-фразу, ты получаешь сразу миллиард кошельков под своим контролем. И можешь разным людям раздавать разные, вай нот?

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

И вот отсюда у меня вопрос: скажите, а охуенно крутой хакер, поломавший важнейший нефтепровод США, он что, ДОЛБОЁБ? Он был не в силах наебашить код из бляць трех строчек и сделать себе нормальный кошелёк без палева?

А если мог, то КАК ебучее ФБР спалило его приватный ключ и вернуло 65BTC из полученного выкупа? Арестовав и вскрыв некий арендованный (зачееееем бляць???) сервер в Калифорнии (ааааа!!! Выбирайте хостинг в ДНР, заебали).

Может быть, кто-то всё-таки пиздит тут? Ну, силовики всегда пиздят, в этом и есть основная философская проблема с силовиками, которую не удалось пока решить нигде в этом мире.

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

Вывести практически любую разумную сумму в кеше из биткоина занимает примерно полчаса, плюс пересчёт бабла. Это если ты заранее продумал всё и подготовил дропычей. И точек, куда ФБР не добежит за час, на этом свете предостаточно. Этапов, где тебя могут взять за яйца, всего два: когда ты слал письмо с требованием выкупа и когда ты пушил подписанные приваткой транзы под вывод. Но точно не когда ты генерил кошель.

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

А вот теперь ответьте: не кажется ли вам, что эти новые «хакиры» палится на технических мелочах ровно так же, как террористы с сахаром?

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

Но! Вот именно что «мы выпалили по блокчейну сервер, где хранился приватный ключ, конфисковали его и вернули часть крипты» — это феноменальное фуфло.

Это фантастическое фуфло, друзья. Это фуфло просто не имеет аналогов в обозримой вселенной. Это прям фуфло века. А мабуть тисячоліття.

ПС: кстати, теперь вы знаете, как секурно генерить себе криптокошельки. Да?

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

ППС фактически для передачи транзакций в блокчейн достаточно телеграфной связи и азбуки Морзе (но двух сторонняя). А при её отсутствии сгодится даже голубиная почта. Если майоры отрубят нам интернет в стране полностью, мы голубями будем будем транзы ебашить.