Контакты

Криптовалюты с алгоритмом sha 256. SHA256 – алгоритм хеширования. Расшифровка хэша. Видео о криптографических функциях и алгоритмах

SHA 256 - криптографический набор инструкций для майнинга криптовалют. Иными словами, он надежно защищает все транзакции в сети, и усложняет добычу электронных монет. Эта аббревиатура расшифровывается как Secure Hashing Algorithm, что означает крайне востребованный и эффективный способ хэширования.

Суть SHA 256 - в преобразовании информации в значения, цифры. Данная цепочка имеет фиксированную длину. Это значит, что любые сведения, передаваемые вами внутри сети, будут зашифрованы специальными значениями - идентификаторами(ID).

При совершении транзакций алгоритм SHA 256 сравнивает ID с исходными данными, извлечь которые невозможно, после чего предоставляет доступ к операции. Сейчас этот протокол используется в добыче криптовалют, таких как BTC и BCH.

История появления

Как получилось, что Bitcoin начал использоваться SHA 256? Все началось с того, что алгоритм стал членом семейства SHA-2, которые имеют размер цепочки хеша 224-512 бит.

Они, в свою очередь, были созданы на основе прадеда - SHA-1, у которого хэш был длиной в 160 бит. Технология появилась 1995 году, и была предназначена для использования в гражданских целях - то есть шифрования обычной, не государственно-важной информации.

Семейство SHA-2, к которому принадлежит SHA 256, было разработано Агентством национальной безопасности 16 лет назад - весной 2002. Исходя из этого, можно сказать, что алгоритм морально устарел. Однако он по-прежнему является одним из самых надежных алгоритмов для шифрования транзакций в сети.

Технические параметры SHA 256

Алгоритм предназначен для данных, поделенных на равные части по 64 байта. SHA 256 обеспечивает их сбор и объединение в единую 256-битную цепочку. Основной для метода является операция шифрования, которая выполняется в цикле 64 раза.

Краткие характеристики алгоритмичных инструкций SHA 256:

  • блоки 64-битного размера - наиболее быстро работает с 32-битными;
  • пиковая длина зашифрованной цепочки информации - 33 байта;
  • объем дайджеста сообщения - 32 байта;
  • стандартизированный размер одного слова - 4 байта;
  • цикличность шифрования в одном раунде операции - 64 байта;
  • скорость, на которой работает алгоритм - 140 Мбит/с.

Стоит отметить, что этот член семейства SHA-2 базируется на основе, которую описал Меркл-Дамгард. Это значит, что перед делением информации на слова происходит разделение данных на блоки. Процесс усиливает шифрование за счет перемешивания данных.

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

Криптовалюты с алгоритмом SHA 256

Как и говорилось ранее, таким набором инструкций обладает не только Bitcoin, но и:

  • peercoin, особенность которого заключается в том, что код создается на основе битка, но вот PoS применяется для защиты всей сети, а PoW отвечает за распределение монет;
  • namecoin - цифровая валюта, которая выступает средством защиты, конфиденциальности, децентрализации; unobtanium - отличается крайне низкой инфляцией, чтобы добыть все монеты потребуется, как минимум, 300 лет;
  • deutsche eMark - немецкая микросеть, которая используется для обмена активами и деньгами. Сам процесс проходит без посредников; betaCoin - работает по такому же принципу, что и всемирно известный BitCoin;
  • jouleCoin - также базируется на дедушке биткоине, однако обеспечивает более быстрое подтверждение транзакций;
  • steemit - даже не отдельная крипта, а целая платформа на блокчейне. Ее главная задача - награждение за интересные публикации.

Litecoin тоже использует алгоритм SHA 256, однако не во всей системе, а в подпрограмме. Для добычи лайткоина применяется защитный протокол Scrypt, что сказывается на увеличении сложности майнинга и снижает окупаемость асиков.

Майнинг криптовалюты на основе алгоритма SHA 256

