Аукционы первой и второй цены и улучшенные рынки комиссий за транзакции by vbuterin


В таких блокчейнах, как Биткойн и Эфириум, комиссия за транзакции является одним из способов, с помощью которого майнеры (или, в более общем смысле, предлагающие блоки) получают вознаграждение за обработку транзакций, так и механизмом приоритезации транзакций: каждая транзакция включает в себя комиссию, которую клиент готов платить, и майнеры заинтересованы в выборе транзакций с самыми высокими комиссиями, чтобы максимизировать свой доход. Это означает, что пользователи, которым действительно нужен высокий приоритет в краткосрочной перспективе, могут получить приоритет, включив гораздо более высокую комиссию за транзакцию, и это гарантирует, что в долгосрочной перспективе блокчейн будет заполнен вариантами использования с более высокой ценностью, а не вариантами использования с более низкой ценностью.

В настоящее время почти все блокчейны используют механизм, эквивалентный аукциону первой цены: каждый подает заявку, а затем, если она включается, он платит именно ту ставку, которую он подал. Проблема такого механизма в том, что не существует простой стратегии выбора оптимальной цены предложения. Например, если вы оцениваете транзакцию, включенную прямо сейчас, в 1 доллар, вы были бы готовы сделать ставку до 1 доллара, но если все остальные предлагают 0,05 доллара, тогда вы могли бы сохранить больше денег, предложив вместо этого 0,08 доллара; для оптимизации этого требуются сложные модели экономики и использование блокчейна в реальном времени.

Обычной альтернативой является аукцион с единой ценой, который включает в себя взимание с каждого участника той же цены, что и цена, уплаченная участником, предложившим самую низкую цену; то есть, если, например, ставки:

0,02, 0,03, 0,05, 0,08, 0,13, 0,19, 1,00

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

Здесь есть более простая стратегия: делайте ставки независимо от вашей оценки. То есть кто-то, кто оценивает транзакцию, включенную в 1 доллар, может просто предложить 1 доллар, и тот факт, что его ставка очень высока, не означает, что он должен на самом деле платить большую сумму, если только ставки всех остальных не будут такими же высокими.

Если предположить, что каждому пользователю нужна лишь небольшая часть пространства в каждом блоке, это «правдиво»: поскольку каждый пользователь лишь незначительно влияет на цену, которую он платит (которая почти полностью определяется массой других пользователей), и их ставка влияет только на то, будут ли они включены в блок, вы можете показать, что ставка на сумму, равную вашей оценке, обеспечивает оптимальный результат: если клиринговая цена окажется ниже вашей оценки, вы будете включены, и если он окажется выше, вы этого не сделаете, и поэтому в обоих случаях вы довольны результатом.

Однако аукционы с единой ценой, используемые в этом контексте, имеют два недостатка (см. «Достоверные механизмы»  для «основного» подхода к некоторым родственным идеям). Во-первых, предлагающий блок может включать в блок свои собственные транзакции и тем самым увеличивать клиринговую цену, увеличивая свой общий доход.

Во-вторых, предлагающий блок может вступить в сговор с некоторой частью отправителей транзакций, попросив их представить более высокие ставки, чем их «фактические» ставки, а затем вернуть им деньги через отдельный канал.

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

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

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

Механизм поддерживает минимальную комиссию F. Каждая транзакция устанавливает комиссию. Чтобы транзакция была включена в блок, транзакция должна заплатить не менее F. Комиссия корректируется для каждого блока по следующей формуле : prevBlockGas/prevBlockMaxGas., где часть предыдущего блока, которая была заполнена:

и k является константой (0 < k < 2)

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

Стимул майнеров такой же, как и в модели первой цены: они пытаются собрать самые дорогие транзакции, какие только могут, и включить их в свой блок. Одна из возможных стратегий отправителя транзакции выглядит следующим образом:

  1. Проверьте, выше или ниже минимальная плата, чем стоимость включенной транзакции. Если выше, не отправляйте транзакцию. Если она ниже, отправьте транзакцию, предложив минимальную комиссию плюс 1% (или другую стандартную наценку).

  2. Опубликуйте идентичную транзакцию, но с минимальным номером блока, равным двум блокам в будущем, и с комиссией, установленной несовершенным эвристическим алгоритмом, который вы использовали бы сегодня.

