Вероятность и безопасность | Free TON
Создать запись
Опубликовать мероприятие Создать объявление (cкоро)
Создать запись
Популярные тэги
Что-то многовато запросили мне кажется. Не получится как с сабом вики? Получили - отмыли и...
African Subgovernance Proposal
Это монеты с серийным номером что ли? История каждой монеты может быть отслежена? Как-то с...
Невзаимозаменяемые токены NFT
Ну отлично, я готов приступать. И у меня есть бомбическая идея!...
Предложение: конкурс на создание контента
John Doe Подскажите пожалуйста, где звять форму на участие, или линк продублируйте. Спс...
Интервью с Александром Филатовым, СЕО TON Labs
@Soultanov Чтобы создавать записи - нужно заполнить форму участия в SMM, после чего взять ...
Интервью с Александром Филатовым, СЕО TON Labs
почему я не могу создавать записи?...
Интервью с Александром Филатовым, СЕО TON Labs
Стоит, наверное, указать в заголовке, что это обзор решений от команды радианс, которые не...
Новые библиотеки TON-SDK для Free Ton

Вероятность и безопасность

Статья посвящена теме безопасности с точки зрения вероятности. Утеря ключей, забывание выученных мнемонических фраз, либо выдача злоумышленнику 12 слов фразы вследствие побоев не являются предметом этой статьи:)

2

Автор публикации

не в сети 3 дня

viljy

7
Комментарии: 0Публикации: 5Регистрация: 11-11-2020

Криптовалюты основаны на вероятности. Означает ли это, что однажды установив кошелек bitcoin вы обнаружите, что он набит битками по самую макушку? Возможно ли такое? Да, это возможно, но крайне маловероятно, что такое произойдет. Скорее звезды уже погаснут во вселенной, чем произойдет такое событие.

Но это не останавливает энтузиастов — «кладоискателей», целенаправленно занимающихся подбором ключей к древним адресам (и не только к ним), где находятся монеты, добытые в ранние годы существования биткоина или даже позднее. (Роль вероятности в безопасности рассмотрим на примере биткоина, как главного представителя криптовалют и, можно сказать, на данный момент единственного поля для деятельности, о которой пойдет речь ниже. Это же когда-то может стать актуально и для Free TON.)

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

В том, что коллизии действительно существуют, можно легко убедиться опять же на примере биткоина. Исходными данными для получения публичного ключа (который использовался в качестве адреса в первое время после запуска биткоина) служит приватный ключ, из публичного ключа путем последовательного хэширования (подробнее об этом: https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses ) получается адрес. При этом пространство приватных ключей имеет размер 2^256 (256-битное), а вот пространство адресов уже только 2^160 (160-битное). Если разделить первое на второе, то получим потенциальное количество коллизий 2^96.

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

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

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

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

Кажется, что это одно и тоже, однако между коллизиями первого и второго рода есть существенная разница. Сложность подбора коллизии первого рода с вероятностью 50% (как шанс при подбрасывании монетки для выпадения например орла) 2^n-1 (n – число бит) количества попыток при переборе данных, тогда как сложность подбора коллизии второго рода гораздо ниже, и для достижения той же вероятности в 50% составляет 2^n/2. Исходя из этого, для криптографии хэш-функция считается стойкой к взлому перебором по критерию для коллизии второго рода, то есть со сложностью 2^n/2 количества переборов.

Почему такая разница в сложности перебора для коллизий первого и второго рода. Это прямое следствие такого метода как «атака дней рождения», основанного на парадоксе дней рождения. Кратко о парадоксе дней рождения: в группе из 23 людей или более, вероятность того, что хотя бы у двух человек дни рождения совпадают составляет более 50%. Хотя людей всего 23, а дней в году 365 (или 366 в високосный), но количество возможных пар 23!/2!*(23-2)! (по формуле сочетаний), а это 253. Для большего числа людей в группе вероятность таких пар еще выше.

