Многие из вас наверняка еще с самого начала задались вопросом «А как там оно все таки работает?». Я постараюсь максимально подробно и доступно ответить на этот вопрос. Не зря алгоритмы, да и все что связано с данной темой, имеет приставку крипто-. Это не спроста. Так как для того чтобы докопаться до сути – придется пробираться через дебри криптографических терминов типа SHA-256, Scrypt, RIPMD-160, base58check и т.д. Я не зря решил собрать все в одну статью. Так как материала будет не много и он хорошо усваивается. А так же можно будет сравнить и выявить слабые и сильные стороны каждого метода.

Сразу скажу вам одну интересную вещь. Вы даже не задумывались, но вы каждый день, лазая по просторам интернета, пользуетесь этим алгоритмом. Каждый раз заходя на сайт, который защищен сертификатом SSL, используется алгоритм SHA-256. Так же этот алгоритм используют протоколы SSH, PGP и многие другие. Но нас интересует какую роль он выполняет в майнинге.

Немного истории

SHA-256 - это криптографическая хэш-функция. Разработало ее Агенство национальной безопасности США.

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

Как-то слишком по научному, не находите? Ну а теперь давайте разбираться в то что все это значит.

При майнинге криптомонет, SHA-256 решает поставленную задачу при помощи процессоров (CPU), видеокарт (GPU) или специализированных устройств типа ASIC. Итак, как происходит решение этой задачи: Итак пулл (место где собираются майнеры чтобы объединить свои мощности в одну большую, для скорейшего и более эффективного майнинга монет) выдает нам новый блок, который состоит огромного набора данных. Из тысяч или даже миллионов строк. Но блок этот представлен всего одной строкой. Его «цифровой подписью» – очередным блоком транзакций с добавленным к нему случайным числом. Это строка называется ХЭШ.

Для того чтобы подобрать нужный хэш к новому блоку, нужно путем перебора решить множество задач. Так как ищем мы определенный хэш, который начинается на определенное количество нулей. Шанс что случайно получившийся хэш будет иметь нужное количество нулей в начале – примерно 1 к 1 000 000. Все зависит конечно же от параметра сложности, который задает пул. Т.е. заранее понять получится у вас или нет – не возможно. Но с компьютерами которые способны вычислять такие комбинации все становится проще.

Естественно что для того чтобы повысить свои шансы, вам необходимо располагать мощным оборудованием. Но всегда есть те у кого больше. Это не значит что у вас нет шансов. Нет, они есть. Например на «молодых» криптовалютах: таких как peercoin, namecoin, zetacoin, ocoin, tekcoin и еще десятки других. Или в кооперации с пулом.

На этом пожалуй все о SHA-256 и мы переходим к следующему алгоритму.

Scrypt является вторым по популярности алгоритмом в мире криптовалют. Создавался этот алгоритм специально для того чтобы усложнить процесс добычи криптовалюты. Так как алгоритм SHA-256 очень быстро мигрировал с процессоров (CPU) на видеокарты (GPU) и на программируемые аппаратные устройства (FPGA) и в дальнейшем на специально заточенные под этот процесс микросхемы ASIC, ввиду того что такие вычисления выполняются на таких устройствах значительно быстрее.

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

В принципе Scrypt-манинг мало чем отличается от привычного биткоин-майнинга (SHA-256):

  • На вход подается блок данных, к нему применяется хэш-функция, на выходе мы пытаемся получить «красивый хэш». Вот только сама хэш-функция гораздо сложнее в вычислении. Данный алгоритм использует более значительное количество оперативной памяти (памяти с произвольным доступом), чем SHA-256. Память в Scrypt используется для хранения большого вектора псевдослучайных битовых последовательностей, генерируемых в самом начале алгоритма. После создания вектора его элементы запрашиваются в псевдослучайном порядке и комбинируются друг с другом для получения итогового ключа.
  • Так как алгоритм генерации вектора известен, в принципе возможна реализация scrypt, не требующая особенно много памяти, а высчитывающая каждый элемент в момент обращения. Однако вычисление элемента относительно сложно, и в процессе работы функции scrypt каждый элемент считывается много раз. В Scrypt заложен такой баланс между памятью и временем, что реализации, не использующие память, получаются слишком медленными.