В обычном случае блоки будут заполнены примерно наполовину, поэтому все транзакции из случая (1) попадут внутрь. Случай (1) является «правдивым» (в том смысле, что он имеет простую стратегию, которая тривиально выводится из оценки пользователя). В случаях, когда блоки заполняются, временно применяется случай (2), хотя это бывает редко; даже в периоды очень высокого спроса переполнение блоков будет длиться лишь короткое время, прежде чем минимальная плата наверстает упущенное.

Мы можем улучшить это, разрешив отправителям транзакций выражать свою комиссию в форме «какой бы ни была минимальная комиссия, плюс увеличение Fi и максимум до Fmax.

Затем пользователи могли бы выразить предпочтение: «Меня не волнуют задержки, я хочу платить как можно меньше, хотя я согласен на что угодно до некоторого максимума» или «постарайтесь пройти как можно меньше». можно за 5 блоков, потом попробуй заплатить намного больше» или ряд других вариантов.

Также обратите внимание, что этот механизм позволяет протоколу «захватывать» большую часть доходов от комиссий за транзакции, позволяя перераспределять их так, как протокол считает оптимальным (или сжигать). Есть число 42 из результатов 37, которые показывают, что доход инициатора блока, поступающий в основном от комиссий, приводит к высокому риску нестабильности стимулов на микроуровне в протоколах блокчейна. Если сборы фиксируются протоколом, протокол может распределять сборы между различными классами участников (например, предлагающими, аттестующими), распределять сборы по времени или иным образом более точно воспроизводить модель стимулирования, основанную на доходах.

Congestion control и eip1559

Проведение более явной связи между congestion games и eip1559 помогает понять, как возникают сборы и куда они должны идти.

eip1559 — это запланированное обновление протокола рынка комиссий Ethereum. В текущей системе пользователи прикрепляют ставку к своим транзакциям (цена на газ), надеясь превзойти других пользователей и привлечь следующего майнера, чтобы включить их. Тем не менее, этот стиль аукциона по первой цене приводит к переплате, проблемам с UX и, как правило, дает мало гарантий для включения транзакции в блок.

С eip1559 вводится базовая плата для динамической оценки перегрузки, которую испытывает система, устанавливая минимальную плату за вход для каждого блока, которая в большинстве случаев также является «правильной» платой (по модулю небольшой премии). Это позволяет нам, по словам Тима Рафгардена, уйти от трудно поддающихся оценке транзакций, похожих на покупку дома на динамично развивающемся рынке, к парадигме «бери или не бери» в стиле Amazon с объявленной ценой. В своей стандартной версии eip1559 «сжигает» базовую плату, эффективно перераспределяя ее в никуда.

Перегрузка занимает центральное место в существовании рынка комиссий и конструкции eip1559, и мы уделим некоторое время правильному определению того, что она означает и как мы ее измеряем. Мы увидим, как ценообразование на основе перегрузок возникает как довольно естественное решение, и обсудим, помогают ли какие-либо из его принципов решить, что делать со сборами.

Пример congestion games

Подумайте о дороге с одной полосой, которую можно пересечь за 1 минуту, если вы один на дороге. Предположим, что каждый дополнительный водитель на дороге увеличивает время в пути на 1 минуту. «Функция задержки» дороги равна x, где x — количество пользователей на дороге (так, если вы единственный водитель, задержка составляет 1 минуту). Сколько всего времени в пути занимает один дополнительный пользователь дороги?

Когда на дороге находится один пользователь А, общее время в пути составляет 1 минуту.

Теперь, когда есть еще один пользователь B, A теперь требуется 2 минуты, чтобы перейти дорогу, и то же самое делает B. Общее время в пути каждого составляет 4 минуты.

Когда есть еще один пользователь C, всем пользователям A, B и C требуется 3 минуты, чтобы перейти дорогу, поэтому общее время в пути составляет 9 минут.

Другими словами, каждый дополнительный водитель добавляет одну дополнительную минуту времени в пути всем остальным водителям. Если на дороге 10 водителей и появляется одиннадцатый водитель, общее время в пути этих 10 водителей увеличивается на 10 минут (по 1 минуте каждого). Если каждый водитель возлагает расходы на всех остальных, в какой момент проигрывает все общество?

В поисках утраченной оптимальности

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

Мы предполагаем, что водители в равной степени обмениваются временем и деньгами, например, потратить одну дополнительную минуту времени в дороге так же плохо, как потерять доллар. Хотя все водители одинаково тратят деньги и время, они получают разные выгоды от перехода через дорогу. Некоторые водители хотят пойти на рынок, который им нравится, но могут выбрать и другой. Другим действительно нужно навестить семью или посетить важное мероприятие. Каждому водителю мы присваиваем число, выражающее в долларовом эквиваленте выгоду, которую он получает от перехода через дорогу.