Теперь прошу обратить внимание сюда: https://lbc.cryptoguru.org/dio/317219204448258. Как можно видеть, страниц с приватными ключами к адресам биткоина очень много. Работа по кладоискательству идет постоянно, например, прямо сейчас на момент написания этих строк, со скоростью 283 Mkey/s (миллион ключей/секунду). Это деятельность большого биткоин коллайдера — Large Bitcoin Collider (LBC). Кстати, 283 миллиона ключей в секунду это маловато, производительность парочки топовых карт nvidia всего лишь.

Впервые нечто подобное этим страницам довелось увидеть, когда в конце 2013 года в чате биржи BTC-E раздались вопли (если так можно выразится применительно к чату) «Биток взломали!». Вследствие возникшей ненадолго паники даже курс упал. Впрочем, довольно скоро суматоха закончилась, так как все эти страницы составляли объем информации лишь с песчинку от галактики данных и практически угрозы безопасности кошельков не представляли. Хотя справедливости ради надо сказать, что кое-какие балансы на тех адресах находили. Впрочем, эти балансы тут же улетали автору страниц. Так как он использовал страницы для того, чтобы посетители чекали балансы вместо парсера. Ловко придумано, но крайне непроизводительно.

LBC тоже может похвастаться некоторыми добытыми трофеями, ознакомиться с перечнем которых можно здесь: https://lbc.cryptoguru.org/trophies . Кроме LBC существует множество энтузиастов, которые занимаются кладоискательством в индивидуальном порядке. Для этого у них существуют специальные инструменты. Среди общеизвестных программ для этого можно в первую очередь упомянуть очень старую Vanitygen, которая создавалась на самом деле для генерации красивых адресов (например, чтобы поставить свое имя в начале адреса), а не для атак на списки адресов. Сейчас известна более совершенная программа VanitySearch, которая также создана не в целях перебора для атаки, но может быть использована для этого. Для полноты можно упомянуть еще программу Plutus примерно тоже, что и VanitySearch.

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

Из общеизвестных программ еще стоит отметить BitCrack, которая, в отличие от вышеперечисленных, имеет более основательный подход к атаке на массивы адресов, так как для этого и создавалась. Среди ее особенностей задание точки старта, задание диапазона в пространстве ключей, опции перебора с произвольным чередованием (через 1, 2, 7 или миллион, как угодно), сохранение результата работы для последующего продолжения перебора.

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

Есть еще интересное эмпирическое наблюдение, которое встретилось на гитхабе: «Мне интересно стало как Wifkey располагаются в пространстве 2^256. Оказалось сначала идет диапазон 5H. Затем 5J и замыкает 5K. И на стыке диапазонов как раз и получаются такого вида Wifkey. 5HzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzNzztKi — 17nWgRzUnbTkFSyfBSxKRj9CvfR5DiuTL9.» (с) Alex Curl

Хотя тут речь идет сразу о приватнике, тем не менее это найденная особенность. И кто знает, какие еще находки есть у людей, увлекающихся поиском закономерностей. Далеко не все из них склонны их афишировать.

Вышеупомянутые программы занимаются фактически поиском коллизий первого рода. А есть еще программы для поиска коллизий второго рода. Как мы уже знаем, вероятность нахождения таких коллизий значительно выше. Например, интересна программа Kangaroo, которая использует для поиска алгоритм «кенгуру» или lambda-алгоритм (название произошло от того, что график приближения к результату похож на букву лямбда). Также существует алгоритм baby step giant step. Подробное погружение в эти алгоритмы не является предметом данной статьи, так как все вышеперечисленные программы и алгоритмы приведены здесь лишь для того, чтобы читатель знал о том, что безопасность его средств всегда «проверяется на прочность» кем-либо.