Для добычи электронных монет, которые основываются на семействе SHA-2, необязательно использовать специализированные средства - ASIC. В майнинге отлично себя показывают и фермы на основе CPU и GPU. Последний по скорости явно превосходит первый.

И все же асик - лучшее решение для майнинга криптовалют. Его преимущества в некоторой степени нивелирует значительная цена - около 100 тысяч рублей, модели помощнее и вовсе переваливают за 500 000. С ростом сложности падает окупаемость. Поэтому оборудование не всегда оправдывает себя, хотя обеспечивает куда более высокую скорость майнинга, чем фермы на видеокартах и тем более ЦП.

Добыча на GPU считается более-менее прибыльной. В целом, вся ферма будет стоить приблизительно $1000-2000, плюс дополнительное оборудование - в частности, системы охлаждения для видеокарт. Также стоит учитывать аренду помещения, оплату электроэнергии и зарплату обслуживающему персоналу.

Среди видеокарт неплохо себя показывает GTX 1080 Ti от Nvidia. Она выдает скорость в 1400 удачных операций в секунду. AMD чуть отстает со своими картами линейки Vega - 1200 MH/s. Есть и более дешевые варианты вроде Radeon 7970, однако его скорость не превышает 800 MH/s.

Алгоритм SHA 256 хоть и старый, но по-прежнему используется в Bitcoin - криптовалюте №1 в мире. Протокол применяется и в ряде других перспективных альткоинов. На смену SHA256 постепенно приходит Scrypt, однако биткоин не планирует на него переходить. Касаемо майнинга все просто - если есть деньги, берите асики с высокой скоростью хеширования. Хотите более экономное решение? Тогда стройте ферму из видеокарт AMD или Nvidia.

  • Перевод

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

Один криптографический раунд

Майнинг

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

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

В биткойне критерием валидности хэша является достаточное число нулей в его начале. Найти такой хэш так же сложно, как, к примеру, найти номер машины или телефона, заканчивающийся на несколько нулей. Но, конечно, для хэша это экспоненциально сложнее. На текущий момент, правильный хэш должен содержать примерно 17 стартовых нулей, чему удовлетворяет только 1 из 1.4x10 20 . Если провести аналогию, то найти такое значение сложнее, чем обнаружить конкретную частичку среди всего песка на Земле .

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

Функция большинства (Ma блок) побитово работает со словами A, B и C. Для каждой битовой позиции она возвращает 0, если большинство входных битов в этой позиции - нули, иначе вернёт 1.

Блок Σ0 циклически сдвигает A на 2 бита, затем исходное слово A циклически сдвигается на 13 бит, и, аналогично, на 22 бита. Получившиеся три сдвинутые версии A побитово складываются по модулю 2 (обычный xor, (A ror 2) xor (A ror 13) xor (A ror 22) ).

Ch реализует функцию выбора. На каждой битовой позиции проверяется бит из E, если он равен единице, то на выход идёт бит из F с этой позиции, иначе бит из G. Таким образом, биты из F и G перемешиваются, исходя из значения E.

Σ1 по структуре аналогичен Σ0, но работает со словом E, а соответствующие сдвиговые константы - 6, 11 и 25.

Красные блоки выполняют 32-битное сложение, формируя новые значения для выходных слов A и E. Значение W t генерируется на основе входных данных (это происходит в том участке алгоритма, который получает и обрабатывает хэшируемые данные. Он вне нашего рассмотрения). K t - своя константа для каждого раунда.

На схеме сверху заметно, что только A и E меняются за один криптографический раунд. Остальные слова не меняются, но сдвигаются на выходе - старое A превращается в выходное B, старое B - в новое C, и так далее. Хотя отдельный раунд алгоритма не сильно изменяет данные, но после 64 раундов, входная информация будет полностью зашифрованной.

Майним вручную

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


