В один прекрасный момент мне захотелось прикинуть, насколько быстро можно майнить биткойны вручную. Оказалось, что для майнинга используется хеширование 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 раундов, входная информация будет полностью зашифрованной.
Немного поясню что происходит: я записал слова от A до H в шестнадцатеричной форме, и под каждым сделал перевод в двоичный вид. Результат выполнения блока Ma находится под словом C, а значения A после сдвигов и сам выход Σ0 располагаются над строкой с A. Функция выбора появляется под G, и, наконец, соответствующие сдвинутые версии E и значение после блока Σ1 идут над строкой с E. В нижнем правом углу произвёл сложение, результат которого участвует в вычислении и нового A, и нового E (первые три красных блока суммирования). Справа сверху я рассчитал новое значение A, а посерёдке располагается уже расчет нового значения E. Все эти шаги обсуждались выше и легко могут быть отслежены на схеме.
Кроме того раунда, что показан в видео, я провёл еще один - последний 64-ый хэшируюший раунд для конкретного биткойн-блока. На фотографии значение хэша выделено желтым. Количество нулей подтверждает, что это валидный биткойн-хэш. Заметьте, что нули располагаются в конце хэша, а не в начале, как я писал ранее. Причина заключается в том, что биткойн, просто-напросто, переворачивает байты полученные SHA-256.
Последний раунд SHA-256, в результате которого виден успешно смайненный биткойн-блок
Снимок кремниевого кристалла ASIC-микросхемы Bitfury, которая может майнить биткойны со скоростью в 2-3 гигахэшей в секунду. Картинка с Zeptobars . (CC BY 3.0)
В противоположность биткойну, Litecoin, Dogecoin и другие похожие альтернативные -coin системы используют алгоритм хэширования scrypt , в котором изначально заложена сложность реализации в железе. Этот алгоритм во время выполнения хранит в памяти 1024 разных значений хэша, а уже на выходе комбинирует их для получения конечного результата. Поэтому требуется куда больше памяти и схематики для вычисления scrypt-хэшей по сравнению с SHA-256-хэшами. Влияние изменения алгоритма хэширования наглядно видно при сравнении соответствующего аппаратного обеспечения для майнинга - версии под scrypt (Litecoin и прочие) в тысячи раз медленнее, чем версии под SHA-256 (биткойн).
Читатель с reddit"a спросил о моих затратах энергии. Так как я не прилагаю каких-то серьезных физических усилий, то можно предположить что скорость метаболизма будет 1500 килокалорий в день, тогда получаем, что ручное хэширование требует почти 10 мегаджоулей за хэш. Типичное потребление энергии для железного майнера - 1000 магехэшей за джоуль. Таким образом, я менее энергоэффективен чем специализированная железка в 10^16 раз (10 квадриллионов). Другой вопрос в стоимости энергии. Дешевым источником питания являются пончики по 23 цента за 200 килокалорий. Электроэнергия у меня стоит 15 центов за киловатт-час, что дешевле пончиков в 6.7 раз. В итоге, стоимость энергии в пересчете на хэш для меня, как человека-майнера, в 67 квадриллионов раз выше. Да-а-а, понятно, что я не ухвачу удачу за хвост ручным майнингом биткойнов, и это еще не учитывая стоимость бумаги и ручек!
С данной публикации мы начинаем цикл коротких статей, которые выйдут «в свет» в течение ближайших дней. Содержание этого цикла статей будет в основном посвящено различным типам алгоритмов шифрования. Мы дадим вам полное представление того, что представляют собой крипто-алгоритмы, что они означают, какие из цифровых монет первыми пришли к идее реализации данных алгоритмов и ответим на ряд других вопросов. Сегодня мы начнем с 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! У вас наверняка есть биткоин, который является самой известной альтернативной валютой на сегодняшний день. Но это не повод останавливаться на достигнутом. В последнее время наблюдается всплеск новых SHA-256 монет: Zetacoin, Ocoin, Tekcoin и др. Но мы также не можем забывать про те монеты, которые были запущены ранее, например, NameCoin и т.д.
В следующей статье мы рассмотрим особенности работы алгоритма Scrypt!
При сравнении алгоритмов хеширования майнера, в первую очередь, интересует доходность криптовалют, работа которых основана на этих алгоритмах, и производные вопросы:
В статье мы рассмотрим, что такое Scrypt и SHA 256, определим их принципиальные отличия и произведем сравнение доходности.
Принципиальное отличие Scrypt от SHA 256 (или как иногда пишут в Рунете «Скрипт от Ша») в том, что в первом случае для майнинга криптовалют необходим гораздо больший объём памяти вычислительного устройства, чем во втором случае с алгоритмом SHA 256.
По сути, Scrypt в 2009 году и появился как альтернатива SHA 256.
Эс-крипт (Скрипт) часто называют криптографической хеш-функцией, но, скорее, это функция формирования секретного ключа - KDF. Задача функции - затруднить генерацию паролей, но «в меру», чтобы процедуру можно было использовать в прикладных задачах.
Саму хеш-функцию SHA 256 Scrypt использует в качестве подпрограммы. Благодаря применению Скрипта в криптосистемах при майнинге вычислительное устройство должно одновременно:
Такие требования в первые годы использования алгоритма сильно затрудняли изготовление специализированного оборудования (ASIC-майнеров) и до сих пор делают цену производства и конечную стоимость таких устройств более высокой, чем при изготовлении асиков под SHA 256, которые были выпущены в числе первых. Однако с учётом того, что современные GPU-устройства оснащены достаточно большим объёмом памяти, криптовалюты семейства Scrypt до сих целесообразно добывать на видеокартах, собранных в майнинговые фермы и подключенных к пулам. Таким образом, если речь идёт о домашнем майнинге, то дилемма Sha-256 или Scrypt решается просто - в зависимости от наличия вычислительных устройств.
Если майнер располагает асиком для добычи криптовалют на Sha-256 (а сейчас очень много дорогих и не очень моделей с разной вычислительной мощностью от разных производителей), то, соответственно, и криптовалюты будут выбираться из перечня монет семейства Sha-256. Лучшие Sha 256-монеты: Bitcoin, Steemit, NeosCoin, Peercoin, PascalCoin и ещё десятки других. SHA 256 вместе с Scrypt вообще неизменно входят в пятерку самых распространенных криптографических хеш-функций.
Если у майнера есть только видеокарты, то при выборе из этих двух алгоритмов, рентабельнее заняться майнингом монет семейства Scrypt. В перечне таких альткоинов сейчас более 300 наименований. В 2013 году криптосистемы на этом алгоритме запускались чуть ли ни каждую неделю. При этом большинство из них были форками Litecoin - криптовалюты, которая до сих возглавляет список данного семейства по значимости, востребованности и прочим оценочным параметрам (капитализация, объем продаж, стоимость коина и т.д.). Помимо Litecoin, на Scrypt работают Dogecoin, BitConnect, Syscoin, Novacoin, Bitmark и другие, ещё более экзотические криптовалюты.
При этом надо иметь в виду, что несмотря на анонсирование производителями оборудования Scrypt-асиков, разработчики криптовалют тоже не сидят сложа руки. Хеш-функции совершенствуется и усложняются. Так, например, поработав с параметрами динамического объёма памяти (увеличением объёма памяти и числа перемешиваний), разработчики Скрипта выпустили варианты алгоритма: Scrypt-N и Scrypt-jane.
Поэтому заботу об обновлении, усовершенствовании и обслуживании вычислительного оборудования майнеры всё чаще перекладывают на плечи владельцев облачных сервисов, у которых можно взять мощности в аренду. Чтобы понять, куда более выгодно направить их (на Sha-256 или на Scrypt), проведём сравнительный анализ.
Если провести ретроспективный анализ сопоставления рентабельности обеих хеш-функций на протяжении нескольких последних лет, то, не считая сверхприбыли от кратковременного скачка Bitcoin до 20 тысяч долларов, системно рентабельнее показывает себя майнинг Scrypt-криптовалют.
На рубеже 2015-16 годов покупка мощностей под Sha-256 приносила порядка 0,02-0,03$ в сутки, в то время как мощности под Scrypt приносили около 0,06-0,09$ в сутки, в зависимости от сложности сети криптовалют. Через год из-за возросшей сложности сети большинства криптовалют соотношение несколько изменилось, и разница перестала быть такой внушительной. Но отставание в прибыльности Sha-256 сохранилось.
Важно, что даже при одинаковой доходности майнинга, прибыльность может существенно отличаться, поскольку арендная плата неравномерно «съедает» часть заработка. Так, например, при вложении одинаковой суммы в 1500 долларов, в зависимости от выбранного алгоритма можно было купить разный объем мощностей, оплата которых для Sha 256 стоила $105 в месяц, а для Scrypt - $30 в месяц. Поэтому при равной месячной доходности в $284 прибыль отличалась и составляла:
К началу 2018 года прибыльность Scrypt была приблизительно на 40-46% выше, чем прибыльность SHA 256 (если считать полученную прибыль на каждый вложенный доллар). Корректным можно считать следующее соотношение:
В заключение надо предупредить, что не всегда с первого взгляда удаётся корректно посчитать разницу прибыльности, поскольку при сопоставлении на одних и тех же сайтах демонстрируются таблицы с разными единицами измерения, приведенными к плате за обслуживание объёма и величине минимального хешрейта. Поэтому иногда можно просто воспользоваться уже пересчитанной статистикой заработка в процентах от вложений, приводимой различными ресурсами (например, BitMakler).
Рост курса криптовалют в 2017 году привёл к повышению спроса на майнинг. Тысячи людей бросились в интернет-магазины в поисках мощного оборудования для добычи виртуальных монет. Спросом пользуются видеокарты с высоким хэшрейтом, а также ASIC оборудование (специальные аппараты для майнинга). И если для добычи новых криптовалют GPU ещё подходит, в случае с Биткоином, Лайткоином и другими виртуальными монетами из ТОП-10 добыча на видеокарте менее эффективна. Вот почему все больше майнеров отдает предпочтение ASICам. Вопрос лишь в том, что лучше майнить на асиках, и какие монеты принесут наибольшую выгоду.
Всё больше майнеров интересуется перспективами виртуальных монет и вопросом заработка. При этом мало кто понимает в тонкостях криптографии. Чтобы правильно подобрать ASIC, важно знать алгоритм, на котором он работает. Рассмотрим варианты оборудования, которое имеется в продаже на январь 2018 года.
Таблица с Асиками, функционирующими на алгоритме SHA-256
При и других виртуальных монет, построенных на SHA-256, решаются задачи с помощью процессоров и видеокарт, а также ASIC-оборудования. Скорость выполнения операций и поиска требуемого решения зависит от оперативности решения задач. В этом отношении асики значительно определи своих предшественников - GPU и CPU. С ростом сложности добычи монет возрастают и требования к оборудованию, работающему на SHA-256.
Сегодня рассматриваемый алгоритм реализуется на многих ASIC майнерах, что позволяет пользователям выбрать подходящий по цене и характеристикам вариант, после чего приступать к майнингу. С помощью аппаратов на SHA-256 удаётся майнить не только Bitcoin, но и ряд других криптовалют, работающих на этом алгоритме - Биткоин Кэш, Пиркоин, Неймкоин, еМарк (Deutsche eMark) и другие.
Актуальные Асики на SHA-256 на январь 2018 - Uranus v1 Miner, Antminer S9, SMART Miner 2.0 SE.
Примеры ASIC майнеров, работающих на алгоритме Scrypt
В 2017 году с ростом курса сообщество майнеров, добывающих Litecoin, значительно возросло. Это привело к росту сложности майнинга и потребности в появлении ASIC-оборудования. Так появились аппараты, добывающие монеты на алгоритме Scrypt - втором по популярности после SHA-256.
В процессе создания новой функции хэширования ставилась задача повысить требования к аппаратным ресурсам, участвующим в процессе майнинга. По принципу действия новый алгоритм почти не отличается от существующего SHA-256. Здесь также на вход приходит пакет данных, после чего применяется хэш-функция, а к выходу направляется хэш. Разница в том, что для расчета хэш-функции требуются большие ресурсы. В алгоритме Scrypt применяется увеличенный объём оперативной памяти, которая необходима для накопления битовых последовательностей. Их генерация происходит на старте процесса. После получения вектора элементы устанавливаются в произвольном виде и формируют ключ. Следовательно, для добычи виртуальных монет на Scrypt требуется больше оперативной памяти. Вот почему на начальном этапе майнеры добывали на обычных ПК с простой видеокартой, но ёмкой «оперативкой».
Рост сложности добычи Litecoin заставил пользователей задуматься о замене ПК в пользу более мощного оборудования - . Вопрос в том, какую валюту майнят асики на Scrypt. Здесь не только Биткоин, но и ряд других виртуальных монет, а именно Verge, Spots, Nyancoin, Догикоин и другие. Если говорить о добыче Лайткоинов, применение видеокарт постепенно теряет актуальность, уступая дорогу ASIC оборудованию.
Асики на Scrypt, актуальные на январь 2018 - Antminer L3+, Innosilicon A4.
При рассмотрении вопроса, какую валюту манить на асике, пользователей интересует вопрос доходности и окупаемости добычи виртуальных монет. Здесь алгоритм Х11 и его криптовалюты (Dash, StartCoin, Cannabiscoin и другие) считаются одними из лидеров. К примеру, криптовалюту Даш можно майнить с помощью видеокарт, но позволяет добиться ещё большей доходности.
Кроме рассмотренных выше, стоит выделить и ряд других алгоритмов, но здесь для майнинга криптовалют аппаратура ASIC пока не применяется - достаточно ферм. Речь идет о следующих алгоритмах:
При расчёте учитывается и мощность потребления аппарата, которая составляет 1,2 кВт. Внутри блока находится три платы, на каждой из которых содержится по три десятка чипов. Также на платах предусмотрены разъёмы - три для питания и один, расположенный на управляющем блоке. Охлаждение обеспечивается с помощью пары вентиляторов, которые работают в двух режимах. Блока питания в комплекте нет, поэтому его придётся покупать отдельно.
Если вас интересует, что можно майнить на асиках Bitmain Antminer D3, то здесь доступна добыча Dash, Startcoin, Cannabiscoin и MonetaryUnit.
Исходные условия для расчёта, что лучше майнить на асике:
Корпус майнера изготовлен из алюминия, что придаёт оригинальности оборудованию. Кроме того, металл быстрее отводит и отдает лишнее тепло. Внутри установлены хэш-платы, для которых предусмотрены специальные разъёмы. Кроме того, шестью разъёмами оборудован и блок питания. Также предусмотрены контакты для мониторинга и дополнительные клавиши включения БП. КПД блока достигает 93 процентов.
На высоком уровне работает и система охлаждения, но из-за сильного шума кулеров с 12-сантиметровыми лопастями под оборудование ASIC стоит выделить отдельное помещение.
С помощью Antminer S9 можно майнить следующие криптовалюты - Биткоин Кэш, Пиркоин, Биткоин, Неймкоин и другие. Рассмотрим доходность и окупаемость Antminer S9 для этих виртуальных монет.
Новый майнер отличается большей эффективностью, если сравнивать с прошлой моделью. Внутри аппарата находится около 288 микросхем, которые помещаются в небольшом корпусе размером 35,2х13х18,75 см. Процесс настройки не занимает много времени - достаточно включить устройство, ввести реквизиты, после чего начать работу.
С помощью Bitmain Antminer L3+ можно майнить все криптовалюты, которые работают на Scrypt, а именно Лайткоин, Мегакоин, Догикоин, Верже и другие. Рассмотрим доходность каждой из них в случае применения рассматриваемого аппарата.
Исходные условия для расчета, что лучше майнить на асике:
SHA-256 алгоритм для майнинга. Техническая основа криптовалюты на данный момент вызывает интерес у многих, кто интересуется таковыми. Не все знакомы с таким понятием, как «криптография». Понять всё что происходит в так называемом Bitcoin-протоколе очень сложно. Но мы все-таки попытаемся сделать это простыми словами.
Алгоритм хеширования SHA 256
Каждый пользователь, который работает с интернетом, даже понятия не имеет, что работает с этим алгоритмом ежедневно, ежесекундно. Каждый интернет-ресурс защищается сертификатом SSL, посещение которого возможно только при работе с алгоритмом SHA-256.
Классический алгоритм SHА-256 выстраивает весь Биткоин-майнинг. Отсюда происходит и майнинг других криптографических валют (альткоинов).
SHA-256 - криптографическая хэш-функция. Основная задача: хэширование данных (произвольный набор) в определенное значение длины («отпечатка»).
Используя , задача решается при помощи специализированного процессора и видеокарты. При помощи интерфейса программы пользователи следят за преобразовательными процессами. Фактически алгоритм подбирает правильное значение хэша.
Сложность майнинга как раз заключается в том, что подобрать правильный хэш (решить определенную задачу) возможно только при помощи перебора множества задач. Придется найти не просто какой-нибудь хэш, а число, в самом начале которого находится определенное количество нулей. Шансов того, что значение будет правильным, очень и очень мало. То есть, ключевой параметр - сложность, которая задается майнинг-пулом.
Майнинг SHA 256
Не нужно быть специалистом для того, чтобы понимать всю сложность хэширования при работе протокола SHА-256. Соответственно, майнерам приходится задействовать просто невероятно мощное оборудование, которое будет способно решать вышеуказанные задачи.
Чем больше задействовано вычислительных мощностей, тем больше скорость добычи цифровых монет.
Отдельно стоит отметить, что майнинг — это функция, которой занимаются очень многие специалисты. И, естественно, программное обеспечение у них может быть куда более производительным. Расстраиваться не стоит, так как процесс хэширования иногда больше похож на лотерею.
Алгоритм SHА-256 в майнинге реализуется на каждом . А вот ASIC-оборудование для остальных алгоритмов только разрабатывается.
Алгоритм SHA-256 присутствует в процессе добычи не только биткоинов, но и других криптовалют.
Очень активно сегодня набирают популярность криптовалюты, реализованные на основе алгоритма SHA-256: Peercoin, Namecoin, Terracoin, Tekcoin, Ocoin, Zetacoin, PremineCoin и другие.
Работа алгоритма SHА-256 является довольно сложной для понимания, поэтому лучше сконцентрироваться на способах и эффективных стратегиях добычи криптовалюты, чем пытаться анализировать сам алгоритм.