Таким образом созданная искусственная сложность и требования к памяти приводят к тому, что специализированные устройства для майнинга стали сильно уступать CPU и GPU устройствам (хотя уже и это рубеж постепенно преодолевают). Т.е. в идеале добыча монет должна осуществляться исключительно на компьютерах. Если вы уже задумались о то какую конфигурацию собрать себе для майнинга – то не торопитесь. В сети вы найдете массу информации о том что ATI видеокарты превосходят Nvidia в плане практичности. Т.е. соотношение цена/килохэши лежит на стороне ATI видеокарт. Но так было еще год назад. Теперь ситуация стремительно меняется и по сути большой разницы нет. Хотя ATI лидирует так же по некоторым другим параметрам, но это тема для отдельного разговора.

Итак мы подводим итог. По сути и SHA-256 и Scrypt созданы для одной цели – путем перебора получить красивый хэш, удлинить тем самым блокчейн и таким образом получить за это вознаграждение. Но решают поставленную задачу каждый по разному. SHA-256 старается использовать по максимуму аппаратные возможности любого устройства которое для этого было создано – чем выше производительность, тем лучше результат. Ну а Scrypt требует большой объем памяти и как результат этого, производительность ОЗУ (оперативно запоминающего устройства) и видеокарт, которые установлены в компьютере/компьютерах.

Самые известные монетки которые добываются при помощи Scrypt алгоритма: Litecoin, dogecoin, digitalcoin, franco, bottlecaps и еще много других. Популярность таких монет сильно возрасла когда биткоин-манинг мигрировал на ASIC устройства и все те майнеры которые честно майнили валюту видеокартами остались не у дел, так как их оборудование не может конкурировать в следующих категориях как цена, энергозатраты, размеры, шум (т.е. в принципе во всем). Таким образом все кто вложился в оборудование и еще не успел его окупить перешли на Scrypt-майнинг.

Описанные алгоритмы заняли более 90% среди всех добываемых валют. Хотя есть и другие, но они на мой взгляд пока не заслуживают внимания. Так как каждую неделю очередной умник предлагает все более хитроумный алгоритм, так что за ними и не успеть. О самых интересных я буду рассказывать вам в следующих статьях.

Многие интересуются техническими основами криптовалют, но немногие знакомы с криптографией. Для того, чтобы докопаться до сути происходящего в биткойн-протоколе приходится продираться через дебри криптографических терминов, загадочных и неудобных акронимов типа SHA-256, Scrypt, base58check, RIPMD-160 и т.п. Мы уже освещали ранее некоторые . В этой статье мы постараемся рассказать об одной из наиболее важных ее сторон – крипто-алгоритмах .

Классика: SHA-256

Начнем наш обзор, конечно же, с классического SHA-256, с которого все начиналось — именно на этом алгоритме построен биткойн-майнинг, как и майнинг подавляющего большинства биткойн-клонов ().

Так что же это такое этот самый SHA-256? Это криптографическая хэш-функция, которая была разработана нашими «друзьями» – Агентством национальной безопасности США. Подождите, не спешите впадать в прострацию, здесь не о чем волноваться. Потерпите немного, обещаю, что скучать вы точно не будете.

Основная работа любой хэш-функции заключается в превращении (или хэшировании) произвольного набора элементов данных в значение фиксированной длины («отпечатка» или «дайджеста»). Это значение будет однозначно характеризовать набор исходных данных (служить как бы его подписью), без возможности извлечения этих исходных данных. Это официальное объяснение из Википедии , замечательное и научно-обоснованное, но вот только я, например, не говорю на таком языке. И уверен, что большинство из вас тоже. А посему позвольте мне объяснить значение этого «феномена», по-нашему, по-простому.

Как мы все знаем, при майнинге SHA-256 криптомонет, мы решаем поставленную задачу при помощи CPU, GPU или специализированного процессора. Процессы преобразования отображаются в интерфейсе программы, предназначенной для майнинга, например, в виде строки «Accepted 0aef41a3b». Значение 0aef41a3b - это и есть хэш. Он является как бы подписью большого набора данных (собственно, очередного блока транзакций с добавленным к нему случайным числом). Эта короткая строка как бы представляет собой блок, который состоит из нескольких тысяч, если не миллионов, подобных строк.