Возьмем простой пример. У нас есть три участника дорожного движения, A, B и C, с соответствующими льготами в размере 10, 7 и 4 долларов (далее мы опустим доллар). Если все три пользователя отправятся в путь, время в пути для каждого составит 3 минуты. Итак, в целом,

A приносит 10, но «оплачивает» 3 минуты своего времени в дороге, поэтому прибыль составляет 7.

B приносит пользу 7, платит 3, получает прибыль 4.

C приносит пользу 4, платит 3, получает прибыль 1.

Последнее число, выделенное жирным шрифтом, представляет собой социальное обеспечение: сколько каждый получает минус сколько каждый платит. Наша цель – сделать социальное благополучие максимально высоким. Это максимум, что мы можем выжать из ситуации? Что, если мы вообще запретим C входить?

Когда мы запрещаем C пользоваться дорогой, мы увеличиваем общественное благосостояние! Почему это правда? Основная причина: дополнительные затраты, которые C приносит A и B, не компенсируются дополнительной выгодой, полученной C. Другими словами, частная выгода меньше, чем общественная.

Мы сталкиваемся с явным парадоксом: у С нет причин не входить. Учитывая информацию о том, что и A, и B планируют использовать дорогу, рациональный пользователь C все равно захочет присоединиться к ней, поскольку он получает одну единицу прибыли, что приводит к уменьшению общественного благосостояния.

Создание социальной оптимальности: добавление платы

Чтобы добиться наилучшего социального результата, мы хотели бы воплотить в жизнь следующую идею: любой пользователь на дороге должен платить за вред, который он причиняет другим пользователям. Путем включения общественного вреда в оценку частной прибыли каждого пользователя, стимулы выравниваются. Мы делаем это, добавляя плату за проезд.

В каком объеме должен взиматься дорожный сбор? Мы видели, что добавление одного пользователя на дорогу, когда x пользователей уже за рулем, приводит к x дополнительных затрат (1 дополнительная минута на водителя). Таким образом, мы должны установить дорожный сбор равным х, где х — количество пользователей, уже находящихся на дороге. Мы называем это дорожным сбором с предельными издержками, поскольку любой въезжающий пользователь увеличивает дорожный сбор до уровня затрат, которые пользователь налагает на всех остальных.

Предположим, что все пользователи платят x, когда они находятся в пути, и x пользователей используют его. Предположим, что входят A, B и C.

Теперь C получает отрицательную прибыль. Они понимают, что идти по дороге просто не стоит, поэтому отсеиваются, и мы получаем:

Есть ли здесь какая-то ловкость рук? Мы думали, что плата за проезд поможет нам достичь нашего социально оптимального положения, но сейчас социальное обеспечение составляет 9, а раньше было 13! Куда делись 4 единицы?

В некотором смысле мы достигли социально оптимального результата (А и В пользуются дорогой, С — нет), если не социально оптимальной выплаты (общая прибыль равна 13). Причина довольно проста: 4 единицы исчезли в плате за проезд, так как и А, и В платят за проезд по 2 единицы. Мы обсудим этот момент вскоре после того, как проясним связь с eip1559.

Ограничение дороги: появляются аукционы

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

Предположим, что дорога подходит только одному из трех наших водителей. В зависимости от того, кто прибудет первым, у нас могут возникнуть неоптимальные ситуации. Например, если первым приходит пользователь C, ситуация следующая:

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

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

К счастью, есть другой механизм, который делает именно это. Нам нужно подумать об аукционах, особенно об аукционах второй цены. Как мы должны решить, кто из A, B и C должен получить доступ к дороге?

Прежде чем ехать, мы попросим А, В и С написать заявку на листе бумаги. Есть два правила:

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

2.Победивший водитель платит цену второй по величине ставки.

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

Доказательство остается за вами, но дело в том, что рациональные участники торгов A, B и C должны предлагать ровно столько, сколько они оценивают дорогу. А пока забудем, что переход через дорогу сам по себе дорого обходится победившему пользователю, и сосредоточимся только на ставках.<o:p></o:p>

Очередная ловкость рук! Куда делась ставка 7 долларов А? Ответ: в кармане аукциониста. Но кто такой аукционист? Является ли аукционист поставщиком дорог?

Мы следуем нашему интуитивному определению интернализации общественных издержек: мы заставляем пользователей платить за вред, который они причиняют другим. Если бы A не было, B должен был бы водителем на дороге (чтобы максимизировать общественную пользу), в то время как B навредил бы C, отняв у них дорогу. Таким образом, перегрузка влияет на пользователей, которые хотели получить доступ к какому-либо ресурсу, но не могли или могли при сниженном уровне обслуживания. Разве эти пользователи не должны получить компенсацию за свои потери?

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

Это не серебряная пуля, и это не совсем эквивалентно равномерному перераспределению собранных сборов между всеми, потому что механика денежной экономики немного более тонкая, чем это. Но интуиция такова:

1.Пользователи-как-отправители-транзакций несут издержки перегрузки, поскольку она лишает их доступа к рынку транзакций.

2.Таким образом, пользователи-отправители транзакций должны получать компенсацию за затраты, вызванные перегрузкой.

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

Предположим, мы верим, что сжигание — это точное перераспределение суммы сжигания между всеми участниками. В крупной экономике этот прямой эффект перераспределения крайне размыт по отношению к отдельным получателям, приближаясь к нулю по мере увеличения числа участников (при фиксированной сумме сборов).

Допустим, нас устраивает разбавление: в конце концов, сумма в эпсилон наличных лучше, чем ноль. Мы можем подвергнуть вторую критику микроэкономическому аргументу. Среди пользователей Ethereum мы не проводили различий между отправителями и держателями транзакций. Перегрузка причиняет неудобства отправителям транзакций, а держателям — нет (по определению, они не отправляют никаких транзакций). Но как механизм должен определить, кто пострадал от перегрузки или нет? Скорее всего, это невозможно, так как нам нужно было бы знать, кто бы отправил транзакцию, но не сделал этого из-за перегрузки. Является ли вознаграждение всех, кто держит ETH сжиганием, достаточно хорошим приближением к механизму, который компенсирует тех, кто пострадал от перегрузки рынка комиссий?

Я часто встречал этот аргумент, упоминаемый майнерами как причину, по которой ошибочно ожидать, что сжигание приведет к перераспределению из-за разбавления, и я склонен согласиться. Если этот прямой, «микро» эффект неудовлетворителен, возможно, мы можем подумать о более косвенном, «макро» эффекте сжигания, из-за которого мы чувствуем себя сильнее.

Таким образом, мы разделяем общий эффект сжигания на более прямой «эффект перераспределения» сжигания части запасов (с оговорками, указанными выше, что это перераспределение является как разбавленным, так и приблизительным) и более косвенным эффектом, основанным на более нематериальной природе ETH как актив, подходящий для защиты сети Ethereum.

Этот второй, косвенный эффект, как правило, более популярен среди сторонников eip1559, и, вероятно, именно его они имеют в виду, говоря, что «eip1559 укрепит ETH как актив», т. е. не то, что измеряется путем сравнения инфляции до и после eip1559 и масштабирование цены ETH на разницу. Поскольку сжигание пропорционально спросу на сеть, создается связь между активом ETH и сетевой стоимостью Ethereum. В свою очередь, лучший ETH увеличивает пропускную способность для использования актива, например, в качестве залога для создания большего количества DAI, в дополнение к повышению общего уровня безопасности, например, eth2.

Есть и другие, очень веские причины для сжигания, в том числе отказ от экономики с крайне изменчивым источником доходов, который в пределе вызывает нестабильность и усложняет оценку доходов майнеров; повторное определение вознаграждения за блок как механизма, с помощью которого оплачивается безопасность; или подготовка почвы для перехода от Proof-of-Work к Proof-of-Stake. Должен ли какой-либо из них применяться сразу после включения eip1559, а не через несколько месяцев или год после этого, кажется, действительно стал этапом для Аргумента.

Понимание комиссий в eip1559

В текущей системе пользователи прикрепляют ставку к своим транзакциям (цена на газ), надеясь превзойти других пользователей и привлечь следующего майнера, чтобы включить их. Тем не менее, этот стиль аукциона по первой цене вызывает переплату, проблемы с UX и, как правило, дает мало гарантий для включения.

С eip1559 вводится базовая плата для динамической оценки перегрузки, которую испытывает система, устанавливая минимальную плату за вход для каждого блока, которая в большинстве случаев также является «правильной» платой (по модулю небольшой премии). Это позволяет нам, по словам Тима Рафгардена, уйти от трудно поддающихся оценке транзакций, похожих на покупку дома на динамично развивающемся рынке, к парадигме «бери или не бери» в стиле Amazon с объявленной ценой.

