Алгоритм Scrypt для майнинга. Крипто-алгоритмы майнинга

Новости 12.07.2019
Новости

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 и многие майнеры с видеокартами оказались не при делах - их оборудование попросту не сможет составить конкуренцию специализированным комбайнами. Вот им и пришлось приспосабливать свое оборудование к лайткойн-майнингу, либо к добыче другой криптовалюты, которую пока еще удается сбывать доверчивым горе-инвесторам.

В последнее время многих интересуют технические основы криптовалют. При этом считанные единицы разбираются в криптографии. Чтобы постигнуть эту науку, необходимо досконально изучить биткоин-протокол, который буквально кишит криптографическими терминами, загадочными и неудобными акронимами, вроде «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.
Естественно, мы так и не успели перечислить все алгоритмы, предназначенные для майнинга криптовалют. Но при этом уделили внимание самым значимым из них. Теперь вы знаете, что творится внутри вашего майнинг-комбайна и на какие цели тратится электроэнергия.

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

Разделить программы майнинга криптовалют можно на 3 вида, в зависимости от оборудования, которое они используют.

Алгоритмы для ASIC

Биткоин, Litecoin и Dogecoin - популярные монеты, имеющие большую сложность добычи. Эти монеты можно добывать только на специальном ASIC оборудовании, которое гораздо быстрее, чем обычные процессоры. А также потребляют меньше электроэнергии.

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

Какие валюты майнить на алгоритме sha256?

На этом варианте поддерживается майнинг Биткоин, а также ему подобных криптовалют. Это криптовалюты, у которых подтверждение транзакций происходит методом “доказательства работы”. Наиболее известные криптовалюты на sha256:

Bitcoin, Bitcoin Cash, NameCoin, EmerCoin, Peercoin, ATB и Ghost.

  • Scrypt - метод шифрования более простой и быстрый, в сравнении с sha256. Был создан Персивалем, как ответ на доминирование ASIC устройств в майнинге криптовалют. Он может выполняться на процессорах или видеокартах, но с появлением Асиков для домашнего майнинга стал не актуален. Лежит в основе криптовалют:

Litecoin, DOGE, NetCoin, BitConnect, Novacoin, DigitalCoin, SysCoin.

  • X11 - был разработан для преодоления некоторых существенных недостатков предыдущих способов шифрования. Фактически он объединяет в себе 11 других алгоритмов, соединенных вместе. Один из недостатков, который должен был устранить новый метод - возможность зарабатывать криптовалюту простым пользователям, не имеющим специального оборудования. Появление специальных Асик устройств для майнинга, в которых использовались методы SHA256 и Scrypt, привело к тому, что майнинг стал контролироваться крупными майнерами, имеющими фермы. Созданный способ X11 позволил вновь использовать майнинг с помощью процессоров и видеокарт обычными пользователями. Положительное свойство этого алгоритма - значительно меньшее использование электроэнергии.

Что можно майнить используя алгоритм Х11?

Dash, Pura, Startcoin, AutumCoin.

Алгоритмы для майнинга на видеокартах

Современные видеокарты (графические адаптеры GPU) являются программируемыми микросхемами. Такие видеоадаптеры могут использоваться для вычислительных операций, кроме встроенных решений, таких как Intel Graphics.

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

Наиболее популярные алгоритмы для видеокарт:

  • Ethash (Dagger Hashimoto) - криптографический метод, который лежит в основе Ethereum. Главная особенность работы Ethash - это интенсивное использование видеопамяти. Этот метод криптографического шифрования до сих пор можно использовать для майнинга на видеокартах NVIDIA GTX 1070/1080.

Криптовалюты: Эфир (ETH), Классик эфир (ETC), Expanse (EXP).

  • Groestl - в настоящее время ASIC не существует для Groestl, и маловероятно, что в ближайшее время он будет разработан для этого метода.

Майнинг криптовалют: Groestl и Diamond.

  • Equihash - представляет собой асимметричный алгоритм «доказательство работы». Для его реализации требуется много оперативной памяти и делает невозможным создание ASIC.

  • Nist5 - новый алгоритм шифрования для создания валюты Wyvern.
  • Blake/Blake-256 - метод шифрования криптомонет BlakeCoin, NETCO и TRUMP
  • Lyra2 - криптовалютный метод валюты VertCoin, которая является вилкой Litecoin. Принцип метода - все, у кого есть персональный компьютер, должны быть в состоянии присоединиться к сети.

Какой алгоритм лучше майнить на NVIDIA?

Nvidia, одна из популярных видеокарт у майнеров. На сегодняшний день на ней лучше всего майнить ZCash (ZEC).

Алгоритмы для майнинга на процессоре

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

Для этого подойдут следующие алгоритмы:

  • Yescrypt - хеш-алгоритм валюты GlobalBoost, созданной в 2014 году.
  • CryptoNight присутствует в шифровании 15 криптовалют. Метод был разработан для майнинга криптовалют на процессоре компьютера. Он был реализован в открытом протоколе, который позволяет повысить конфиденциальность в транзакциях с криптовалютами.

В отличие от Scrypt, Cryptonight зависит от всех предыдущих блоков при создании нового.

Используется в майнинге валют: Monero, Bytecoin, Dashcoin, Quazarcoin и других.

Заключение

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

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

  • Подпишись на Email-рассылку от журнала BitExpert: Актуальные новости на Email
  • Подборки криптоновостей 1 раз в день в Телеграме: BitExpert
  • Инсайды, прогнозы обсуждения важных тем у нас в Телеграм чате: BitExpert Chat
  • Вся лента криптоновостей журнала BitExpert у вас в Телеграме: BitExpert LIVE

Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

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

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

  • Ненормальное программирование ,
  • Платежные системы
    • Перевод

    В один прекрасный момент мне захотелось прикинуть, насколько быстро можно майнить биткойны вручную. Оказалось, что для майнинга используется хеширование 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 квадриллионов раз выше. Да-а-а, понятно, что я не ухвачу удачу за хвост ручным майнингом биткойнов, и это еще не учитывая стоимость бумаги и ручек!



    Рекомендуем почитать

    Наверх