Это также объясняет то, почему вам нужно решить перебором множество задач, прежде чем удастся отыскать нужный хэш для нового блока. Ведь мы ищем не какой попало хэш, а тот, который начинается на определенное количество нулей. У вас имеется один шанс на тысячу, десятки, сотни тысяч, миллионы решений, что случайно получившийся хэш будет иметь нужное количество нулей в начале. Сколько именно? Определяется параметром сложности, которое задает ваш майнинг-пул. Заранее понять, получится у вас «красивый хэш» или нет, невозможно. Это похоже на игру в лотерею, но с машинами, которые могут выполнять вычисление выигрышной комбинации быстрее и лучше, чем любой из нас.

Вы считаете, что для решения задач, связанных с хэшированием при использовании протокола SHA-256, вам потребуется мощное ? В этом есть определенный смысл. Чем больше используется вычислительной мощности, тем лучше, так как увеличиваются шансы на добычу монет. Но имейте в виду, что вы не единственный, кто занимается майнингом. Есть люди, которые располагают более . Не расстраивайтесь, у вас есть все шансы на выигрыш. Это похоже на игру в лотерею, вы никогда не знаете, когда повезет!

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

Именно алгоритм SHA-256 реализован во всех выпущенных на настоящий момент специализированных ASIC-майнеров, ASIC-оборудование для других алгоритмов майнинга пока только разрабатывается. Помимо Биткойна, майнинг, основанный на SHA-256, используется в ряде других цифровых валют-клонов. Например, такие альткойны как Peercoin и Namecoin его используют. В последнее время наблюдается всплеск новых SHA-256 монет: Zetacoin, Ocoin, Tekcoin и десятки других.

Задачки посложнее: Scrypt

Алгоритм SHA-256 - не единственный алгоритм, который интересен для майнеров. Вторым по популярности майнинг-алгоритмом в мире криптовалют является Scrypt. История появления Scrypt связана с тем, что уже на ранних этапах существования биткойна стало очевидно, что простота функции SHA-256 позволяет сделать аппаратные решения, которые будут выполнять такие вычисления гораздо эффективнее, чем на обычном компьютерном процессоре (CPU). И действительно, биткойн-майнинг очень быстро мигрировал с CPU на графические процессоры (GPU), затем на программируемые аппаратные устройства (FPGA), после чего вышли специально под него заточенные микросхемы (ASIC). специализированной ASIC-мощности представляет проблему для децентрализованной валюты.

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

По своей сути, Scrypt-майнинг не сильно отличается от биткойн-майнинга. На вход подается блок данных, к нему применяется хэш-функция, на выходе мы пытаемся получить «красивый хэш». Вот только сама хэш-функция гораздо сложнее в вычислении. Данный алгоритм использует более значительное количество оперативной памяти (памяти с произвольным доступом), чем SHA-256. Память в Scrypt используется для хранения большого вектора псевдослучайных битовых последовательностей, генерируемых в самом начале алгоритма. После создания вектора его элементы запрашиваются в псевдослучайном порядке и комбинируются друг с другом для получения итогового ключа.

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

Эта искусственно созданная сложность, весь этот трудоемкий вычислительный процесс и требования к памяти приводят к тому, что любое специализированное оборудование для Scrypt-майнинга не будет на порядки эффективнее универсальных устройств (GPU, CPU). В идеале, добыча монет, основанных на Scrypt, должна осуществляться на одном (или нескольких) компьютерах с большим количеством памяти. Здесь большое значение уделяется видеокартам. Если вы рассматриваете покупку видеокарт для майнинга с использованием Scrypt протокола, то наилучшим вариантом станет приобретение изделия от фирмы ATI. В силу архитектурных различий, производительность майнинга на видеокартах ATI сейчас гораздо выше, чем на Nvidia, хотя в будущем все может измениться.

В конечном счете, все сводится к следующему: протоколы SHA-256 и Scrypt работают ради одной цели – получить перебором «красивый хэш», который даст нам (или, скорее, пулу, на который мы работаем) право удлинить блокчейн и получить за это вознаграждения. Они просто решают поставленную задачу по-разному: в SHA-256 упор на технические возможности аппаратного обеспечения — чем выше производительность, тем лучше результат. А Scrypt требует в работе большой объем памяти. Соответственно, производительность напрямую зависит от размера оперативного запоминающего устройства (ОЗУ) и видеокарт, установленных в компьютере.

