Примерно в середине этого года Ethereum, второй по величине блокчейн в денежном выражении, с активами на сотни миллиардов долларов, зависящими от его работы, перейдет от алгоритма консенсуса Proof-of-Work, обеспечивающего безопасность системы сегодня. , к системе Proof-of-Stake завтрашнего дня — процедуре, которую многие описывают как замену двигателя самолета во время полета. Ethereum ни при каких обстоятельствах не может прекратить производство действительных блоков.

В отличие от большинства блокчейнов, например, Биткойн, сообщество разработчиков Эфириума, поощряемое Фондом Эфириума (EF) и многими видными деятелями сообщества, договорилось о разработке нескольких версий клиентского программного обеспечения, реализующего протокол Доказательства. Блокчейн консенсуса of Stake, часто называемый Ethereum 2.0. Различные версии клиентского программного обеспечения разделены языком программирования и отдельными командами, разрабатывающими их.

После слияния будет два типа узлов

Переход будет представлять собой слияние, часто называемое просто The Merge, между сегодняшними узлами сети Ethereum, среди которых подмножество функционирует как майнеры, и узлами, управляющими так называемой цепочкой маяков, которая уже запущена и работает с декабря 2020 года. При этом будет разделение обязанностей узлов. Сегодня узлы выполняют как выполнение транзакций, так и проверку этих же транзакций.

После слияния будет два типа узлов: один тип будет представлять виртуальную машину Ethereum, EVM, пользователям и смарт-контрактам, выполнять транзакции и отправлять их на узлы валидации для их проверки. Узлы выполнения в цепочке выполнения в основном будут выполнять те же обязанности, что и сейчас, за исключением того, что о проверке будут заботиться ноды-валидаторы в цепочке консенсуса.

Слияние
Слияние

Два типа клиентов имеют общий код, поскольку они разработаны на одном и том же языке программирования, а клиенты выполнения были немного обновлены, чтобы приспособиться к слиянию. Большинство частей исполняемого клиента, таких как EVM, можно использовать повторно с небольшими изменениями. В конце концов, исполняющие клиенты могут вообще отказаться от тех частей кода, которые выполняют проверку в существующей цепочке Proof-of-Work.

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

66% на одном клиенте могут означать окончание игры

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

Справедливо спросить, почему это не так, скажем, с Биткойном. Причина в том, что протокол Биткойн и его реализация очень просты по сравнению с протоколом Эфириума. Эфириум — гораздо более сложная машина, на порядок больше, чем Биткойн, и дополнительная сложность по своей природе означает более высокий риск уязвимостей и больше поверхностей для атак.

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

Не вдаваясь в подробности того, как разные дистрибутивы могут по-разному влиять на работу сети, достаточно сказать, что если серьезная ошибка поражает клиента с менее чем ⅓ мощности стейкинга, то никакого вреда не наносится. Сеть будет продолжать работать без сбоев. Ошибка будет исправлена, и все вернется на круги своя.

Если то же самое происходит с клиентом, у которого от ⅓ до ½ мощности стейкинга, то это немного серьезнее, но пользователи этого не заметят. Об этом позаботятся автоматические механизмы разного рода. Если серьезная ошибка столкнется с клиентом с более чем ½ мощности стекинга, то автоматически будет запущено множество механизмов, которые в конечном итоге исправят ситуацию, но в сети возникнут осложнения и нарушения, и это повлияет на пользователей.

Однако, если ошибка возникает в клиенте, который использует более ⅔ мощности ставок, игра, по сути, окончена. У глючных клиентов есть сверхбольшинство и вся мощь, которая с ним связана, и глючная цепочка будет дорабатываться. По сути, все клиенты без ошибок могут либо навсегда разделить цепочку, и в этом случае у нас будет два Ethereum, либо присоединиться к цепочке ошибок и жить с тем, что вызвала ошибка.

Читателям, заинтересованным в чтении деталей, настоятельно рекомендуется прочитать jmcook. статья ETH на Mirror.

Подавляющее большинство на Prysm, не идеальная ситуация

На сегодняшний день около ⅔ стейкинговой мощности сети использует клиентскую реализацию Prysm, разработанную Prysmatic Labs. Это, мягко говоря, не идеальная ситуация на тот случай, если в клиенте Prysm окажется ошибка, и эта ошибка может быть использована таким образом, что приведет к сбою консенсуса в сети. Справедливости ради, такой сценарий маловероятен, но тем не менее ненулевой.

