Оригинальное название: «Об аттестациях, распространении блоков и играх по времени».

Написал: Nero_eth

Составил: Тиа, Techub News

В настоящее время игры с выбором времени для предложения очень распространены, и этот феномен анализируется во многих исследованиях.

Эта статья познакомит вас с эволюцией игры на выбор времени предлагающего и проанализирует ее влияние на свидетелей. Изучая примеры операторов узлов в Lido, Coinbase и Kiln, мы углубимся в игру с выбором времени для предложения блоков и ее влияние на консенсус Ethereum.

По состоянию на август 2024 года рынок блочного строительства в значительной степени передан на аутсорсинг: около 90% блоков строятся строителями блоков Mevboost. Из них Titan Builder и Beaverbuild строят примерно 80% блоков.

Kiln — один из основных субъектов, управляющих игрой по времени, задерживая предложения блоков на 3–3,5 секунды в течение одного слота.

В текущей среде mevboost распространение блоков в основном осуществляется через ретрансляторы. Хотя предлагающий по-прежнему будет распространять блок после получения его от ретранслятора, ретрансляторы обычно имеют лучшие сетевые соединения и, следовательно, могут завершить распространение быстрее. Однако время по-прежнему контролируется предлагающим, который может задерживать вызовы getHeader, чтобы обыграть время.

Эта диаграмма показывает эволюцию игры на время. Мы видим, что со временем блоки, предложенные валидаторами Kiln, относительно отстают в пределах слота.

Это оказывает влияние на сеть: блоки, предложенные авторами Kiln, имеют значительно больше голосов за пропущенные/неправильные заголовки блоков.

Предыдущий анализ показал, что чем дольше ожидание, тем выше ожидаемое количество пропущенных голосов за заголовок блока («80% свидетелей происходят на 5-й секунде слота»). Килн предлагает блоки очень поздно, в результате чего некоторые свидетели пропускают их и вместо этого голосуют за родительский блок. На каждый слот будет выделено примерно 32 000 валидаторов, что приведет к примерно 10% неправильному голосованию блоков.

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

Для ранних блоков мы наблюдали характерную U-образную форму в шаблонах голосования для Lido и Coinbase, что может быть связано с разной географией или клиентским программным обеспечением. Напротив, Kiln показывает четкий пик, который немного отстает от первого пика Coinbase и Lido. Однако для более поздних блоков свидетели Килна также показывают U-образный узор.

Когда блок впервые появляется в слоте через 4 секунды (поскольку это P2P-сеть, каждый узел получает блок в разное время), свидетель Lido становится свидетелем на 2 секунды раньше, чем свидетель Kiln или Coinbase. Эта закономерность не обязательно указывает на то, что Килн реализует «личную стратегию». Вместо этого это может быть связано с различиями в клиенте или географическом местоположении.

Кто на кого повлиял?

На рисунке ниже мы сравниваем производительность операторов узлов разных поставщиков. Например, зеленый участок над y=1 указывает на то, что свидетели Лидо с большей вероятностью пропустят голоса заголовков блоков, когда Килн предлагает блок в качестве инициатора. Однако, когда Лидо предлагает предложение, свидетели Лидо наиболее своевременно блокируют свидетельства. Пунктирная линия 1 представляет среднюю долю пропущенных голосов за заголовок блока среди всех субъектов, выступающих в качестве предлагающих. Столбец ниже 1 означает, что конкретный объект пропустил меньше голосов за заголовок блока при объединении с соответствующим предлагающим по сравнению со средним показателем.

Примечательно, что операторы узлов работают лучше всего при обработке предложенных ими блоков.

Краткое изложение того, что мы увидели:

  • Большинство операторов работают относительно стабильно, когда другие операторы предлагают блоки в качестве предлагающих.

  • Figment, Lido, Kraken и EtherFi показали плохие результаты, когда Kiln предлагал блоки в качестве предлагающего.

  • Только Kiln и Binance работают лучше, когда Kiln предлагает блоки в качестве предлагающего.

Килн отлично справляется с ролью свидетеля. Предварительный анализ показывает, что Kiln превосходит других, когда дело касается высокопроизводительных валидаторов. Более подробную информацию о производительности Kiln’s Witness можно найти в этом анализе.

Но Килн вызвал давление. Теперь мы знаем, что предложенные Килном блокировки оказывали давление на других свидетелей, но не на свидетелей Килна.

