Проверка общего предложения эфириума

Аннотация. В этой статье мы попытаемся рассчитать общий объем предложения эфириума, а затем проверим эту цифру путем суммирования остатков на каждом счете Ethereum. Нам удалось это сделать, но для выполнения расчетов нашему узлу потребовалось около 63 часов. Базовая проверка предложения эфира дала успешный результат, в целом соответствующий известным формулам эмиссии, что подтверждает величину предложения эфира.

Обзор

Последние годы в криптовалютном сообществе активно обсуждают объем предложения эфириума. Чаще всего звучат следующие вопросы: известен ли текущий объем эфира в обращении с достаточной точностью? Известен ли будущий объем предложения ЕТН? Могут ли пользователи самостоятельно проверить объем предложения эфира? Обсуждение этих вопросов вновь активизировалось после выпуска обновления EIP-1559, включающего механизм «сжигания» токенов. По мнению некоторых членов сообщества Ethereum, благодаря ему эфир стал «сверхустойчивыми деньгами» из-за снижения скорости чистой эмиссии — напоминаем, биткоин называют «устойчивыми деньгами».

Рассчитать и проверить общий объем предложения биткоина достаточно просто, и это можно сделать с высокой степенью точности. Для этого достаточно рассчитать вознаграждение за майнинг и выполнить простую команду (gettxoutsetinfo), чтобы проверить объем предложения (это занимает около минуты). Мы даже создали сервис, который автоматически выполняет эту проверку каждый блок и рассылает предупреждения в случае неожиданного изменения объема предложения монет. В система эфириума этот процесс намного сложнее и занимает больше времени, но мы постараемся выполнить эквивалентные процедуры и обсудить связанные с ними проблемы.

Расчет объема предложения эфириума

Первый шаг проверки объема эфира в обращении — расчет прогнозируемого уровня предложения. Это общее количество монет эфириума, когда-либо созданных с использованием правил чистой эмиссии. Узлы в системе Ethereum должны были правильно реализовать правила эмиссии и обеспечивать их соблюдение в каждом блоке, чтобы общее предложение эфира не могло превысить прогнозируемый уровень. Насколько мы можем судить, в системе Ethereum существует пять основных источников чистой эмиссии:

  • Премайнинг (расчет должен быть достаточно простым, поскольку это не более чем константа)
  • Вознаграждение за добычу стандартных блоков с доказательством выполнения работы (расчеты очень похожи на расчеты в системе биткоина)
  • Вознаграждение за добычу uncle-блоков с доказательством выполнения работы (расчеты сложнее, чем можно было бы ожидать)
  • «Сжигание» токенов после внедрения EIP-1559
  • Вознаграждения и штрафы PoS в системе Eth2

В таблице ниже мы попытались рассчитать объем предложения эфириума с учетом всех перечисленных источников эмиссии на уровне блока 13 773 036, который был добыт 9 декабря 2021 года в 20:05 (UTC). Мы не учитывали эмиссию, связанную с вознаграждением за стейкинг.

Объем предложения ETH на уровне блока 13 773 036

     

Первоначальное предложение токенов

  60,000,000

Эмиссия другого происхождения

  12,009,990

Общий объем премайнинга

  72,009,990
     

Вознаграждение за майнинг

Вознаграждение

Сумма
Блоки 0 – 4,369,999 5 ETH 21,849,995
Блоки 4,370,000 – 7,279,999 3 ETH 8,729,997
Блоки 7,280,000 – 13,773,036 2 ETH 12,986,072

Общий объем вознаграждения за добычу стандартных блоков

  43,566,064

Объем вознаграждения за добычу uncle-блоков (Etherscan)

Uncle-блоки: 1,208,900 2,968,400

Объем вознаграждения для издателей uncle-блоков (приблизительная оценка)

  119,134

Объем вознаграждения за добычу uncle-блоков

  3,087,534

Общий объем вознаграждения за майнинг

  46,653,598
     

«Сжигание» токенов после внедрения EIP 1559 (Etherscan)

  (1,152,941)

ОБЩИЙ ОБЪЕМ ПРЕДЛОЖЕНИЯ

  117,510,647

Источник: BitMEX Research, Etherscan

Примечание. Величина «сжигания» токенов после внедрения обновления EIP-1559 и вознаграждения за добычу uncle-блоков рассчитывались на основе данных Etherscan. Величина вознаграждения издателям uncle-блоков основана на упрощенных ориентировочных  расчетах BitMEX Research. Указанный выше объем предложения не включает вознаграждения за стейкинг в системе Eth2.

Uncle-блоки

Первые трудности у нас возникли при расчете вознаграждения за добычу uncle-блоков. Мы ведем этот блог уже более четырех лет, но этой темы еще не касались. Иногда из родительского блока создается более одного дочернего блока с доказательством выполнения работы, но только один из них проверяется в основной цепочке. Второй блок, содержащий заголовок, также добавляется в блокчейн. Этот блок и называется uncle-блоком (или блоком-«дядей»). В период запуска эфириума биткоин часто критиковали за то, что процесс майнинга ВТС — это «все или ничего»: майнеры либо находили выигрышный блок и получали большое вознаграждение, либо не находили и не получали ничего. Эта разница считалась недостатком, поэтому разработчики Ethereum придумали uncle-блоки, чтобы вознаграждение распределялось более «справедливо». Если вы нашли uncle-блок, вы также получаете вознаграждение. Эта сложность исчезнет вместе  с PoW-майнингом, потому что в PoS-системе Ethereum нет uncle-блоков. 

На наш взгляд, с uncle-блоками есть проблема. Узлы Ethereum проверяют uncle-блоки не полностью (возможно, потому что это было бы слишком долго и проблематично), а только их заголовки. Поэтому uncle-блоки могут содержать взаимоисключающие транзакции; к тому же, система uncle-блоков не способствует консенсусу и по большей части лишена всякого смысла. 

С uncle-блоками связаны два вознаграждения:

  • Вознаграждение для успешного майнера (издателя), который включил один или несколько uncle в свой блок. Это вознаграждение за добычу стандартного блока, умноженное на количество uncle-блоков в блоке, разделенное на 32. Таким образом, если последний блок содержит один uncle-блок, майнер заработает 0,0625 ETH. В одном открытом блоке может быть не более 2 uncle-блоков.
  • Майнер, добывший uncle-блок, также получает вознаграждение, величина которого определяется по следующей формуле:

где block height — уровень блока, в который включен uncle-блок. Это означает, что размер вознаграждения за uncle-блок зависит от расстояния между ним и блоком, в котором он опубликован. Кроме того, насколько мы помним, в протоколе есть правило, согласно которому это расстояние не может превышать шесть.

Хотя описанные выше правила не слишком сложны, провести простейшие расчеты для оценки общей эмиссии монет эфира, связанных с uncle-блоками, не представляется возможным. Для того чтобы вычислить эту величину, необходимо проверить всю историю uncle-блоков. Мы не стали этого делать, а просто взяли цифру из Etherscan по состоянию на 9 декабря 2021 года. Что касается вознаграждения за uncle-блоки, которое причитается издателям, мы провели базовые расчеты для его оценки и получили приблизительную цифру 119 000 ETH. Если бы мы выполняли расчеты по правилам, то, скорее всего, получили бы другую цифру.

«Сжигание» токенов после внедрения EIP-1559

Количество токенов, «сожженных» после внедрения обновления EIP-1559, также невозможно точно подсчитать, так как оно зависит от условий сети. Поэтому для выполнения этого расчета необходимо просмотреть все транзакции. Опять же, вместо того чтобы пытаться рассчитать самостоятельно, мы взяли цифру Etherscan по состоянию на 9 декабря 2021 года, а именно около 1,15 млн монет Ethereum.

Вознаграждение за стейкинг в системе Eth 2.0