Другими клиентами на рынке являются Lighthouse, Teku, Nimbus, Grandine и Loadstar. Из них Grandine и Loadstar имеют очень маленькую долю рынка, значительно ниже 1%. Grandine — единственная, опубликованная под лицензией с закрытым исходным кодом.

Распределение консенсус-клиентов на момент публикации показано на рисунке ниже. Как читатель может видеть, доминирование Prysm далеко за пределами удовлетворительного, но чуть ниже критического уровня ⅔. Для получения актуальной информации и ресурсов посетите clientdiversity.org.

Распределение клиентов по цепочке маяков.
Распределение клиентов по цепочке маяков.

Справедливый вопрос: почему клиент Prysm настолько доминирует; должна быть какая-то причина, по которой люди и организации, управляющие узлами валидатора, выбрали Prysm? Чтобы ответить на этот вопрос, CryptoSlate обратился к Мариусу ван дер Вейдену, основному разработчику Ethereum, работающему над клиентом Geth (Golang Ethereum) Proof-of-Work.

Правила Prysm из-за преимущества первопроходца

«Я думаю, что основными причинами успеха Prysms являются преимущество первопроходца, инструменты и golang. Prysm был первой реализацией прототипа клиента маяка. Таким образом, они могли начать оптимизировать свой клиент на ранней стадии, и у них было больше времени для создания дополнительных инструментов. (например, веб-интерфейс) и хорошую документацию».

«Еще одним большим преимуществом является язык программирования, используемый prysm — golang — который достаточно эффективен и очень прост для чтения и разработки. Go-ethereum также написан на golang, поэтому разработчики, знакомые с Geth, также могут легко понять и проверить prysm». — говорит ван дер Вийден.

Последнее важно, так как отсутствие равномерного распределения между клиентами выполнения Proof-of-Work еще хуже, чем с консенсусными клиентами. На момент написания «рыночная доля» Geth составляет более 85%. Однако в мире после слияния это не такая большая проблема, поскольку исполнительные узлы просто выполняют транзакции, но они не обеспечивают безопасность, как это делают согласованные клиенты.

Распространение клиентов Proof-of-Work.
Распространение клиентов Proof-of-Work.

«В настоящее время Go-ethereum имеет подавляющее большинство в 85% на уровне выполнения. Это будет немного лучше после слияния, поскольку стейкеры могут запускать несколько клиентов уровня выполнения с одним клиентом-маяком, чтобы всегда попадать в правильную цепочку. — говорит ван дер Вийден.

Крупные биржи являются крупными вкладчиками Prysm

Теперь не все операторы узлов равны. Напротив, некоторые операторы узлов поставили гораздо больше эфира, чем другие, и, таким образом, они обладают большей долей участия, чем их меньшие коллеги. Крупнейшими игроками являются так называемые стейкинг-сервисы и/или пулы, предоставляющие возможность стейкинга эфира в цепочке маяков без необходимости выкашливать 32 ETH, и если бы не все основные стейкинг-сервисы, на которых работает клиент Prysm. , проблема разнообразия клиентов не будет проблемой.

Эти службы ставок имеют знакомые названия: Coinbase, Kraken и Binance. Да, то же самое.

На сегодня в цепочке маяков насчитывается 278 407 узлов валидаторов, и только Coinbase с ее 48 864 валидаторами (17,5%) и 92,4% валидаторов, использующих Prysm, вносит 24,3% проблемы разнообразия.

Когда CryptoSlate связался с Coinbase, чтобы спросить, как они относятся к проблеме разнообразия клиентов, вкладу компании в нее и что, если что-либо, Coinbase сделает, чтобы решить эту проблему, представитель Coinbase по связям с общественностью Jaclyn Sales указал на ветку твита от Облако Coinbase от 22 февраля.

Вклад Prysm от Coinbase.
Вклад Prysm от Coinbase.

В треде Coinbase в основном указывает на безопасность как на мотивацию выбора запуска Prysm.

«Coinbase использует несколько провайдеров стейкинга Eth2, чтобы максимизировать безопасность и распространение клиентов. При запуске стейкинга Eth2 Coinbase оценила существующих клиентов и провайдеров, чтобы максимизировать эти характеристики, что означало начать с Prysm, потому что это был единственный жизнеспособный клиент, поддерживающий удаленных подписантов».

«Удаленные подписанты позволяют валидаторам генерировать и хранить ключи в изолированных средах вместо того, чтобы хранить их на самом валидаторе, что значительно повышает безопасность валидаторов eth2 на Coinbase».

Coinbase: у Prysm были лучшие функции безопасности

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

«В команде Coinbase Cloud мы обслуживаем Coinbase Retail, а также многих других клиентов. Мы поддерживали Lighthouse почти год и работали с @sigp_io над добавлением поддержки удаленных подписывающих лиц в Lighthouse в конце прошлого года», — продолжает твит.

Вклад Kraken`s Prysm.
Вклад Kraken`s Prysm.

Что касается Kraken, с количеством валидаторов 30 847 (11%), использованием Prysm 94,9% и общим вкладом Prysm 15,7%, Брайан Хоффман, старший менеджер по продуктам Kraken, отвечает в электронном письме, что:

«Когда мы впервые построили нашу модель ставок ETH2, мы нашли Prysm наиболее подходящим решением благодаря ее зрелости и стабильности».

«После обсуждений с Ethereum Foundation, как Kraken, так и Staked также начали развертывание новых валидаторов, построенных на Teku, а также перенос некоторых существующих. Таким образом, мы можем увеличить разнообразие нашего клиентского программного обеспечения для валидаторов и предложить клиентам даже более устойчивый сервис для ставок в сети».

Вклад Binance Prysm.
Вклад Binance Prysm.

Binance с 24 410 валидаторами (8,7%), использованием Prysm на уровне 76,6% и общим вкладом Prysm в 10% не ответила на запрос CryptoSlate о комментариях.

Третий по величине сервис ставок, Lido, с 50 274 ​​валидаторами (18%), имеет в два раза больше валидаторов, чем Binance, но использование Prysm составляет как минимум «всего» 42,8%, и поэтому Lido способствует доминированию Prysm на 11,5%.

Вклад Lido`s Prysm.
Вклад Lido`s Prysm.

Децентрализованный Rocket Pool лидирует

Есть, конечно, исключения, но их очень мало. Децентрализованный пул ставок Rocket Pool, например, имеет количество валидаторов 2100 (0,75%), при этом только 10,6% валидаторов используют Prysm, в результате чего Rocket Pool вносит всего 0,12% в доминирование Prysm.

Вклад Prysm от Rocket Pool.
Вклад Prysm от Rocket Pool.

В целом, четыре основных стейкинг-сервиса и пула имеют возможность решить ситуацию, и, с другой стороны, между стейкинг-сервисами, а также между стейкинг-сервисами и Ethereum Foundation продолжаются дискуссии. По словам разработчика ядра Ethereum Мариуса ван дер Вейдена, ход этих дискуссий «хороший».

«Да, об этом говорят как внутри компании, так и за ее пределами. Я думаю, что крупные стейкинг-пулы работают над переключением части своей инфраструктуры на других клиентов. Им нужно обновить свои метрики и инфраструктуру мониторинга для новых клиентов, поэтому это может занять больше времени. чтобы они переключились с домашних валидаторов», — говорит ван дер Вийден.

По словам ван дер Вейдена, для оператора узла нет ничего сложного и рискованного в смене клиентского программного обеспечения.

«Все основные реализации достаточно хорошо протестированы и поддерживаются. Если пользователь уже делает ставки, ему следует закрыть и сохранить свою базу данных слэшинга, если у него нет базы данных слэшинга, ему следует подождать пару минут (> 7 минут). ) между закрытием старого клиента и запуском нового клиента. Единственные трудности могут возникнуть для более крупных участников, поскольку некоторые клиенты предоставляют разные API, чем другие», — говорит ван дер Вийденс.

Безопасно ли продолжать слияние?

Поскольку до слияния осталось всего несколько месяцев, сообществу Ethereum, вероятно, придется смириться с далеко не идеальным распределением клиентов; вероятность того, что доминирование Prysm упадет ниже 33%, следует рассматривать как очень маленькую. Это, однако, не мешает Мариусу ван дер Вейдену и другим разработчикам ядра Ethereum продолжать слияние.

«Я думаю, что это безопасно. Шансы на провал консенсуса, на мой взгляд, очень малы. У нас есть отличная инфраструктура тестирования и фаззинга, которая работает постоянно, чтобы найти различия между клиентами. Даже если произойдет провал консенсуса, мы будем способны быстро и легко выпускать новые выпуски и разрешать форки».

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

Источник