Открыть сервис

Обновление Shanghai

Обновление Shanghai — это хардфорк сети Ethereum, реализованный 12 апреля 2023 года на высоте блока 6209536, который стал вторым крупным обновлением после перехода сети на алгоритм консенсуса Proof-of-Stake (The Merge). Основной целью Shanghai было включение функционала вывода средств (стейкинга) из депозитного контракта Beacon Chain, что завершило полный переход Ethereum к модели Proof-of-Stake, а также внедрение ряда улучшений для повышения эффективности и совместимости сети.

История

Предпосылки

После завершения обновления The Merge (сентябрь 2022 года) сеть Ethereum перешла от Proof-of-Work к Proof-of-Stake, но валидаторы, заблокировавшие 32 ETH в депозитном контракте, не могли вывести свои средства. Это создавало технические и экономические риски: отсутствие механизма вывода снижало ликвидность и доверие участников. Обновление Shanghai было запланировано для решения этой проблемы.

Разработка и тестирование

Разработка Shanghai велась в рамках процесса улучшения Ethereum (EIP — Ethereum Improvement Proposals). Ключевым предложением стал EIP-4895, описывающий механизм вывода Beacon Chain. Для тестирования обновления были развёрнуты несколько тестовых сетей, включая Sepolia, Goerli и Zhejiang, где проверялась корректность работы вывода и совместимость с клиентами. В марте 2023 года разработчики объявили дату активации на основной сети — 12 апреля.

Активация

Хардфорк Shanghai был активирован на основной сети Ethereum 12 апреля 2023 года в 22:27 UTC на высоте блока 6209536. Обновление прошло без серьёзных сбоев, хотя наблюдались временные задержки в обработке запросов на вывод из-за высокой нагрузки. Вместе с Shanghai было активировано сопутствующее обновление Capella на уровне консенсусного слоя (Beacon Chain), обеспечивающее синхронизацию изменений.

Ключевые изменения (EIP)

Обновление Shanghai включало несколько предложений по улучшению Ethereum (EIP), которые были реализованы в рамках хардфорка:

EIP-4895: Вывод Beacon Chain

Это центральное изменение Shanghai. Оно добавляет механизм, позволяющий валидаторам выводить свои средства (32 ETH) из депозитного контракта Beacon Chain. Вывод осуществляется двумя способами:

  • Полный вывод: валидатор полностью выходит из пула валидаторов и получает весь свой баланс, включая накопленные награды.
  • Частичный вывод: валидатор остаётся в пуле, но получает избыточный баланс (свыше 32 ETH), который накапливается в виде наград.

Процесс вывода автоматизирован: запросы обрабатываются в очереди, скорость вывода зависит от количества активных валидаторов. На момент активации Shanghai в сети было около 560 000 валидаторов, что создало значительную очередь на вывод (до нескольких дней).

EIP-3651: Предварительная загрузка адреса COINBASE

Этот EIP улучшает работу с адресом бенефициара блока (coinbase), который ранее требовал дополнительного вызова для чтения. Теперь адрес COINBASE предварительно загружается в состояние выполнения транзакций, что снижает газовые затраты для некоторых смарт-контрактов, особенно для тех, которые взаимодействуют с механизмами MEV (максимальная извлекаемая стоимость).

EIP-3855: Инструкция PUSH0

Добавляет новую инструкцию в виртуальную машину Ethereum (EVM) — PUSH0, которая помещает на стек значение 0. Ранее для этого требовалось использовать инструкцию PUSH1 0, занимающую два байта. PUSH0 занимает один байт, что снижает размер кода и газовые затраты для смарт-контрактов, часто использующих нулевые значения.

EIP-3860: Лимит и метрика для инициализации кода

Этот EIP вводит лимит на размер инициализирующего кода (initcode) в 49152 байта и добавляет метрику стоимости за каждый 32-байтовый блок initcode. Это повышает безопасность сети, предотвращая атаки, связанные с чрезмерно большим initcode, и упрощает газовые расчёты.

EIP-6049: Устаревание инструкции SELFDESTRUCT

Хотя EIP-6049 не изменяет функциональность, он формально объявляет инструкцию SELFDESTRUCT устаревшей (deprecated). Разработчикам рекомендуется избегать её использования в новых смарт-контрактах, так как в будущих обновлениях она может быть удалена из-за проблем с безопасностью и совместимостью.

Влияние на экосистему

Ликвидность и стейкинг

Обновление Shanghai значительно повысило ликвидность рынка стейкинга Ethereum. В первые недели после активации было выведено более 1 миллиона ETH (около $2 миллиардов на тот момент), что привело к краткосрочной волатильности цены ETH. Однако механизм очереди предотвратил резкий обвал, и рынок стабилизировался. В долгосрочной перспективе Shanghai стимулировал рост стейкинга: количество заблокированных ETH увеличилось, так как участники получили уверенность в возможности вывода средств.

Развитие DeFi и протоколов

Возможность вывода средств стимулировала развитие протоколов ликвидного стейкинга (например, Lido, Rocket Pool, Frax Ether), которые позволяют пользователям получать награды за стейкинг без блокировки средств. Эти протоколы получили дополнительный приток капитала, так как инвесторы могли легко перераспределять активы.

Технические улучшения

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

Критика и риски

Очереди на вывод

Несмотря на запланированный механизм очередей, в первые дни после активации Shanghai наблюдались задержки в обработке запросов на вывод из-за высокой нагрузки. Некоторые валидаторы ждали до нескольких дней, что вызвало критику со стороны сообщества. Разработчики Ethereum впоследствии предложили оптимизировать алгоритм очередей в будущих обновлениях.

Безопасность и MEV

Обновление Shanghai не решило проблему MEV (максимальная извлекаемая стоимость), которая остаётся актуальной для Ethereum. Некоторые эксперты выразили опасения, что увеличение ликвидности и активности валидаторов может усилить конкуренцию за MEV, что приведёт к росту комиссий и централизации среди крупных валидаторов.

Влияние на цену ETH

Краткосрочная волатильность цены ETH после активации Shanghai вызвала спекуляции. Некоторые аналитики предсказывали резкое падение цены из-за массового вывода, но фактическое снижение было ограниченным (около 10% за месяц). В долгосрочной перспективе цена ETH восстановилась и продолжила рост, что связывают с укреплением доверия к сети.

Сравнение с другими обновлениями Ethereum

ОбновлениеДатаОсновные изменения
The Merge15 сентября 2022Переход на Proof-of-Stake, объединение с Beacon Chain
Shanghai12 апреля 2023Вывод средств из стейкинга, EIP-3855, EIP-3651
Cancun13 марта 2024EIP-4844 (Proto-Danksharding), улучшение масштабирования

Shanghai завершил переход Ethereum к Proof-of-Stake, сделав сеть полностью функциональной для стейкинга, в то время как Cancun сосредоточился на масштабировании.

Интересные факты

  • Название «Shanghai» было выбрано в честь города Шанхай, Китай, по традиции называть хардфорки Ethereum в честь городов, прошедших конференции Devcon (в данном случае Devcon 2 в Шанхае в 2016 году).
  • Обновление Shanghai было одним из самых ожидаемых в истории Ethereum: за несколько дней до активации объём заблокированных ETH в депозитном контракте превысил 18 миллионов (около $35 миллиардов).
  • После активации Shanghai сеть Ethereum обработала более 100 000 запросов на вывод в первые 24 часа, что стало рекордом для блокчейна.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →