Дата обновления статьи:
BLAKE3 — это криптографическая хэш-функция, которая характеризуется тем,
что она намного быстрее MD5, SHA-1, SHA-2, SHA-3 и BLAKE2, плюс она
более безопасна, в отличие от MD5 и SHA-1. И защищен от увеличения
длины, в отличие от SHA-2. тАлгоритм хорошо распараллеливается на любое
количество потоков и SIMD-дорожек, поскольку внутри представляет собой
дерево Меркла и имеет безвариантивный алгоритм, что обеспечивает высокую
скорость работы как на x86-64, так и на более компактных архитектурах.
BLAKE3 базируется на оптимизированном экземпляре известной хэш-функции BLAKE2 и в режиме оригинального дерева Бао. Спецификации и обоснование дизайна доступны в документе BLAKE3. Размер выхода по умолчанию составляет 256 бит. В тесте генерации хэша для файла размером 16 КБ BLAKE3 с 256-битным ключом превосходит SHA3-256 в 17 раз, SHA-256 — в 14 раз, SHA-512 — в 9 раз, SHA-1 — в 6 раз и BLAKE2b — в 5 раз. Это значительный отрыв, который сохраняется даже при обработке больших объемов данных, например, BLAKE3 оказался в 8 раз быстрее SHA-256 при вычислении хэша для 1 ГБ случайных данных.
Производительность алгоритма
Прирост производительности был достигнут за счет уменьшения числа раундов с 10 до 7 и разделения хэшируемых блоков на чанки размером 1 КБ. По словам создателей, они нашли убедительное математическое доказательство того, что можно обойтись 7 раундами вместо 10, сохранив при этом тот же уровень надежности.
Хэш-функция предназначена для таких приложений, как проверка целостности файлов, аутентификация сообщений и генерация данных для криптографических цифровых подписей. BLAKE3 не предназначена для хеширования паролей, так как нацелена на максимально быстрое вычисление хешей (для паролей рекомендуется использовать медленный хеш и функции escrypt, bcrypt, scrypt или Argon2).
Алгоритм разработан известными криптографами, продолжает развитие алгоритма BLAKE2 и использует механизм Bao для кодирования дерева блокчейна. В отличие от BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 предлагает единый алгоритм для всех платформ, который не привязан к ширине бит и размеру хэша.
Что касается разбиения на блоки, то в BLAKE3 поток разбивается на фрагменты размером 1 КБ и каждый фрагмент хэшируется независимо. Большой хэш формируется на основе хэшей фрагментов на основе бинарного дерева Меркла.
Такое разделение позволяет решить проблему распараллеливания обработки данных при вычислении хэша; например, можно использовать 4-проводные SIMD-инструкции для одновременного вычисления 4-блочных хэшей. Традиционные хэш-функции SHA- * обрабатывают данные последовательно.
Особенности BLAKE3
- Применение в режимах PRF, MAC, KDF, XOF и в качестве обычного хэша;
- Алгоритм для всех архитектур, быстрый как на системах x86-64, так и на 32-разрядных процессорах ARM.
Какие есть отличия алгоритма BLAKE3 от BLAKE2?
- Использование структуры двоичного дерева для достижения неограниченного параллелизма при вычислении хэша.
- Сокращение числа раундов с 10 до 7.
- Три режима работы: Хеширование, Хеширование с ключом (HMAC) и Генерация ключа (KDF).
- Отсутствие дополнительных накладных расходов при хэшировании ключа за счет использования области, ранее занимаемой блоком параметров ключа.
- Встроенный механизм работы в виде расширяемой выходной функции (XOF), позволяющий
- Распараллеливание и позиционирование (поиск).
Какие монеты можно майнить на алгоритме BLAKE3?
На текущий момент доступно 3 монеты, которые доступны для майнинга:
- Iron Fish — IRON
- Alephium — ALPH
- Decred — DCR
- UNM — Blake3
Программы для майнинга Blake3
- BZMINER — Nvidia/AMD
- LOLMINER — Nvidia/AMD
- RIGEL — Nvidia
- SRBMINER-MULTI — Nvidia/AMD
- TREX — Nvidia
Каким железом майнить?
В основной массе доступны софты для майнинга на видеокартах, однако уже есть доступные вариантов асиков. Разумеется при определенной настройке, любое устройство можно заставить майнить, но предпочтительнее видеокарты.