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

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

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

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

Криптовалютный алгоритм – обобщённое понятие

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

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

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


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

SHA 256 — алгоритм работы классического Биткоина

Как мы уже говорили, данный алгоритм уже довольно старый. По сути, он стал использоваться задолго до того, как на его основе была построена криптовалюта Биткоин. Он присутствует в сертификатах SSl, которые используются для защиты вебсайтов, а также реализован в протоколах PGP и SSH. Только с 2009 года он был задействован в криптовалюте и с тех пор выступает неизменным атрибутом не только Биткоин, но и других валют, построенных по его прообразу.

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

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

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

Scrypt

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

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

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

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

DaggerHashimoto – используется в криптовалюте Ethereum

DaggerHashimoto во многом напоминает скрипт, но механизм шифрования которого работает на связных, направленных ацикличных графах. Алгоритм создаёт граф последовательных узлов, каждый из которых зависит от трёх до пятнадцати случайных узлов перед ним. Когда майнер найдёт узел, номер которого лежит между 2 22 и 2 23 , а хэш будет меньше, то алгоритм считается выполненным.

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

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

Scrypt-Jane

Описание алгоритмов криптовалют мы хотим закончить на довольно интересном алгоритме под названием Scrypt-Jane. Особенностью данного алгоритма является наличие сразу трёх механизмов шифрования, названных в честь латиноамериканских танцев – Salsa20, ChaCha20 и Salsa6420/8.

Главной задачей функции Salsa20 является приём 192-байтной строки и преобразование её в 64-байтную строку. Другими словами, функция сжимает строку до состояния 64-байтной, хотя она, по сути, таковой не является, то есть, она может быть длиннее данного размера, но с 192-байтной строкой уже не сравняется. Происходит это не в последнюю очередь благодаря внутреннему алгоритму сжатия под красивым названием Rumba20.

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

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

Кроме основных трёх функций, Scrypt-Jane также позволяет работать с уже известными нам алгоритмами, такими как: SHA-256 и его улучшенной версией SHA-512, а также функциями BLAKE256/512, Skein512 и Keccak256/512.

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

Таблица криптовалют с алгоритмами

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

Название Год Сокращение Алгоритм Краткое описание
Bitcoin 2009 BTC SHA-256 Настоящий флагман цифровых криптовалют. В настоящий момент признан большим количеством стран по всему миру.
Ethereum 2015 ETH Dagger-Hashimoto Основная идея для внедрения данной валюты - это создание вычислительных мощностей для предоставления возможности реализации цифровых проектов.
Steemit 2016 STEEM SHA-256 Созданная для распространения и внедрения мультимедийного контента на различных веб-хостингах.
Ripple 2013 XRP ECDSA Валюта, предназначенная для банков, чтобы быстрее и лучше совершать транзакции.
DigiByte 2014 DGB SHA256 Разработана для усовершенствования тех систем, где у Bitcoin & Litecoin наблюдались проблемы.
Monero 2014 XMR CryptoNight Основной задачей данной валюты является обеспечение анонимных денежных переводов.
Siacoin 2015 SC blake2b Разработана для анонимного хранения данных.
Litecoin 2011 LTC Scrypt Один из главных конкурентов Биткоин, но с преимуществом в более быстрых транзакциях.
EthereumClassic 2015 ETC Dagger-Hashimoto Представляет собой тот же Эфириум, но от других людей. Сейчас стоит дешевле основной версии.
Dogecoin 2013 DOGE Scrypt Частично скопированный со всем известного Litecoin, но с добавлением некоторых изменений.
NEM 2015 XEM blockchain Новая криптосистема, которая предлагает цифровую нотариальную подпись. Кроме того, обладает высочайшей скоростью проведения транзакций и обеспечивает надёжное хранение средств.
Syscoin 2014 SYS Scrypt Ориентирован на децентрализованную торговлю.
Augur 2015 REP Smart contract Использует вычислительные мощности клиентов для прогнозирования финансовых рынков.
Dash 2014 DASH X11 Предлагает высокую анонимность транзакций. При использовании Dash конечного потребителя практически невозможно отследить.
ByteCoin 2012 BCN CryptoNight Основная задача защитить деньги пользователя. Для этого система использует самые совершенные криптографические алгоритмы.
BelaCoin 2014 BELA Scrypt Сервис, позволяющий получить оплату за публикацию фотографий.
lbryCoin 2016 LBC LBRY С помощью lbry пользователи могут делиться своим контентом.
Radium 2015 RADS Smartchain Задействует вычислительные мощности для предоставления возможности создания децентрализованных сервисов.
Decred 2015 DCR Blake256 Представляет из себя гибрид систем POW и POS. Благодаря этому соблюдает тонкий баланс между майнерами и держателями монет.
Einsteinium 2014 EMC2 Scrypt Некий kickstarter для научных проектов.
Gridcoin 2013 GRC BOINC Данная система использует вычислительные мощности для оказания помощи различным секторам науки, таким как медицина, астрофизика и многим другим.
VertCoin 2014 VTC Lyra2RE Криптовалюта, призванная полностью обезопасить себя от ASIC-майнеров, тем самым сохранив высочайшую степень децентрализации.
Dashcoin 2014 DSH CryptoNight Анонимная криптовалюта нового поколения.
Potcoin 2014 POT Scrypt Система, призванная работать в легальной индустрии марихуаны.
Peercoin 2012 PPC SHA-256 Предоставляет возможность добычи новых монет не только с помощью майнинг ферм, но и с помощью монет, которые уже находятся в кошельке.
Namecoin 2011 NMC SHA-256 Главным применением Namecoin является цензуро-устойчивый домен.
Nautiluscoin 2014 NAUT NXT Цель – доказать, что криптовалюты могут являться хорошим вложением инвестиций.
Expanse 2015 EXP Dagger-Hashimoto Идея данной валюты в том, чтобы использовать новейшую технологию blockchain для создания всего, что только может представить сообщество в плане децентрализованных систем.
PinkCoin 2014 PINK X11 Криптовалюта, созданная на базе платформы Эфириум, имеет фиксированный актив цветных бриллиантов.
FoldingCoin 2014 FLDC Stanford Folding Использует вычислительные мощности для моделирования процесса сворачивания белков в теле человека. Результаты, полученные в этом исследовании, будут использованы при изготовлении и получении новых медицинских препаратов.
Navcoin 2014 NAV X13 Предлагает очень высокую анонимность клиента при покупках в сети интернет.
ViaCoin 2014 VIA Scrypt Предоставляет пользователям возможность создавать новые децентрализованные торговые площадки.
DNotes 2014 NOTE Scrypt DNotes – peer-to-peer децентрализованная криптовалюта. Данная система предоставляет возможность мгновенного перевода денег другому человеку в любой части мира, при этом транзакция будет надёжно защищена.
Vcash 2014 XVC Blake256 Vcash очень перспективная криптовалюта, которая обладает высокой степенью децентрализации.

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

Многие интересуются техническими основами криптовалют, но немногие знакомы с криптографией. Для того, чтобы докопаться до сути происходящего в биткойн-протоколе приходится продираться через дебри криптографических терминов, загадочных и неудобных акронимов типа 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% всего зоопарка криптовалют, но, конечно же, есть и другие. Чуть ли не еженедельно появляются предложения относительно все более новых и хитромудрых алгоритмов майнинга — все и не осветить. Из относительно новых можно упомянуть особо «асикоустойчивый» алгоритм Dagger, который собираются использовать в криптовалютной платформе нового поколения Ethereum.

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

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

Bitcoin

  1. стоимость: $16 564.70;
  2. капитализация: $277 203 413 279;
  3. торгуется на биржах: На всех;

Думаю какие либо комментарии излишни, биткоин он и в Африке биткоин, только ленивый о нем не слышал.

Peercoin

  1. стоимость: $3.44;
  2. капитализация: $84 219 271;
  3. торгуется на биржах: WEX, Bit-Z, Bittrex, Poloniex, YoBit, Cryptopia, HitBTC, LiteBit.eu;

Peercoin — одна из действительно уникальных валют. Ее код создан на основе цифрового золота Bitcoin, но сама она использует эту технологию немного иным способом. Так система Proof of Stake используется для защиты всей сети монеты. Также Proof of Work применяется в Peercoin, в роли механизма справедливого распределения монет.

Namecoin

  1. стоимость: $3.00;
  2. капитализация: $44 142 739;
  3. торгуется на биржах: WEX, Poloniex, Livecoin, Cryptopia, YoBit, Coingi;

Namecoin — экспериментальная технология с открытым исходным кодом, которая улучшает децентрализацию, безопасность, защиту от цензуры, конфиденциальность и скорость определенных компонентов инфраструктуры Интернета, таких как DNS и идентификационные данные.
По сути, Namecoin — это система регистрации и передачи пары ключей / ценностей, основанная на технологии Bitcoin.

Если Биткоин освобождает деньги — Namecoin освобождает DNS, удостоверение личности и другие технологии.

Unobtanium

  1. стоимость: $89.32;
  2. капитализация: $17 677 687;
  3. торгуется на биржах: Cryptopia, C-CEX, Bleutrade, CoinExchange;

Unobtanium — это криптовалюта созданная на алгоритме SHA256, уникальная для низкой инфляции, дефицита, справедливого запуска и распространения. Только 250 000 Uno когда-либо будут добыты в течение следующих 300 лет. Unobtanium объединяется с Bitcoin, что приводит к созданию надежной блокировки с высоким уровнем сложности, которая в 3 раза быстрее, чем биткоин. Uno редко встречается не только для выпускаемых монет, но и для его честного запуска и распространения. Uno не был предварительно запрограммирован. Запуск был предварительно объявлен Bitcointalk и, бесспорно, справедливо, с первых 1000 блоков, добытых при низкой награде, чтобы обеспечить майнерам время для настройки оборудования.

Deutsche eMark

  1. стоимость: $0.047230;
  2. капитализация: $1 530 697;
  3. торгуется на биржах: Cryptopia, YoBit, CoinExchange;

Deutsche eMark — это цифровая валюта, которая работает с помощью технологии блокчейна, а она в свою очередь представляет собой цифровую сеть. В этой сети два человека могут напрямую передавать ценности, например деньги. Банки или фондовые биржи больше не нужны, поскольку обе стороны могут лично согласиться на обмен. Блокчейн запускает транзакцию в течение нескольких секунд. Иностранные денежные переводы, кредитование и торговля акциями — все это могло бы работать без вмешательства учреждений, благодаря блокчейну. Хорошо, как клиенту, вам не нужно платить больше за это.

Многие из вас наверняка еще с самого начала задались вопросом «А как там оно все таки работает?». Я постараюсь максимально подробно и доступно ответить на этот вопрос. Не зря алгоритмы, да и все что связано с данной темой, имеет приставку крипто-. Это не спроста. Так как для того чтобы докопаться до сути – придется пробираться через дебри криптографических терминов типа 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% среди всех добываемых валют. Хотя есть и другие, но они на мой взгляд пока не заслуживают внимания. Так как каждую неделю очередной умник предлагает все более хитроумный алгоритм, так что за ними и не успеть. О самых интересных я буду рассказывать вам в следующих статьях.

Scrypt: особенности и преимущества алгоритма

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

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

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

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

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

Большое значение в рассматриваемом алгоритме уделяется видеокартам. Рассматривая покупку видеокарт для Scrypt-майнинга, рекомендуется отдать предпочтение изделию от компании ATI. В связи с архитектурными различиями, производительность майнинга на таких видеокартах намного выше, чем в случае использования Nvidia. Однако здесь нельзя говорить однозначно, ведь ситуация на рынке стремительно меняется, и оба производителя активно совершенствуют свою продукцию.

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

В Scrypt-майнинге среди всех альткойнов наиболее популярным является Litecoin, хотя также успешно применяются и Dogecoin, Franco, Digitalcoin, Bottlecaps и др.

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