Если же кого-то заинтересовала данная тема в силу спортивного интереса или азарта, и захотелось «попробовать», следует учесть некоторые факторы. Теоретически существует два пути достижения успеха на этом поприще: 1. Создать квантовый компьютер, способный перебирать огромные массивы данных и найти коллизию в разумный срок. 2. Решить одну из семи проблем тысячелетия, а именно проблему равенства классов P и NP в теории алгоритмов (получив при этом миллион долларов как приз), причем решить в виде P=NP, что тут же повлечет крах криптовалют в том виде, как они существуют (поэтому прежде, чем обнародовать свое достижение, наковыряйте себе битков с заброшенных адресов и продайте за фиат — шутка само собой:)

Кстати, на этом утверждении (P не равно NP) построены все криптографические системы. По-простому, в приложении к криптовалютам можно интерпретировать эту проблему так: существует ли алгоритм, позволяющий относительно быстро (не методом перебора) найти ключ к адресу.

Смешно? А вот небольшой исторический пример: 

Известно, что количество простых чисел, не превышающих данное x определяется двумя приближенными формулами: x/ln x (отношение х к натуральному логарифму х) или Li x (интегральный логарифм x от 2 до х) при этом первая формула занижает реальное значение, а вторая (хотя и более точная) завышает. То есть x/ln x всегда меньше чем Li x. Именно так полагал Рамануджан (знаменитый математик). Однако было доказано, что это не так. В окрестности некоторого очень большого числа (число Скьюза) значение первой формулы превышает значение второй. И если даже Рамануджан мог ошибаться, то пока проблема равенства классов P и NP не решена, нельзя однозначно утверждать, что классы не равны (хотя стоит отметить, что некоторые утверждения вообще не могут быть ни доказаны, ни опровергнуты).

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

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

Итак, seed фраза в нашем случае (например surf) включает в себя 12 слов специального словаря, который состоит из 2048 слов всего. Таким образом, каждая из позиций фразы может принимать 2048 значений, что соответствует 2048^12 комбинаций. Если привести основание степени к степеням двойки получим 2^11, значит число вариантов 2^132, что означает 132-битное пространство seed-фраз. Это очень высокая степень безопасности, но кому-то кажется, что это недостаточно надежно. И тогда изобретается, например, такая уловка: поделить фразу на две части и спрятать бумажки в разных местах. Самое простое умозаключение приводит к тому, что шанс найти одну бумажку из двух выше, чем шанс найти одну бумажку из одной. Скорее всего фраза поделена пополам и тогда нашедшему становятся известны шесть слов и их порядок. Причем неважно первая эта половина фразы или вторая, так как он проверит оба варианта и это затянет его поиск (конкретно в 2 раза), но не так уж критично относительно всего объема данных для перебора. Для простоты предположим он точно знает, что нашел первую часть фразы, тогда все, что ему остается сделать — это перебрать менее 2048^6 комбинаций (или 2^66) чтобы на 100% узнать фразу. Безопасность снизилась с 132 бит до 66 бит. Почему ему практически придется перебирать даже меньше? По двум причинам: первая в том, что ему надо перебрать половину, чтобы достичь результата с 50% вероятностью (то есть 2^65), а вторая в том, что он может сразу исключить из перебора комбинации, содержащие уже известные ему шесть слов, так как их нет в неизвестной половине (перебирать 2042^6 вариантов). Да, это очень долго, но на мощном оборудовании угроза безопасности кошелька имеет место быть. Больше времени займет скорее не сам перебор, а проверка балансов генерируемых адресов.

Историю о том, как за 44 часа были подобраны 4 недостающих слова из 12 вы можете прочитать здесь: https://2bitcoins.ru/lyubitel-kriptovalyut-zarabotal-bitkoin/

Еще распространенная уловка: переставить слова местами в фразе и считать, что эта хитрость значительно воспрепятствует опустошению кошелька, даже если кто-то найдет бумажку. На самом деле нет, так как когда известны значения всех 12 позиций, но неизвестен порядок, то полное количество вариантов составляет всего лишь 12! (количество перестановок) а именно 479 001 600 — смехотворное для криптографии число.

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

