Ergo и механизм консенсуса Autolykos: Часть I

This page is machine-translated.
Ergo Platform

30 мая 2022 г.

Следующее является углубленным техническим разбором механизма консенсуса Ergo, Autolykos. Поскольку это обширная и детализированная тема, мы будем публиковать ее по частям в течение следующих двух недель. В Части I автор начинает разбирать псевдокод майнинга блоков и проводит нас через создание "списка R."

Часть I

Autolykos, механизм консенсуса Ergo, является одним из немногих асимметричных, трудоемких, доказательств работы, которые все еще устойчивы к ASIC - тем самым обеспечивая, что блокчейн остается максимально децентрализованным. Autolykos основан на статье Equihash[1] и задаче о дне рождения. Вкратце, майнеру ставится задача найти k (=32) из N элементов, так что хэш суммы элементов меньше целевого значения. Следующий псевдокод объясняет процесс майнинга, и этот анализ будет подробно разбирать каждую строку, поскольку в Интернете очень мало ресурсов, которые объясняют Autolykos в полном объеме.

Псевдокод майнинга блоков Autolykos
Screenshot 2022-06-01 at 23.41.49.png

Перед обсуждением процедуры майнинга блоков алгоритм сначала требует очень большой циклической группы G простого порядка q с фиксированным генератором g и единичным элементом e. Эта простая группа используется для возврата целых чисел в Z/qZ во время хеширующей функции на основе Blake2b256.

Пример циклической группы с генератором z, единичным элементом 1, порядком 6[2]
unnamed (1).png

Мы не будем подробно останавливаться на циклической группе, так как она охватывает лишь небольшой сегмент схемы PoW. Теперь давайте разберем майнинг блоков Autolykos строка за строкой.

Строка 1 – Входные данные h и m

PoW начинается с двух входных данных: высоты блока h и хэша заголовка предстоящего блока m. Хэш заголовка блока - это хэш компонентов заголовка блока, таких как хэш заголовка предыдущего блока, корень Меркла, nonce и т.д.

Строка 2 – Рассчитать список R

Во-первых, важно заметить обозначение H() в строке 2. Это обозначение вызывает хеширующую функцию Алгоритм 3. Алгоритм 3 - это хеш-функция на основе Blake2b256, и она используется на протяжении всего Autolykos. Алгоритм 3 утверждает, что если хэш Blake входных данных ниже 2256 (= 1664 = 0xFFFFFFFFFFFF86633A9E8F1256D61ED5325EBF2A4B4366BA0000000000000000), то возвращается hash.mod(q). Если нет, Алгоритм 3 повторяется, пока не достигнет числового хэша в допустимом диапазоне. Для справки, обратите внимание, что q - это простой порядок группы G, выходы хэша Blake2b256 составляют 256 бит, 64 цифры в длину, и Алгоритм 3 всегда будет возвращать числовой хэш в Z/qZ.

Хеш-функция на основе Blake2b256
Screenshot 2022-06-02 at 03.17.18.png

В строке 2 акцент делается на создании списка R. Список R содержит r значения, которые являются 31-байтовыми числовыми хэшами, созданными из целых чисел в [0, N). r значения генерируются с помощью takeright(31,H(j||h||M)). Переменные следующие:

  • j, целое число в [0, N)
  • h, высота блока
  • M, 8 КБ постоянных данных - дополнение для замедления вычисления хэша

Раздел takeRight(31,H(…)) означает, что данное H(…), 32-байтовый выход Blake2b256, возвращает 31 байт справа (т.е. в малом порядке (в то время как другие алгоритмы хеширования являются битовым порядком)). Другими словами, самый значимый байт, байт, находящийся дальше всего слева, отбрасывается. В результате каждое r значение является 31 наименее значимым байтом, полученным из 32-байтового H(j||h||M)) выхода. Например, если j = 1, r1 = takeRight(31,H(1||h||M)). Список R состоит из N элементов и может быть сгенерирован для каждого блока, увеличивая j на 1 N-1 раз. Поскольку H(…) возвращает hash.mod(q), мы можем утверждать, что список R состоит из r0, 1, 2, 3 … N-1 и список R ⊂ Z/qZ. Как указано в белой книге Autolykos v2[3], “N элементы получены из высоты блока и констант, в отличие от Autolykos v1, так что майнеры могут легко пересчитывать кандидатов на блоки (только индексы зависят от них).” Другими словами, j всегда находится в [0,N), N определяется h, M всегда постоянен, и h меняется с каждым блоком, единственная переменная, которую майнеру нужно вычислить для списка R, это h.