Немного поясню что происходит: я записал слова от A до H в шестнадцатеричной форме, и под каждым сделал перевод в двоичный вид. Результат выполнения блока Ma находится под словом C, а значения A после сдвигов и сам выход Σ0 располагаются над строкой с A. Функция выбора появляется под G, и, наконец, соответствующие сдвинутые версии E и значение после блока Σ1 идут над строкой с E. В нижнем правом углу произвёл сложение, результат которого участвует в вычислении и нового A, и нового E (первые три красных блока суммирования). Справа сверху я рассчитал новое значение A, а посерёдке располагается уже расчет нового значения E. Все эти шаги обсуждались выше и легко могут быть отслежены на схеме.

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


Последний раунд SHA-256, в результате которого виден успешно смайненный биткойн-блок

Что всё это значит для проектирования «железных» майнеров?

Каждый шаг в SHA-256 очень просто выглядит в цифровой логике - простые битовые операции и 32-битные суммирования (если вы когда-либо изучали схемотехнику, то, скорее всего, уже представили себе как это может выглядеть в железе). Поэтому ASIC-микросхемы реализуют SHA-256 очень эффективно, размещая параллельно сотни блоков исполнения SHA-256 раундов. Фотография ниже показывает микросхему для майнинга, которая может вычислять 2-3 миллиарда хэшей в секунду. На Zeptobars можно поглядеть больше фото.


Снимок кремниевого кристалла ASIC-микросхемы Bitfury, которая может майнить биткойны со скоростью в 2-3 гигахэшей в секунду. Картинка с Zeptobars . (CC BY 3.0)

В противоположность биткойну, Litecoin, Dogecoin и другие похожие альтернативные -coin системы используют алгоритм хэширования scrypt , в котором изначально заложена сложность реализации в железе. Этот алгоритм во время выполнения хранит в памяти 1024 разных значений хэша, а уже на выходе комбинирует их для получения конечного результата. Поэтому требуется куда больше памяти и схематики для вычисления scrypt-хэшей по сравнению с SHA-256-хэшами. Влияние изменения алгоритма хэширования наглядно видно при сравнении соответствующего аппаратного обеспечения для майнинга - версии под scrypt (Litecoin и прочие) в тысячи раз медленнее, чем версии под SHA-256 (биткойн).

Заключение

SHA-256 неожиданно оказался настолько простым, что может быть вычислен даже вручную (алгоритм на эллиптических кривых, который используется для подписи биткойн-транзакции, был бы куда более мучительным, так как содержит кучу перемножений 32-байтных чисел). Расчет одного раунда SHA-256 занял у меня 16 минут, 45 секунд. С такой производительностью хэширование всего биткойн-блока (128 раундов ) займёт 1,49 суток, то есть получаем скорость хэширования в 0,67 хэшей в день (на самом деле, конечно же, с практикой процесс бы ускорился). Для сравнения, текущее поколение биткойн-майнеров производит несколько терахэшей в секунду, что примерно в квинтиллион раз быстрее меня. Думаю, очевидно, что ручной майнинг биткойнов не очень практичен.

Читатель с reddit"a спросил о моих затратах энергии. Так как я не прилагаю каких-то серьезных физических усилий, то можно предположить что скорость метаболизма будет 1500 килокалорий в день, тогда получаем, что ручное хэширование требует почти 10 мегаджоулей за хэш. Типичное потребление энергии для железного майнера - 1000 магехэшей за джоуль. Таким образом, я менее энергоэффективен чем специализированная железка в 10^16 раз (10 квадриллионов). Другой вопрос в стоимости энергии. Дешевым источником питания являются пончики по 23 цента за 200 килокалорий. Электроэнергия у меня стоит 15 центов за киловатт-час, что дешевле пончиков в 6.7 раз. В итоге, стоимость энергии в пересчете на хэш для меня, как человека-майнера, в 67 квадриллионов раз выше. Да-а-а, понятно, что я не ухвачу удачу за хвост ручным майнингом биткойнов, и это еще не учитывая стоимость бумаги и ручек!

