Обзор криптографического алгоритма Scrypt, все самое главное – простыми словами

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

Форк Bitcoin, альткоин Litecoin, задачей которого было усовершенствовать главную криптовалюту, показал путь предотвращения коммерческой оккупации майнинга, применив альтернативный алгоритм Scrypt для добычи LTC. Соло-майнеры смогли применить свое оборудование для майнинга альткоина, а сама сеть Litecoin сохранила децентрализацию.

Что такое Scrypt?

Это криптографическая функция, созданная для формирования ключей на базе пароля. Она обладает адаптивными свойствами и способна автоматически вносить изменения в собственный алгоритм функционирования при перемене условий, чтобы сохранить оптимальность состояния. Scrypt усложняет процесс вычисления хеша методом перебора. Алгоритм начали использоваться в качестве инструмента PoW в сети Litecoin с сентября 2012 года.

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

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

Для доказательства выполнения работы (PoW) Litecoin первым начал использовал Scypt, но, учитывая большое количество математических вычислений и обращение к большим объемам памяти, Scypt также использует хеш-функцию SHA-256.

Чем майнить алгоритм Scrypt

Процесс генерации блоков сети Litecoin с использованием алгоритма Scypt основан на принципе циклического хеширования также как и для Bitcoin, использующего алгоритм SHA-2. Каждый блок формируется из административных данных (версии блока, даты и времени создания), хеша предыдущего блока, верифицированных транзакций и специальных параметров, определяющих условия создания уникального хеша. После многократного хеширования создается уникальный исходящий хеш-код блока, и после подтверждения узлами цепь блоков становится длинней на 1 блок.

Какой алгоритм майнинга наиболее выгодный

Перед началом добычи криптовалют следует определить рентабельность майнинга. Для этого следует учитывать такие факторы:

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

Несмотря на постоянные колебания курса и хешрейта, на протяжении последних лет наибольшей популярностью пользуются алгоритмы SHA-256 и Ethash, на которых работают Bitcoin и Ethereum соответственно. Для майнинга BTC пользователи используют ASIC (например, Antminer S17), а для добычи ETH лучше подходят видеокарты (например, AMD Radeon VII).

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

Рассчитать доходность можно с помощью сайта WhatToMine – это онлайн-калькулятор, который следит за доходностью всех известных алгоритмов. На сайте можно быстро рассчитать доходность GPU. Для этого перейдите в раздел «GPU», выберите видеокарту и укажите количество. Сайт автоматически рассчитает хешрейт по каждому алгоритму. У четырех Radeon VII следующие результаты:

Алгоритм Хешрейт Мощность
Ethash 320 Mh/s 840 Вт
RandomX 5600 h/s 680 Вт
NeoScrypt 8600 kh/s 920 Вт
Equihash 118 h/s 800 Вт

Еще ниже находятся данные о доходности каждой монеты в порядке убывания. Соответственно, с использованием 4 Radeon VII выгоднее всего добывать Ethereum. Эта криптовалюта приносит до $21,02

. Чистая прибыль при стоимости электричества $0,1 за 1 кВт составляет
$19,00
. В подобных условиях окупаемость фермы может варьироваться от 210 до 300 дней. Подробнее узнать об эффективности майнинга криптовалют на разном оборудовании можно в статье «Рентабельность майнинг-фермы».

Криптовалюты на алгоритме Scrypt

Алгоритм Scrypt используется для майнинга монет и обеспечения защиты таких криптовалют, как Litecoin, Dogecoin, BitConnect, Novacoin, Netcoin.

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

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

Смысл криптографических алгоритмов

Люди, которые интересуются криптовалютой, обычно заинтересованы в быстром и максимально продуктивном получении прибыли. Бывает, что они покупают довольно дорогостоящее оборудование, инвестируют в майнинг, а затем с трудом выходят на окупаемость. Почему так происходит, и на что влияет криптографический алгоритм?

Все алгоритмы, и Scrypt в том числе, тесно связаны со следующими сферами.

СфераВлияние криптографии
Оборудование для майнингаНа разных алгоритмах вычислительное оборудование показывает разную эффективность.
Под Scrypt оптимально подходят АСИКи, но они имеют узкую специализацию и будут не пригодны для майнинга монет на других алгоритмах.
Сложность майнингаСложность генерации новых блоков заложена в архитектуре блокчейна. Формула расчета сложности включает взаимосвязана с хеш-функцией.
Майнинг на Scrypt, особенно добыча мелких монет, доступен для большинства желающих, в отличие от некоторых других криптовалют, например, Bitcoin (BTC).
Защищенность блокчейна от хакерских атакЧтобы не стать жертвой хакеров, нужно майнить такие монеты, которые обладают достаточно надежным криптографическим алгоритмом. Тогда злоумышленники не смогут заполучить контроль над узлами блокчейна и похитить деньги.

Таким образом, получается, что Scrypt – это хороший выбор для тех, кто хочет начать зарабатывать на криптовалюте.

Особенности Scrypt-майнинга

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

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

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

В данный момент наилучшие результаты Scrypt-майнинга доступны при добыче Litecoin. Для начала работы необходимо изучить возможности оборудования и в случае необходимости, произвести замену ответственных за майнинг запасных частей. В большинстве случаев достаточно поменять ОЗУ и видеокарты.

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

Dive into Litecoin, или как начать майнить scrypt валюту

Предисловие

Ни для кого уже не секрет, что криптовалюта набирает силу, становясь все ближе к мировому признанию. В свое время я занимался майнингом Bitcoin на видеокартах, но вот уже больше года как я остался «не при делах» с появлением ASIC майнеров. Я всегда был против ASIC — ферм, а потому решил для себя не присоединятся к их владельцам. Пару слов о причинах — ASIC фермы дорого стоят, мало распространены и весьма специфичны, это очень сильно увеличивает порог вхождения в майнинг и в криптовалюту как таковую, а выборочное распределение этих устройств способствует падению энтропии. Кому-то эти причины могут показаться недостаточно весомыми, но для меня они стали решающими. Не так давно я понял, что один из форков Bitcoin начинает набирать силу, и он защищен от ASIC-ферм, что вызвало мой серьезный интерес. Тем не менее большинство информации в интернете устарело, и мне пришлось пройти тернистым путем чтобы заставить свою первую ферму работать, потому я решил поделится с вами опытом.

Шаг 0 — Оцениваем ситуацию и понимаем, как работает криптовалюта

Все мы, как энтузиасты криптовалюты желаем ей процветания, особенно если от ее процветания зависит наш доход. Но стоит помнить, что рынок криптовалюты пока еще не стабилен, и что делать криптовалюту единственным источником дохода не стоит из-за сопутствующих рисков. Если вашей целью являются легкие деньги — то лучше поискать их в другом месте, а если нет — добро пожаловать в сообщество! Так что же такое майнинг? Майнинг — это по сути обеспечение сети. Подключая свой компьютер к сети вы становитесь частью одной большой криптосети, вычисляющей много хешей. Каждый раз, когда вычисляется хеш, у машины, совершающей вычисление есть шанс обнаружить блок. За нахождение блока майнера награждают 50LTC (у других валют это число может отличаться). Нахождение блока зависит от удачи, тем не менее система запрограммирована на постоянное количество блоков, и среднее время, требующееся для нахождения блока можно рассчитать. Регуляция осуществляется с помощью сложности системы, которая настраивается гибко в зависимости от скорости всей системы в целом. Скорость измеряется в хешах в секунду. На момент написания статьи актуальной единицей измерения хешей в секунду были kh/s (килокеши в секунду). 1000 h/s = 1kh/s 1000 kh/s = 1mh/s 1000 mh/s = 1gh/s
Майнер должен всегда стремиться получить как можно больше kh/s при минимальном расхоже электричества на 1 килохеш.

Шаг 1 — Строим ферму

Итак, допустим вы решили заняться майнингом Litecoin (или же иной scrypt валюты). Конечно можно использовать свой основной ПК для майнинга, но так как обычно в ПК ставят всего одну видеокарту, а видеокарта не всегда ATI — я буду начинать именно с постройки фермы. К тому же на момент написания статьи майнинг с 1 видеокартой на грани, и очень скоро может перестать приносить доход. Если вас интересует настройка ПО — переходите к следующему пункту.

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

Допустим вы уже нашли модульный

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

Теперь самое главное — выбор видеокарт. При выборе стоит руководствоваться данной таблицей и этим калькулятором. Ваша цель — количество kh/s. Подробнее о нем чуть позднее. Стоит помнить, что иногда дешевле купить 2 видеокарты выдающие 700kh/s, чем одну выдающую 1000kh/s, и далеко не всегда полюбившуюся карту легко найти, так что доступность тоже является важным фактором.

