Насколько надежен сид в Electrum и других кошельках?

В этой небольшой заметке я постараюсь развеять все сомнения по поводу безопасности использования сидов как в Electrum. Некоторые люди, особенно которые недавно вошли в тему криптовалют, ставят под сомнение надежность сгенерированных сидов вида current ripple stock slot good enlist bitter catch paddle youth panel gesture. И как оказалось таких людей немало. Вот их скепсис по этому поводу:

восстановить кошелек в электрум можно только введя сид из 13 слов, неужели нельзя случайно его угадать? понятно что не подберешь сид определенного кошелька, но неужели нельзя случайно подобрать чей-то сид? например в связке логин/пароль нужно к определенному логину подобрать пароль, а чтобы получить доступ к кошельку електрум нужно подобрать только логин без пароля.. пытался найти ответ на свой вопрос, но так и не смог понять почему seed так безопасен.

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

Для начала давайте определим при переборе логина+пароля сколько будет вариантов всего. Естественно, точного ответа тут не может быть, но мы будем округлять всё в сторону более тяжелого перебора, чтобы уж наверняка.

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

А из чего состоит пароль? Все цифры (0-9), буквы в обоих регистрах (a-Z), специальные символы которых штук 10. В сумме 10+26+26+10=72. Т.е. 72 варианта каждого символа.

Обычно пароль состоит из 8-12 символов, мы возьмем для примера 12. Итак, у нас получилось в сумме 8 символов логина + 12 символов пароля, т.е. 20 символов в сумме. Охренеть! Двадцать семидесятиразрядных символов!

Вооружившись знаниями школьного курса комбинаторики, посчитаем количество возможных вариантов:

7220 = 1,4016834 × 1037

Как видно из результата получается очень большое число с 37 нулями.

Если на данный момент с логином-паролем более или менее понятно, то как же обстоят дела с сидами? Давайте выясним!

Итак, для примера возьмем мнемоники BIP39, коих в сумме 2048. Иначе говоря 2048 слов, из которых в конечном итоге составляется сид.

Наш сид в рамках примера будет иметь размер - 12 слов.

Например, уже упомянутый в заметке сид:

current ripple stock slot good enlist bitter catch paddle youth panel gesture

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

Подобно примеру с логином-паролем, мы на данный момент понимаем, что имеем 12 символов слов и 2048 разрядов.

2 04812 = 5,4445179 × 1039

Ну и собственно сравниваем: 5,4445179 × 1039 : 1,4016834 × 1037 ≈ 388

Мы получили что сид длиною в 12 слов взломать перебором в 388 раз сложнее, чем сложные логин+пароль.

И давайте не забывать что это сид всего лишь в 12 слов. На аппаратных кошельках и не только вы можете использовать сиды из 24 слов! А это... погодите мгновение... 2,9642775 × 1079 вариантов! Для сравнения на нашей планете людей в сумме 7,4 × 109! Сидов в 10000000000000000000000000000000000000000000000000000000000000000000000 раз больше!

Всё!

Сервис для работы со строками (текстом)

Сегодня закончил работу над инструментом для более удобной работы с текстовыми строками. Хотя работой это можно назвать с натяжкой, т.к. заняло всё пару дней и делалось на неугасающем энтузиазме. В первую очередь "Редактор строк" создавался с целью помогать мне в работе. При создании уровней словесных игр очень часто приходится писать на JS костыльные одноразовые функции чтобы решать задачи, с технической точки зрения простые, но имеющие ряд нюансов. Всё это делать было крайне неудобно, приходилось создавать разные файлы с разными функциями для проектов и всё это превращалось в винегрет. И вот настал момент, когда необходимость совместить строки двух текстовых файлов заставила меня снова писать функцию и я решил что пора более или менее унифицировать процесс работы со строками. Что я собственно и постарался сделать. Итак, редактор строк, что это вообще за инструмент и зачем он нужен? Расскажу подробнее.

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

На данный момент вы можете делать следующее:

Сортировка: А-Я - Обычная сортировка по алфавиту.

Сортировка: По длине - Сортировка по длине строк

Сортировка: Обратить - Сортирует строки в обратной последовательности. Т.е. Если мы хотим не от А до Я, а от Я до А, мы выбираем сортировку А-Я, а затем применяем эту функцию сортировки для получения желаемого результата.

