Equihash: различия между версиями

Материал из testwiki
Перейти к навигации Перейти к поиску
imported>Alex NB OT
 
(нет различий)

Текущая версия от 23:41, 17 февраля 2025

Equihash — алгоритм консенсуса Proof-of-work в блокчейн-системах, особенностью которого являются повышенные требованиями к памяти устройства, на котором он выволняется. Это существенно затрудняет майнинг с использованием ASIC.

Алгоритм предложили в 2016 году специалисты Междисциплинарного центра безопасности, надёжности и доверия Университета Люксембурга. В его основе лежит атака «дней рождения» — обобщение парадокса дней рождения для нахождения совпадающих значений хеш-функций.

Алгоритм стал базовым в ряде блокчейн-систем, например, Zcash, Шаблон:Iw, Horizen, Aion, Hush и Pirate Chain.

Общие сведения

Алгоритм Equihash был предложен специалистами исследовательской группы CryptoLUX Люксембургского университета Алексом Бирюковым и Дмитрием Ховратовичем. Он был представлен на Симпозиуме по безопасности сетей и распределённых систем в 2016 году в Сан-Диего.

Алгоритм разработан таким образом, что пропускная способность памяти устройства является «узким местом» при распараллеливании вычислений, что не даёт возможности существенно увеличить скорость майнинга при использовании устройств ASIC.[1]

Позднее производителю ASIC Bitmain удалось в свои чипы интегрировать версию алгоритма Equihash-200,9 используемую в Zcash[2].

Спецификация

Алгоритм имеет три параметра, n, k и d, которые определяют требования по времени и занимаемой памяти:

  • Требуемое время пропорционально 2nk+1+d.
  • Объём необходимой памяти пропорционален 2k+nk+1.

Алгоритм часто применяется с d=0, используя альтернативный метод управления сложностью.[1]

Задача, решаемая алгоритмом Equihash, состоит в нахождении 2k различных n-битных значений i1,i2,...,i2k, таких, что H(i1)H(i2)...H(i2k)=0 и H(i1i2...i2k) имеет d ведущих нулей, где H — некоторая хеш-функция.[1]

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

Верификация работы алгоритма требует 2k вычислений хеш-функции и для проверки не предъявляет специальных требований к памяти.[1]

Компромисс сложности по времени и памяти

Шаблон:См. также Сформулированная выше задача решается в Equihash с помощью вариации алгоритма Вагнера для обобщённой задачи о дне рождения. Предлагаемый алгоритм выполняет k итераций по большому списку.[1][3] При изменении количества записей в списке на 1q вычислительная сложность алгоритма изменяется пропорционально qk2 для эффективных по памяти реализаций.

В работе Оклок и Рен ставят под сомнения заявления об устойчивости Equihash, сделав вывод, что для него на самом деле не существует границы устойчивости к компромиссам.[4]

Применение

Алгоритм используется в криптовалюте Zcash с параметрами n=200 и k=9.

В криптовалюте Шаблон:Iw используется Equihash с параметрами n=144 и k=5.

Примечания

Шаблон:Примечания

Шаблон:Криптовалюты