EIP-6110: помещаем депозиты валидаторов в блок
Чтобы стать валидатором, вы вносите депозит 32 ETH в контракт на слое исполнения — но консенсус-слой раньше узнавал об этом депозите, опрашивая и голосуя за состояние контракта: хрупкий танец «eth1-голосования», добавлявший ~12 часов до активации. EIP-6110 помещает депозиты прямо в блок, так что консенсус-слой их просто читает.
- Слияние (Merge) и маячная цепочка
- EIP-7002 (выводы, инициируемые со слоя исполнения)
Prague / Electra, май 2025. Стать валидатором начинается с простого действия: внести депозит 32 ETH в контракт депозитов — обычный контракт на слое исполнения. Но консенсус-слой не выполняет этот контракт; он работает на другой машине. Так как же он узнаёт, что депозит произошёл? Годами ответ был на удивление вычурным — консенсус-слой наблюдал за контрактом депозитов снаружи, опрашивая его состояние и заставляя валидаторов голосовать за то, что они увидели. Это работало, но было медленно и хрупко, а после того как Слияние сплавило два слоя в один блок, это перестало иметь хоть какой-то смысл. EIP-6110 убирает посредника. Давайте выведем его.
Проблема: консенсус-слой опрашивал и голосовал
Депозит живёт на слое исполнения, но только консенсус-слой может зарегистрировать нового валидатора. До 6110 этот разрыв перекрывался eth1-голосование (eth1 voting) Механизм, которым маячная цепочка узнавала о состоянии слоя исполнения до EIP-6110: валидаторы наблюдали за контрактом депозитов на безопасной «дистанции отставания» позади головы цепочки и голосовали, в течение периода голосования, за то, какое состояние контракта депозитов принять. Устойчиво к реоргам, но медленно и сложно. : валидаторы наблюдали за контрактом депозитов с консервативной дистанцией отставания от головы цепочки — достаточно далеко, чтобы реорг не мог его отменить, — а затем голосовали, в течение периода голосования, за то, какое состояние контракта депозитов принять. Только после завершения этого голосования депозиты допускались, а валидаторы вставали в очередь на активацию. Дистанция отставания плюс период голосования складывались примерно в полдня задержки, прежде чем цепочка вообще признавала ваш депозит.
→ Шаг 2: прекращаем наблюдать — читаем депозиты прямо из блока.
EIP-6110: депозиты становятся запросом блока
Исправление — сделать депозит частью самого блока. Когда контракт депозитов эмитирует депозит, EIP-6110 заставляет клиент исполнения собирать эти события и включать их в блок как новый запрос депозита (deposit request) Событие депозита, всплывающее прямо в блоке исполнения (как часть списка запросов блока). Консенсус-слой читает депозиты из блока, который уже обрабатывает, вместо опроса контракта депозитов и голосования за его состояние. — часть списка запросов блока. Консенсус-слой, который уже принимает и валидирует каждый блок исполнения, теперь просто читает депозиты из него. Без опроса, без дистанции отставания, без голосования. Поскольку депозит попадает в блок только если блок валиден, а блок становится каноническим только после финализации, безопасность от реоргов достаётся бесплатно от обычного консенсуса — того самого, что eth1-голосование городило вручную.
→ Шаг 3: депозит признаётся почти мгновенно.
Выигрыш: быстрая активация, единый унифицированный поток
Поскольку депозит теперь обрабатывается в тот же момент, что и его блок, долгая задержка eth1-голосования исчезает: признание падает с часов до минут (активация всё ещё проходит через очередь активации валидатора, но задержка обнаружения исчезла). Не менее важно, что EIP-6110 удаляет хрупкую, критичную для консенсуса подсистему — на одну вещь меньше, способную сломать цепочку. И это встраивает депозиты в тот же каркас запрос слоя исполнения (execution-layer request) Унифицированный механизм (EIP-7685), в котором слой исполнения эмитирует типизированные запросы в блоке — депозиты (6110), выводы (7002) и консолидации (7251), — которые консенсус-слой читает и по которым действует. Один каркас заменяет несколько кустарных мостов между слоями. , что и выводы EIP-7002, и консолидации EIP-7251: депозиты внутрь, выводы наружу, консолидации внутри — всё течёт через блок как запросы, всё читается консенсус-слоем одинаково.