Для чего создавался SHA — 256

SHA 256 — сокращение от Secure Hashing Algorithm — это популярный криптографический алгоритм хэширования , разработанный National Security Agency — Агентством национальной безопасности США . Задача SHA — 256 состоит в том , чтобы сделать из случайного набора данных определённые значения с фиксированной длиной , которое послужит идентификатором этих данных .

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

Этот алгоритм относится к группе шифровальных алгоритмов SHA — 2 , которые в свою очередь разработаны на базе алгоритма SHA — 1 , впервые созданного в 1995 году для использования в гражданских целях . Сам SHA — 2 разработан Агентством национальной безопасности США весной 2002 года. В течение трёх лет АНБ США выпустили патент на использование технологии SHA в гражданских проектах .

В 2012 году в Национальном институте стандартов и технологий создан обновлённый вариант алгоритма : SHA — 3 . Со временем новый алгоритм будет вытеснять как текущий основной алгоритм SHA — 2 , так и уже устаревший , но ещё используемый SHA — 1 .

Хэш — сумма не является технологией шифрования данных в классическом понимании , этим обусловлена невозможность расшифровки данных в обратную сторону . Это односторонняя шифровка для любого количества данных . Все алгоритмы SHA базируются на методе Меркла — Дамгарда : данные разделяют на равномерные группы , каждая из которых проходит через одностороннюю функцию сжатия . В результате этого длина данных уменьшается .

У такого метода есть два значительных достоинства :

  • быстрая скорость шифрования и практически невозможная расшифровка без ключей;
  • минимальный риск появления коллизий (одинаковых образов ).

Где ещё используется

Ежедневно каждый пользователь Сети , зная или нет , использует SHA — 256 : сертификат безопасности SSL , которым защищён каждый веб — сайт , включает в себя алгоритм SHA — 256 . Это необходимо для установления и аутентификации защищённого соединения с сайтом .

Плюсы SHA — 256

SHA — 256 — самый распространённый алгоритм майнинга среди всех остальных . Он зарекомендовал себя как устойчивый к взломам (за редким исключением ) и эффективный алгоритм как для задач майнинга , так и для других целей .

Минусы SHA — 256

Главным недостатком SHA — 256 является его подконтрольность майнерам : обладатели самых больших вычислительных мощностей получают большую часть криптовалюты , что исключает один из основополагающих принципов криптовалют — децентрализованность .

После того как крупные инвесторы начали вкладывать деньги в вычислительные мощности для промышленного майнинга биткоина , сложность майнинга многократно выросла и стала требовать исключительных вычислительных мощностей . Этот недостаток исправлен в других протоколах , более современных и « заточенных » под использование в майнинге криптовалют , таких как Scrypt . Несмотря на то, что сегодня SHA — 256 занимает большую часть рынка криптовалют , он будет ослаблять своё влияние в пользу более защищённых и продвинутых протоколов .

Через какое-то время алгоритмы SHA — 1 перестали давать необходимый уровень надёжности из — за вероятного возникновения коллизий . SHA — 256 , как и SHA — 512 более защищены от этого недостатка , но вероятность возникновения все равно присутствует .

Использование в криптовалютах

Майнинг на SHA — 256

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

Майнить с использованием функции SHA — 256 можно тремя способами :

  • CPU (центральный процессор );
  • GPU (графический процессор );
  • специализированный процессор : ASIC.

В майнинге хэш — сумма используется в качестве идентификатора уже имеющихся блоков и создания новых на основе предыдущих . Процесс майнинга отображается в интерфейсе в виде « accepted f33ae3bc9 …». Где f33ae3bc9 — это хэш — сумма , часть данных , предназначенная для дешифровки . Основной блок состоит из огромного количества подобных хэш — сумм .

То есть , майнинг с алгоритмом SHA — 256 представляет собой безостановочный подбор правильного значения хэш — суммы , перебор чисел для создания нового блока . Чем больше ваши вычислительные мощности , тем больше шансов получить правильный блок : скорость перебора различных хэш — сумм зависит от мощностей .

