Углубляемся в цены на газ Ethereum
В Origin Protocol, мы создаем одно из наиболее активно разрабатываемых Ethereum DApps в мире. В начале сентября мы заметили, что стоимость для совершения транзакций Ethereum быстро растёт, и увеличивающееся количество транзакций стали занимать до часа для завершения.
Блоки Ethereum похожи на грузовые автомобили, которые доставляют транзакции. Каждый грузовик может вместить только определенное количество груза (газа) и не более. Люди, которые хотят, чтобы их посылки (транзакции) были доставлены, размещают свои посылки на погрузочной платформе, прикрепленной к оплате за доставку груза. Майнеры Ethereum просматривают все посылки на погрузочной платформе (ожидающие очереди) и заполняют грузовик (блок), который они пытаются извлечь, посылкам, которые принесут им наибольшее количество денег.
…
Чтобы получить реальное представление о нынешнем состоянии цен на газ и посмотреть к чему все может привести в будущем, я углубился в эти данные. Невероятное явление в работе с данными с Ethereum заключается в том, что ВСЕ данные открыты для всех. Не требуется спрашивать разрешения.
Я написал быстрый скрипт для загрузки блоков и их транзакций, а затем вытащил транзакции за несколько дней в локальный файл.
Мой предпочтительный инструмент для исследовательских проектов, подобных этому, - Jupyter notebook с потрясающей комбинацией python, pandas, matplotlib и seaborne.
Я узнал, что лучше всего отделить фазу сбора данных от фазы исследования данных, чтобы я всегда мог легко вернуться к работе с известным набором данных. Загрузка данных занимает некоторое время и было бы наказанием делать это каждый раз, когда в будущем я захотел бы снова начать работать с ними.
Сначала, я взял среднюю цену на газ за блок, а затем запустил огромное скользящее среднее значение, чтобы все сгладить.
Здесь наблюдается ежедневная, быстро развивающаяся кодограмма средней цены на газ: средняя цена меняется на 2 уровня между самым поздним и самым ранним времени суток. И в целом, цены действительно имели тенденцию к росту, как мы заметили.
Ежедневный пик цен приходится на 13:30 по Гринвичу, что соответствует 6:30 утра в Сан-Франциско, 9:30 утра в Нью-Йорке, 15:30 дня в Париже, 17:30 вечера в Москве, 21:30 вечера в Пекине и 22:30 вечера в Сеуле. Затем цены достигают своего дневного минимума примерно через восемь часов. Этот пик приходится именно на то время, когда вы его ожидаете, достигая своего максимума, когда максимальное количество людей в мире бодрствует. Однако быстрый спад после пика говорит о том, что Азия оказывает несоразмерное влияние на цену транзакций, либо из-за объема, либо из-за готовности платить больше за транзакции.
Как бы это ни было интересно, график скользящих средних значений, с которым мы работали, скрывает больше, чем показывает. На самом деле, от блока к блоку довольно мало изменений:
Этот график показывает средние цены на газ для 31 450 блоков с 6 сентября 2019 года по 11 сентября. Он совсем не плавный - полный подъёмов и падений всех размеров. Сняв скользящую среднюю, мы видим, что средняя дневная цена за блок в настоящее время в действительности меняется от 5 уровней до 6 в течение дня.
И это еще не полная история! Каждый блок содержит около сотни отдельных транзакций и каждая из этих транзакций имеет свою индивидуальную цену. Давайте работать на уровне отдельных транзакций:
Посмотрев на каждую цену для каждой из 3 652 871 транзакций в этот период времени, мы начинаем видеть реальную картину. Цены внутри каждого блока охватывают огромный диапазон! Некоторые люди платят 50–100 gwei за газ в том же блоке, за который другие платят 5 за газ.
На приведенном ниже графике увеличено изображение 10-и последовательных блоков (как и прежде, не показаны транзакции с наивысшей ценой).
Всего за четыре минуты цены падают на 50%, а затем возвращаются туда, где они были.
В красном блоке есть несколько очень дешевых транзакций (блок 8 509 003), которые платят в 20 раз меньше, чем текущий курс. Этот блок был добыт Ethermine, и майнеры включили свои собственные платёжные транзакции по ставке ниже рыночной в своем собственном блоке.
В следующих нескольких блоках, самая низкая включенная ставка снижается с 20 Gwei до 12 Gwei. Эти блоки было быстрее всего извлечь, поэтому у них было меньше времени, чтобы собрать новые более высокооплачиваемые транзакции. Вместо этого они начали работать в потоке старых, хуже оплачиваемых транзакций.
В последнем блоке набора цена вернулась туда, где она была, так как этот блок занимал почти в шесть раз больше времени, чем средний показатель за предыдущие пять, и имел достаточно высокооплачиваемые транзакции и снова более дешевые транзакции не были включены.
То, сколько времени займет извлечь блок, имеет непосредственное влияние на цену. За последние несколько дней в десятисекундных блоках средняя цена на газ приблизительно на 5 Gwei дешевле, чем в двадцати пятисекундных.
Во всех блоках мы видим тенденцию пользователя к ценовым транзакциям, кратным 5 или 10 Gwei.
…
Так что мы можем уяснить?
Сторона поставки транзакций Ethereum действительно не отвечает на спрос. За последние восемнадцать месяцев газовый лимит транзакций Ethereum был увеличен только однажды, и только на 20%. Это не эластичное предложение означает, что все конкурируют за одно и то же фиксированное количество газа, и что цены быстро меняются от небольших изменений спроса.
Чем больше вы готовы платить выше среднего, тем выше вероятность того, что ваша транзакция пройдет быстро.
Если вам нужны транзакции в "режиме реального времени", вам придется конкурировать, платя больше всех остальных, кто хочет транзакций в реальном времени. Если достаточное количество людей попытается сделать это одновременно, требуемая цена может резко возрасти.
В ближайшее время, пиковая дневная цена на газ, вероятно, продолжит расти, и внезапные скачки цен, вероятно, увеличатся по частоте.
Если вам небезразлично, когда ваша транзакция будет завершена, вам нужно знать, находитесь ли вы в той части дня, когда цены имеют тенденцию к росту или цены имеют тенденцию к снижению. Если цены растут, а ваша транзакция задерживается, может пройти много часов, прежде чем цены снова вернутся на тот же уровень.
Если вам не нужны транзакции в реальном времени, запланируйте выполнение транзакций на более тихую часть дня. Это может сократить ваши расходы на газ более чем в 4 раза.
Кажется, что во многих транзакциях Ethereum используется стратегия с постоянной фиксированной ценой, которая не является обязательной. Ценообразование транзакции по фиксированной цене, в свое время, независимо от динамики базового рынка, кажется худшим из обоих миров - одно из двух, переплата при низких рыночных ценах, либо задержка транзакций при росте цен.
Если у вас есть автоматизированная система подписывания ваших транзакций, вам не нужно поначалу предлагать более высокую ставку, тогда как противном случае вы бы так и поступили. Вместо этого, вы можете установить цену по разумной ставке, которая, вероятно, будет извлечена. Если эта транзакция не будет извлечена в разумные сроки, вы создадите вторую транзакцию с тем же одноразовым номером и более высокой ценой на газ. С тем же одноразовым номером, только одна из этих транзакций будет добыта. Таким образом вы избегаете зависания транзакции в течение нескольких часов из-за изменения цены, без необходимости платить за гарантию астрономическую начальную цену на газ.
День сделки цены на газ на блокчейн Ethereum
Пользователи Ethereum с каждой транзакцией делают ставку друг против друга за кусочек фиксированной длины сети. Большой разброс цен в каждом блоке указывает на то, что большинство систем, устанавливающих цены на газ, являются несложными. Сложно представить, что вы пойдете на фондовый рынок и увидите одного человека, предлагающего и платящего 450 долларов за акцию компании, среди толпы людей, предлагающих и платящих 200 долларов за акцию за одну и ту же компанию. Все же цены, заплаченные в единственном блоке, охватывают гораздо более широкий диапазон чем этот.
После анализа мы немного повысили наши цены на газ по умолчанию, чтобы убедиться, что наших транзакции пройдут и задержки больше не будут проблемой.
В настоящее время мы поощряем адаптацию пользователя, оплачивая газ для новых продавцов с помощью мета-транзакций, и, возможно, внедряем некоторые из тех знаний, в наш ретранслятор транзакций, чтобы в наихудшем случае предоставлять ту же услугу с меньшими затратами и лучшими гарантиями.
Мы также создали специальный инструмент для визуального изучения окончательного байт-кода, выполняемого конкретной транзакцией, как для отладки, так и для оптимизации цены на газ - подробнее об этом инструменте в ближайшее время.
Узнайте больше про Origin:
Покупай и продавай на мобильном: www.originprotocol.com/mobile
Используйте наш веб: shoporigin.com
Узнайте больше на нашем сайте: originprotocol.com
VK: vk.com/originprotocol
Спасибо Франку Частаньолю и Майку Шульцу.