В настоящее время трудно объяснить «Как». Одно из возможных объяснений заключается в том, что валидаторы Kiln высоко централизованы, работают в одном месте или имеют очень плотные одноранговые соединения. Другой причиной может быть скоординированное поведение валидаторов, подключающих их через собственную одноранговую/частную сеть или через другие дополнительные уровни связи. Последний считается более централизованным по своей природе, поскольку в нем больший упор делается на эффект масштаба.

Мы можем наблюдать аналогичную картину, когда смотрим на (правильное и своевременное) время аттестации Lido и Coinbase, когда каждый из них предлагал блок в качестве предлагающего.

Интересно, что Kiln разработала U-образное распределение от 3,8 до 6,1 секунды для своих поздних блоков, в то время как у Lido был пик на 4,2 секунды, а у Coinbase — на плато слота на 4 секунде с небольшим пиком. через 6 секунд.

Предотвратите реорганизацию предложенных вами блоков.

Обратим внимание на реорганизованный блок. С точки зрения оператора узла, одна из стратегий может заключаться в том, чтобы никогда не голосовать за блок, который реорганизуется сам. Проще говоря: «Если предлагающий — я, никогда не голосуйте за родительский блок как заголовком блока».

В следующих разделах я буду использовать «локальный блок» для обозначения «самопредложенного блока».

На графике ниже показан процент свидетелей, проголосовавших за реорганизованный блок, по сравнению с теми, кто проголосовал за родительский блок. В красном разделе показан процент свидетелей, за которых организация проголосовала за реорганизацию блока.

Печь демонстрирует необычное поведение. В то время как большинство свидетелей операторов узлов честно голосуют за правильный заголовок блока вместо локального блока, свидетели Килна этого не делают. Более 10% свидетелей Kiln пытаются сохранить локальные блоки в цепочке, голосуя за них. Если такая стратегия будет принята, они могут понести убытки из-за голосования за неправильный заголовок блока. Однако в сообществе Ethereum на эти стратегии часто смотрят свысока: «Не играйте с консенсусом».

На этой диаграмме используются данные за 365 дней. Поэтому, если в течение прошлого года были реализованы какие-то сложные стратегии, доля красной части будет соответственно меньше.

Но как мы относимся к сотрудничеству на других уровнях?

Что касается сотрудничества свидетелей, мы, как сообщество, похоже, принимаем тот факт, что валидаторы, работающие на одном узле, голосуют за одни и те же контрольные точки.

Возможно, мы не захотим предпринимать какие-либо усилия по улучшению сотрудничества между валидаторами за пределами физических машин. Это должно быть что-то, что каждый может построить. Это сотрудничество может принимать различные формы:

  • Уровень 1 — Резервный механизм со статическим пирингом: обеспечивает центральный резервный/резервный узел для нескольких физических машин. Это также может быть автоматический выключатель, какая-нибудь особо отказоустойчивая машина, действующая как частный ретранслятор сообщений. В эту категорию также могут попасть настройки с улучшенными одноранговыми соединениями, частными сетями или аналогичными настройками.

  • Уровень 2 — Правила if-else: жестко закодированные правила, позволяющие дольше ждать в определенных слотах. Они будут установлены на нескольких физических машинах, что позволит им «взаимодействовать» на основе заранее определенных правил.

  • Уровень 3 — Ботнет: существует централизованный оракул, который связывается со всеми валидаторами и предоставляет контрольные точки голосов и временные метки, когда они должны быть опубликованы.

По моему мнению, последние две формы сотрудничества (уровни 2 и 3) проблематичны, и операторы узлов должны нести ответственность. Наконец, могут существовать серые зоны для политик, касающихся статического пиринга и частных сетей.

Такие настройки могут использоваться для запуска (вредоносных) политик, таких как:

  • Убедитесь, что разные контрольные точки никогда не голосуются на нескольких физических машинах.

  • Убедитесь, что вы никогда не голосуете за блок, который реорганизует ваше собственное предложение.

  • Сотрудничество, основанное на последовательных предложениях (честный клиент реорганизации (да/нет)).

  • Изучите показания стороны.

  • Не голосовать за партийный блок.

  • другой.

Говоря о сотрудничестве, важно различать два типа:

  • Совместное поведение происходит между валидаторами, работающими на одной физической машине.

  • Совместное поведение возникает в результате запуска одного и того же модифицированного клиентского программного обеспечения или использования одного и того же централизованного оракула.

Потенциальным решением против сложного совместного поведения валидаторов является EIP-7716: Штрафы за антикорреляцию, который предлагает корректировку штрафов на основе корреляции между валидаторами.