Ввиду того , что Bitcoin построен на алгоритме SHA — 256 , для конкурентоспособного майнинга на нём необходимы крайне большие вычислительные мощности . Это связано с тем , что для майнинга биткоина достаточно давно налажено производство « асиков » — application specific integrated circuit , т . е . интегральная схема специального назначения . Асики позволяют майнить биткоины и другие криптовалюты на алгоритме SHA — 256 гораздо быстрее , эффективнее и дешевле .

Какие криптовалюты используют алгоритм SHA — 256

SHA — 256 это классический алгоритм для криптовалют : на нем построена основная криптовалюта — Bitcoin . Соответственно , и в форках биткоина используется этот алгоритм : в Bitcoin Cash , Gold , Diamond .

Помимо них , SHA — 256 используется также в :

  • Steemit;
  • DigiByte;
  • PeerCoin;
  • NameCoin;
  • TeckCoin;
  • Ocoin;
  • Zetacoin;
  • EmerCoin.

Также алгоритм SHA-256 используется как подпрограмма в криптовалюте Litecoin, а основным алгоритмом для майнинга там является Scrypt.

Функция хеширования SHA 256 легла в основу самой первой криптовалюты в мире - биткоина и многих альткоинов. Знаете ли вы, что она была создана задолго до появления криптовалют и предназначалась совсем для других целей? Сегодня мы рассмотрим историю алгоритма, принцип его функционирования, текущие проблемы и какие криптовалюты используют SHA256.

История

Название алгоритма SHA 256 является аббревиатурой от Secure Hashing Algorithm. Так его назвал разработчик - Агентство национальной безопасности США. Алгоритм представляет собой функцию хеширования. Это означает, что на ее вход поступает объем данных произвольной длины, а на выходе получается набор символов фиксированной длины, называемый хешем.

Одна из ключевых особенностей функций хеширования hash - необратимость. Мы можем получить хеш, пропустив исходные данные через функцию, но, зная хеш, получить исходные данные не удастся. Благодаря этому свойству функция получила распространение в разных сервисах и приложениях, где требуется защита данных. Ежедневно мы пользуемся алгоритмом SHA 256, посещая сайты в Интернете. Его включает в себя сертификат безопасности SSL, необходимый для установления защищенного соединения с сайтом.


Алгоритм является частью семейства SHA-2, разработанных на базе SHA-1, появившегося в 1995 году. С момента своего появления sha256 подробно проверялся на стойкость с помощью криптоанализа. Криптоанализ проверяет устойчивость хеш-функций к двум основным видам атак:
  • Нахождение коллизий - обнаружение одинаковых хешей при разных параметрах на входе. Вероятность успеха данной атаки ставит под угрозу безопасность цифровой подписи с применением текущего алгоритма.
  • Нахождение прообраза - возможность расшифровывать исходное сообщение по его хешу. Данная атака ставит под угрозу безопасность хранения хешей паролей аутентификации.

Впервые анализ был проверен в 2003 году, но тогда уязвимости не были найдены. Время шло, вычислительные мощности развивались. В 2008 году были найдены коллизии для итераций SHA-512 и SHA-256. В сентябре того же года был разработан метод создания коллизий для 31 итерации SHA256 и 27 итераций SHA-512.

Очевидно, что настала пора разрабатывать новую криптостойкую функцию. В 2012 году АНБ был изобретен SHA-3. Постепенно обновленный алгоритм будет вытеснять своих менее криптостойких предшественников.

Майнинг на SHA 256

Законодательство США разрешает использовать SHA и похожие хеш-функции как часть других протоколов и алгоритмов в некоторых федеральных приложениях для защиты информации, не имеющих грифа «Секретно». Допускается применение SHA-2 частными и коммерческими организациями.

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

  • CPU (центральный процессор);
  • GPU (видеокарты);
  • ASIC (специализированное устройство).

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


Биткоин начинали майнить на процессорах. Затем, когда их мощности стало не хватать, перешли на видеокарты. Вскоре и видеокарты перестали справляться. Тогда изобрели асики - специальные устройства, заточенные на вычисления по алгоритму sha 256. Один асик намного мощнее и энергоэффективнее нескольких видеокарт.

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

Впрочем, это легко посчитать. Существуют калькуляторы для расчета прибыльности майнинга на sha256. Например, https://www.coinwarz.com/miningprofitability/sha-256 . Введите в форму хешрейт своего оборудования (вычислительная мощность), потребляемую энергию и ее стоимость, сервис рассчитает прибыль.

Альткоины SHA-256

Рассмотрим перечень и список криптовалют, работающих на sha 256.

Bitcoin Cash (BCH)

Отделившийся от него 1 августа 2017 года. Размер блока в классическом биткоине равен 1 мб. Сеть разрослась настолько, что все транзакции перестали помещаться в блок. Это привело к образованию очередей из транзакций и увеличению комиссии за проведение платежей. Сообществом было принято решение ввести новый протокол, согласно которому блок увеличился до 2 мб, часть информации стала храниться за пределами блокчейна и уменьшились сроки пересчета сложности с двух недель до суток.

Namecoin (NMC)

Представляет собой систему хранения и передачи комбинаций вида «имя-значение», основанную на технологии биткоин. Самым известным ее применением стала система распределения доменных имен, независимая от ICANN, а значит, делающая невозможным изъятие домена. Namecoin была запущена в 2011 году, она работает на ПО для майнинга биткоина, перенаправленное на сервер, где работает Namecoin.

DigiByte (DGB)

Криптовалюта, запущенная в 2013 году с целью улучшить характеристики биткоина и лайткоина. Отличия DigiByte:

  • Низкая волатильность достигается за счет огромного количества выпускаемых монет (до 21 млрд), что позволяет обеспечить их низкую стоимость и удобство для использования в расчетах;
  • Быстрые транзакции за счет увеличения размера блока вдвое каждые два года;
  • Низкие комиссии или их отсутствие;
  • Процесс майнинга распределен на пять алгоритмов, позволяющих добывать монеты независимо друг от друга. Можно использовать асики для SHA-256 и Scrypt, видеокарты для Groestl и Skein, процессор для Qubit.

Алгоритм SHA 256 является самым распространенным среди криптовалют. Это было вызвано популярностью и успехом биткоина, и желанием разработчиков альткоинов создать подобные монеты. Увеличение сложности вычислений побудили майнеров искать способы майнить эффективнее, результатом чего стало появление асиков.


Шифрование Биткоина построено на базе SHA-256 - специальном алгоритме, являющемся частью программного кода. Его задача в том, чтобы преобразовать входные данные в конкретный набор символов (в буквенном и цифровом отображении) и защитить информацию. Такие действия носят название хэширование. В чем тонкости указанного алгоритма? Для чего он необходим, и как работает? Каковы преимущества и недостатки? Эти и ряд других моментов рассмотрим подробно.

Какой алгоритм шифрования у Биткоина, и где он применяется?

При обсуждении криптовалюты, особенностей ее работы и майнинга участники криптосети неизбежно наталкиваются на столь распространенное определение, как алгоритм шифрования Биткоина. С дня разработки BTC и до сегодня (13 августа 2018 года) используется SHA-256, необходимая для решения таких задач в Bitcoin-сети:

  1. Формирование адресов BTC (применяются для прохождения транзакций).
  2. Майнинг (доказательство работы).
  3. Достижение необходимой степени безопасности и анонимности.
  4. Для цифровой подписи и ее распознавания.
Алгоритм SHA-256 актуален не только для Биткоина, но и для иных коинов, а именно Биткоин Кэш, Мазакоин, Пиркоин, Неймкоин и других криптовалют. Кроме того, SHA-2 (основа SHA-256) используется при создании многих протоколов, предназначенных для защиты данных в Сети, а именно SSL, TSL и других.

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

Алгоритм шифрования Биткоин - принцип работы простыми словами


В основе SHA-2 лежит структура, созданная Мерклом и Дамгардом. Особенность хэш-функции, применяемой в криптографии, заключается в нестандартном подходе при ее формировании. Входящие данные делятся на идентичные по величине блоки, после чего созданные элементы преобразуются в 16-ричное число. Именно с ними впоследствии производятся вычисления. К полученному значению применяется хэш-функция, а результатом обработки является хэш-сумма, появляющаяся на выходе. Она представляет собой набор символов, представленных в буквенном и цифровом отображении. По сути, это и есть хэш.

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

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

Корректность шифрования Bitcoin контролируется четырьмя требованиями:

  1. При внесении правок во входящие данные хэш-сумма остается прежней.
  2. Во время хэширования получается индивидуальная хэш-сумма (набор символов должен быть уникальным).
  3. Создание ключа с применением хэширования максимально усложнено.
  4. Хэши имеют необратимый характер. Это означает, что разрешена работа с входными данными без возможности осуществления обратного действия.

Как это применяется в Биткоине?

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

Как только рассмотренная работа выполнена, создаётся очередной элемент Биткоин-цепи (блок) с определенным размером (для рассматриваемой криптовалюты - 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» - «И».
  • «+» - слежение.
Характеристики протокола:
  1. Верхний предел продолжительности сообщения - 33 Б.
  2. Максимальный параметр скорости - 139 MiB/s.
  3. Размер слова - 4 Б.
  4. Количество повторов в цикле - 64.
  5. Размер блочного элемента - 64 Б.
  6. Величина общего хэш-кода - 32 Б.

Алгоритм шифрования Bitcoin в майнинге


При осуществлении расчетов в пределах майнинга корректность получаемого хэш-кода определяется по количеству нулей в начале строчки. К примеру, если этот параметр равен 17, вероятность поиска такого числа крайне низка и составляет где-то 1:1,4*10 в 20-й степени. Не удивительно, что для майнинга Bitcoin требуется применение мощного оборудования и большие затраты электроэнергии. При этом оптимизация поиска нужного хэша невозможна, ведь после приёма блока информации на выходе появляется случайное число.

Сложность добычи виртуальной монеты в том, чтобы найти необходимый хэш и сформировать очередной блок. Для реализации такой цели применяется стандартный перебор значений, для чего необходимо высокопроизводительное оборудование. Как упоминалось, ведется поиск не простого хэша, а значения, впереди которого находится большое количество «0-ей».

Добыча криптовалюты на SHA-256 представляет собой комплекс мер, направленных на решение определенной криптозадачи. В случае с Биткоином для майнинга используется следующее оборудование:

  1. С момента появления BTC в 2009-м, а также до середины 2010 года было актуально применение центрального процессора (CPU).
  2. До середины 2011 года майнеры задействовали компьютеры с видеокартами (GPU).
  3. До начала 2013 года были популярны FGPA, а также фермы на графических процессорах.
  4. В 2014-м появились асики. По производительности они затмили существующее оборудование. Несмотря на это, до начала 2017 года майнеры использовали фермы на GPU и работали в пулах, но к концу 2017-го и до сегодняшних дней актуальны только -майнеры. Применение иного оборудования нерентабельно.
Упомянутые аппараты применяются для того, чтобы подобрать интересующую хэш-функцию и сформировать новый . Чем выше хэшрейт (мощь вычисления) аппарата, тем быстрее происходит перебор данных и тем меньше времени требуется на поиск решения.

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

Слабые и сильные стороны алгоритма хэширования Биткоина


Выше мы рассмотрели, какой алгоритм хеширования у Биткоина, и в чем его особенности. Это SHA-256, который считается наиболее распространенным алгоритмом с высоким уровнем надежности и сравнительно простым принципом работы. Он имеет высокую устойчивость к взлому и позволяет добывать коины на любом оборудовании (в зависимости от параметров сложности).

Несмотря на ряд положительных качеств, алгоритм хэширования Bitcoin имеет ряд слабых мест:

  1. Контроль со стороны участников добычи BTC. Здесь работает идентичный принцип, как и в акционерных обществах (АО), когда участники компании имеют определенное число акций. Чем большие мощности сосредоточены в руках майнеров криптосети, тем сильнее их воздействие на общую систему. Кроме того, из-за растущей сложности добычи в 2018 году заметна тенденция перехода майнинга из рук частных майнеров под контроль крупных организаций, занимающихся созданием оборудования для добычи виртуальных монет. Для получения Биткоинов частный майнер должен тратить крупные суммы на покупку асиков, подключаться к одному из пулов и платить за электроэнергию. Если экономить на оборудовании, добыча теряет рентабельность.
  2. Следствием рассмотренной выше ситуации является тот факт, что «львиная» доля Биткоинов концентрируется в руках собственников крупных майнинговых компаний. Если взять во внимание, что не все полученные Bitcoin попадают в продажу, такие организации превращаются в инвесторов и хранителей монет. В результате число коинов в обороте снижается. Кроме того, накопление криптовалюты позволяет влиять на децентрализацию, а также курсовую стоимость BTC в процессе торгов.
  3. Алгоритм SHA-256 из-за имеющихся недостатков постепенно отходит в прошлое, а на его место приходят более совершенные проекты. К примеру, популярность набирают Scrypt, Ethash, Blake-256, Equihash и другие. Новые алгоритмы имеют лучшую защиту и уровень безопасности, что вынудило создателей многих криптовалют отказываться от устаревшего SHA-256 в пользу более совершенных технологий.
  4. Несмотря на исправление главных ошибок, которые были выявлены разработчиками, некоторые уязвимости убрать не удалось (в 2008 году было найдены коллизии для 22 итераций). Вот почему разработка SHA продолжилась, а на смену второй версии пришел SHA-3.
В 2009 году был вынужден использовать SHA-256, ведь на период создания криптовалюты правительство штатов приняло данной протокол. В тот период он активно использовался для защиты данных в некоторых государственных программах, также задействовался в коммерческом секторе. Получилось, что протокол создавали для решения одних задач, но в реальности он востребован совершенно в ином русле.

Для наглядности сведем в таблицу позитивные и отрицательные черты алгоритма шифрования Биткоина.

Преимущества Недостатки
Широкое распространение (в том числе в криптовалютном секторе). Протокол SHA активно применяется в повседневной сфере для защиты информации. Потеря децентрализации. Мощности концентрируются в руках майнинговых компаний.
Надежная защита от взлома. Итерация в SHA имеет простую структуру, что со временем привело к росту сложности добычи. На август 2018-го для майнинга Биткоинов можно использовать только асики с высокой производительностью.
Удобство в вопросах добычи коинов, универсальность в вопросе выбора техники для майнинга. Появляются новые алгоритмы, которые имеют более совершенную структуру.
Во втором варианте (SHA-2) создателям удалось устранить ряд недоработок, негативно влияющих на надежность системы. Несмотря на активную работу над ошибками, удалить многие недостатки так и не удалось. Не удивительно, что разработчики создали новую версию SHA-3.
Протокол принят на законодательном уровне в США.

На сегодняшний день почти не применяется при разработке новых криптовалют. Наиболее ярким примером монеты, где ещё используется SHA-256, является Bitcoin Cash - форк Bitcoin, появившийся в августе 2017-го. Но в ситуации с этой монетой применение SHA больше необходимость, чем выбор создателей. Что касается самого Bitcoin, использование протокола этой серии обусловлено отсутствуем альтернатив у Сатоши Накамото.

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

Видео о криптографических функциях и алгоритмах:



Понравилась статья? Поделитесь ей