Расчитать чистую эмиссию монет в системе Eth 2.0, связанную со стейкингом, очень сложно, так как на уровень эмиссии могут влиять несколько показателей. В материале, опубликованном в сентябре 2021 года, мы, как нам кажется, рассмотрели все виды эмиссии и штрафов, действующие на сегодняшний день. Конечно, в расчете участвует много переменных, которые зависят от условий сети. Но главный принцип остается неизменным: инфляция примерно пропорциональна квадратному корню из количества монет, участвующих в стейкинге. В целях этой статьи мы исключили из анализа чистую эмиссию, связанную со стейкингом. Насколько нам известно, наш узел в любом случае не смог бы проверить вознаграждение за стейкинг в Eth2.

Проверка объема предложения

Описанные выше методики служат для расчета прогнозируемого объема предложения. Они не позволяют проверить соблюдение указанных ожидаемых правил. Для этого необходимо просмотреть сводку по каждому счету Ethereum и просуммировать все остатки на счетах, чтобы получить общую сумму. Если это число меньше или равно величине прогнозируемого объема предложения, мы можем быть уверены в том, что механизм эмиссии в системе Ethereum работает правильно и честно.

Согласно этому  твиту, эту проверку можно выполнить в Geth следующим образом:

Для этого мы выполнили следующую команду на уровне нулевого блока:

geth dump --iterative --nocode --nostorage --incompletes 0| jq ".balance" | tr -d \" | paste -sd+ | bc

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

Таким образом, общий объем предложения эфириума на нулевом уровне составил около 72 млн ETH, а точнее: 72 009 990 499 480 000 000 000 000 000 ETH. Эта цифра в точности совпадает с прогнозами сообщества в отношении премайнинга, т. е. это положительный результат.

Далее мы использовали эту методику для проверки текущего объема предложения эфира. Следует отметить, что эту методологию нельзя использовать для проверки объема предложения Ethereum на любом конкретном уровне блока с помощью «нормального узла», поскольку, как мы объясняли в нашей недавней статье о размере блока эфира, нормальный узел Ethereum обрезает старые версии состояния системы Ethereum, а именно это состояние необходимо для того, чтобы узнать баланс каждого счета. Чтобы проверить общий баланс в любой момент времени в прошлом, необходимо сохранить эти старые состояния, и узел сгенерирует терабайты данных.

Поэтому мы выполнили следующую команду на уровне блока 13 770 036, который был добыт 9 декабря 2021 года и состояние которого наш узел не обрезал.

geth dump --iterative --nocode --nostorage --incompletes 13773036| jq ".balance" | tr -d \" | paste -sd+ | bc

Этот расчет занял невероятные 63 часа и 5 минут — колоссальное время для нашей шестиядерной машины с 16 ГБ оперативной памяти. Понятно, что это время не очень хорошо выглядит в сравнении с одной минутой — временем, которое требуется для выполнения аналогичной задачи узлу биткоин. Задача выполнялась в Geth v1.10.14. Это последняя версия Ethereum, выпущенная 23 декабря 2021 года. Следует также отметить, что объем предложения включает эфир, отправленный в контракт стейкинга Eth2, но не включает вознаграждение за стейкинг в Eth2.

Note: We are not sure about the incomplete nature of the calculation due to the reported “missing preimages”

Проверка дала следующий результат: 117 517 111 849 631 382 298 107 434 ETH или 117,5 миллионов ETH. 

Общий объем предложения эфириума

«Проверка» дала нам довольно приличный результат, очень близкий к 117,5 млн ETH, которые мы получили в результате расчетов в таблице выше. Как видно из сводной таблицы результатов ниже, разница составила всего 6 464 ETH. К сожалению, это разница в неправильном направлении, так как проверенный объем предложения больше прогнозируемого. Однако эту разницу легко объяснить ошибками или приближениями в нашей методике расчета прогнозируемого значения. Сторонние поставщики данных, такие как Etherscan, Coinmetrics и Messari, проводят аналогичные расчеты прогнозируемого объема предложения, которые ежедневно обновляют. Скорее всего, у них более точные цифры, чем у нас, и их результаты также ближе к результату нашей проверки. Messari и Coinmetrics получили разницу в правильном направлении.

Данные о совокупном предложении эфириума по состоянию на 9 декабря 2021 г. 