Хранить ли несколько копий фразы? С одной стороны это повышает вероятность, что кто-то найдет одну из копий, с другой — как бы защищает владельца от утери информации им самим. Правильнее будет сказать, что не хранить, так как ключами не стоит разбрасываться, даже в целях собственной подстраховки. Криптовалюта — это персональная ответственность. Если даже владелец нигде фразу не хранит, а выучил наизусть, это не дает гарантии абсолютной безопасности, так как есть шанс, что он однажды получит удар по голове и лишится памяти. В криптовалютах нет возможностей как у банковского счета, где можно опротестовать переводы, заблокировать карту, восстановить доступ и так далее. В то же время никто не может лишить вас криптовалюты в отличие от арестованного счета в банке. Поэтому наряду с высокой безопасностью и полной властью над средствами, присутствует элемент риска полной утраты доступа к кошельку, как оборотная сторона безопасности. Впрочем, для пользователей surf будет существовать криптокарта (можно заказать), предоставляющая определенные удобства и некоторую подстраховку от непредвиденных обстоятельств.

Вот в общем и все. Храните мнемонические фразы в надежном месте. И не теряйте их.

2

Автор публикации

не в сети 3 дня

viljy

7
Комментарии: 0Публикации: 5Регистрация: 11-11-2020

Популярное

Интервью с Александром Филатовым, СЕО TON Labs

Интервью с Александром Филатовым, СЕО TON Labs

12
Предложено партнерство c BlockchainGameStudio

Ну что, начнем новый рабочий день на хорошей ноте? В этот понедельник, 9 ноября поступило предложение о сотрудничестве от BlockchainGameStudio с весьма необычной идеей внедрения Free TON в проект, над…

15
Как стать судьей в голосованиях и получать за это TON’ы?

Хотите узнать, как получить статус жюри, оценивать работы в конкурсах и получать за это токены? Все есть в короткой и простой инструкции. Добро пожаловать под кат!

1
Интервью с WorldChess, новые партнеры Free TON! ?

Сегодня в гостях на подкасте Free TON Blog СЕО WorldChess расскажет о проекте и партнерстве Free TON, а также ответит на несколько вопросов сообщества. Слушайте прямо сейчас! Ведущая — Полина…

4
Интервью с Ron Millow — Chief Business Officer в TON Labs

Друзья, всем желаем всем хорошего начала недели и хотим поделиться недавним интервью с Ron Millow (Chief Business Officer в TON Labs)! В этом подкасте Ron рассказывает о перспективах Free TON,…

4
NFC Card by TON Labs скоро станет доступна для предзаказа

Пссст, хотите хороших новостей, чтобы скрасить этот пасмурный день? Совсем скоро будет доступна для предзаказа карта TON Labs NFC Card. Здесь мы расскажем подробнее о ее функциях и о том,…

3
Инструкция по созданию кошелька в Surf

Первый шаг для начала работы с приложением — создание личного кошелька.  Здесь все предельно просто: Открываем приложение. Под каруселью с описанием приложения находим и нажимаем кнопку Create Wallet. Далее внимательно…

2
Cointelegraph предложил партнерство Free TON

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

1
Интервью с Егором Петуховским (Co-Founder биржи криптовалют Chatex).

Добрый вечер, наши слушатели! Спешим порадовать Вас с новым интервью с Егором Петуховским — совладельцем биржи криптовалют Chatex!??? Время прослушивания 24 минуты⏳ Ведущая — Полина Вишневская. Специально для blog.freeton.org. Приятного…

3
Интервью с «папой» TON Surf(а) — Евгений Теслов💳💻

Доброго времени суток, всем слушателям подкаста✌🏽💎

2
Авторизация
*
*




Регистрация
*
*
*
Пароль не введен
Генерация пароля