Shapella — комбинированный апгрейд сети Ethereum, запущенный на мейннете в апреле 2023. Он состоит из двух частей:
- Shanghai — изменения на исполнительном слое (Execution Layer), включающие набор EIP для оптимизации газа и системную операцию «push withdrawals»;
- Capella — изменения на консенсусном слое (Beacon Chain), открывшие частичные и полные выводы средств валидаторов и механизмы обновления «адресов для вывода».
Shapella завершил многолетный цикл: после перехода на PoS («The Merge») сеть получила двусторонний мост между Beacon Chain и исполнительным слоем — стейкеры наконец могут забирать награды (частично) и/или полностью выходить с возвратом депозита.
Коротко (о чём апгрейд)
- Что поменялось для валидаторов. Появились автоматические частичные выводы (всё сверх 32 ETH «снимается» и отправляется на адрес вывода) и полные выводы (после выхода валидатора из набора активных — возвращается депозит + невыплаченные награды).
- Как это работает. На консенсусном слое появился «поток» выводов, а на исполнительном — системная операция доставки этих средств в аккаунты L1.
- Техническая грань. Чтобы выводы заработали, валидатор должен иметь корректные учётные данные для вывода (withdrawal credentials) — адрес на L1. При старых BLS-креденшалах нужен однократный переход на формат с L1-адресом. См. Withdrawal Credentials и Beacon Chain.
Карточка
| Параметр | Значение |
|---|---|
| Название | Shapella = Shanghai (Execution) + Capella (Consensus) |
| Дата запуска | Апрель 2023 (мейннет, вечер UTC) |
| Главная цель | Открыть выводы средств валидаторов из Beacon Chain на L1 |
| Что даёт | Частичные выводы наград; полный выход валидаторов с возвратом депозита; улучшения газа/опкодов |
| Ключевые EIP (Execution) | EIP-4895 (push withdrawals), EIP-3651 (Warm COINBASE), EIP-3855 (PUSH0), EIP-3860 (initcode), EIP-6049 (депрекация SELFDESTRUCT) |
| Консенсусный слой (Capella) | Автопроход частичных выводов, очередь полных выходов, сообщения для смены адреса вывода |
Почему Shapella важен
До Shapella пользователи могли внести депозит 32 ETH и начать валидировать блоки в PoS-сети, но не имели штатной возможности забрать награды или выйти с возвратом депозита (средства были «заблокированы» до включения логики вывода). Это ограничивало гибкость стейкеров и держало отрасль в ожидании. После Shapella ликвидность стейка стала двусторонней:
- частичный cash-out наград стимулирует долгосрочное участие (оператор может регулярно «снимать сливки»);
- полный выход снижает барьеры входа — инвесторы знают, как и когда смогут выйти «в ноль» с телом депозита.
Для экосистемы это означает зрелость PoS-контракта: валидаторам не нужно «переписывать правила», они следуют формализованному протоколу очередей/лимитов.
Как делится Shapella: Shanghai vs Capella
Shanghai (Execution Layer):
- EIP-4895. Добавляет системную операцию, которая «проталкивает» (push) средства из Beacon Chain на L1-счета — именно так награды/депозиты появляются у получателей на исполнительном слое.
- Оптимизации газа/опкодов.
- EIP-3651 (Warm COINBASE) — удешевляет первое обращение к адресy COINBASE в блоке;
- EIP-3855 (PUSH0) — новый опкод, упрощающий и удешевляющий байткод;
- EIP-3860 — лимиты и тарификация initcode;
- EIP-6049 — депрекация SELFDESTRUCT (сигнал разработчикам о будущих изменениях семантики).
Capella (Consensus / Beacon Chain):
- Частичные выводы («skim» сверх 32 ETH) — периодический автоматический «сбор» наград у валидаторов, чьи креденшалы вывода указывают на адрес L1 (формат «0x01»).
- Полные выводы — для валидаторов, «вышедших» из набора (exited + withdrawable), возвращается депозит + награды.
- Смена типа креденшалов — однократное сообщение для перевода BLS-креденшалов на формат L1-адреса, иначе выводы недоступны.
- Ограничения по скорости — протокол обрабатывает ограниченное число выводов на слот, чтобы блоки не «забивались» исключительно выплатами.
Частичные vs полные выводы: что и когда приходит
Частичный вывод — это автоматическая «протирка» балансов активных валидаторов: всё, что сверх 32 ETH на их эффективном балансе, перенаправляется на указанный адрес вывода. Пользователь продолжает валидировать, депозит остаётся «на работе», а награды поступают на L1.
Полный вывод — это два шага:
1) Выход валидатора из активного набора (инициируется оператором; валидатор покидает комитеты и перестаёт получать награды);
2) Ожидание статуса «withdrawable» и последующая обработка системой полного вывода (депозит + награды переводятся на адрес вывода).
В обоих сценариях средства доставляются на L1 через системную операцию, добавленную на исполнительном слое. Разница — в том, остаётся ли валидатор активным (частичный) или фиксирует полный выход (полный).
Withdrawal credentials: почему это ключевой параметр
Чтобы получать выводы, у валидатора должны быть креденшалы вывода с адресом L1 (формат «0x01»). В ранних конфигурациях использовались BLS-креденшалы (префикс «0x00») — они не позволяют доставлять ETH в аккаунт L1. Поэтому протокол предусмотрел однократное сообщение о смене типа креденшалов на «0x01».
*Проверка и обновление:*
- если у валидатора 0x01, частичные выводы начнут поступать автоматически при балансе > 32 ETH;
- если 0x00, отправьте сообщение о смене (подробнее см. Withdrawal Credentials).
Скорость и очереди: почему «не всем сразу»
Shapella спроектирован с прицелом на стабильность сети. Поэтому:
- на слот (каждые ~12 с) протокол обрабатывает ограниченное число записей на вывод — это предотвращает «забивку» блоков выплатами;
- частичные выводы идут «широким потоком» — система регулярно сканирует набор валидаторов и «снимает» излишек;
- полные выводы ограничены «скоростью выхода» из набора (чтобы не обрушить безопасность) и лимитом обработок на слот; после получения статуса withdrawable средства доставляются тем же автоматическим процессом.
Практический вывод: частичные выплаты приходят регулярно; полные — в горизонте от нескольких часов до дней (в зависимости от накопленной очереди на выход/обработку).
Что поменялось для разработчиков (Execution Layer)
EIP-4895 ввёл системный механизм «push withdrawals» — не контрактный и не пользовательский вызов, а «встроенную» операцию протокола, которая зачисляет ETH на целевые адреса L1. Это значит:
- приложения не должны писать «обработчики» для специальных событий вывода (средства просто появляются на счёте адресата);
- gas-модель транзакций осталась прежней; оптимизации коснулись, в частности, первого обращения к COINBASE (EIP-3651) и удобства байткода (EIP-3855/3860).
Для контрактов важнее две практики:
- не полагаться на SELFDESTRUCT (EIP-6049 — депрекация; готовьтесь к изменению семантики в будущих форках);
- корректно обрабатывать сценарии, где баланс аккаунта может вырасти «сам по себе» (без входящей пользовательской tx) — из-за системных начислений по выводам.
Что поменялось для операторов/валидаторов (Consensus Layer)
Чек-лист:
- Проверьте тип withdrawal credentials; при необходимости сделайте переход на формат «0x01».
- Убедитесь, что адрес вывода — это ваш контролируемый L1-аккаунт/кастоди.
- Понимайте разницу между частичным и полным выводом: частичный не требует «выхода» из набора; полный — да.
- Планируйте кэш/ликвидность: если вы оператор пула или валидируете для клиентов, заранее согласуйте регламент выплат и ответственность за комиссии L1.
- Отслеживайте очереди на выход (если планируете «массовый» полный выход).
Взаимодействие со стейкинг-сервисами и пул-токенами
После Shapella сервисы стейкинга получили нормальные «инструменты возврата» — это отразилось на дизайне LST (liquid staking tokens):
- модель «в один-клик» на вывод стала возможной: сервисы могут запросить выход части валидаторов и вернуть базовый ETH;
- баланс LST-пулов стал чувствительнее к рыночному спросу: арбитраж между «рыночной ценой LST» и «чистой стоимостью» стал быстрее сходиться;
- риски операторов/протоколов — в управлении очередями, газом, временными лагами и операционными ошибками.
Чтобы не перегружать эту статью, детали механики LST и рынок «ликвидного стейкинга» выносим в профильный термин: Liquid Staking.
Влияние на сеть и комиссионную экономику
Газ и производительность. Shanghai включил точечные оптимизации (теплый COINBASE, PUSH0, initcode-тарификация), которые улучшают экономику вызовов и развёртывания. Это не «магический» тюнинг TPS, но снижает издержки в ряде паттернов (особенно для провайдеров, которые часто обращаются к COINBASE или плотной генерации байткода).
Безопасность. Ограничения на количество обработок в слот, регулирование выхода валидаторов и автоматизация «частичных» выплат балансируют стабильность Beacon Chain и свободу участников.
Опыт пользователя. Для «обычных» держателей ETH Shapella сделал рынок понятнее: «положил — получаешь награды — можешь забрать награды — можешь вернуть весь депозит». Это улучшает доверие к стейку как к классу доходности.
Сравнение с The Merge и дальнейшие форки
The Merge (переход на PoS) включил новый механизм консенсуса и отключил PoW, но не открывал выводы. Shapella дополнил конструкцию, дав выводы и дев-оптимизации. В последующих апгрейдах протокол двигался дальше (данные/блоб-транзакции, улучшения экономик L2, консенсусные накопители истории и т. п.), но Shapella останется «точкой», где PoS-жизненный цикл стал полноценным.
Практические сценарии (для читателей 24k)
1) Частичный «кэш-аут» наград. Если вы валидируете «в плюс» к 32 ETH — протокол периодически будет переводить излишек на L1; продумайте, куда начисления приходят (self-custody/кастоди). 2) Полный выход. Если нужно закрыть позицию — инициируйте exit, дождитесь статуса withdrawable, затем протокол переведёт всё на адрес вывода. Учитывайте очередь и лимиты на слот. 3) Пулы/сервисы. Согласуйте SLA возврата, опишите клиенту «горизонт ожидания» и списание комиссий. 4) Разработчики. После Shapella учитывайте, что баланс аккаунта может измениться без пользовательской транзакции (из-за системных переводов по выводам).
Часто задаваемые вопросы (FAQ)
Чем «частичный» вывод отличается от «полного»? Частичный — переводит лишь награды сверх 32 ETH и валидатор остаётся активным. Полный — валидатор сначала выходит из набора, затем получает весь депозит + награды.
Как включить частичные выводы? Нужны креденшалы формата 0x01 (адрес L1). Если у вас 0x00 (BLS), отправьте сообщение о смене. См. Withdrawal Credentials.
Сколько ждать полного вывода? Зависит от очереди на выход и лимита обработок в слот. В спокойные периоды — часы/дни; при больших волнах выходов — дольше.
Я LST-держатель, что это меняет? Повышает ликвидность: провайдеры могут «обналичивать» базовый ETH, выстраивая более прямую связь между ценой LST и базовым активом. Подробности — Liquid Staking.
Нужно ли что-то делать дApp-разработчикам? Главное — не полагаться на SELFDESTRUCT и помнить, что баланс адресов может пополняться системно. Если ваш софт мониторит «входящие события», учтите, что выводы не сопровождаются пользовательской tx.