Чтобы увидеть, как достигается парадигма опубликованной цены, полезно разобраться в том, как eip1559 определяет свою котировку. На самом деле возможно, даже в большей степени, чем в нынешней системе, разложить цену, указанную в соответствии с 1559, как сумму различных частей, каждая из которых возникает из-за конкретных ограничений спроса и предложения.

Комиссия майнера

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

С точки зрения рынка комиссий, майнеры несут расходы, пропорциональные тому, сколько газа они поставляют: риск того, что их блок устареет. Любая дополнительная транзакция, включенная в блок, замедляет его распространение и выполнение, открывая возможность того, что блок не будет получен или обработан вовремя, прежде чем другой конкурирующий блок.

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

1.Блок включается в каноническую цепочку, и майнер получает вознаграждение за блок плюс комиссии, связанные с включенными транзакциями.

2.Блок является «непривязанным», и майнер получает вознаграждение от дяди, меньшее, чем вознаграждение за блок.

Подсчитано, что риск остаться незамеченным примерно линейно зависит от количества предоставленного газа: блок вдвое большего размера имеет в два раза больше шансов не попасть в каноническую цепочку. Майнер должен получить компенсацию за дополнительный риск, который он несет, заполнив свой блок минимальным количеством газа. В пределе мы можем оценить затраты майнера на добычу одной дополнительной единицы газа. Назовем эту предельную стоимость комиссией майнера.

Оценить комиссию майнера достаточно просто. Виталик сделал это некоторое время назад, или совсем недавно вы можете найти эту оценку по u/c-i-s-c-o:

Расчетный уровень чаевых, компенсирующий риск дяди, составляет около 0,8 gwei (блоки uncle получают в среднем вознаграждение в размере 1,67 ETH вместо базовых 2 ETH, так что это ~ 0,33 ETH = 330 млн gwei потерь, 10 миллионов газовых блоков добавляют ~ 0,025 к ставке дяди [по сравнению с пустыми блоками, поэтому ожидаемая стоимость 1 газа = 330 м / 10 м * 0,025 = 0,825 gwei), и майнеры действительно устанавливают это значение, когда цепочка пуста.

В двух словах, уместно думать о вознаграждении майнера как о компенсации за этот повышенный риск стать дядей, а вознаграждение майнера — как о фиксированной номинальной стоимости. В настоящее время the meme выглядит как 1 Гвэй, исходя из приведенной выше оценки.

Плата за перегрузку

Плата майнера включает в себя стоимость использования услуги, которую несет провайдер. Остальная часть платы строго зависит от стоимости перегрузки, желания других пользователей одновременно присоединиться к системе. В то время как обе затраты несколько скрыты в комиссиях, выплачиваемых в текущей системе, eip1559 дает нам гораздо более четкое различие между фиксированной комиссией майнера, полученной в качестве чаевых, и переменной базовой комиссией, измеряющей перегрузку, в очень точном смысле.

Давайте вернемся к примеру с аукционом второй цены, который мы представили в предыдущем посте, где три водителя, A, B и C, претендовали на доступ к дороге с ограниченной пропускной способностью, подходящей только для одного из трех.

Прежде чем ехать, мы попросим А, В и С написать заявку на листе бумаги. Есть два правила:

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

  • Победивший водитель платит цену второй по величине ставки.

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

Доказательство остается за вами, но дело в том, что рациональные участники торгов A, B и C должны предлагать ровно столько, сколько они оценивают дорогу.

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

eip1559 — это своего рода вечный аукцион второй цены. Базовая плата плавает, чтобы выставить цену ровно такому количеству пользователей, чтобы оставшиеся заполнили блок до отказа. Иногда она увеличивается (как на английских аукционах), когда спрос выше предложения, а иногда уменьшается (как на голландских аукционах), когда спрос ниже предложения.

Кстати, что мы подразумеваем под спросом?

Синяя кривая представляет спрос, цену, которую потребители готовы платить за свой газ. Упорядочиваем пользователей в порядке убывания готовности. Конечно, истинная кривая спроса будет больше похожа на ступеньки, потому что у пользователя есть потребность в фиксированном количестве газа, а не в одной единице, но вы можете использовать этот график как плавное приближение.

Мы показываем один важный момент: цена газа, на которую есть спрос, точно равна целевому размеру блока eip1559, 12,5 млн единиц газа. В этом примере «равновесная» цена составляет 50 Gwei: только 12,5 млн потребителей газа готовы платить сверх этой цены. Если бы базовая плата была установлена на уровне 49 Gwei, а комиссия майнера — на уровне 1 Gwei, у нас было бы ровно столько газа в блоке, сколько мы нацеливаемся.

Это все хорошо, но поскольку вся кривая спроса намного выше комиссии майнера, почему майнеры не могут включить всех до предела блока, установленного в два раза больше целевого блока?

Платежеспособный спрос в eip1559

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

Мы будем называть платежеспособным спросом объем спроса на газ со стороны пользователей, которые готовы платить как минимум базовую плату плюс комиссию майнерам. Есть три случая, на которые стоит обратить внимание:

Недостижение цели (undertarget): платежеспособный спрос ниже целевого показателя по газу.

Перевыполнение цели (overtarget): Эффективный спрос выше целевого значения газа и ниже лимита газа.

Переполнение (overfull): платежеспособный спрос выше как цели, так и предела.

Каждый случай четко отображается на предыдущем графике. Если платежеспособный спрос находится где-то между 0 и 12,5 млн газа, мы недооценены. Если оно находится между 12,5 млн и 25 млн, наша цель завышена. Если он выше 25M, мы переполнены.

Очевидно, что мы все еще стремимся найти золотую середину между недооцененными и перенацеленными областями, но это небольшое окно, к которому нужно стремиться. Итак, давайте посмотрим, что происходит в каждом случае, начиная со случая перенацеливания.

Overtarget: эффективный спрос выше целевого и ниже предела

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

Этот резерв означает, что пользователям не нужно завышать ставку. В следующем блоке достаточно места для всех пользователей платежеспособного спроса. Ожидается, что пользователи будут платить ровно базовую плату плюс комиссию майнера в 1 Gwei.

Переполнение (overfull): эффективный спрос выше целевого и предельного

Этот случай сложнее. Следующий блок не может обеспечить весь платежеспособный спрос, который превышает 25 млн газа. В терминологии Roughgarden базовая плата чрезмерно низка. В этом сценарии для пользователей рационально включать более высокие чаевые в свои транзакции, чтобы обеспечить их более быстрое включение.

В этом случае мы разбиваем комиссию за транзакцию на три части:

  1. Комиссия майнера (1 Gwei).

  2. Базовая плата, которая не соответствует реальной плате за перегрузку.

  3. Стратегический гонорар, восполняющий несоответствие.

Хотя майнер получает части 1 и 3, истинная плата за перегрузку на самом деле представляет собой базовую плату плюс стратегическую плату.

Недоцель (undertarget): платежеспособный спрос ниже целевого

В этом случае базовая плата выше, чем должна быть, что снижает стоимость для слишком многих пользователей. В предыдущем случае реальная плата за перегрузку была занижена базовой платой. Теперь она завышена на величину, которую мы назовем комиссией за несоответствие. Для пользователей по-прежнему рационально предлагать стратегию базовой платы + 1 Gwei.

Декомпозиция  платы в eip1559

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

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

Как часто мы оказываемся в любом из этих случаев? Быть недо- или избыточным явно более желательно, чем быть переполненным, поскольку от пользователей просто ожидается, что они будут предлагать базовую плату + 1 комиссию за майнинг Gwei, что приводит к неуловимым улучшениям UX, которые рекламирует eip1559. При прочих равных условиях эффективный спрос, близкий к целевому размеру, также предпочтительнее, поскольку они предполагают, что базовая плата точно оценивает перегрузку, а пользователи платят по справедливой ставке.

Есть надежда, что блоки обычно не переполнены и что единственные чаевые сверх базовой комиссии + комиссии майнера будут поступать от транзакций, извлекающих MEV. Данные по цепочке после развертывания eip1559 скажут нам, правы ли мы, но в то же время мы можем сделать более общие выводы о противоречии между частотой обновления базовой платы и требованием понять, когда это не удается в теории.

Комментарии (1)


  1. qyix7z
    20.10.2022 16:26

    Подумайте о дороге с одной полосой, которую можно пересечь за 1 минуту
    требуется 3 минуты, чтобы перейти дорогу
    Водители на этой дороге ездят по ней или переходят/пересекают?
    Всю голову сначала сломал. Гугл-переводчик в соавторах?