Сортировка: Перемешать - Просто перемешает строки в случайном порядке

Дубли: Удалить - Найдёт дубликаты строк и удалит их

Дубли: Удалить (с основами) - Если строка повторяется, он удалит все повторы, в т.ч. и оригинал строки

Дубли: Оставить - Ищет дубли строк и оставляет только найденные дубли

Транслит Абв-Abv - Обычная функция транслитерации кириллицы в латинские буквы

Регистр:ПРОПИСНЫЕ - Меняет регистр букв на прописные

Регистр: строчныеМеняет регистр букв на строчные

Регистр: Заглавные - Делает первую букву строки большой

Объединить строки - Объединяет строки в одну своим разделителем или выбранным.

Разделить на строки - Разделяет одну строку (текст) на строки своим разделителем или с выбранным.

Удалить - Ищет и удаляет на выбор: пустые строки, все пробелы, меняет двойные пробелы на один, ищет и удаляет введенные данные. Также может работать с регулярными выражениями.

Заменить - Ищет и заменяет одни данные другими.

Стеммер Портера - Применяет к тексту стеммер Портера

Объединение строк W1+W2 - Может выполнять как прямое объединение строк из полей W1 и W2, так и полное. При прямом объединение конечные данные будут содержать количество строк равное большему по кол-ву строк текстовому полу. Первая строка будет содержать первые строки полей, вторая - вторые и так далее, без пересечений меж строками. При полном объединении количество строк результата будет равно произведению количеств строк в двух полях. Данный пункт появляется только в режиме двух текстовых полей.

Вот, собственно, сам редактор:

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

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

Редактор поддерживает загрузку файлов перетаскиванием, а также сохранение файлов.

Данный редактор будет периодически пополняться новыми функциями. Если про какие-то важные функции работы со строками я забыл - пишите в комментариях к материалу.

Работа, 6. 11. 2017

Итоги лета

Что ж, вот и прошло лето и самое время подвести итоги выполненной работы, завершенных дел, потраченных на отдых недель часов. В первую очередь хотелось бы отметить поразительно низкую общую производительность. Связано это в первую очередь с распылением фокуса внимания на новое направление - криптовалюты/майнинг. Соответственно пришлось немало времени уделить настройке всего, докупке оборудования, постоянным поездка туда-сюда за прибывшими видеокартами, за необходимостью чинить сломавшийся софт (Подлый Тимвивер), а порой даже и хард (В конце августа приказала долго жить материнская плата MSI krait gaming 3x после перебоев с электроэнергией). Я бы сказал что майнинг и крипта, сколько бы они времени фактически не заняли, были в голове безвылазно до конца августа, что в конечном итоге подорвало производительность в основной деятельности, о чём я и собирался написать в этой заметке.

Компьютерные игры стоят на втором месте в списке олицетворений зла, мешающего работе. Вышедшая 16 альфа 7 Days to Die выкрала несколько десятков часов в общей сложности. Полный желания поиграть максимально качественно, я даже поднял свой сервер который работает и по сей день, вот уже более 3 месяцев подряд. Есть ещё несколько тайтлов на которые были потрачены бесценные часы: Stronghold Legends, Prey, GTA V, R6 Siege, KSP, Gwent.

С английским случился просто какой-то феерический проёб. Мне кажется суммарный прогресс даже весьма ощутимо просел. В этом направлении мне ещё стоит работать и работать. 3/4 английского необходимого для общения я уже должен знать, но по ощущениям я могу скоро достичь 1/8 этой цели. Грустный итог.

Из положительного что можно вспомнить, это поездка в Сочи и наверное всё. Также стоит упомянуть, что в июне я собрал себе игровой ПК с i7 7700k и 1080ti на борту, но пока в работе и благих делах он не пригодился, поэтому в список положительного не попал.

Куплено: квадрокоптер, телефон, часы.

Выпущенных/законченных проектов: 0

За всё лето полезного и нужного, судя по всему, не было сделано ничего. НИ-ЧЕ-ГО! Это как если бы черную дыру радиусом в полтора месяца разместить в середину июля.

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

