Алгоритмы майнинга криптовалют

Алан-э-Дейл       27.02.2023 г.

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

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

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

Сфера Влияние криптографии
Оборудование для майнинга На разных алгоритмах вычислительное оборудование показывает разную эффективность.

Под Scrypt оптимально подходят АСИКи, но они имеют узкую специализацию и будут не пригодны для майнинга монет на других алгоритмах.

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

Майнинг на Scrypt, особенно добыча мелких монет, доступен для большинства желающих, в отличие от некоторых других криптовалют, например, Bitcoin (BTC).

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

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

Возникновение и мировое признание Scrypt

Слово Scrypt правильно читать как «эс-крипт», а не «скрипт», хотя в русскоязычном сообществе чаще используют второй вариант. Алгоритм был создан 9 мая 2009 года Колином Персивалем (Colin Percival). Персиваль изначально разрабатывал Scrypt для Tarsnap, сервиса резервного копирования операционных систем. Tarsnap помогает создавать бэкапы для UNIX-подобных ОС:

  • OS X,
  • BSD,
  • Linux,
  • Cygwin,
  • Minix,
  • Solaris и т.д.

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

Окно загрузки Tarsnap.

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

17 октября 2012 года Scrypt был опубликован как проект в IETF (Internet Engineering Task Force). IETF – это международное сообщество специалистов, занимающихся архитектурой интернета. Оно существует с 1986-го года и объединяет разработчиков, ученых (математиков, криптографов), провайдеров и сетевых операторов.

В 2016 г. Инженерный совет Интернета внес алгоритм Scrypt в RFC (Request for Comments). Документ можно посмотреть здесь tools.ietf.org/html/rfc7914.

RFC это тип документов, в дословном переводе «Заявка на комментарии», который принят в Обществе Интернета (англ. ISOC, Internet Society). Эта организация занимается развитием и популяризацией Интернета в мировом масштабе, в нее входят 180 стран.

Внесение какой-либо технологии в RFC говорит о ее потенциальной пользе не только для отдельной компании или проекта, но и для всего Интернета в целом.

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

Scrypt  для майнинга – это упрощенная версия изначального криптографического алгоритма. В криптовалютах он обычно сочетается с механизмом консенсуса Proof of Work (PoW), либо с гибридным консенсусом (PoW+PoS).

Технология

Scrypt относится к криптографическим адаптивным функциям формирования ключа на основе пароля (PBKDF, password-based key derivation function, PBKDF). Система работает таким образом:

  1. Есть некое секретное значение, например, пароль, seed-фраза или приватный ключ.
  2. Из него с помощью псевдослучайной функции генерируется один или несколько секретных ключей.
  3. Секретные ключи применяются для создания криптографической подписи, подтверждающей действительное намерение отправителя передать платеж.

Подпись может служить и для других целей, например, для создания смарт-контрактов.

Формула Scrypt.

Сам алгоритм записывается такой формулой.

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

Формула MFcrypt.

MFcrypt определяется по такой формуле. Здесь использованы следующие переменные.

Имя переменной Описание значения
PRF Псевдослучайная функция HMACSHA256.
hLen Длина выхода функции HMACSHA256 (в байтах).
MF Mixing Function – это последовательная функция SMix на базе Salsa20/8, которая требует память со случайным доступом.
MFLen Это длина блока, которую перемешивает Mixing Function (в байтах). MFLen считается по формуле 128*r.

Входными значениями для MFcrypt и Scrypt служат такие переменные.

Имя переменной Описание значения
P Пароль (байтовая строка)
S Соль (байтовая строка)
N Количество итераций для MF.
p Степень параллельности, любое целое число, которое меньше чем (232 -1)* hLen/MFLen.
r Размер блока
dkLen Длина выходного ключа в байтах, должна быть не меньше чем (232 −1)*hLen/MFLen.
DK Выходной ключ.

По этим переменным можно посчитать потребление оперативной памяти по формуле 128*r*N (байт). При этом на чтение приходится 100% от этого объема, а на запись – 63%.

На скриншоте – алгоритм работы функции MFcrypt.

Например, в блокчейне криптовалюты Litecoin (LTC) используются такие параметры.

Имя переменной Значение
N 16384
r 1
p 1
P 80
S 80
DK 256 бит

При генерации блока LTC потребляется примерно 128 Кб оперативной памяти.

Алгоритм Scrypt имеет такие особенности:

  1. Требует до 4 Гб оперативной памяти. В RAM хранится набор псевдослучайных последовательностей бит.
  2. Устойчив к брутфорсу (атаке методом полного перебора).
  3. На GPU Scrypt решается примерно в 10 раз быстрее, чем на CPU.

Изначально Scrypt создавался с расчетом на то, что с ним не смогут справляться АСИКи, но реальность внесла свои коррективы, и теперь такие микросхемы захватывают рынок.

Алгоритм Scrypt-Jane

Данный алгоритм поддерживает не меньше 3-х разных схем поточного шифрования. В первую очередь это Salsa 20 / 8 – простая функция, главная задача которой заключается в приеме 192-битной строчки и преобразовании ее в Salsa 20 (х) на 64 байт. В свою очередь Salsa-20 состоит из 2-х элементов: потокового шифра и алгоритма сжатия Rumba-20. Это значит, что битовая строка может достигать максимальной длины 192 байта, после чего будет сжата до 64 байт.


Scypt-Jane поддерживает не менее трех различных систем поточного шифрования.

Scrypt-Jane поддерживает такие хэш-функции, как описанный выше SHA-256, его более продвинутая версия SHA-512, а также Blake-256/512, Kessak-256/512, Skein-512. В данном алгоритме предусмотрен свой способ масштабирования сложности хэширования и используется т.н. N-фактор – число, определяющее объем оперативной памяти, требующейся для вычисления. Значение N увеличивается систематически через заданные промежутки времени и соответственно с этим снижается эффективность майнинга.

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

CryptoNight


Майнинг на CryptoNightCryptoNight

— это алгоритм для анонимных криптовалют, в основе которого лежат такие технологии как кольцевые подписи и одноразовые адреса. Он стал, прежде всего, известен благодаря криптовалюте Monero (XMR). Генерация блока занимает около 60 секунд.

Особенности

Применение CryptoNight позволяет создать конфиденциальную, защищенную и взаимозаменяемую цифровую валюту. Эти свойства достигаются благодаря применению протокола CryptoNote, который был создан в 2012 году блокчейн-разработчиком (или группой разработчиков) под псевдонимом Николас ван Саберхаген. До сих пор неизвестно, кто скрывается за этим именем.

Высокая степень анонимности алгоритма CryptoNight достигается благодаря использованию двух технологий:

  • Кольцевые подписи (шифруют отправителя);
  • Одноразовые адреса (шифруют получателя).

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


Обозреватель блокчейна

Еще одна очень важная особенность данного алгоритма состоит в том, что для майнинга наиболее эффективными является использование CPU в паре с GPU, хотя добыча только на центральном процессоре тоже дает положительные результаты. И, напротив, применение устройств ASIC является экономически невыгодным.

Секрет в том, что CryptoNight требовательный к оперативной памяти (для правильной работы нужно минимум 2 Гб), а не к скорости проведения математических вычислений, в чем сильны ASIC-майнеры.

Процесс поиска правильного nonce для генерации блока состоит в том, что CryptoNight создает рандомные блоки, которые хранит в памяти вычислительного устройства, а не отправляет непрерывные частые обращения к майнеру с целью проведения математических операций, как это происходит в случае использования алгоритма SHA-256 (используемого для Bitcoin).

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

Для эффективного майнинга криптовалют, работающих на основе CryptoNight, стоит использовать центральные процессоры Intel Core поколений i5 и i7.

Также хорошие результаты показывает применение оборудования бренда Radeon HD (новые модели). Кроме того, для майнинга криптовалют на основе CryptoNight можно использовать ASIC-майнеры.

На данный момент для этого подходят такие модели: Antminer X3, Baikal Giant-N, PinIdea RR-200, DragonMint X1/X2.

Однако стоит отметить, что Monero каждый год вносит изменения в протокол, которые помогают защитить добычу монеты от использования ASIC. Но другие монеты, работающие на CryptoNight, например, Bytecoin, Aeon, без проблем добываются при помощи ASIC.

Более подробно узнать о принципе работы анонимных монет вы сможете, посмотрев видео ниже:

Анонимные криптовалюты

Как заработать

Для того чтобы начать зарабатывать на майнинге в большинстве случаев необходимо пройти регистрацию в пуле. В некоторых сервисах регистрироваться необязательно. Затем нужно настроить личный кабинет (оплатить пул) и все, игра началась! Давайте рассмотрим подробнее один из сервисов BitClub Network для того, чтобы разобраться в принципе работы сервисов.

Клуб BitClub Network нашёл лучшее место для добычи bitcoin mining pools – Исландию. Погода в этой стране почти всегда благоприятная и поэтому цены на электричество невысоки. Установки для майнинга работают в энерго— и ресурсосберегающих режимах.

В BitClub Network можно заработать не только на майнинге, но и на привлечении новых людей в проект (партнерка).

Прибыль вы получаете каждый день, однако, никто не гарантирует один и тот же процент день за днём. Поэтому построить точный прогноз относительного того, как быстро окупятся ваши вложения, достаточно трудно. А вот исторически это 1 – 3 года. Более того, стоимость bitcoin меняется каждую секунду, поэтому прежде, чем вступать необходимо осознать, что ваша прибыль от майнинга может быть как и большого, так и среднего размера.

Несколько плюсов работы с проектом Bitclub network

  • Развитие проекта в России началось только в 2020 году. Однако, компания была зарегистрирована и благополучно работала за рубежом ещё с 2014. Если вы проанализируете статистику запросов, то увидите, что интерес к компании растёт. А это значит она будет приносить всё больший и больший доход своим участникам.
  • Вклад в формирование клуба привносят ТОП-менеджеры и маркетологи, которые уже имели дело с развитием кампаний такого рода.
  • Сайт BitClubNetwork, отзывы о котором вы можете найти в Интернет, посещает более 100 тыс. человек в день по всему миру. Поэтому ошибочно полагать, что компания захочет вас обмануть. Ей доверяют крупные суммы для получения пассивного дохода из всех уголков нашей планеты.
  • Фактически пул — это покупка оборудования для майнинга. А если решили выйти из пула, то Вам его вышлют транспортной компанией. И сможете заниматься добычей сами, не смотря на её сложность.

Проект предлагает реферальную программу, с помощью которой можно повысить свой доход от клуба Битклаб нетворк. Маркетинг проекта заслуживает внимания и на профессиональном языке называется бинарным и линейным (2 в 1). Так, за каждые 500 долларов, которые вложили люди, входящие в вашу структуру, вам начисляется 3 кредита. После того как в каждой ветке (всего их 2) накопится по 15 кредитов вы получаете 200 долларов в качестве вознаграждения.

Ссылка на сайт. Без этого не зарегистрироваться, так как клуб закрытого типа.

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

Параметр настройки интенсивности (intensity XX)

Скрипт майнинг, как и добыча биткоинов зависит от показателя интенсивности. Главное значения основного параметра меняются от 0 до 20, в рипере используется специальный mtrlt. Не стоит выставлять сильно большой показатель интенсивности, это негативно скажется на скорости процесса майнинга, потому что завышенное значение будет требовать большого объема памяти. Повышенная интенсивность перезаписывает определенные участки видеопамяти, все это требует ресурсов памяти, что отрицательно скажется на самом майнинге. Из-за этого также может появиться большое количество ошибок и неверных расчетов.

Если значение интенсивности не выставить самостоятельно, то CGMiner будет сам выставлять этот параметр. Значение будет выставляться таким образом, чтобы компьютер работал стабильно. Минимальное значение параметра интенсивности, которое можно выставить – это 8. В автоматическом режиме CGMiner будет стараться не опускать это значение ниже.

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

Типы данных алгоритма Yescrypt[править]

Yescrypt работает с массивами 32-разрядных целых чисел без знака. Yescrypt работает с группами слов одновременно, поэтому полезно определить терминологию для размеров этих групп. «Ячейка» будет ссылаться на массив из 16 слов. «Блок» будет ссылаться на массив ячеек 2*R, где R-параметр yescrypt, как было определено выше.

Например, если B является блоком, то B будет ссылаться на первую ячейку в блоке, а B будет ссылаться на вторую ячейку в блоке. B будет ссылаться на первое слово в первую ячейку B и B будет ссылаться на второе слово в первую ячейку B. Yescrypt использует структуру данных, называемую Sbox. Sbox – это массив слов SWORDS с тремя указателями (эквивалентно индексам) в нем, называемый S0, S1 и S2, и целое число w. При инициализации, S2 указывает на начало точки S, S1 указывают на треть пути в S (индекс SWORDS/3), и точка S0 показывает на две-трети (индекс S2 * SWORDS/3). Всякий раз, когда блок или ячейку необходимо интерпретировать как массив байт, слова должны быть закодированы в прямом порядке байт.

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

Настройка cgminer для майнинга

в силу актуальности — только для 7970

Операционная система.

Пробовал на Windows 8 x64 и Windows7 x64. По ощущениям — все таки на Windows7 на 5% пошустрее.

В целом — без разницы.

Первый вариант настройки.

это если у вас чистая, новая, без лишних драйверов операционная система.

1. Ставим Catalyst 13.1. Название файла: 13-1_vista_win7_win8_64_dd_ccc_whql (все версии есть на сайте https://amd.com или ищем на торрент — трекерах).

2. При установки драйвера устанавливаем все (то есть отмечаем все пункты).

3. После установки драйвера — перезагрузка.

4. Скачиваем cgminer-2.11.3-win32 (можно и любую другую версию, но не выше cgminer-3.7.2. мне приглянулась cgminer-3.1.0-windows)

5. Создаем start.bat файл, в который прописываем:

Батник удалит .BIN файлы (если они есть) и установит значения setx GPU_MAX_ALLOC_PERCENT и GPU_USE_SYNC_OBJECTS что дат прирост производительности.

С указанными значениями довольно стабильно выдает 550-570 khsh при температуре GPU 68-70 градусов (карта Radeon HD 7970 Gigabyte pci-e 3072mb gv-r797to-3gd).

Если менять значения —gpu-memclock 1300…1800 —gpu-engine 900…1250 можно добиться более высоких показателей. Но при этом довольно ощутимо перегревается видеокарта (70-90 градусов).

При значении —gpu-memclock 1670 —gpu-engine 1115 у меня выдает около 640 khsh.

Говорят, что оптимальное значение отношения частоты GPU на GPU-memclock должно быть около 0.57.

Интенсивность -I 13 , при меньших и больших значениях резко падает производительность.

Значение —gpu-threads 1 (или —g 1). Рекомендуют ставить значение 2, но у меня со значением 2 работало гораздо хуже чем при значении 1.

Источник

Утилита шифрования Scrypt

Scryptscrypt

  • пароль, который используется функцией scrypt для выработки ключа;
  • режим: шифрование или расшифрование;
  • имя входного файла.
  • -t время в секундах, требуемое для выработки ключа;
  • -m доля объема оперативной памяти, используемая для выработки ключа;
  • -M количество байт оперативной памяти, используемой для выработки ключа;
  • имя выходного файла.

scrypt enc infile -t 0.1 -M 20971520Scrypt

  1. Scrypt Сбор и преобразование параметров. Программа подбирает параметры процессорного времени и объема оперативной памяти, требуемые для выработки ключа и преобразует их в параметры, воспринимаемые функцией scrypt.
  2. Scrypt Выработка ключа. Функция scrypt вырабатывает по пользовательскому паролю и параметрам N, r, p, рассчитанным на предыдущем шаге, 64-байтный ключ. Младшие 32 байта ключа dk1 используются для вычисления кода аутентификации для параметров N, r, p, соли и зашифрованных данных. Таким образом, в процессе расшифрования можно проверить правильность введенного пароля и целостность зашифрованных данных. Старшие 32 байта ключа dk2 используются для шифрования входного файла алгоритмом AES в режиме CTR.
  3. Вычисление кода аутентификации для параметров scrypt. На этом шаге вычисляется код аутентификации (проверки подлинности) для параметров N, r, p и соли, используемый для выработки ключа.
  4. OpenSSL шифрование 32-байтными блоками AES в режиме CTR. Шифрование входного сообщения с dk2, используя 32-байтный шифр AES в режиме CTR.
  5. Вычисление кода аутентификации для зашифрованных данных. Наконец, код аутентификации вычисляется для шифрования данных, используя dk1 для обеспечения целостности. Выходной файл содержит зашифрованные данные, параметры N, r, p, соль, использованные при шифровании и коды аутентификации, которые обеспечивают целостность зашифрованных данных и параметров.

Схема шифрования утилитой Scrypt

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

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

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

Вместо этого мы сосредоточим внимание на наиболее популярных и наилучших алгоритмах для майнинга

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

  1. SHA256 – один из самых старых на сегодняшний день алгоритмов, который применяется на всем известном Биткоин и ряде его клонов. Из минусов данного алгоритма можно назвать то, что в скором времени владельцы специализированных ASIC-систем могут полностью монополизировать майнинг, основанный на данном алгоритме, и полностью вытеснить с рынка домашних «фермеров».
  2. Scrypt – на этом алгоритме основана криптовалюта Litecoin и несколько более мелких систем. Хороший алгоритм майнинга, который в своё время был отличной альтернативой SHA256. Но так сложилось, что сейчас ASIC-майнеры добрались и до этого алгоритма тоже.
  3. DaggerHashimoto – новый алгоритм майнинга, что применяется для шифрования криптовалюты Эфириум. Из особенностей можно выделить, что данный алгоритм очень любит много видеопамяти на видеокарте и предпочитает карты компании AMD.
  4. X11 – работает на криптомонете DASH. В связи со своей молодостью доступен для современных видеокарт. Из плохих новостей – вначале следующего года уже ожидаются первые ASIC-системы и под этот алгоритм.
  5. Decred – создан для одноимённой криптовалюты. В майнинге обычно применяется параллельно с алгоритмом DaggerHashimoto.
  6. CryptoNight – очень интересная игра слов, которую точно оценят любители комиксов. Применяется данный алгоритм на криптовалюте Monero. Из особенностей можно выделить то, что он очень неплохо подходит для вычислений на центральном процессоре компьютера в отличие от других алгоритмов, которые предпочитают видеокарты.
  7. Equihash – очень популярный алгоритм у тех, кто майнит на фермах из видеокарт. Применяется на монете Zcash. Раньше сильно уступал Эфириуму, но после того как сложность майнинга эфира возросла, набирает всё большую известность.
Гость форума
От: admin

Эта тема закрыта для публикации ответов.