Самым известным альткойном из использующих в майнинге Scrypt является Litecoin. Есть и Dogecoin, Digitalcoin, Franco, Bottlecaps и многие другие. Популярность Scrypt-монет, особенно лайткойна, существенно возросла после того как биткойн-майнинг массово мигрировал на ASIC и бывшие майнеры с видеокартами остались не у дел — их оборудование не может конкурировать со специализированными комбайнами. Вот они и приспособили свои видюшки к лайткойн-майнингу, или к добыче другой экзотики, которую пока еще можно сбыть доверчивым горе-инвесторам, .

Крипто-танцы: Scrypt-Jane


Знакомьтесь – это Джейн! Нет, нет, она и Scrypt не состоят в браке, хотя между ними все же есть некие родственные отношения. Scrypt-Jane подобно любой другой девушке любит хорошо провести время. А ее способности к перемешиванию данных и приятели-алгоритмы унесут вас в самые экзотические места! Не понимаете? Сейчас все объясню.

Scypt-Jane поддерживает не менее трех различных систем поточного шифрования. Прежде всего, у нас есть Salsa20/8. Нет, это не латиноамериканский танец — на самом деле, это довольно простая функция. Основная ее работа заключается в приеме 192-байтной строки (из букв или цифр) и дальнейшем ее преобразовании в 64-байтную строку Salsa20 (х).

Непонятно, не так ли? Хорошо, постараюсь использовать меньше теории. Salsa20 состоит из двух частей: потокового шифра для шифрования данных (это, должно быть, звучит более знакомо) и функции сжатия (так называемый алгоритм Rumba20), предназначенной для сжимания строки в 192 байта до 64-байтного значения. Используя лексикон «чайника», можно сказать так: ваша строка может быть длиннее 64 байт, пока не сравняется со значением в 192 байта, при этом строка будет сжата (читай: конвертирована) до 64-байтной строки.

Теперь, когда мы немного разогрелись после сальсы и румбы, пришла пора вводить вторую функцию – ChaCha20. Честно, это не я выдумываю такие названия. ChaCha20 очень похож Salsa20: это такой же поточный шифр. И, тем не менее, он предлагает некоторые дополнительные услуги, такие как увеличение устойчивости к криптоанализу. Он также улучшает перемешивание данных на раунд. То есть, если вы занимаетесь добычей криптовалюты в составе майнерского пула, то вы можете увидеть, что один майнерский раунд (период времени, в течение которого пул находит один блок) может составлять либо длинный, либо короткий промежуток времени. Длительность подобных раундов частично зависит и от улучшенного перемешивания, предлагаемого ChaCha20 из Scrypt-Jane. Есть и другие факторы, влияющие на снижение времени раунда, но об этом позже.

И, наконец, последняя, но не менее важная третья функция перемешивания данных — Salsa6420/8. Сексуальное название, не так ли? Salsa6420/8 является доказательством правильности концепции 64-байтной версии Salsa20/8. Это просто улучшенная версия Salsa20/8, которая позволяет работать с более высокобайтными блоками. Я мог бы продолжить в том же духе выдавать подробную техническую информацию, но, боюсь, что половина из вас, мои дорогие читатели, уже заснула, а остальные принялись за игрушки на своих смартфонах, так что давайте не будем заострять на этом внимание. Просто помните о том, что у Scrypt-Jane имеется три отличных «миксовых партнера».

Но вернемся к реальности! Scrypt-Jane также поддерживает несколько хэш-функций. Одна из них уже очень хорошо известна всем нам – это SHA-256. Она также поддерживает более продвинутый вариант SHA-512. Другие поддерживаемые хэш-функции включают BLAKE256/512, Skein512 и Keccak256/512 (или просто SHA -3).

BLAKE256-512 отличается очень простой разработкой для применения и опирается на уже проанализированные нами компоненты: структуру HAIFA (не будем ее рассматривать в данный момент) и основную функцию ChaCha (которую мы затронули ранее). Наиболее характерные особенности BLAKE – это высокий запас надежности (довольно важная характеристика, но о ней не сейчас) и высокопроизводительная универсальность (что тоже очень важно для майнеров). Что нужно запомнить о BLAKE, так это то, что она может и будет работать быстрее, чем SHA- 2(56) на ряде платформ.

С другой стороны, у нас же есть Skein512. Тех, кто придумывает такие великолепные имена, нужно наградить медалью… Skein («лялька» в переводе на русский) представляет собой хэш-функцию, представленную на конкурсе криптографических хэш алгоритмов. Она сочетает в себе скорость, безопасность, простоту и гибкость. Все мы это очень любим, не так ли? Она также очень эффективна на различных платформах как в аппаратной, так и в программной среде. Вы можете найти алгоритм Skein и на маленьких смарт-картах, с которыми большинство из нас имеет большой опыт работы.

Да уж, танцевально-криптографическая терминология тут просто зубодробительная. Но хватит теории, давайте посмотрим на то, что Scrypt-Jane может сделать для нас. Scrypt-Jane имеет свой ​​собственный вариант масштабирования сложности проблем. Scrypt-Jane использует N-фактор (который является числом), и это число определяет количество памяти, необходимой для решения задач. Значение числа N-фактора возрастает через определенные промежутки времени. Обычно это происходит тогда, когда в блокчейне найдено определенное количество блоков. Всякий раз, когда это число N-фактора увеличивается, снижается эффективность добычи криптовалют, так как требуется все больший объем памяти на выполнение тех же задач. Говоря простым языком, количество выполненных задач снизится, то есть упадет и вероятность нахождения решения.

Scrypt-Jane первоначально была предназначена для майнинга только на процессорах CPU как еще более замороченная замена Scrypt. Но увы, доминирование CPU-майнинга и тут длилось недолго. Майнеры, работающие на GPU, как вороны кружили вокруг Scrypt-Jane монет, стремясь увеличить эффективность добычи и, соответственно, прибыль. Вы можете подумать, что даже в случае уменьшения прибыли, вы сможете вести добычу с GPU в течение более длительного времени по сравнению с майнингом на CPU? Боюсь, что вы ошибаетесь. В конце концов, значение N-фактора будет настолько высоко, что для добычи на Scrypt-Jane GPU будут менее эффективным, чем процессоры CPU. В связи с этим, Scrypt-Jane не так-то легко перевести в специализированный ASIC-майнинг, как SHA-256 или даже Scrypt.

Одной из первых Scrypt-Jane-монет, получивших некоторую популярность, была Yacoin (да, да, Yet Another Coin — «еще одна монета»), правда, популярность этой монеты быстро упала вместе с уменьшением интереса к ней майнеров. Совсем недавно мы были свидетелями появления монет, подобных Copperbars (эффективность майнинга на GPU также упала), и самые свежие дополнения к списку – это валюты TIX и Cryptonerd.

Далее везде

Три описанных алгоритма покрывают более 90% всего зоопарка криптовалют, но, конечно же, есть и другие. Чуть ли не еженедельно появляются предложения относительно все более новых и хитромудрых алгоритмов майнинга — все и не осветить. Из относительно новых можно упомянуть особо «асикоустойчивый» алгоритм , который собираются использовать в криптовалютной платформе нового поколения .

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

Ушедший 2017 год стал годом взрывной популярности криптовалют и такого же стремительного роста курса «главной» криптомонеты Bitcoin. Эти обстоятельства подогрели интерес не только к спекуляциям и майнингу, но и к самой сути явления. Все больше людей желают докопаться до сути – как же это все работает?

Мы открываем серию материалов, в которых постараемся в максимально доступной форме объяснить, что стоит за этими загадочными акронимами вроде Scrypt, SHA-256, Х11 и прочими. Начнем с важнейшего (но не самого лучшего) для мира криптовалют алгоритма — SHA-256. Именно он является основой разработки Bitcoin. Но перед этим определимся с ключевой терминологией – определим значения терминов «майнинг» и «хэш».

Что такое майнинг?

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

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

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

Что такое хэш?

Выше был упомянут далеко не каждому понятный термин «хеш». Это одно из фундаментальных понятий в шифровании вообще и в алгоритме SHA-256 в частности. Разъясним, что это значит, и пройдемся по важнейших сопутствующих моментах.

Итак, хеширование – это процесс превращения входящего набора данных произвольного объема в исходящую цифровую строку. Это превращение осуществляется по заранее разработанному алгоритму, а исходящая строка полностью уникальна, и служит неким «отпечатком» входящего массива. Именно эту строку и называют хеш-суммой, хеш-кодом или просто хешем. А алгоритм превращения – это хеш-функция.

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

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

В интерфейсе программного обеспечения для майнинга процессы преобразования блоков в хеш-суммы отображаются в виде лаконичной строки вида «Accepted 0aef59a3b». Блок может состоять из тысяч или даже сотен тысяч подобных строк, но только одна может служить той самой «подписью» блока, в поиске которой и заключается суть майнинга.

