Обновление 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 Merge | 15 сентября 2022 | Переход на Proof-of-Stake, объединение с Beacon Chain |
| Shanghai | 12 апреля 2023 | Вывод средств из стейкинга, EIP-3855, EIP-3651 |
| Cancun | 13 марта 2024 | EIP-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 →