Оригинальное название: «Об аттестациях, распространении блоков и играх по времени».
Написал: 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: Штрафы за антикорреляцию, который предлагает корректировку штрафов на основе корреляции между валидаторами.