Поиск правильного хеша осуществляется простым перебором результатов решения огромного числа задач. В алгоритме SHA-256 «правильность» хеша определяется количеством нулей в начале хеш-суммы. Вероятность узнать такой хеш-код путем определенных алгоритмом вычислений ничтожно мала – один шанс на миллионы решений. Точная вероятность определяется текущим уровнем сложности в децентрализованной системе конкретной криптовалюты.

Примечательный факт. С алгоритмом SHA-256 каждый из нас неоднократно имел дело, сам того не подозревая, даже безотносительно майнинга криптовалют. Речь о сертификате безопасности SSL, которым защищены очень многие веб-сайты. При посещении такого сайта вы автоматически взаимодействуете с SHA-256, на котором построена работа SSL.

Особенности протокола SHA-256

Для начала немного истории. Изначально алгоритм шифрования SHA-256, вернее, его прототип, был придуман в стенах «зловещего» АНБ (Агентства национальной безопасности США) в теперь уже далеком 2002 году. Уже через пару месяцев он был видоизменен и официально представлен Национальным метрологическим университетом на федеральном уровне. Через два года вышла его вторая, усовершенствованная версия.

Последующие три года Агентство работало над улучшением алгоритма и в конце концов издало патент на его вторую редакцию. Это было сделано под лицензией Royalty-free, что и дало возможность применять новейшую технологию в «мирных» целях.

В конечном счете SHA-256 лег в основу создания первой в мире криптовалюты – Bitcoin. При этом протокол задействуется дважды для повышения защиты.

При проведении вычислений в рамках майнинга в системе Bitcoin признаком пригодности получаемого хеш-кода является число нулей в начале строки. По состоянию на конец 17-го, начало 18-го годов количество требуемых начальных нулей равно 17 (+/-). Вероятность обнаружения такого кода составляет приблизительно 1 к 1.4*10 20 . Это чудовищно малое число, не поддающееся осмыслению и сравнимое с вероятностью отыскать песчинку определенной формы на всех песчаных пляжах нашей планеты. Вот почему майнинг Биткойна требует таких огромных вычислительных мощностей и столько электроэнергии.

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

Теперь мы вынуждены немного «подгрузить» читателя сложной технической информацией, иначе наш рассказ о SHA-256 будет неполным. Если совсем ничего не понятно – просто переходите к следующему разделу статьи.

Работа протокола подразумевает разбиение информации на фрагменты по 512 бит каждый (или 64 байта, что то же самое, так как 1 байт = 8 бит). Затем происходит криптографическое «перемешивание» по заложенной в алгоритме схеме, и на выходе издается хеш-код размером в 256 бит. Операция хеширования производится в 64 итерации, что относительно немного, особенно на фоне новых появившихся криптографических алгоритмов.

Основные технические параметры SHA-256 следующие:

  • Размер блока: 64 байт;
  • Максимальная длина сообщения: 33 байт;
  • Размер результирующего хеш-кода: 32 байт;
  • Количество повторений в одном раунде: 64;
  • Максимальная скорость: около 140 MiB/s (мебибайт в секунду).

В своей работе алгоритм использует известную методику Меркла-Дамгарда, которая подразумевает разделение начального показателя на блоки сразу после внесения изменений. Блоки, в свою очередь, делятся на 16 слов каждый.

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

Эволюция SHA-256

Чтобы осознать криптографическую ценность данного алгоритма, снова обратимся к истории. Всерьез испытывать его на прочность начали практически сразу после создания – в 2003 году. Делом занимались профессионалы, но никаких уязвимостей или ошибок найдено не было.

Прошло целых пять лет, когда в 2008 году индийские эксперты все-таки смогли выявить коллизии для целых 22 итераций. Через несколько месяцев упорной работы было предложено успешное решение проблемы.

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

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

После того как первая версия SHA-256 провалила испытания по второму признаку, разработчики решили создавать новый механизм шифрования, основанный на кардинально иных принципах. Что и было сделано – в 2012 году был представлен протокол нового поколения, полностью лишенных вышеописанных недостатков.

Недостатки алгоритма

То, что разработчикам удалось исправить собственные ошибки, отнюдь не значит, что SHA-256 им получилось довести до совершенства. Протокол избавился от явных уязвимостей, но его «родные» недостатки остались.

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

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