Список R хранится в ОЗУ. В Autolykos N = 226 (67,108,864 целых числа) используется в реализации для каждого блока до 614400. Таким образом, требование к памяти для блоков до блока 614400 составляет (226 * 31 байт =) 2.08 ГБ. N впервые увеличился на блоке 614400. После блока 614400, каждые 51200 блоков N увеличивается на 5%. Другими словами, требование к памяти майнера Ergo увеличивается на 5% каждые ~71 день. На блоке 4198400 значение N становится постоянным и равно 2,143,944,600[4]. Обратите внимание, что последние 2 значения, указанные в таблице, должны быть 2,143,944,600, а не 2,147,387,550. После блока 4198400, требование к хранилищу списка R будет (31 байт * 2,143,944,600) = 66.46 ГБ.

N элементы на основе высоты блока
unnamed (3).png
N элементы, Ethash против Autolykos

Autolykos похож на Ethash в том смысле, что высота блока определяет N элементы, которые должны храниться в ОЗУ. С Autolykos высота блока определяет N 31-байтовых числовых хэшей, которые должны храниться. С Ethash высота блока определяет N 128B DAG страниц, которые должны храниться. Вы можете задаться вопросом, если блок Ergo происходит каждые 2 минуты, как майнеры Ergo могут так быстро генерировать набор данных более 2 ГБ? Майнеры Ethereum только регенерируют DAG каждые 100 часов, потому что это занимает так много времени... Для майнера Ergo бремя вычисления списка R составляет N экземпляров Алгоритма 3; помните, каждое r значение вычисляется как takeRight(31,H(j||h||M)). Однако GPU может делать это очень быстро, GPU обычно имеют 32-широкие или 64-широкие многопроцессоры, что означает, что 32 или 64 экземпляра Алгоритма 3 могут выполняться одновременно в зависимости от GPU. Например, 32-широкий GPU, такой как RTX570, может заполнить список R всего за несколько секунд.

Для Части II, мы продолжим отсюда и продолжим объяснение Autolykos v2. Следите за обновлениями на социальных медиа-каналах Ergo о Части II этой серии.

[1] https://www.researchgate.net/publication/316904748_Equihash_Asymmetric_Proof-of-Work_Based_on_the_Generalized_Birthday_Problem
[2] https://en.wikipedia.org/wiki/Cyclic_group#/media/File:Cyclic_group.svg
[3] https://www.docdroid.net/mcoitvK/ergopow-pdf
[4] https://www.ergoforum.org/t/autolykos-v-2-details/480
[5] Кредит Wolf9466#9466 на Discord

Share post

Ergo Infrastructure DAO: Децентрализация основного каркаса экосистемы Ergo

Ergo Infrastructure DAO: Децентрализация основного каркаса экосистемы Ergo

Миссия Ergo всегда была основана на децентрализации, не только на уровне консенсуса, но и на всем стеке.

Ergo Platform

13 августа 2025 г.

Mew Finance: Игровой DeFi инструмент для экосистемы Ergo

Mew Finance: Игровой DeFi инструмент для экосистемы Ergo

Mew Finance — это децентрализованный набор приложений на блокчейне Ergo.

Ergo Platform

12 августа 2025 г.

Lithos: Децентрализация майнинга с помощью ончейн пулов

Lithos: Децентрализация майнинга с помощью ончейн пулов

Lithos — это новый протокол, разработанный для изменения работы майнинг-пулов, перемещая их в ончейн, предоставляя майнерам полный.

Ergo Platform

24 июля 2025 г.

Sigma 6.0: Более умный и гибкий Ergo

Sigma 6.0: Более умный и гибкий Ergo

Sigma 6.0 — это значительное предложенное обновление для блокчейна Ergo.

Ergo Platform

23 июля 2025 г.

Формирование будущего Rosen: Общественный призыв к пяти ключевым предложениям казначейства

Формирование будущего Rosen: Общественный призыв к пяти ключевым предложениям казначейства

Соучредитель Rosen, Armeanio, представил пять новых предложений в казначейство Rosen.

Ergo Platform

9 июля 2025 г.

Расширенный UTXO Ergo и восход искусственного экономического интеллекта

Расширенный UTXO Ergo и восход искусственного экономического интеллекта

Практическое видение автономных экономических агентов Автономные экономические агенты на блокчейне Ergo выполняют полезную работу.

Ergo Platform

12 мая 2025 г.

ErgoHACK X: Искусственный Интеллект на Блокчейне Ergo

ErgoHACK X: Искусственный Интеллект на Блокчейне Ergo

Празднование Десятилетия Децентрализованных Инноваций Присоединяйтесь к 10-летнему юбилею ErgoHACK и будьте на переднем крае револ.

Ergo Platform

10 апреля 2025 г.