Keccak – это криптофункция, которая в 2012 году стала победителем конкурса криптографических алгоритмов и была утверждена в качестве нового федерального стандарта обработки информации США.
Целью конкурса, проводимого Национальным бюро стандартов США, является поддержание инновационного и индустриального развития своей страны и повышение ее конкурентоспособности. Так как хеш-алгоритмы постоянно подвергаются атакам, приходится создавать новые стандарты и технологии, чтобы улучшить не только экономическую безопасность, но и общее качество жизни людей. И новый алгоритм хеширования Keccak – это одна из инициатив NIST.
Алгоритм хеширования SHA-256
Прежде чем углубиться в специфику этого алгоритма, который наиболее изучен в майнинге, мы ответим на распространенный вопрос: что означает «SHA»? Это расшифровывается «безопасный алгоритм хеширования». Это метод расчета, предназначенный для того, чтобы информация в наборе данных (или в цифровой валюте, блоке данных) не изменялась по отношению к первоначальной форме. Это безопасно, потому что он зашифрован или закодирован и доступен только владельцам.
Набор алгоритмов SHA-2 был разработан и выпущен в 2001 году как стандарт безопасности Агентством национальной безопасности США (NSA). SHA-256 является частью семейства SHA-2. Эта группа алгоритмов последовала за SHA-0 (выпущена в 1993 году) и SHA-1 (выпущена в 1995 году в качестве замены своего предшественника). Этот специфический алгоритм называется SHA-256, поскольку он генерирует дайджесты сообщений размером 256 бит. Это означает, что конкретная часть данных (или данных, которая будет технически корректной) преобразовывается и кодируется в 256-битный код.
Зашифрованные данные называются «хэш». Время обработки блока SHA-256 обычно составляет от шести до десяти минут. Является классическим алгоритмом майнинга. Процесс заключается в подборе правильного хэша, когда он подобран, блок добывается. При низкой мощности возможно майнить на процессоре (и даже в столбик), но в случае с биткоином только на специальном оборудовании, типа ASIC.
Также есть SHA-256-D (именно он используется в BTC). Этот термин часто считается синонимом SHA-256, можно сказать, что это разновидность алгоритма.
D расшифровывается как double, то есть удвоенный. Процесс запускается во второй раз, еще раз зашифровывая хэш. Несмотря на дополнительный шаг, время, необходимое для обработки блока данных SHA-256-D, совпадает с SHA-256: от шести до десяти минут.
Список популярных криптовалют SHA-256: Bitcoin, Mastercoin, Namecoin, Blakecoin, Bytecoin. Полный список монет в таблице ниже.
Список монет Кечак
Как мы уже говорили, не так много монет, использующих этот алгоритм Proof of Work, но есть некоторые известные монеты, такие как Maxcoin и SmartCash. На данный момент в активной разработке всего три монеты. Изучите и с умом выберите монету, прежде чем приступить к добыче монет Keccak..
- SmartCash – SMART
- MaxCoin – МАКС.
- CreativeCoin – CREA
- Slothcoin (SLOTH) – неактивен
- 365Coin (365) – Неактивно
- Галеон (GLN) – Неактивен
- Helix Coin (HXC) – неактивен
- CryptoMeth (METH) – неактивен
- BitcointalkCoin (РАЗГОВОР) – Неактивен
SmartCash – SMART
SmartCash – это криптовалюта, ориентированная на сотрудничество, управление сообществом и рост. & децентрализованная экономика. У этой монеты есть мастерноды, а также умные вознаграждения и мгновенная оплата – функция, которая позволяет мгновенно совершать покупки в магазине и онлайн..
Интернет сайт: https://smartcash.cc/
Исследователь: https://insight.smartcash.cc/
Характеристики SmartCash:
Максимальное количество монет: 5 000 000 000
Время блока: 55 секунд
Тип монеты: PoW / Мастерноды
Размер блока: 1 МБ
Алгоритм: Кечак (PoW)
Управление сложностями: BRNDF
Монеты в блоке: 5000 монет (с постепенным уменьшением согласно приведенному ниже уравнению)
Разделение наград: 30% (майнеры / SmartRewards / SmartNodes) и 70% (SmartHive / HiveTeams)
MaxCoin – МАКС.
MaxCoin – это старая школа (без предварительного майнинга), криптовалюта с открытым исходным кодом, использующая алгоритм хеширования SHA-3 нового поколения. Эта монета не имеет комиссий за транзакции и не имеет ICO, рекламы, пожертвований, баунти или аирдропов. Это чистая криптовалюта, основанная на сообществе и ориентированная на органический рост..
Объявление: https://bitcointalk.org/index.php?topic=438150.0
Интернет сайт: https://www.maxcoinproject.org/
Исследователь: https://explorer.maxcoinproject.net/
Технические характеристики MaxCoin:
Максимальное количество монет: 100 миллионов
Время блока: 1 минута
Тип монеты: PoW
ICO / Премайн: Нет
Алгоритм: Кечак (SHA-3)
Перенацеливание сложности: Каждый блок с использованием Kimoto Gravity Well
Вознаграждение за блок: 8 монет на блок / уменьшение вдвое каждые ~ 4 года
Операционные издержки: Ноль – без комиссии за транзакцию (близко к нулю)
CreativeCoin – CREA
Креативная монета или Креативная сеть – это децентрализованное творческое сообщество. Это блокчейн-платформа для мультимедийной регистрации и распространения контента, которая удостоверяет авторство и лицензию на любую работу или создание, делая их несмываемыми..
Объявление: https://bitcointalk.org/index.php?topic=1809920.0
Интернет сайт: https://www.creativechain.org/project/
Scrypt
Это многоуровневый алгоритм, который начинается путем запуска данных через хэш-процесс SHA-256. Затем он использует элементы алгоритма SALSA для завершения генерации хеширования. Процесс отгадывания хэша усложняется тем, что подбор вариантов усложняется: добавляется шум из случайно сгенерированных чисел. Использует стандарт формирования ключа на основе пароля. Злоумышленнику трудно подобраться к коду методом перебора.
Scrypt занимает гораздо больше памяти, чем SHA-256, но более низкая потребность в энергии и вычислительных ресурсах делают его хорошим выбором для майнеров. Одно время монеты можно было майнинь на процессорах, и к ним не существовало АСИКов из-за требований к оперативной памяти. Сегодня устройства уже созданы. В отличие от SHA-256, майнеры Shrypt могут менять размер хэша на меньшее число. Это, плюс некоторые другие факторы, делает его более быстрым алгоритмом добычи. Scrypt может полностью обработать блок данных всего за тридцать секунд, хотя есть мнение, это такая скорость сопряжена с риском для безопасности транзакций, пока не будет сгенерировано еще несколько поколений блоков.
Пример монет на Scrypt: Auroracoin, Novacoin, Dogecoin, Litecoin, Smartcoin, Worldcoin, Reddcoin. Программы:
- sgminer
- bfgminer
- cgminer
- cgminer (все для AMD)
- CudaMiner (для Nvidia)
Поскольку алгоритм не смог бороться с ASIC, был создан усовершенствованный алгоритм Scrypt-N, первоначально в Vertcoin. Он использует «Adaptive N-Factor», где N означает используемую память, которая постоянно увеличивается. Например, с 256 kB до 4 ГБ. Эта система позволяет небольшим майнинг-фермам существовать.
Программы:
- vertminer
- CudaMiner
Развернуть SHA-3
SHA-3 еще не вошел в большинство основных платформ. Некоторые платформы (например, MacOS X и IOS) по-прежнему полагаются на библиотеку libcrypto, которая поддерживает только SHA-1 и SHA-2. Один из способов развернуть SHA-3 на желаемой платформе — скомпилировать алгоритм хеширования в виде статической библиотеки. Затем установите новую библиотеку в каталог / urs / lib или / usr / share, здесь предполагается, что у вас есть права на запись в эти каталоги. Но есть другой способ развертывания SHA-3. Этот метод может работать в Mac OS X и IOS, который развертывается в виде пакета фреймворка.
Пакет фреймворка представляет собой иерархический набор файлов, которые вместе образуют динамическую библиотеку. В отличие от большинства пакетов, пакет фреймворка прозрачен; его содержимое можно просматривать по желанию, как и содержимое других обычных каталогов. Пакет фреймворка может находиться в общем каталоге (таком как ~ / Libray / Framworks), или вы можете скопировать комплект фреймворка в комплект приложения и использовать его как частный ресурс. Доступ к пакету фреймворка достигается через класс NSBunble или через пакетную службу на основе ядра.
На рисунке 4 показана структура пакета фреймворка SHA3. Вверху находятся четыре ссылки на каталоги и каталог с именем Versions. В каталоге версий есть еще одна ссылка на каталог и подкаталог A.
В листинге 1 показано, как добавить поддержку SHA-3 в класс NSString. Здесь класс SHA3String объявляет два прототипа метода (строки 8–9). Метод класса sha3AsCstring использует метод экземпляра cStringUsingEncoding: (строка 25) для извлечения байтов исходного сообщения. Он объявляет стандартный ASCII как желаемую кодировку текста. Этот метод подсчитывает количество байтов сообщения и создает хеш-переменную tHash (строки 29-30). Затем передайте количество байтов, текст сообщения и хеш-переменные функции ввода Hash () (строка 33). Функция Hash () возвращает 512-битное хеш-значение сообщения, а затем sha3AsCstring повторно преобразовывает хеш-значение в постоянную строку (строка 36). Кстати, BitSequence — это настройка Keccak для типа char.
// — File:SHA3Category.h // #import #import #import «KeccakNISTInterface.h» @interface NSString (SHA3String) — (const char *)sha3AsCstring; — (NSData *)sha3AsData; //… @end // — File: SHA3Category.m // @implementation NSString (SHA3String) // Return the SHA-3 hash as a C-string — (const char *)sha3AsCstring { const char *tTemp; const BitSequence *tData; BitSequence *tHash; NSUInteger tLen; // extract the message data tTemp = ; tData = (const BitSequence *)tTemp; // prepare the hash variable tLen = strlen(tTemp); tHash = malloc(sizeof(BitSequence) * 32); // hash the message data Hash(512, tData, tLen, tHash); // return the hash result tTemp = (const char *)tHash; return (tTemp); } // Return the SHA-3 hash as an NSData object — (NSData *)sha3AsData { const char *tHash; NSUInteger tLen; NSData *tData; // generate the SHA-3 hash tHash = ; // prepare the hash object tLen = strlen(tHash); tData = ; // return the hash object return (tData); } //… @end
Метод класса sha3AsData возвращает хеш-значение сообщения в форме объекта NSData. Он использует sha3AsCstring для обработки байтов сообщения (строка 48). Затем используйте фабричный метод dataWithBytes: length: для создания этого объекта (строки 52-53).
В листинге 2 показано, что SHA-3 — это класс в одноэлементном режиме. Одноэлементный режим предоставляет общедоступную глобальную точку доступа для доступа к алгоритму SHA-3. Он управляет своим собственным управлением памятью, поэтому явной обработки не требуется.
// — File:SHA3Single.h // #import #import «KeccakNISTInterface.h» // Define the enum constants typedef enum _SHA3_SIZE {SIZE_224 = 224, SIZE_256 = 256, SIZE_384 = 384, SIZE_512 = 512} SHA3_SIZE; // Declare the class interface @interface SHA3Single : NSObject { @private NSUInteger pSize; } @property (readwrite) NSUInteger hashSize; + (id)defaultGenerator; + (id)generatorForSize:(NSUInteger)aSize; — (void)hashMessage:(const char *)aMesg into:(BitSequence *)aHash; — (void)hashObject:(id)aMesg into:(BitSequence *)aHash; @end // — File: SHA3Single.m // // Declare the static global static SHA3Single *gHash; // Define the singleton class @implementation SHA3Single @synthesize hashSize = pSize; // Create the default SHA3 generator + (id)defaultGenerator { @synchronized(self) { // check the static global if (gHash == nil) { // create the instance gHash = [ init]; // set the output hash size gHash.hashSize = SIZE_512; } } // return the singleton instance return (gHash); } // Create a «custom» SHA3 generator + (id)generatorForSize:(NSUInteger)aSize { @synchronized(self) { // check the static global if (gHash == nil) { // create the instance gHash = [ init]; // set the output hash size gHash.hashSize = aSize; } } // return the singleton instance return (gHash); } — (void)hashMessage:(const char *)aMesg into:(BitSequence *)aHash { NSUInteger tLen; // generate the SHA-3 hash tLen = strlen(aMesg); Hash(self.hashSize, (const BitSequence *)aMesg, tLen , aHash); } — (void)hashObject:(id)aMesg into:(BitSequence *)aHash { const char *tData; NSUInteger tLen; // parametre check if ((aMesg != nil) && (aHash != nil)) { // identify the message object if ([aMesg isKindOfClass:]) // — object:NSString tData = ; else if ([aMesg isKindOfClass:]) { // — object:NSData tLen = ; tData = malloc(tLen * sizeof(char)); ; } else { // handle other Cocoa objects // — RESERVED } // hash the raw message bytes tLen = strlen(tData); Hash(self.hashSize, (const BitSequence *)tData, tLen , aHash); } } @end
Одноэлементный класс SHA3 сначала объявляет частное свойство pSize (строка 17). Этот атрибут устанавливает желаемый размер хеш-бита. Этот класс также объявляет переменную атрибута hashSize и четыре прототипа методов, два из которых являются фабричными методами (строки 19–27).
Затем класс объявляет статическую глобальную переменную gHash для ссылки на экземпляр singleton (строка 33). Затем определите переменную hashSize, два заводских метода и два метода экземпляра. Заводской метод defaultGenerator обнаруживает глобальную переменную gHash (строка 45) и генерирует экземпляр синглтона SHA3 (строка 48). Он также устанавливает значение хэша по умолчанию для атрибута pSize равным 512 битам (строка 51).
Заводской метод generatorForSize: принимает размер хэша в качестве входных данных. В то же время он проверяет глобальную переменную gHash и создает экземпляр SHA3Single. И он обновляет атрибут pSize до указанного размера (строка 71).
Метод экземпляра hashMessage: into: принимает текст сообщения (aMesg) и хеш-переменную (aHash) в качестве входных данных. Он подсчитывает количество байтов сообщения и передает количество байтов текста сообщения и хеш-переменных функции входа Hash () (строки 85-88). Затем функция Hash () сохраняет хеш-значение сообщения в переменной aHash.
Метод экземпляра hashObject: into: принимает общий объект Какао (aMesg) в качестве одного из своих входов. Он использует метод экземпляра isKingdOfClass: (строки 101-102, 105-106) для идентификации этого объекта. Как только тип этого объекта определен, hashObject: into: использует правильный код для извлечения исходного текста сообщения (строки 104, 112). В это время он также вычисляет количество байтов сообщения и использует Hash () для генерации хеш-значения сообщения (строки 121–124). Затем сохраните полученное хеш-значение в aHash.
Чтобы использовать одноэлементную модель SHA-3, необходимо создать экземпляр с использованием соответствующего фабричного метода. Следующий фрагмент кода создает 512-битный хэш сообщения SHA-3.
SHA3Single *tSHA3; tSHA3 = [SHA3Single defaultGenerator];
Затем используйте соответствующий метод экземпляра для обработки сообщения. Например, следующий фрагмент кода использует метод hashMessage: into: для обработки объектов NSString.
NSString *tMesg; const char *tHash; //… tMesg = ; [tSHA3 hashMessage:tMesg into:(BitSequence *)tHash];
Проект фреймворка Xcode SHA3Может использоваться как справочник.
Scrypt-jane
Тоже использует N-фактор для увеличения памяти. Считается, что такие монеты выгоднее майнить на CPU. В 2014 году появился как альтернатива для майнеров Litecoin (на scrypt) когда майнинг на видеокартах стал убыточным, а ASIC начали доминировать. Базовый алгоритм обеспечивал децентрализацию таких монет. Используются такие параметры:
- Nfactor увеличивает коэффициент сложности и памяти,
- rfactor увеличивает количество блоков,
- pfactor: увеличивает сложность процессора.
Scrypt-n использует SHA256 как функцию хэширования с прогрессивной N. Scrypt-Jane тоже с прогрессивной N, но еще использует комбинацию хэш-функций (BLAKE256/512, Skein512 и Keccak256/512) или может параметрически изменять используемую им функцию.
Монеты: YaCoin (YAC), Ultracoin (UTC), Velocitycoin (VEL).
Программы:
- yacminer
- CudaMiner
Алгоритм X11/X13 и больше
Алгоритм X11 создан в далеком 2014 году Эваном Даффилдом, который является главным разработчиком криптовалюты тогда еще Darkcoin (сейчас это монета Dash). Первоначально он хотел разработать алгоритм, который сделал бы криптовалюты устойчивыми к ASIC, которые, как вы поняли, считаются убийцами децентрализации. С этой целью он объединил 11 разных хеш-функций в одном алгоритме: Blake, Bmw, Groestl, Jh, Keccak, Skein, Luffa, Cubehash, Shavite, Simd, Echo. Примечательно, что сам Эван Даффилд никогда не исключал возможности разработки ASIC-устройств для X11 (и не ошибся). В своих интервью он утверждал, что такое оборудование будет создано в любом случае, но до этого производители должны будут много работать. Сегодня специализированные машины для майнинга монет X11 уже существуют, но добыча по этому алгоритму все еще остается прибыльной на GPU. Основными плюсами алгоритма X11 являются:
- его безопасность, так как 11 функций повышают защищенность в 11 раз,
- меньший порог входа, поскольку по своей идеологии требует меньше вложений в оборудование и электричество.
Программы:
- sph-sgminer X11mod,
- ccMiner.
Популярные монеты с этим алгоритмом — это DASH, Monacocoin, SuperCoin,
Сегодня был разработан ряд еще более продвинутых алгоритмов, построенных на большем количестве хеш-функций. Они называются X12, X13, X14, X15, X16, X17, в соответствии с количеством используемых в них функций.
Также есть алгоритм C11, который соединяет blake, bmw, groestl, jh, keccak, skein, luffa, cubehash, shavite, simd и echo. Он очень похож на X11. Единственное отличие состоит в том, что эти 11 алгоритмов связаны в другом порядке. Можно модифицировать алгоритм Antminer D3 ASIC на C11. Подходит для NVIDIA, это хороший стабильный алгоритм, в котором мощность не сильно колеблется. Кроме того, большинство монет, использующих c11, являются новыми и имеют низкую сложность, поэтому, если у вас есть небольшая ферма, вы можете даже попробовать соло-майнинг.
Глубоко в Кечак
На момент написания NIST не выпустил официальный документ SHA-3 (FIPS 180-5). Поэтому следующая информация получена из справочных документов Keccak и от третьих лиц.
Алгоритм Keccak состоит из трех частей (рисунок 1).
Функция Hash () используется как функция входа. Для этого требуются 4 входных параметра: размер хеш-бита (n), текст сообщения (M) и его размер в битах (N), а также хеш-переменная (H). Эта хеш-переменная должна иметь следующую функцию malloc () Создайте:
HashReturn E; char *H; n = 224; H = (char *)malloc(sizeof(char) * n / 8); //… E = Hash(n, M, N, H);
Функция Init () подготавливает внутреннее состояние (S) для указанного размера хэша. Функция Update () начинает сжимать или поглощать фазу. Здесь текст сообщения объединяется в соответствии с внутренним состоянием, а затем заменяется.Функция Final () начинает извлекать или сжимать фазу. Это хеш-значение, извлеченное и собранное из внутреннего состояния. Собранный хэш из первых n битов затем используется как хеш сообщения. Все четыре функции возвращают результат ошибки. Возврат 0 означает, что функция завершается без ошибок.
На рисунке 2 показана структура данных внутреннего состояния. Структура C с именем spongeState содержит 8 полей, два из которых являются фиксированными массивами (отмечены красным). В поле массива состояний хранятся байты реального состояния, а в поле массива dataQueue хранятся байты сообщения, которые будут объединены и преобразованы.
Поле емкости — это хеш-емкость (обозначается c). Его значение установлено в два раза больше размера хэша (2 * n). Поле скорости — это длина битов сообщения, обрабатываемых в каждом цикле. Он установлен на значение 1600-c. Поле bitInQueue — это длина сообщения в битах, зарезервированная в поле массива dataQueue. Поле fixedOutputlength — это желаемый размер хэша (обозначается n). Область сжатия — это знак режима. Если установлено значение 0, keccak находится в режиме сжатия. Если установлено значение 1, keccak находится в режиме декомпрессии. Кроме того, filedbitsAvailableForSqueezing сохраняет длину статусного бита, объединенную в окончательный хэш сообщения.
Keccak использует 24 цикла преобразования, чтобы уменьшить текст сообщения до хэш-значения. В каждом цикле непрерывно вызываются пять модулей, как показано на рисунке 3.
Модуль θ преобразует внутреннее состояние в массив 5×5, каждый элемент которого составляет 64 бита. Он вычисляет одну и ту же часть каждого столбца, а затем использует оператор исключающего ИЛИ (XOR) для их объединения. Затем он выполняет операцию XOR полученного результата четности с каждым битом состояния следующим образом:
S
[j][k] ^= parity(S[0…4][j-1][k]) ^ parity(S[0…4][j+1][k-1]) where i = 0…4; j = 0…4; k = 0…63
Модуль ρ циклически перемещает каждый 64-битный элемент в соответствии с порядком номера треугольника. Но круговое движение исключает элемент S [0] [0]. Модуль φ преобразует 64-битные элементы. Преобразование следует шаблону фиксированного назначения, показанному ниже:
S[j][2*i + 3*j] = S
[j]
Модуль χ добавляет к циклу преобразования нелинейные характеристики. Он использует только три побитовых оператора: AND, NOT и XOR для объединения элементов строки. Затем запишите результат в массив статусов следующим образом:
S
[j][k] ^= ~S[k] & S[k]
Модуль ι нарушает любую симметрию, созданную другими модулями. Он делает это путем XOR элемента в массиве с константой цикла. Этот модуль имеет 24 константы цикла для выбора. Эти константы определены внутри Keccak. Однако из-заИсходный код Keccak на CОн слишком велик, чтобы его здесь можно было перечислить.
CryptoNight
CryptoNight — это алгоритм PoW, который первоначально использовался в CryptoNote (о нем ниже) и Bytecoin. Он направлен, опять же, на борьбу с привилегиями от крупных ферм и АСИКов, чтобы все пользователи сети могли поддерживать работоспособность с обычными устройствами. То есть не создавать непреодолимый разрыв между теми, кто включает майнер на компьютере, и теми, кто заказывает для этого специальные машины. Классически для решения этой проблемы используются алгоритмы, чувствительные к памяти. Выделяется большой блок данных в оперативной памяти, который меняется непредсказуемо. Алгоритм также предотвращает внутренний параллелизм, т. е. для выполнения N одновременных потоков понадобится в N раз больше памяти одновременно. Протокол CryptoNote, в отличие от Scrypt, делает так, что каждый новый блок (в 64 байта) зависит от всех блоков в блокчейне, что были до него. Для этого требуется около 2 МБ оперативной памяти, что является минимальным размером кэша современных процессоров. И этот объем ОЗУ исключает использование ASIC. Нужно различать CryptoNote и CryptoNight. Последний — это одна из реализаций общего протокола CryptoNote. Протокол CryptoNote обладает высоким уровнем анонимности. Некоторая часть сообщества считает, что деньги обязательно должны быть анонимными, чтобы гарантировать человеку свободу. Детали переводов между клиентом и продавцом не должны распространяться на третьи лица. Для соблюдения должной конфиденциальности, необходимы такие свойства: нельзя отследить транзакцию, нельзя проследить взаимосвязь между платежами. CryptoNote предлагает схему, которая гарантирует анонимность для отправителя. В этом протоколе используется система кольцевой подписи — кто-то из группы (нельзя определить кто) подписал транзакцию, а значит, она легитимна. Алгоритм CryptoNight отличается тем, что он до сих пор относительно хорошо может майнить на процессоре. Конечно, это будут смешные деньги, но это хотя бы возможно.
Программы:
- Cast XMR,
- Claymore’s CryptoNote,
- SRBMiner CryptoNight,
- XMR-Stak.
Хороший сайт для подбора монет с этим алгоритмом — https://minecryptonight.net/. CryptoNight используется в монетах XMR, ETN, KRB и других. Для майнинга с этим алгоритмом лучше AMD, особенно новые модели.
У него есть различные варианты:
- CryptoNight-Lite менее ресурсоемкий, подходит для мобильных устройств.
- CryptoNight-Heavy — это прямо противоположное.
- CryptoNight v1 для борьбы с асиками и т.д.
В целом, монеты с этим алгоритмом выбирают для майнинга без развитого оборудования, а также часто по идеологическим причинам — в поддержку анонимных криптовалют.
Equihash
Equihash — это алгоритм доказательства работы, разработанный Алексом Бирюковым и Дмитрием Ховратовичем. Был представлен в 2016 году. Он основан на «Парадоксе дней рождения» из информатики и криптографии и расширенном алгоритме Вагнера.
Парадокс в том, что в группе из >23 человек вероятность,что у двух случайных человек совпадает месяц и число рождения, выше 50%. 100% вероятность достигнет, если группа будет состоять из 367 человек (больше, чем дней в году). Но в случае с 23 людьми такой высокий шанс не кажется вероятным, потому что обыватели упускают из виду, что пар для сравнения получается 253.
Equihash имеет очень эффективную проверку блока. Это в будущем будет важно для легких клиентов на ограниченных устройствах или для реализации внутри разных блокчейнов. Он ориентирован на память, то есть, возможности определяются количеством ОЗУ. Опять же работает против АСИКов.Но Bitmain выпустии устройство для майнинга монет с этим алгоритмом, что вызвало новые форки. В целом Equihash — это безопасный, демократичный и конфиденциальный вариант. Для него подходят карты NVIDIA, они работают с ним более стабильно и производительно. Монеты из наиболее популярных: Bitcoin Gold, ZCash, Komodo, ZenCash, ZClassic.
Ограничения SHA-1 и SHA-2
Нельзя игнорировать тот факт, что SHA-1 и SHA-2 используют один и тот же механизм обработки. Меркл-Дамгард сказал, что успешные атаки на SHA-1 повлияют на безопасность SHA-2 при обработке текста сообщения.
Возьмем пример с SHA-1: теоретически для взлома методом грубой силы требуется как минимум 2 в 80-й степени (один цикл цикла хеширования), чтобы столкнуться и взломать. Однако в феврале 2005 года Ван Сяоюнь (транслитерация) и его коллеги использовали атаки по дифференциальному пути, чтобы завершить цикл коллизий цикла SHA-1 всего с 2 до 69 степени. В августе 2008 года этот метод использовал Мартин. Кокран подтвердил.
К 2012 г. Марк Стивенс использовал серию облачных серверов для выполнения атаки по дифференциальному пути SHA-1. Коллизия атаки была завершена в 58,5-й степени 2, и он оценил, что после 61-го цикла включения питания из 2 она может быть сформирована. Полная библиотека паролей хеш-коллизии.
Что касается SHA-2, атаки на хэши SHA-2 с ограниченным числом раундов — единственная успешная категория. Атаки против 46 раундов SHA-2 (512-битный вариант) и 41 раунда SHA-2 (512-битный вариант) являются наиболее эффективными. Для взлома 256-битного варианта требуется 2253,6 цикла, а для взлома 512-битного варианта — 2511,5 цикла.
Фактически, даже если не было объявлено, что полная реинкарнация SHA-2 была успешно взломана, нет никаких сомнений в том, что механизм атаки разрабатывается в частном порядке. Это одна из причин, почему NIST спонсировал конкурс SHA-3, который также привел к разработке и недавнему внедрению Keccak.
Ethash Dagger-Hashimoto
Etash — это доказательство работы для монет на основе Ethereum, который первоначально тоже боролся с централизацией. Интенсивно использует память устройства. Последняя версия Dagger-Hashimoto изменила многое из оригинальных особенностей. Алгоритм работает по следующему принципу:
- существует сид, который может быть вычислен для каждого блока через сканирование заголовков блока до определенной точки,
- из сида можно вычислить псевдослучайный кеш на 16 МБ. Легкие клиенты хранят кеш.
- Из него можно создать набор данных объемом 1 ГБ, с тем свойством, что каждый элемент в наборе зависит от небольшого количества элементов из кеша. Полные клиенты и майнеры хранят набор данных, который линейно растет со временем.
- Майнинг представляет собой захват случайных фрагментов набора данных и их объединение. Большой набор данных обновляется один раз каждые 30000 блоков.
Хорошо работает с картами AMD, такие как RX 470, 480, 570 и 580 и дает хорошую прибыль. Монеты: Ethereum, Ethereum Classic, Musicoin, Ellaism.
Как майнить ELLA
Lyra2Z
В начале 2022 года Zcoin реализовал алгоритм Lyra2Z для борьбы с ботнетами и облачными майнерами. Zcoin временно использует этот алгоритм, пока не будет завершена разработка MTP (Merkle Tree Proof), который больше сосредоточится на процессоре. Lyra2z использует Blake256 и Lyra2. Информация о нем особо не распространена, однако он изначально разработан и для видеокарт, и для процессора.
Он использует очень мало электричества, и является “холодным алгоритмом”, с которым не нужно беспокоиться о перегреве GPU во время добычи. Lyra2z не так давно был добавлен в NiceHash и все еще устойчив к ASIC. Но существуют FPGA для Lyra2Z, которые производят ~ 20 МГц/с и равны 6 x 1080 TI. Для майнинга алгоритма Lyra2z бесполезно разгонять память. Также он потребляет менее 60% мощности. На процессорах работает тише и холоднее.
Майнеры Lyra2z:
- Zcoin official CPU miner,
- JayDDee / cpuminer-opt,
- SGMiner,
- Tourgasm ccminer,
- Nemos Miner.
Популярные монеты: Zcoin, GINcoin.
Также есть Lyra2h. Этот алгоритм предназначен для монеты HPP. Энергопотребление соответствует большинству других основных тяжелых алгоритмов. Доступна для CCminer и SGminer.
Lyra2Rev2 — алгоритм VTCи MONA, лучше всего подходит для GPU NVIDIA. Майнится на MKXminer, CCminer и SGminer.
Алгоритм Keccak (SHA-3)
Keccak (кечак) также известен как SHA-3 (Secure Hash Algorithm 3). Это алгоритм безопасного хэширования последнего поколения, выпущенный NIST (Национальными институтами стандартов и технологий) в 2012 году. Об объединяет семейство криптографических функций губки и разработан как альтернатива SHA-256. По сравнению с прошлым работает намного быстрее и безопаснее. Про него можно найти много информации в сети. Например, .
Keccak не устойчив к ASIC на 100%. На самом деле это ASIC дружественный, но, насколько мы знаем, в настоящее время для этого алгоритма не существует ASIC. Хотя есть подозрения, что Bitmain майнить SmartCash, пока не предлагая майнер для публики. Maxcoin первым использовал Keccak (SHA-3) в качестве алгоритма Proof of Work, а затем несколько других монет начали его внедрение. Не совместим с процессором, лучше всего подходят графические карты NVIDIA. Ниже приведен список программного обеспечения для майнинга монет Keccak.
- CCMiner Alexis — очень быстрый майнер для NVIDIA,
- Claymore miner and SGMiner для АМД,
- Если вы используете платформы для майнинга Hive OS или Simple Mining OS (SMOS), тогда стандартный ccminer поддерживает алгоритм Keccak PoW.
Монеты: MAX, SLOT, METH, NXS, SMART.
Несмотря на преимущества, Keccak не так популярен среди майнеров. Основная причина в том, что с этим алгоритмом существует только небольшое количество монет.
Особенности алгоритма
Название алгори правильно произносить, как «Кет-чак». Он имеет еще одно название – SHA-3. Это работа четырех разработчиков:
- Гвидо Бертони;
- Джоан Даемен;
- Майкла Петерса;
- Джайлса Ван Асса.
Keccak использует инновационный «механизм губки» для хеширования текста сообщения. Он имеет среднюю скорость в 12,5 циклов на байт на процессоре Intel Core 2, а его простой дизайн хорошо подходит для аппаратной реализации.
Keccak может противостоять известным атакам с минимальной сложностью 2n, где n – размер хеша. Он имеет большой запас прочности. На сегодняшний день сторонний криптоанализ не показал серьезных недостатков в Кекчаке. Тем не менее, создатели Keccak участвуют в конкурсе Crunchy Crypto Contest, где задаются проблемы, определяются правила и отчеты о статусе столкновения и предварительного изображения Keccak Crunchy.
Существует три части алгоритма Кечкака.
Функция Hash (n, M, N, H) служит функцией ввода. Он принимает четыре входных аргумента:
- размер хеша (n) в битах;
- текст сообщения (M);
- размер сообщения (N) в битах;
- хеш-переменную (H).
Алгоритм стандарта SHA-3 имеет структурную конструкцию губки, где все вводные данные сначала как бы впитываются и суммируются по узлу 2 с инвариантами состояния, затем внутри криптографической губки создаются многосерийные перестановки и на выходе «выжимается» зашифрованный результат.
Чтобы зашифровать строку, ее следует разбить на множество фрагментов определенного размера и на каждом раунде подмешать все полученные части не к полноценному 1600-битному состоянию, а только к верхнему размеру (на картинке – это промежуток «r»). И так происходит на каждом раунде хеширования. Благодаря тому, что используется не целое состояние, а только определенная часть, нельзя получить информацию о связи данных на входе и выходе.
HMQ1725/обновленный Quark
Это также редкий алгоритм майнинга, который работает с CPU и GPU. Алгоритм HMQ1725 использует Quark, алгоритм монет PIVX и ALQO. Когда Quark стал доступным для ASIC, его майнинг стал неэффективным на картах.
Модифицированная версия этой хэш-функции известна как HMQ1725. Он означает «Highly Modified Quark1725», где цифры 1725 обозначают, что используется 17 алгоритмов, которые хэшируются подряд 25 раз. Он не устойчив к ASIC, но в настоящее время нет ASIC или FPGA для HMQ1725 в широкой продаже. Можно майнить на процессоре, но нужно осторожно разгонять. Также оптимизирован для видеокарт серии GeForce 10 и не столь эффективен на AMD. Программы:
- CPU Miner: JayDDee / cpuminer-opt, CryptoCoderz / cpuminer-hmq1725,
- NVIDIA Miner: tpruvot / ccminer
- AMD Miner: CryptoCoderz / sgminer_HMQ1725
Есть и другие алгоритмы, их перечисление в таблице ниже.