Post
This post by its id.
https://api.web3aggregator.io/api/v1/posts/14708 curl -H "Authorization: Bearer $W3A_API_KEY" 'https://api.web3aggregator.io/api/v1/posts/14708'
Needs a key: W3A_API_KEY in your environment.
The API gives this message alone: an album's other parts are posts of their own there, linked by album.
API docsEnshrined Proposer-Builder Separation
Ну что, начинаем погружение в Glamsterdam с фаворита: EIP-7732: Enshrined Proposer-Builder Separation.
1. Разделяет блок на части консенсуса и исполнения
2. Пропоузер напрямую выбирает билдера блока
3. Вводится новая сущность
Как транзакция живет сейчас?
1️⃣ Пользователь и транзакции
Пользователь подписывает транзакцию своим приватным ключом и отправляет ее через RPC. Дальше у нее два пути.
Первый — публичный мемпул, где её видят все ноды и все MEV-боты.
Второй — приватный канал (Flashbots Protect или MEV Blocker). В этом случае транзакция уходит напрямую нескольким билдерам и защищена от сэндвичей. Сейчас заметная доля транзакций идёт именно приватно.
2️⃣ Searcher => Builder
Серчеры ищут MEV среди транзакций: арбитраж, ликвидации, фронтраны. Найденное они упаковывают в бандлы (упорядоченная группа транзакций) и отправляют билдерам.
Билдер в течение всего слота непрерывно пересобирает лучший блок из мемпула, бандлов.
Билдер готовит ставку (по сути — взятка за место в блоке) пропозеру, чтобы его блок был принят и прокинут дальше к валидаторам. Обычно вставляет взятку последней транзакцией. Выглядит, как перевод на
4️⃣ Relay
Это доверенный посредник между билдерами и пропозерами. Он получает от билдеров полные блоки и симулирует их: проверяет валидность.
Релей отдаёт пропозеру только заголовок с его взяткой. Сам payload (список транзакций) держит у себя, чтобы пропозер не мог украсть MEV билдера.
4️⃣ Proposer (MEV boost)
Пропоузер - это первая, официальная часть самого блокчейна Ethereum. Это не сторонняя надстройка, а ключевая роль внутри консенсуса Proof-of-Stake (PoS).
По сути — это валидатор, который в данный момент выбран для предложения блока. Расписание того, кто будет пропозером видно как минимум на эпоху вперёд.
Через платформу MEV boost пропоузер ждет от релееров заголовки блоков без payload (без транзакций).
Он мог бы по старинке собрать блок из мемпула, но ему нужно извлечь как можно больше MEV. Поэтому он ждет заголовки и взятки от релееров, а затем выбирает самый вкусный блок.
5️⃣ Проверка и аттестация
Пропозер подписывает «слепой» блок (только заголовок) и отдаёт его релею. Релей подставляет транзакции и публикует полный блок. Дальше валидаторы из комитета слота проверяют его и голосуют (аттестуют).
6️⃣ Финализация
Если все ок, то пропоузер, в момент исполнения блока получает свою награду (priority fees + ту самую жирную взятку от билдера, которой с ним поделились серчеры).
После того, как ⅔ стейка проголосовало со следующим чекпоинтом блок считается финализированным.
Что здесь может быть не так?
Например централизация: активных билдеров порядка 5-10, совсем недавно 80-85% всех блоков собиралось двумя билдерами — BeaverBuild и Titan Builder. Картина динамичная, но ситуация все равно печальная. Самую свежую ситуацию можно посмотреть на relayscan.io.
А релееров у нас порядка 6-8. Из них четыре игрока контролируют почти все. Ultra Sound, Titan, bloXroute (две версии) и Agnostic Relay. Кто-то из них может опускаться, подниматься, но суть такая же, как и с билдерами.
Самое интересное, что они сейчас ничего не зарабатывают. Это благотворительность от больших игроков. Они вынуждены быть прослойкой, которой могут доверять и пропоузеры и билдеры, чтобы все работало.
Более того, у титана и билдер, и релеер, доверяет сам себе или все доверяют титану?😅
И это интересно понимать, на фоне, когда ругают другие чейны за их централизацию валидаторов. В Ethereum с валидаторами проблем нет — их сотни тысяч, но проблему я обозначил.
Как транзакция будет жить после Glamsterdam?
Схема, описанная выше, меняется фундаментально. Билдер теперь не внешний сервис, а сущность внутри
Билдер вносит депозит, минимум — 1 ETH. После этого он становится частью Ethereum. Для него нет очереди входа и выхода, как у валидаторов.
Стейк билдера не голосует, он работает как залог: из него протокол списывает оплату пропозеру. Отсюда простое правило: билдер не может предложить взятку пропоузеру больше своего баланса.
В Glamsterdam у транзакции будет совсем другая жизнь.
1️⃣ Пользователь и транзакции
На этом уровне все по-прежнему: пользователь подписывает транзакцию и отправляет ее в сеть.
2️⃣ Proposer
Заранее известный пропоузер, который назначен королем танцпола, публикует данные о себе для билдеров. Так же, как раньше он делал это для релееров. Газ-лимит на блок и свой адрес для получения комиссии.
3️⃣ Builder
Билдеры собирают блоки из бандлов и доступных транзакций из мемпула, формируют заголовок блока и фиксируют взятку пропозеру. После этого отправляют пропозеру: взятку,
4️⃣ Proposer публикует блок в beacon chain
Пропоузер выбирает самую выгодную взятку и кладёт её в свой beacon block. Этот блок максимально легкий, потому что в нем нет транзакций и блобов. В момент обработки этого блока сумма взятки списывается с баланса билдера. Если пропозер хочет строить сам, он ставит
5️⃣ Аттестация
Валидаторы голосуют за beacon block, проверив только консенсусную часть. Исполнять транзакции на этом шаге не нужно, поэтому это выполняется быстро.
6️⃣ Builder раскрывает payload
Билдер видит, что его блок прошел аттестацию и раскрывает payload вместе с блобами.
Раскрывать стоит именно после аттестаций: если блок пропозера опоздал или его реорганизовали, билдер может ничего не раскрывать и не платит.
7️⃣ PTC голосует (512 валидаторов)
PTC (Payload Timeliness Committee) — это 512 валидаторов, которые голосуют за раскрытый payload. Причем у них нет задачи его прогонять, они только проверяют своевременность его прихода на проверку и что hash совпадает с тем, что был отправлен на проверку в консенсусе. Также проверяется доступность блобов.
Если payload принят, списанная сумма с билдера передается пропозеру. Если payload не раскрыт билдером, но beacon block набрал достаточно веса аттестаций, пропозеру всё равно отправят взятку.
Получается двойная страховка и билдер не платит только если блок не принят вообще.
Также важно, что дальше процесс финализации не меняется, меняется только процесс постройки и проверки блока внутри слота.
Вопрос: а кто же проверяет payload?
После того, как payload раскрывается PTC не проверяет payload, поэтому это делает следующий пропоузер и у него есть на это 6 сек. Также payload проверяют и валидаторы нового слота до момента, пока новые блоки формируются и не наступит время их аттестации. Это 9 сек.
Вывод
ePBS решает сразу две задачи, которые на первый взгляд не связаны.
Первая — доверие и централизация. Сегодня блоки строятся катастрофически малым количеством внешних билдеров. А честность обмена блоками между билдерами и пропозером гарантирует горстка релеев, которые не имеют экономического стимула от слова совсем.
После Glamsterdam билдер становится участником протокола со стейком, а честность и прозрачность обеспечивают правила консенсуса и комитет PTC: пропозер получает оплату, даже если билдер подвёл, а своевременно раскрытый payload честного билдера гарантированно попадает в цепочку.
Вторая — масштабирование. Блок делится на консенсусную часть и исполнительную, при этом тяжёлая проверка транзакций переезжает из узкого окна в 4 секунды в окно 6–9 секунд. Именно это, вместе с block-level access lists (EIP-7928), позволяет перейти к более высоким лимитам на газ.
P.S. Насколько ситуация с билдерами улучшится — мне пока не понятно. Те же самые два билдера продолжат работу по постройке блока, да, теперь им надо стейкать ETH, но у них есть законный механизм по придержанию раскрытия payload. Что может привести к появлению большого количества пустых слотов, что для обывателя выльется в увеличенное время ожидания исполнения его транзакции.
#павел_найданов
🤟 Сайт | ТГ-канал | Наш чат
Ну что, начинаем погружение в Glamsterdam с фаворита: EIP-7732: Enshrined Proposer-Builder Separation.
1. Разделяет блок на части консенсуса и исполнения
2. Пропоузер напрямую выбирает билдера блока
3. Вводится новая сущность
builder, а у валидаторов появляется новая обязанность: голосовать за своевременность payloadКак транзакция живет сейчас?
1️⃣ Пользователь и транзакции
Пользователь подписывает транзакцию своим приватным ключом и отправляет ее через RPC. Дальше у нее два пути.
Первый — публичный мемпул, где её видят все ноды и все MEV-боты.
Второй — приватный канал (Flashbots Protect или MEV Blocker). В этом случае транзакция уходит напрямую нескольким билдерам и защищена от сэндвичей. Сейчас заметная доля транзакций идёт именно приватно.
2️⃣ Searcher => Builder
Серчеры ищут MEV среди транзакций: арбитраж, ликвидации, фронтраны. Найденное они упаковывают в бандлы (упорядоченная группа транзакций) и отправляют билдерам.
Билдер в течение всего слота непрерывно пересобирает лучший блок из мемпула, бандлов.
Билдер готовит ставку (по сути — взятка за место в блоке) пропозеру, чтобы его блок был принят и прокинут дальше к валидаторам. Обычно вставляет взятку последней транзакцией. Выглядит, как перевод на
fee_recipient пропозера. 4️⃣ Relay
Это доверенный посредник между билдерами и пропозерами. Он получает от билдеров полные блоки и симулирует их: проверяет валидность.
Релей отдаёт пропозеру только заголовок с его взяткой. Сам payload (список транзакций) держит у себя, чтобы пропозер не мог украсть MEV билдера.
4️⃣ Proposer (MEV boost)
Пропоузер - это первая, официальная часть самого блокчейна Ethereum. Это не сторонняя надстройка, а ключевая роль внутри консенсуса Proof-of-Stake (PoS).
По сути — это валидатор, который в данный момент выбран для предложения блока. Расписание того, кто будет пропозером видно как минимум на эпоху вперёд.
Через платформу MEV boost пропоузер ждет от релееров заголовки блоков без payload (без транзакций).
Он мог бы по старинке собрать блок из мемпула, но ему нужно извлечь как можно больше MEV. Поэтому он ждет заголовки и взятки от релееров, а затем выбирает самый вкусный блок.
5️⃣ Проверка и аттестация
Пропозер подписывает «слепой» блок (только заголовок) и отдаёт его релею. Релей подставляет транзакции и публикует полный блок. Дальше валидаторы из комитета слота проверяют его и голосуют (аттестуют).
6️⃣ Финализация
Если все ок, то пропоузер, в момент исполнения блока получает свою награду (priority fees + ту самую жирную взятку от билдера, которой с ним поделились серчеры).
После того, как ⅔ стейка проголосовало со следующим чекпоинтом блок считается финализированным.
Что здесь может быть не так?
Например централизация: активных билдеров порядка 5-10, совсем недавно 80-85% всех блоков собиралось двумя билдерами — BeaverBuild и Titan Builder. Картина динамичная, но ситуация все равно печальная. Самую свежую ситуацию можно посмотреть на relayscan.io.
А релееров у нас порядка 6-8. Из них четыре игрока контролируют почти все. Ultra Sound, Titan, bloXroute (две версии) и Agnostic Relay. Кто-то из них может опускаться, подниматься, но суть такая же, как и с билдерами.
Самое интересное, что они сейчас ничего не зарабатывают. Это благотворительность от больших игроков. Они вынуждены быть прослойкой, которой могут доверять и пропоузеры и билдеры, чтобы все работало.
Более того, у титана и билдер, и релеер, доверяет сам себе или все доверяют титану?😅
И это интересно понимать, на фоне, когда ругают другие чейны за их централизацию валидаторов. В Ethereum с валидаторами проблем нет — их сотни тысяч, но проблему я обозначил.
Как транзакция будет жить после Glamsterdam?
Схема, описанная выше, меняется фундаментально. Билдер теперь не внешний сервис, а сущность внутри
BeaconState в реестре builders. А релееры перестают быть обязательной прослойкой между билдером и пропоузером.Билдер вносит депозит, минимум — 1 ETH. После этого он становится частью Ethereum. Для него нет очереди входа и выхода, как у валидаторов.
Стейк билдера не голосует, он работает как залог: из него протокол списывает оплату пропозеру. Отсюда простое правило: билдер не может предложить взятку пропоузеру больше своего баланса.
В Glamsterdam у транзакции будет совсем другая жизнь.
1️⃣ Пользователь и транзакции
На этом уровне все по-прежнему: пользователь подписывает транзакцию и отправляет ее в сеть.
2️⃣ Proposer
Заранее известный пропоузер, который назначен королем танцпола, публикует данные о себе для билдеров. Так же, как раньше он делал это для релееров. Газ-лимит на блок и свой адрес для получения комиссии.
3️⃣ Builder
Билдеры собирают блоки из бандлов и доступных транзакций из мемпула, формируют заголовок блока и фиксируют взятку пропозеру. После этого отправляют пропозеру: взятку,
block_hash будущего payload и коммитменты блобов. Сами транзакции и блобы остаются у билдера.4️⃣ Proposer публикует блок в beacon chain
Пропоузер выбирает самую выгодную взятку и кладёт её в свой beacon block. Этот блок максимально легкий, потому что в нем нет транзакций и блобов. В момент обработки этого блока сумма взятки списывается с баланса билдера. Если пропозер хочет строить сам, он ставит
BUILDER_INDEX_SELF_BUILD с нулевой суммой.5️⃣ Аттестация
Валидаторы голосуют за beacon block, проверив только консенсусную часть. Исполнять транзакции на этом шаге не нужно, поэтому это выполняется быстро.
6️⃣ Builder раскрывает payload
Билдер видит, что его блок прошел аттестацию и раскрывает payload вместе с блобами.
Раскрывать стоит именно после аттестаций: если блок пропозера опоздал или его реорганизовали, билдер может ничего не раскрывать и не платит.
7️⃣ PTC голосует (512 валидаторов)
PTC (Payload Timeliness Committee) — это 512 валидаторов, которые голосуют за раскрытый payload. Причем у них нет задачи его прогонять, они только проверяют своевременность его прихода на проверку и что hash совпадает с тем, что был отправлен на проверку в консенсусе. Также проверяется доступность блобов.
Если payload принят, списанная сумма с билдера передается пропозеру. Если payload не раскрыт билдером, но beacon block набрал достаточно веса аттестаций, пропозеру всё равно отправят взятку.
Получается двойная страховка и билдер не платит только если блок не принят вообще.
Также важно, что дальше процесс финализации не меняется, меняется только процесс постройки и проверки блока внутри слота.
Вопрос: а кто же проверяет payload?
После того, как payload раскрывается PTC не проверяет payload, поэтому это делает следующий пропоузер и у него есть на это 6 сек. Также payload проверяют и валидаторы нового слота до момента, пока новые блоки формируются и не наступит время их аттестации. Это 9 сек.
Вывод
ePBS решает сразу две задачи, которые на первый взгляд не связаны.
Первая — доверие и централизация. Сегодня блоки строятся катастрофически малым количеством внешних билдеров. А честность обмена блоками между билдерами и пропозером гарантирует горстка релеев, которые не имеют экономического стимула от слова совсем.
После Glamsterdam билдер становится участником протокола со стейком, а честность и прозрачность обеспечивают правила консенсуса и комитет PTC: пропозер получает оплату, даже если билдер подвёл, а своевременно раскрытый payload честного билдера гарантированно попадает в цепочку.
Вторая — масштабирование. Блок делится на консенсусную часть и исполнительную, при этом тяжёлая проверка транзакций переезжает из узкого окна в 4 секунды в окно 6–9 секунд. Именно это, вместе с block-level access lists (EIP-7928), позволяет перейти к более высоким лимитам на газ.
P.S. Насколько ситуация с билдерами улучшится — мне пока не понятно. Те же самые два билдера продолжат работу по постройке блока, да, теперь им надо стейкать ETH, но у них есть законный механизм по придержанию раскрытия payload. Что может привести к появлению большого количества пустых слотов, что для обывателя выльется в увеличенное время ожидания исполнения его транзакции.
#павел_найданов
🤟 Сайт | ТГ-канал | Наш чат