Etherscan (опубликованные данные)**117,874,279
Вознаграждение за стейкинг в системе Eth2 (оценка BitMEX Research)(358,000)
Etherscan (без учета вознаграждения за стейкинг в системе Eth2)117,516,279
Coinmetrics**117,518,100
Messari (зафиксированный объем)**117,518,130
Messari объем в обращении)*118,660,010
  
Прогнозируемый объем по оценке BitMEX (на уровне 13 773 036) 117,510,647
«Проверенный» объем по оценке BitMEX Research (на уровне 13 773 036) 117,517,111
Разница 6,464

Примечания. *Мы не уверены, к чему относится метрика «Messari (объем в обращении)». **Данные сторонних поставщиков приведены по состоянию на 9 декабря 2021 года; существует неясность в отношении времени суток, т.к. как в этот день могли быть выпущены около 6 000 ETH, поэтому цифры в пределах около 6 000 следует считать хорошим результатом.

Источники: BitMEX Research, Etherscan, Coinmetrics, Messari 

Предложение эфириума с экономической точки зрения

Бытует мнение, что эфириум более устойчив, чем биткоин, благодаря более низкому прогнозируемому уровню процентной инфляции. Мы с этим не согласны. По нашему мнению, при оценке устойчивости или «здоровья» денежной системы низкий уровень годовой инфляции или даже дефляции не имеет значения — по крайней мере, в контексте биткоина. Акции компании, которая регулярно проводит обратный выкуп акций за счет устойчивой прибыли, так что количество акций в обращении со временем уменьшается, также нельзя считать устойчивыми деньгами. Да, обратный выкуп вполне может положительно влиять на цену акций компании — точно так же, как низкий прогнозируемый уровень инфляции эфириума может положительно влиять на его цену. Но мы не думаем, что это имеет отношение к концепции устойчивых денег — по крайней мере, в том смысле, в каком мы ее понимаем.

Приведенная ниже диаграмма поможет лучше понять, что представляют собой «устойчивые деньги» в контексте криптовалюты: более высокие уровни пирамиды отражают более тонкое и конструктивное понимание устойчивости денег, по крайней мере, с нашей точки зрения. Скорее всего, после внедрения EIP-1559 эфириум находится на втором уровне приведенной ниже пирамиды понимания, но нижние уровни отражают базовое или слабое представление о том, каким должны быть устойчивые деньги. Вполне вероятно, что эфир показал бы неплохие результаты на четырех нижних уровнях пирамиды. Что касается известного будущего предложения, эфир может получить не очень высокие оценки из-за различий в некоторых формулах расчета эмиссии, хотя эти различия могут быть гарантией программной стабильности и безопасности. В любом случае, на наш взгляд, только верхний уровень пирамиды является определяющим и абсолютно критичным. Соответствие эфира этому уровню доказано недостаточно.

Характеристики биткоина как устойчивых денег: пирамида понимания

Заключение

В целом, эта тема не считается особенно важной в сообществе Ethereum или среди разработчиков эфириума. Похоже, что тема объема предложения эфириума возникает только в дискуссиях с так называемыми биткоин-максималистами, которые критикуют эфир за недостатки в этой области. У разработчиков эфириума были другие приоритеты, поэтому определение общей суммы предложения — сложная и крайне неэффективная задача; на выполнение проверки у нашего узла ушло более 63 часов. Вероятно, можно предположить, что если бы этот процесс был оптимизирован и по умолчанию включен в программное обеспечение, то суммирование данных происходило бы гораздо быстрее.

Несмотря на то, что расчеты заняли длительное время, наша проверка предложения эфириума дала результат, соответствующий известным формулам эмиссии, что дает уверенность в объеме предложения эфира. По нашему мнению, чем бы вы ни считали Ethereum — сверхустойчивыми деньгами, DeFi-платформой, открытой акционерной компаний или чем-то средним —возможность эффективной проверки предложения была бы неплохой функцией, и разработчики могли бы уделять больше внимания этой области. Но мы не считаем, что неточность расчетов или значительное время, необходимое для проверки предложения эфира, является критическим фактором при оценке эффективности Ethereum с экономической точки зрения.