Это был пост в котором я не побоялся признать свои провалы лета и постарался без преуменьшения описать всю произошедшую деструкцию производительности.

Связался с майнингом. Отчёт за последнее время

Весь апрель и значительная часть мая у меня практически полностью ушли на майнинг... Майнинг криптовалют.

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

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

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

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

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

Работа, 20. 5. 2017

Нет желания писать

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

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

Зарабатывать больше с целью экономии своего времени

Всем конечно понятно, что чем больше ты зарабатываешь, тем лучше. Зарабатывая больше, мы можем есть более дорогую и вкусную еду, пользоваться опять-таки более дорогими и качественными вещами, путешествовать и так далее. Однако, как бы ни было странно, не для всех людей перечисленные вещи станут сильными мотивирующими условиями. Быть может одна из причин этого невозможность численно выразить влияние более высокого дохода на жизнь. Конечно можно возразить: а как же количество машин, яхт и квартир? Дело в том что такое численное выражение наступает уже значительно позднее ситуации когда человек берёт себя в руки и отметая страхи, начинает монетизироваться по-новому. У многих людей нет особого предмета роскоши, который имело бы смысл размножать и самое главное мотивироваться его количественным увеличением.

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

Возьмём простой пример: Вася Тупкин работает за 40к в месяц. Для его должности это отличная зарплата (некоторые его коллеги получают меньше), но это потолок и большей платы в месяц он получать не будет. Путём нехитрых вычислений мы поймём, что за 10 лет Вася заработает 40*12*10=4.8М. А так как нашему Васе сейчас 27 лет, а средняя продолжительность жизни мужчин в России 64 года, тогда выходит что у него осталось 64-27=37 лет времени. Так как Вася работает в России, где в последнее время в пенсионной реформе творится пиздец происходит что-то странное, будем считать что до пенсии он не доживет и будет работать до самой смерти все 37 лет. Разумеется мы не считаем больничные, отпуска и прочее поэтому не претендуем на точные показатели, а лишь даём общий вид ситуации. Ну и сколько же Васька получит за свою жизнь? 3.7*4.8=17.7М. Именно столько заработает Вася, трудясь каждый будний день своей жизни на своей работе за 40к до дня смерти. Конечно чистая прибыль будет сильно меньше, но речь сейчас не об этом. Зачем Васе что-то менять? Ведь именно таким путём предпочитает идти большинство людей, выбирая "стабильность" и "уверенность в завтрашнем дне".

Из примера видно, что Васе достаточно заработать за целую жизнь 17.7 миллионов рублей, чтобы полностью отбить монетизационную составляющую его жизни. Достигнув этой цифры он имеет возможность прекратить работать вовсе. И здесь важно понимать что у каждого человека и у Васи всегда есть выбор, масса вариантов для достижения этой цели, этих денег. Можно (и в большинстве случаев было бы желательно) полностью переквалифицироваться и монетизировать тот род занятий, который близок душе. Быть может, Вася мог бы стать отличным предпринимателем, только работая на работе он просто этого так и не узнает, сгинув через 37 лет. Самое главное он уже не будет иметь потолок и его заработок будет полностью зависеть от него самого, его амбиций, решений, действий. Зарабатывая 200к в месяц на своём бизнесе, Вася тем самым будет экономить время в отношении того развития событий когда он работал за 40к. Теперь за 1 год он заработает столько, сколько раньше заработал бы за 5. Вот она экономия времени. И теперь эти самые 17.7М он заработает уже не за 37 лет, а всего за 7.5 и у него ещё в запасе останется 30 лет жизни, заработок и свобода действий.

Ну и теперь ответьте, есть ли смысл Васе что-то менять?

Душ

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

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

Во время разборки душа, решил запечатлить этот момент и сделал несколько фото. Мы ещё с отцом планировали разобрать его перед моим отъездом в Краснодар, но всё никак не могли приступить к делу. И вот отца нет уже практически 2 года и мне пришлось самому демонтировать его детище. Заметил насколько старательно всё было сделано и с душой. Некоторые штуки были сделаны буквально из подручных средств. Например, один навес двери был забит толстыми гвоздями через несколько расплющенных пробок от пепси. Это на случай если навес начнёт разбалтываться, чтобы шляпка гвоздя не стёрлась и гвоздь не провалился в проём на навесе. Удивительно когда в душе наебнулась розетка и полка у зеркала, отец не заменил их, а построил новую полку под старой и вмонтировал выше старой новую розетку. Почему он так сделал я на самом деле не знаю. В душе ближе к году 2012 разболталась лавка, которая была потом починена ну и в остальном всё. Опять-таки за исключением сраных бочек которые были как расходный материал. За всё время поменялось около 4 бочек и причиной тому как я считаю была коррозия металла из которого они сделаны. Эта проблема была бы решена при установки бака из пластика, но я не берусь утверждать насколько пластиковый бак будет долговечней, учитывая что использование включает в себя нагрев 2 или 3 килловаттным обогревательным теном ну и собственно погодные условия тоже никто не отменял.

Вообщем душ, за исключением задней стенки, которая теперь играет роль забора, разобран.

Сельский автобус

Сегодня мне довелось в очередной поездке в Выселки проехаться на сельском автобусе. Это удивительный транспорт, наполненный удивительными с некоторой точки зрения людьми. Во время таких поездок чувствуется своего рода унылая атмосфера внутри. Как правило, основную массу пассажиров составляют люди за 50, которые по своему обыкновению едут в больницу или же на рынок. И во время поездок в этом автобусе ощущается какая-то грусть, глядя на этих всех людей. Понимаешь, что они прожили лучшие годы своей жизни в этих далёких от остального мира местах, потратили здесь десятилетия и ни к чему не пришли. Они гарантированно ничего хорошего и интересного не видели и подавляющее большинство и вовсе не выбиралось за пределы района. Меня всегда мучает в таких ситуациях вопрос: "А хотели ли они большего?". Неужели не было никакого желания увидеть за свою единственную жизнь новые места, новых людей, узнать насколько этот мир большой на самом деле? А если хотели, то почему ничего не делали ради задуманного? Боялись перемен/выделиться среди остальных? Или просто не хватало целеустремления?

Сейчас это идеальные для работы системы люди, которые ничего не хотят добиться, не возражают, смотрят каждый вечер телевизор, работают по 30-40 лет на одном месте и рассчитывают что когда-то всё наладится. Они не понимают, что само их поведение - гарант того, что ничего не наладится за их жизнь. По моему убеждению жизнь с таким сценарием прожита впустую,  бесцельно. Хотя многие оправдывают всё это тем, что они стараются ради детей и им больше ничего не нужно в жизни. Это весьма странное, не имеющее перспектив к развитию мышление. Это всё бессмысленная возня на одном месте, результат неправильно выбранного вектора в жизни. Можно привести пример с грузчиком и программистом. Грузчик выполняет в 10 раз более тяжёлую работу,чем программист и получает в 5 раз меньше его. Это вполне нормальная ситуация и результат так называемой глобализации. И раз мы уже заговорили о деньгах (которыми напрямую или косвенно можно помочь своим детям, себе и т.д.), то из приведённого примера следует что вектор монетизации у программиста в 50 раз более оптимальный и эффективный, чем у грузчика. Им следовало вовремя найти для себя оптимальный жизненный путь с реальными целями и они могли бы избежать того что у них имеется сейчас, на этот день. Если есть весьма амбициозные цели для текущего положения индивидуума, то он будет стараться соответствовать их выполнению. Ну а для того чтобы только помочь своим детям в этой жизни можно действительно делать то, что делают эти люди. Им уже ничем не помочь, уже слишком поздно.

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

Что-то я слишком отошёл от того что хотел написать. Это мой первый осознанно написанный текст в блоге. Обнаружил, что писать такого рода тексты не так-то и просто, но не могу сказать что неприятно. Для меня это ново. Буду продолжать по возможности и по мере возникновения интересных мыслей.

Первая запись из Телеграм

Это первая запись, опубликованная посредством Телеграм-бота.

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

Вычисление числа Пи методом Монте-Карло

В 2014 году, когда я только принялся за изучение JavaScript передо мной стояла задача разобраться немного с canvas. В качестве практики я реализовал визуализацию вычисления числа Пи методом Монте-Карло:

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

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

Работа, 8. 2. 2017