Еще необходимо обязательно обзавестись рейзерами — шлейфами, служащими для вынесения видеокарт от материнской платы.

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

Осталось только настроить железо — заходим в UEFI/BIOS и выставляем следующие настройки:

  • Автоматически включаться после отключения питания.
  • Отключаем ВСЮ лишнюю периферию. Оставляем только USB, сетевую карту и IOMMU.
  • Устанавливаем загрузку с USB-HDD как основную.
  • Отключаем проверку на наличие клавиатуры и монитора.

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

Шаг 2 — Ставим софт

Так как ферма — устройство подразумевающее удаленное управление и требующее работы с видеокартами — Linux будет очень хорошим решением. В этом гайде я буду описывать настройку Ubuntu 12.04.
Для начала готовим установочную флешку, для этого скачиваем x86 или x64 версию мини-образа.

Если вы используете Linux или OSX, то записываем ее с помощью

sudo dd if=mini.iso of=/dev/sdX bs=4M где mini.iso — путь к скачанному файлу, а /dev/sdX — флешка.

Если же вы все еще используете Windows — тогда воспользуйтесь Unetbootin.

Как только все готово — втыкаем флешку в ферму (в которой уже есть другая флешка, призванная служить ей жестким диском) и следуем инструкциям на экране до появления списка пакетов, в нем выбираем Xubuntu-desktop. OpenSSH server и заканчиваем установку. После перезагрузки вы должны уже иметь возможность сразу подключиться к ферме по SSH.

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

В первую очерендь необходимо включить автологин в lightDM — в терминал вводим

sudo /usr/lib/lightdm/lightdm-set-defaults —autologin username

username заменяем на свой логин.

Теперь необходиом установить проприетарный модуль ATI Для x86_64:

sudo add-apt-repository ppa:xorg-edgers/ppa sudo apt-get update sudo apt-get install fglrx-installer

Для x86:

sudo add-apt-repository ppa:xorg-edgers/ppa sudo apt-get update sudo apt-get install fglrx Перезагружаемся и продолжаем. Теперь необходимо скачать два набора для разработки, открываем браузер и скачиваем их один, два.

Еще надо поставить кое-какие библиотеки и пару полезных вещей

sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0 dh-modaliases ia32-libs ia32-libs-multiarch i386 lib32gcc1 libc6-i386 linux-headers-3.5.0-17-generic libcurl4-openssl-dev libncurses5-dev pkg-config automake yasm screen

Для майнинга нам необходим cgminer 3.7.2, именно этой версии

! В последующих поддержка майнинга на GPU вырезана.

Скачиваем его:

wget https://ck.kolivas.org/apps/cgminer/3.7/cgminer-3.7.2.tar.bz2 && tar xf cgminer-3.7.2.tar.bz2

Теперь установим SDK:

mkdir amdapp_2-8 cd amdapp_2-8 tar -zxvf ~/Загрузки/AMD-APP-SDK-v2.8-lnx64.tgz sudo ./Install-AMD-APP.sh mkdir ADL_SDK cd ADL_SDK mv ~/Загрузки/ADL_SDK_5.0.zip . unzip ADL_SDK_5.0.zip cp include/* ../cgminer-3.7.2/ADL_SDK

И соберем cgminer:

cd cgminer-3.7.2 CFLAGS=»-O2 -Wall -march=native -I /opt/AMDAPP/include/» LDFLAGS=»-L/opt/AMDAPP/lib/x86_64″ ./configure —enable-scrypt —enable-opencl make -j2 sudo make install

Перезагружаемся еще раз и все — сложное позади, настало время для самого сложного — настройки.

Шаг 3 — Настраиваем софт и выбираем пул

Итак, теперь стоит ненадолго прервать возню с софтом и выбрать себе пул. Пул — это ваш «работодатель», вы отдаете пулу свою ферму, а он вам платит за ее использование. Пул нужен для того, чтобы иметь более-менее стабильную прибыль, так как без него искать блок (за который выдают 50 LTC) можно очень долго, и большую роль играет удача. У пула, тем не менее, как правило солидная мощность, а значит блоки он находит часто, деля доход между своими майнерами. Многие гуру майнинга придерживаются мнения, что если вы майните долго — пул не имеет значения, тем не менее это не совсем так. Пул должен как-то распределять средства, которые он получает, и не все пулы делают это одинаково. При выборе пула стоит выбирать подходящую для вас систему оплаты. На данный момент есть 2 основных вида оплаты:

  • PPS — P
    ay
    P
    er
    S
    hare
  • PPLNS — P
    ay
    P
    er
    L
    ast
    NS
    hares

PPS подразумевает, что пул платит вам за каждое вычисление. Это звучит заманчиво, так как ваш доход будет зависить только от сложности, но никак не от удачи. Тем не менее за такую стабильность приходится платить — пулы с этим методом оплаты берут большую комиссию, к тому же если пулу внезапно начнет сильно не везти есть шанс, что пул обанкротится. PPLNS сводит комиссию к минимуму, а шанс банкротства к 0, так как платит только за последние Н вычислений, которые имели место до нахождения очередного блока. Таким образом вы зависите от удачи пула и сложности одновременно.

Список пулов

Как только вы определились с пулом и заведете аккаунт — можно начинать настройку. Создаем в домашней папке .sh скрипт, например start.sh и пишем туда следующее:

#!/bin/bash export DISPLAY=:0 export GPU_USE_SYNC_OBJECTS=1 export GPU_MAX_ALLOC_PERCENT=100 ./cgminer —scrypt -o stratum+tcp://poo.l:3333 -u username.worker -p pass

Заменяем username.worker на свое имя пользователя и воркера, pass — на пароль stratum+tcp://poo.l:3333 — на адрес вашего пула

Запускаем — и ура, ферма работает!

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

— thread-concurrency — отвечает за параллелизм, то есть сколько хешей за раз попытается посчитать cgminer. Это значение надо подбирать, еще проще взять из таблицы, или задать количество шейдеров.

— shaders — альтернатива указанию thread-concurrency, надо знать, сколько шейдеров содержит ваша видеокарта и указать их, тогда параллелизм cgminer выберет сам.

— intencity (-I) — на сколько сильно будет забиваться видеопамять. Этот параметр указывать обязательно

, и не меньше 13. Максимальное значение — 20. Задание слишком большой величины может снизить скорость, так как память будет перезаписываться и приводить к ошибкам.

— g — колличество процессов на одном GPU

— auto-fan — автоматическая регуляция кулера

— gpu-memclock — частота памяти. Очень важное значение, необходимо указывать значение кратное 250. Именно эта частота самая важная при работе с алгоритмом шифрования scrypt, на котором строится Litecoin.

— gpu-engine — частота ядра — тут не так важна. На самом деле важно «волшебное соотношение» этой частоты к частоте памяти. Нахождение такой частоты может дать сильный прирост в производительности.

Помните, что два последних параметра использовать опасно! Разгоняя свои видеокарты вы всегда имеете шанс их сжечь, так что до тех пор, пока вы не уверены в том, что делаете — не используйте эти параметры.

Чтобы иметь возможность удаленно открыть майнер запускать его стоит через GNU Screen

screen -dmS miner start.sh

Как только вы захотите выйте из него не выключая майнер — нажмите Ctrl+A+D, чтобы вернуться вводим команду

screen -r miner

Теперь монитор можно отключить, как и клавиатуру.

Послесловие

Я надеюсь, что эта статья поможет всем, кто хочет начать майнить криптовалюту, но не знает как. Мне пришлось искать эту информацию достаточно долго, и я потратил около недели на то, чтобы моя ферма заработала в полную силу. Спасибо хорошему сообществу /r/litecoinminig за помощь! Удачного майнинга и с наступающим, Хабр!

Криптовалюты на алгоритме scrypt

В данный момент существует более 80 монет, в основе работы которых алгоритм scrypt. Среди них наиболее капитализированными являются следующие (топ-10 по состоянию на ноябрь 2018):

  • Litecoin;
  • BitMark;
  • Einsteinium;
  • MonaCoin;
  • PolyBit;
  • ViaCoin;
  • SaluS;
  • BlackCoin;
  • ChatCoin;
  • Gamecredits.

Увидеть все валюты алгоритма scrypt можно на странице курсов криптовалют. Для отображения результатов необходимо выбрать интересующие настройки в разделе «алгоритм».

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

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями: