Содержание статьи:
- Какой алгоритм шифрования у Биткоина, и где он применяется
- Алгоритм шифрования Биткоин — принцип работы простыми словами
- Когда появился алгоритм шифрования Bitcoin — краткая история
- Характеристики алгоритма шифрования Биткоина
- Алгоритм шифрования Bitcoin в майнинге
- Слабые и сильные стороны алгоритма хэширования Биткоина
Шифрование Биткоина построено на базе SHA-256 — специальном алгоритме, являющемся частью программного кода. Его задача в том, чтобы преобразовать входные данные в конкретный набор символов (в буквенном и цифровом отображении) и защитить информацию. Такие действия носят название хэширование. В чем тонкости указанного алгоритма? Для чего он необходим, и как работает? Каковы преимущества и недостатки? Эти и ряд других моментов рассмотрим подробно.
Какой алгоритм шифрования у Биткоина, и где он применяется?
При обсуждении криптовалюты, особенностей ее работы и майнинга участники криптосети неизбежно наталкиваются на столь распространенное определение, как алгоритм шифрования Биткоина. С дня разработки BTC и до сегодня (13 августа 2018 года) используется SHA-256, необходимая для решения таких задач в Bitcoin-сети:
- Формирование адресов BTC (применяются для прохождения транзакций).
- Майнинг (доказательство работы).
- Достижение необходимой степени безопасности и анонимности.
- Для цифровой подписи и ее распознавания.
Алгоритм SHA-256 актуален не только для Биткоина, но и для иных коинов, а именно Биткоин Кэш, Мазакоин, Пиркоин, Неймкоин и других криптовалют. Кроме того, SHA-2 (основа SHA-256) используется при создании многих протоколов, предназначенных для защиты данных в Сети, а именно SSL, TSL и других.
Алгоритм хэширования Bitcoin необходим для контроля информации посредством ее анализа и своевременного выявления неточностей. После обработки данных и перевода в хэш обратное получение сведений невозможно. Если взять уже зашифрованный файл BTC, сделать повторные вычисления и убедиться, что параметры хэшей идентичны, можно быть уверенным в отсутствии изменений в первоначальных сведениях. Если данные расходятся, это свидетельствует о взломе системы.
Алгоритм шифрования Биткоин — принцип работы простыми словами
В основе SHA-2 лежит структура, созданная Мерклом и Дамгардом. Особенность хэш-функции, применяемой в криптографии, заключается в нестандартном подходе при ее формировании. Входящие данные делятся на идентичные по величине блоки, после чего созданные элементы преобразуются в 16-ричное число. Именно с ними впоследствии производятся вычисления. К полученному значению применяется хэш-функция, а результатом обработки является хэш-сумма, появляющаяся на выходе. Она представляет собой набор символов, представленных в буквенном и цифровом отображении. По сути, это и есть хэш.
Очередной блок строится по описанному выше принципу. При этом новый процесс запускается после создания прошлого элемента. Если в первоначальные данные внесены правки, хэш меняется. В случае, когда идентичные параметры хэш-функции вдруг оказались в различных блоках, имеет место конфликтная ситуация в работе алгоритма. При появлении такого несоответствия вся цепочка blockchain подвергается сомнению.
Так, для создания цифровой подписи применяется хэш-функция. Если возникает рассмотренная выше ситуация, высока вероятность подделки подписи. Для вычисления таких сбоев (коллизий) используется специальная методика, подразумевающая перебор данных, что увеличивает стойкость хэш-функции.
Корректность шифрования Bitcoin контролируется четырьмя требованиями:
- При внесении правок во входящие данные хэш-сумма остается прежней.
- Во время хэширования получается индивидуальная хэш-сумма (набор символов должен быть уникальным).
- Создание ключа с применением хэширования максимально усложнено.
- Хэши имеют необратимый характер. Это означает, что разрешена работа с входными данными без возможности осуществления обратного действия.
Как это применяется в Биткоине?
Задача узлов криптовалютной сети заключается в том, чтобы в многочисленных транзакциях найти ту, которая устраивает его по всем параметрам. При оценке вариантов первоначальное внимание уделяется размеру комиссионных (к слову, по этой причине операции с большей комиссией проходят быстрее). Далее проверяется операция, изучаются данные на входе и выходе, уточняется оригинальность цифровой подписи.
Как только рассмотренная работа выполнена, создаётся очередной элемент Биткоин-цепи (блок) с определенным размером (для рассматриваемой криптовалюты — 1 мегабайт). Полученные узлы состоят из версии, времени формирования, двух хэшей (прошлого блока и входящих сделок), а также дополнительных параметров, обеспечивающих уникальность (bits и nonce). В комплексе созданный блок множество раз хэшируется, в результате чего формируется заглавный хэш, который для «старого» элемента цепи играет роль выхода, а для нового — входа.
Допустим, что в наборе хэша присутствует конкретное число «0» (к примеру, nonce равен 17). Подобрать такое значение, применяя только перебор значений, крайне трудно. Именно этот аспект обеспечивает надёжность сведений в blockchain-сети и ее защиту от взлома. Чтобы создать хэш, необходимы огромные мощности, без которых найти требуемый набор символов невозможно. Как только эта работа завершена, а параметр отыскан, он направляется к элементам криптосети с вновь созданным блоком и найденным хэшем с 17-ю «0». Далее все участники Биткоин-сети проверяют хэш, объединяя набор с символов со сведениями из блока. При отсутствии коллизии в цепочке блокчейн появляется новый элемент.
Когда появился алгоритм шифрования Bitcoin — краткая история
Термин «SHA» представляет собой аббревиатуру трех слов: «Secure Hashing Algorithm». В Биткоине используется SHA-256, а «основой» упомянутой хэш-функции является SHA-2, в состав которого входят многие криптоалгоритмы (в том числе 256).
Создателями SHA-2 является АНБ Соединенных Штатов — специальное агентство, занимающееся вопросами нацбезопасности страны. После разработки и проверки алгоритм в 2002 году он был представлен обществу. В состав нового SHA-2 вошла и 1-ая хэш-функция SHA-1 (создана на 7 лет ранее — в 1995-м). После появления SHA-2 было выпущено множество вариантов алгоритма, один из которых применен Сатоши Накамото при создании Биткоина в 2009 году.
Целью разработчиков был выпуск алгоритма, обеспечивающего формирование из случайного набора символов конкретного значения, имеющего определенную длину. У них это получилось. В дальнейшем полученный параметр применятся для идентификации (проверки) информации. Первоначальная задача SHA-2 заключается в защите данных на разных сервисах, а сегодня (в 2018-м) SHA-256 известен в первую очередь как алгоритм, применяемый при добыче коинов.
В 2012 году система была усовершенствована и появилась обновленная версия хэш-функции — SHA-3. Считается, что со временем новая разработка вытеснит прежние алгоритмы, что улучшит и без того высокую степень безопасности.
Характеристики алгоритма шифрования Биткоина
Суть SHA-256 проста. Первоначальное сообщение после внесения дополнения делится на блоки, а каждый из них на 16 слов. Полученные элементы проходят через специальные циклы, подразумевающие 64 или 80 этапов. На каждом из них происходит преобразования двух слов, а опцию преобразования формируют оставшиеся слова. Итоговые параметры суммируются, что и образует хэш.
В процессе работы алгоритма применяется 6 команд:
- «xor» — удаляет «ИЛИ».
- «shr» — смещает показатель на требуемое количество бит вправо с конкретной периодичностью.
- «rots» — смещает показатель на требуемое количество бит вправо (без применения конкретного цикла).
- «II» — соединение элементов, имеющих линейный характер.
- «and» — «И».
- «+» — слежение.
Характеристики протокола:
- Верхний предел продолжительности сообщения — 33 Б.
- Максимальный параметр скорости — 139 MiB/s.
- Размер слова — 4 Б.
- Количество повторов в цикле — 64.
- Размер блочного элемента — 64 Б.
- Величина общего хэш-кода — 32 Б.
Алгоритм шифрования Bitcoin в майнинге
При осуществлении расчетов в пределах майнинга корректность получаемого хэш-кода определяется по количеству нулей в начале строчки. К примеру, если этот параметр равен 17, вероятность поиска такого числа крайне низка и составляет где-то 1:1,4*10 в 20-й степени. Не удивительно, что для майнинга Bitcoin требуется применение мощного оборудования и большие затраты электроэнергии. При этом оптимизация поиска нужного хэша невозможна, ведь после приёма блока информации на выходе появляется случайное число.
Сложность добычи виртуальной монеты в том, чтобы найти необходимый хэш и сформировать очередной блок. Для реализации такой цели применяется стандартный перебор значений, для чего необходимо высокопроизводительное оборудование. Как упоминалось, ведется поиск не простого хэша, а значения, впереди которого находится большое количество «0-ей».
Добыча криптовалюты на SHA-256 представляет собой комплекс мер, направленных на решение определенной криптозадачи. В случае с Биткоином для майнинга используется следующее оборудование:
- С момента появления BTC в 2009-м, а также до середины 2010 года было актуально применение центрального процессора (CPU).
- До середины 2011 года майнеры задействовали компьютеры с видеокартами (GPU).
- До начала 2013 года были популярны FGPA, а также фермы на графических процессорах.
- В 2014-м появились асики. По производительности они затмили существующее оборудование. Несмотря на это, до начала 2017 года майнеры использовали фермы на GPU и работали в пулах, но к концу 2017-го и до сегодняшних дней актуальны только ASIC-майнеры. Применение иного оборудования нерентабельно.
Упомянутые аппараты применяются для того, чтобы подобрать интересующую хэш-функцию и сформировать новый блок. Чем выше хэшрейт (мощь вычисления) аппарата, тем быстрее происходит перебор данных и тем меньше времени требуется на поиск решения.
С ростом конкуренции и выпуском более производительных майнеров повышается и сложность добычи BTC, параметр которой меняется с периодичностью раз в 2 недели.
Слабые и сильные стороны алгоритма хэширования Биткоина
Выше мы рассмотрели, какой алгоритм хеширования у Биткоина, и в чем его особенности. Это SHA-256, который считается наиболее распространенным алгоритмом с высоким уровнем надежности и сравнительно простым принципом работы. Он имеет высокую устойчивость к взлому и позволяет добывать коины на любом оборудовании (в зависимости от параметров сложности).
Несмотря на ряд положительных качеств, алгоритм хэширования Bitcoin имеет ряд слабых мест:
- Контроль со стороны участников добычи BTC. Здесь работает идентичный принцип, как и в акционерных обществах (АО), когда участники компании имеют определенное число акций. Чем большие мощности сосредоточены в руках майнеров криптосети, тем сильнее их воздействие на общую систему. Кроме того, из-за растущей сложности добычи в 2018 году заметна тенденция перехода майнинга из рук частных майнеров под контроль крупных организаций, занимающихся созданием оборудования для добычи виртуальных монет. Для получения Биткоинов частный майнер должен тратить крупные суммы на покупку асиков, подключаться к одному из пулов и платить за электроэнергию. Если экономить на оборудовании, добыча теряет рентабельность.
- Следствием рассмотренной выше ситуации является тот факт, что «львиная» доля Биткоинов концентрируется в руках собственников крупных майнинговых компаний. Если взять во внимание, что не все полученные Bitcoin попадают в продажу, такие организации превращаются в инвесторов и хранителей монет. В результате число коинов в обороте снижается. Кроме того, накопление криптовалюты позволяет влиять на децентрализацию, а также курсовую стоимость BTC в процессе торгов.
- Алгоритм SHA-256 из-за имеющихся недостатков постепенно отходит в прошлое, а на его место приходят более совершенные проекты. К примеру, популярность набирают Scrypt, Ethash, Blake-256, Equihash и другие. Новые алгоритмы имеют лучшую защиту и уровень безопасности, что вынудило создателей многих криптовалют отказываться от устаревшего SHA-256 в пользу более совершенных технологий.
- Несмотря на исправление главных ошибок, которые были выявлены разработчиками, некоторые уязвимости убрать не удалось (в 2008 году было найдены коллизии для 22 итераций). Вот почему разработка SHA продолжилась, а на смену второй версии пришел SHA-3.
В 2009 году Сатоши Накамото был вынужден использовать SHA-256, ведь на период создания криптовалюты правительство штатов приняло данной протокол. В тот период он активно использовался для защиты данных в некоторых государственных программах, также задействовался в коммерческом секторе. Получилось, что протокол создавали для решения одних задач, но в реальности он востребован совершенно в ином русле.
Для наглядности сведем в таблицу позитивные и отрицательные черты алгоритма шифрования Биткоина.
Преимущества | Недостатки |
Широкое распространение (в том числе в криптовалютном секторе). Протокол SHA активно применяется в повседневной сфере для защиты информации. | Потеря децентрализации. Мощности концентрируются в руках майнинговых компаний. |
Надежная защита от взлома. | Итерация в SHA имеет простую структуру, что со временем привело к росту сложности добычи. На август 2018-го для майнинга Биткоинов можно использовать только асики с высокой производительностью. |
Удобство в вопросах добычи коинов, универсальность в вопросе выбора техники для майнинга. | Появляются новые алгоритмы, которые имеют более совершенную структуру. |
Во втором варианте (SHA-2) создателям удалось устранить ряд недоработок, негативно влияющих на надежность системы. | Несмотря на активную работу над ошибками, удалить многие недостатки так и не удалось. Не удивительно, что разработчики создали новую версию SHA-3. |
Протокол принят на законодательном уровне в США. |
На сегодняшний день алгоритм шифрования Биткоина почти не применяется при разработке новых криптовалют. Наиболее ярким примером монеты, где ещё используется SHA-256, является Bitcoin Cash — форк Bitcoin, появившийся в августе 2017-го. Но в ситуации с этой монетой применение SHA больше необходимость, чем выбор создателей. Что касается самого Bitcoin, использование протокола этой серии обусловлено отсутствуем альтернатив у Сатоши Накамото.
Сегодня, в 2018 году, ведется много разговоров о совершенствовании этого алгоритма и внесении правок в криптовалютную сеть, но пока такие намерения не находят физической реализации и остаются лишь в виде предложений.
Видео о криптографических функциях и алгоритмах: