Введение
Алгоритм майнинга CryptoNight — это алгоритм предназначенный для обеспечения максимальной эффективности процессора и устойчивости к ASIC. Это сделано с целью обеспечить большую децентрализацию майнинга криптовалют, а также позволить этим криптовалютам предлагать расширенные возможности конфиденциальности и анонимности.
Один из самых известных алгоритмов майнинга — CryptoNight. Этот алгоритм майнинга является частью известного консенсусного протокола CryptoNote. CryptoNight использует для своей работы схему майнинга Proof of Work (PoW) и стремится обеспечить высокую зависимость от ЦП, противодействуя ASIC, FPGA и GPU.
Его главная особенность заключается в том, что это очень быстрый алгоритм хеширования. Также он обеспечивает хорошую масштабируемость и выполняет ряд криптографических тестов, которые зависят от кэша процессоров ЦП. Но дело не только в этом. Криптографическое ядро этого алгоритма работает на основе алгоритма шифрования AES, очень безопасного алгоритма, который в некоторых версиях даже считается алгоритмом шифрования военного уровня.
Все это делает CryptoNight алгоритмом майнинга, ориентированным на безопасность, что стало его основным средством достижения успеха в сфере майнинга криптовалют. Фактически, тот факт, что криптовалюта Monero выбрала ее в качестве хэш-алгоритма для доказательства работы консенсуса своего блокчейна, повысил популярность CryptoNight и открыл для нее место в криптомире.
Происхождение алгоритма CryptoNight
Развитие CryptoNight можно проследить до 12 декабря 2012 года, когда разработчик Николас ван Саберхаген представил миру консенсусный протокол CryptoNote. Николас ван Саберхаген — вымышленное имя, а личность разработчика — полная загадка вплоть до уровня имени Сатоши Накамото. На самом деле многие специалисты считают, что Николас ван Саберхаген и Сатоши Накамото — один и тот же человек. Отсюда и родилось имя Сатоши ван Саберхаген.
Но CryptoNote — это реальность, далекая от области спекуляций. Запуск этого протокола в столь знаменательную дату, а именно 12.12.12 привлек внимание криптосообщества. Это связано с тем, что CryptoNote обладает расширенными функциями, которые обещают конфиденциальные транзакции. Помимо несвязываемых транзакций, кольцевых подписей, небольших транзакций и повышенной безопасности.
Позже, в марте 2013 года, будет представлена полная спецификация CryptoNight — алгоритма майнинга, который сделает CryptoNote реальностью. Авторы этой разработки Сейген, Макс Джеймсон, Туомо Ниеминен, Neocortex и Антонио М. Хуарес.
Проект CryptoNote и его алгоритм майнинга изначально были переданы компании Bytecoin (BCN), которая применила его к своему блокчейну. Но только после создания Monero (XMR) этот проект стал широко известен в крипто сфере.
Как работает CryptoNight
CryptoNight работает на основе ряда свойств, которые делают его очень удобным для майнинга на графическом процессоре.
Собственное шифрование AES. Процессоры с возможностью аппаратного ускорения вычислений AES могут значительно выиграть от этого факта и иметь превосходный потенциал для майнинга.
Использование безопасных хеш-функций, среди которых Keccak и Blake-256.
Набор 64-битных быстрых множителей. По этой причине чистые 64-битные архитектуры ЦП очень эффективны. Его также можно использовать на процессорах типа VLIW от 128 до 512 бит, где алгоритм может использовать преимущества параллельных пулов майнинга за счет повышения производительности.
Интенсивное использование кэша процессора. Алгоритм CryptoNight регулирует использование кэша для его максимально эффективного использования. Фактически, чем больше кэша у процессора, тем выше его производительность.
Все указанные аспекты в значительной степени ориентированы на процессор. Фактически, некоторые из этих функций гораздо более эффективны в ЦП, чем в любой другой вычислительной структуре, включая ASIC. Именно это позволяет CryptoNight быть устойчивым к ним.
Но, конечно, это всего лишь основы, а не принцип работы алгоритма, который объясняется далее
Запуск хеш-системы
Работа CryptoNight начинается с инициализации рабочего пространства. Для этого CryptoNight использует:
AES-шифрование
Хэш-функция Keccak, которая используется в качестве основного средства генерации хеша в алгоритме.
Хеш-функция SHA-3. SHA-3 — это хеш-функция, полученная из Keccak, которая используется в сочетании с BLAKE-256, Groestl-256, JH-256 и Hank-256 для усиления генерации хэш-функции криптографического рабочего пространства CryptoNight.
Создание ключа AES и шифрование хеша Keccak
Самая важная часть процесса — создание ключа AES. Это возможно во время первого раунда хеш-функций. Прежде всего, CryptoNight принимает входные данные и передает их в функцию Keccak. Для этого нужно подготовить функцию Keccak-1600 шириной 1600 бит. Для сравнения, Биткоин и его хеш-функция SHA-256 используют 256-битные или 64-символьные слова. А Keccak-1600 выдает гораздо большие хэши-1600 бит или 400 символов целиком, размером 200 байт.
Затем он берет первые 31 байт хеша Keccak-1600 и преобразует их в ключ шифрования для алгоритма AES-256, самого высокого значения в семействе AES. Для этого этот небольшой фрагмент данных шифруется за десять раундов. Остальная часть хэша шифруется с использованием AES-256 и также подвергается 10 циклам шифрования.
Остальная информация из хеша Keccak затем берется и шифруется с использованием AES-256. Этот процесс генерирует огромное количество данных, которые затем отправляются в рабочую область или блокнот CryptoNight. По завершении этого процесса рабочее пространство CryptoNight подготовлено и начинается цикл генерации хеша.
Финальная генерация хеша
Теперь данные, собранные этими действиями отправляются в ядро хэш-функций. Как уже упоминалось основной хеш - Keccak, к которому присоединяются BLAKE-256, Groestl-256, JH-256 и Hank-256.
CryptoNight берет весь набор данных, созданный функциями AES-256 и Keccak на предыдущем шаге, и передает его через остальные хеш-функции. На выходе получается окончательный хеш, который является результатом протокола доказательства работы CryptoNight. Этот хеш имеет расширение 256 бит или всего 64 символа.
Плюсы и минусы алгоритма
Плюсы
Широкие возможности настройки. Цель майнинга и сложность, можно регулировать между блоками, не создавая угрозы для безопасности сети.
Ориентация на процессор. Это делает майнинг с использованием ASIC сложным и дорогим в исполнении.
Безопасность на криптоуровне. Использование AES-256 и определенное связывание методов шифрования и хеш-функций гарантируют, что всегда будет достигнут высокий уровень безопасности.
Энергоэффективность с точки зрения вычислений.
Для обеспечиваемого уровня безопасности у CryptoNight небольшой размер результатов криптографического теста. Это позволяет максимизировать количество транзакций внутри блоков.
Учитывая способ, которым CryptoNight обрабатывает информацию для майнинга блоков, существует возможность создания изначально неотслеживаемых транзакций. Фактически, Monero смог реализовать эти транзакции благодаря CryptoNight.
Минусы
Отсутствие возможности сопротивления ASIC. Это связано с тем, что ASIC смогли адаптироваться для успешного майнинга по этому алгоритму.
CryptoNight — сложный и трудный для аудита алгоритм. По этой причине у разработчиков есть сложности с проверкой возможных ошибок в этом алгоритме.
Использование определенных инструкций ЦП, таких как AES, может привести к сторонней атаке на алгоритм. Существует возможность использования уязвимостей внутри процессора (например, в случае TSX или таких недостатков, как Spectre/Meltdown), которые могут нарушить безопасность алгоритма и, таким образом, подорвать безопасность блокчейна, использующего этот алгоритм майнинга.
Комментарии
Комментарии для сайта Cackle