Каждая итерация в рамках алгоритма выглядит довольно примитивно – элементарная двоичная операция плюс 32-разрядное сложение. Именно поэтому асики на SHA-256 появились столь молниеносно, умножив на ноль все надежды «домашних» майнеров, располагающих только процессором и парочкой видеокарт.

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

Резюме

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

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

Протокол SHA-256 на нынешний момент занимает львиную долю рынка криптовалют, но новые альтернативы его уже сейчас уверенно теснят. Например, вторая по популярности и «дороговизне» крипта – Ethereum использует протокол Ethash, который раньше назывался Dagger. Протокол настолько хорош, что Ethereum по сей день держит максимальную децентрализацию, и ASIC-майнеров для его добычи до сих пор не существует в природе. Возможно, именно Ethash придет на смену явно морально устаревшему SHA-256.

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

Если рассматривать майнинг с позиции обывателя, не искушенного в технических нюансах, то никакой разницы между алгоритмами Scrypt и SHA-256 он не почувствует. Асики на обоих протоколах выглядят почти одинаково, потребляют приблизительно столько же электроэнергии и совершенно одинаково завывают вентиляторами. Другое дело – курсы криптовалют, которые эти самые асики добывают, но это уже совсем другая история.

Следующий материал в рамках данной темы мы посвятим упомянутому альтернативному протоколу шифрования Scrypt.

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

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

Майнинг биткоинов сам по себе очень быстро «перекочевал» из компьютерного процессора на графический GPU, а после — вовсе на FPGA (аппаратные устройства). Чуть позже программисты сумели запустить заточенные под таковые микросхемы ASIC.

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

Реализация Scrypt-майнинга практически не отличается от классического:

  1. Подается блок информации;
  2. Происходит применение хэш-функции;
  3. Правильный хэш идет на выход (создается монета).

Единственное отличие — подобрать правильный хэш намного сложнее.

Алгоритм Scrypt для майнинга требует больше оперативной памяти, чем стандартный SHA-256.

В идеале, полноценная добыча криптовалюты при помощи алгоритма Scrypt, должна быть осуществлена на одном компьютере, который имеет большой объем оперативной памяти.

Какую особенность для увеличения эффективности Scrypt-майнинга отметить?

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

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

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

  1. SHA-256 делает акцент на технические характеристики обеспечения (эффективность майнинга равна его производительности);
  2. Scrypt требует для эффективного майнинга намного больше оперативной памяти (ОЗУ), а также мощную видеокарту. То есть, чем больше ОЗУ, чем мощнее видеокарта, тем больше криптовалюты будет получать майнер.

Наибольший результат алгоритм Scrypt для майнинга показывает в добыче Litecoin.

Если у Вас есть желание начать майнинг криптовалюты, стоит изначально понимать, какой ПК имеется в наличии. Возможно приобрести более дорогое оборудование, но как вариант: заменить ОЗУ и видеокарту для того, чтобы поработать с алгоритмом Scrypt для майнинга.

Успейте воспользоваться трендом — майнинг криптовалюты только набирает обороты!

В последнее время многих интересуют технические основы криптовалют. При этом считанные единицы разбираются в криптографии. Чтобы постигнуть эту науку, необходимо досконально изучить биткоин-протокол, который буквально кишит криптографическими терминами, загадочными и неудобными акронимами, вроде «SHA-256», «Scrypt», «base58check» и пр. В данной статье рассказывается об алгоритмах майнинга криптовалют наиболее доступным языком.

Как происходит майнинг криптовалют?

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

Говоря простыми словами – алгоритм майнинга криптовалют, это схема вычисления, используя которую можно получить крипто-монету.

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

Неудивительно, что ажиотаж вокруг майнинга, который начался в последнее время, спровоцировал рост цен на видеокарты. Последние подорожали двукратно. К примеру, если хорошее устройство стоило весной текущего года примерно 18 тыс. руб., то теперь его стоимость увеличилась до 30 тыс. руб. и более.

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

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

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

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

Рассмотрим подробнее некоторые самые распространённые алгоритмы майнинга криптовалют.

Кратко и доступно об основных алгоритмах майнинга

Алгоритм Scrypt

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

Впрочем, сейчас майнинг «Scrypt» не так актуален. Тем не менее, получать профит на майнинге валют таким способом можно.

Традиционный алгоритм «SHA-256»

SHA-256 – является самым именитым, поскольку это алгоритм майнинга bitcoin. Данный алгоритм хэширования применил С. Накамото, чтобы отыскать «красивый хэш», необходимый для завершения очередного блока вычислений. Принцип работы, следующий. На вход поступают данные, из которых извлекается «красивый хэш». Для этого используются различные комбинации строк, которые состоят из цифр, а также букв. В результате, генерируется выигрышная комбинация, и информационный блок закрывается.
Тот майнер, которому удалось отыскать подобный хэш, может рассчитывать на вознаграждение в виде виртуальных монет. Решить эту задачу без хэш-функции невозможно. При это, если входная информация будет подкорректирована хотя бы на один бит, то это спровоцирует серьезное изменение хэш-суммы.

Самые старые электронные валюты, в том числе, и биткоин, были созданы в соответствии с алгоритмом «SHA256». К ним можно отнести и Неймкоин, и STEEM, и др.
Первым майнерам было проще всего. Они легко майнили биткоины, используя лишь обычные процессоры. Но постепенно добывать виртуальные монеты стало сложнее. Тогда майнеры были вынуждены перейти на более мощные аппаратные устройства. Первоначально распространение получили графические редакторы (то есть, видеокарты), затем настал черед программируемой аппаратной техники, которая называется FPGA.

Но больше всего разочаровали разработчиков первых криптовалют «асики». Это устройства, которые были разработаны специально для работы с алгоритмом «SHA256». Их узкая направленность и высокая производительность позволили майнерам зарабатывать виртуальные монеты в разы быстрее. Ведь «асики» отличались высокой скоростью вычислений и оперативно находили «красивый хэш». По этой причине программисты разработали другие алгоритмы майнинга криптовалют.

Алгоритм «X»

Это передовая технология программирования коинов. На данный момент существуют такие алгоритмы, как «Х11», «Х13», а также «Х15». По большому счету они являются усовершенствованными версиями PoW. Что же касается числа, которое расположено после «Х», то оно означает количество функций, используемых для вычислений в блоке.
Подобные алгоритмы применяют всевозможные математические формулы вычислений. С их помощью можно осуществлять эффективный майнинг коинов посредствам видеокарт. При этом определенный процент профита из пулов получают не только сами майнеры, но и владельцы основных сетевых узлов.

С применением «Х11» был разработан такой форк, как Dash. Его капитализаций превышает 75 млн. долл. США.

Другие алгоритмы

Среди существующих алгоритмов шифрования стоит выделить «DaggerHashimoto». Он используется для майнинга криптовалюты Ethereum. Чтобы он эффективно функционировал, необходимо обладать видеокартой, которая имеет большой объем ОЗУ.
Если же говорить о «X11», то он используется в монетку Dash. Его поддерживают все современные видеокарты. Но уже совсем скоро следует ожидать появления первых партий ASIC-майнеров для Dash.

Что же касается алгоритма «Decred», то он является модифицированной версией «Blake256». Разработан для криптомонеты Decred. Поддерживает майнинг посредствам видеокарт. Зачастую для заработка Decred используется не только одноименный алгоритм, но и «DaggerHashimoto». Их необходимо запустить на программе «Claymore’s Dual Miner».

Есть и «CryptoNight». На его основе функционирует Monero. Его отличительная особенность – неплохое вычисление на процессорах. К примеру, на Intel Xeon E3 он приносит примерно 0,25 долл. США ежедневно. Конечно, это небольшая сумма. Но все же.

Наверняка, многие из Вас уже слышали о такой криптовалюте, как Zcash. Для ее майнинга используется алгоритм Equihash. А вот для получения Sibcoin, «сибирского червонца», применяется «X11Gost».

Итоги

Первые 3 вышеописанных алгоритма используются для майнинга 90% всех криптовалют. При этом каждый день находчивые люди предлагают более новые и хитроумные алгоритмы для заработка виртуальных монет. Так, относительно недавно появилась информация о скором появлении «Dagger». Данный алгоритм тут же окрестили «асикоустойчивым». Планируется, что на его основе будет функционировать криптовалютная платформа новой генерации Ethereum.
Естественно, мы так и не успели перечислить все алгоритмы, предназначенные для майнинга криптовалют. Но при этом уделили внимание самым значимым из них. Теперь вы знаете, что творится внутри вашего майнинг-комбайна и на какие цели тратится электроэнергия.