Beacon Chain в Ethereum: что это, даты внедрения
Beacon Chain - это совершенно новый блокчейн Ethereum, основанный на алгоритме консенсуса Proof-of-Stake.
Запуск Beacon Chain выполнен 1 декабря 2020 года!
Beacon Chain в первую очередь отвечает за достижение консенсуса по состоянию системы между всеми узлами сети, участвующими в протоколе. Это можно назвать позвоночником, который поддерживает всю новую систему Эфириума 2.0.
Другими словами, Beacon Chain - это слой для координации и взаимодействия между цепочками шардинга в Ethereum 2.0.
Переход с Ethereum 1.0 на 2.0 получил название «Serenity». Он будет состоять из трех разных этапов (об этом ниже). Именно на начальном этапе (фаза 0) должен быть запущен новый блокчейн под названием Beacon Chain (англ. – цепочка маяков).
Как работает Beacon Chain
Цепочка маяков управляет реестром валидаторов.
Валидатором называется участвующая нода (компьютер, узел в сети). Он вносит вклад в распределенную работу системы, главным образом, предлагая для Beacon Chain новые блоки или голосуя за уже существующий блок, в зависимости от текущего состояния узла.
Маяки в протоколе указывают на валидаторов и выбирают их для голосования за новые блоки таким образом, чтобы гарантировать, что каждому валидатору предоставляется равный шанс внести свой вклад.
Голосование за блок в Beacon Chain называется аттестацией.
Аттестация является основополагающим элементом механизма консенсуса.
С помощью аттестации:
- Валидатор свидетельствует о том, что блок действителен и что его следует добавить в цепочку;
- Валидатор голосует за «каноническую цепочку блоков», определяя, куда должен быть добавлен блок, если цепочка разветвлена на несколько ветвей (согласно правилу выбора форка);
- Валидатор вносит свой вклад в определение конечности блоков, это является процессом, который сообщает нам, когда Beacon блок может считаться завершенным и, следовательно, его не следует возвращать в цепочку (согласно Casper FFG);
- Валидатор голосует за блок с шардингом, если блок не принадлежит главной цепочке. Интуитивно понятно, что шард (осколок) - это отдельная цепочка, связанная с цепочкой маяков, которая может обрабатываться параллельно с другими шардами в состоянии подмножеством валидаторов в системе. Шардинг значительно увеличивает способность системы обрабатывать больше транзакций за раз, и, следовательно, ее масштабируемость (см. шардинг).
Схема работы шардинга вместе с другими цепочками Эфириума
Наконец, валидаторы, которые следуют протоколу и принимают разумные решения, награждаются Эфиром, который распространяется в качестве дивидендов, для поощрения правильного поведения.
Штрафы валидаторов (майнеров)
С другой стороны, валидатор, который отклоняется от протокола или ведет себя странно, потенциально может быть оштрафован отказом ему в выплате дивидендов или, в некоторых серьезных случаях, полным удалением его ставки.
Штрафовать злоумышленников или тех, кто совершает ошибки поможет протокол Casper «доброе приведение» в Ethereum. Эта система наград и штрафов делает атаку на систему экономически невыгодной для злоумышленника.
Как стать валидатором (майнером в POS)?
Цепочка Beacon также отслеживает старую цепочку eth1 (майнинговую сеть Proof of Work) и внесенные в нее депозиты, так что новые валидаторы могут присоединиться к eth2, отправив 32 Эфира на депозитный договор с eth1.
Протокол Casper будет защищать сеть при переходе на POS
eth2 проводит различие между нодами (узлами) и клиентами валидатора. Валидаторам Ethereum понадобятся и то и другое для выполнения своих обязанностей.
Нода маяка (Beacon Node) заботится о наблюдении за цепочкой Beacon Chain, а также за тем, какие шарды (сегменты) могут понадобиться пользователю или валидатору.
Клиенты валидатора (Validator Client) обрабатывают логику одного валидатора. Это достигается путем взаимодействия с Beacon Node, чтобы понять текущее состояние цепи, путем подтверждения и предложения блоков.
Если вы не используете Validator Client, то узел Beacon Node все равно содержит всю информацию, необходимую вам для того, чтобы безошибочно взаимодействовать с сетью eth2, подобно полной ноде в сети eth1.
Схема работы POS валидации блоков
Ниже приведены некоторые из особенностей:
- Каждый валидатор должен быть инициирован с депозитом ровно 32 Эфира, и поэтому людям, которые хотят поставить больше ETH, нужно будет запустить несколько экземпляров валидатора. Решение Validator Client позволяет таким пользователям запускать только один узел Beacon Node с несколькими подключенными к нему валидаторами, тем самым снижая требования к вычислениям, памяти и хранилищу.
- Для пользователей, которые особенно обеспокоены стабильностью, несколько узлов могут работать параллельно, что снижает вероятность того, что валидатор отключится.
- Поскольку узлы валидатора являются отдельными модулями, они, вероятно, будут более безопасными, поскольку их легче писать, анализировать и проверять меньшие модули кода.
- Поскольку клиенты валидатора могут взаимодействовать с остальной частью сети eth2 только через узел Beacon Node, и через ограниченный API, пространство для атаки ноды валидатора значительно уменьшается.
- Для пользователей, которые хотят взаимодействовать с eth2, но не хотят быть валидатором, нужно только управлять узлом Beacon Node, который предоставит им доступ к цепочке Beacon и всем необходимым им сегментам.
Даты (Фазы)
На момент написания статьи фаза 0 близка к запуску, так как разработчики вносят последние штрихи в программное обеспечение клиента. Тем временем спецификация для Фазы 1 завершается, а Фаза 2 находится в стадии активных НИОКР.
-
Фаза 0 связана с Beacon Chain, ядром eth2, которое управляет валидаторами и координацией шардинга.
-
Этап 1 позволит помещать данные в шардинг. Сложность реализации этого компонента значительно меньше, чем других, поскольку фаза 0 предусматривает большую часть работы для реализации шардинга.
-
Этап 2 добавляет финальную реализацию eth2, в основном модернизируя eth2 из надежной базы данных в полностью децентрализованную вычислительную платформу.
Чем именно является Фаза 0?
Как упоминалось ранее, Beacon Chain отслеживает состояние как набора валидаторов, так и шардов.
На практике это означает, что, если вы (периодически) следите за тем, что происходит в цепочке Beacon, вы будете знать достаточно, чтобы проверить все, что происходит в рамках eth2.
Beacon Chain будет содержать ссылки на шардинг
Для того чтобы система PoS функционировала, должен быть достигнут консенсус относительно того, кто является валидаторами и каковы их ставки, чтобы знать, сколько стоят их голоса, и соответствующим образом вознаграждать и / или наказывать их.
Цепочка Beacon также управляет аспектами шардинга eth2, распределяя обязанности валидатора на шарды, а также отслеживая текущее состояние каждого шарда.
Часть того, что отличает eth2 от других систем PoS, - огромное количество валидаторов, которые могут участвовать в протоколе.
В отличие от 10, 100 и 1000 участников, которые возможны в других системах, eth2 масштабируется до сотен тысяч или даже миллионов валидаторов.
Такой уровень децентрализации возможен только благодаря промежуточным уровням консенсуса, достигнутого группами валидаторов, называемыми комитетами.
Цепочка Beacon использует случайный выбор, чтобы назначать валидаторов для комитетов, которым поручено оценить, что является и не является частью цепей Beacon и Sharding.
Затем голоса комитета криптографически объединяются в аттестацию.
Это означает, что проверка голосов всего комитета - это лишь немного больше усилий, чем проверка одного голоса. Поэтому, чтобы проверить достоверность цепочки Beacon, необходимо учитывать только несколько агрегированных подписей для оценки голосов многих валидаторов.
Будут три вида цепочек: текущая, Beacon и Sharding
Философия дизайна
Концептуальная философия eth2 обеспечивает полезный контекст для всех решений, принимаемых в рамках eth2, и во многих случаях отражает различия между eth2 и другими протоколами.
- Protocol über alles: Признание того, что все является компромиссом, безопасность и жизнеспособность протокола имеют приоритет над другими дизайнами.
- Надейтесь на лучшее, но ожидайте худшего: eth2 предполагает, что валидаторы будут ленивы, будут брать взятки и будут пытаться атаковать систему, если не будут мотивированы иначе. Кроме того, предполагается, что сеть не совсем надежна, и что катастрофические события могут заставить большое количество валидаторов отключиться. По этим причинам eth2 должен быть в состоянии пережить 3 мировую войну.
- Минимально жизнеспособная сложность: везде, где это возможно, eth2 был упрощен, поскольку это облегчает объяснение протокола другим людям, аудит, написание безошибочных клиентов и, как правило, позволяет избежать внештатных случаев.
- Максимально децентрализованный: протоколы Proof of Stake обычно компрометируют количество валидаторов, которые могут участвовать, eth2 предназначен для масштабирования до миллионов валидаторов, поощряя этих валидаторы работать независимо друг от друга.
- Ожидайте неожиданного: все компоненты eth2 устойчивы к квантовым компьютерам или могут быть заменены на те, которые находятся в случае квантового апокалипсиса.
- Люди для людей: eth2 должен быть в состоянии работать на потребительском ноутбуке. Чем ниже барьер для входа, тем больше людей могут участвовать, что приводит к более высокой степени децентрализации.
Основным компонентом реализации, определяющим работу протокола, является функция перехода состояния Beacon Chain, в state_transition. Выдержка из соответствующей части реализации функции показана ниже:
Обработка начинается в состоянии генезиса (состояние, в котором Beacon генез-блок уже обработан). С учетом следующего блока Beacon, подлежащего обработке, и предположения, что блок является действительным, функция перехода состояния Beacon Chain преобразует данное состояние Beacon Chain (предварительное состояние) в новое состояние (post-state).
Это пост-состояние отражает результаты:
- Учет (потенциально) пропущенных блоков; (process_slots);
- Обработка содержимого блока (process_block).
Более подробное описание функции перехода и работы Beacon цепи можно найти здесь.
Выводы
Теперь, когда у вас за плечами есть основы понимания eth2, в следующих статьях этой серии будут рассмотрены детали того, как развернуть ноды eth2 и стать валидатором. (спецификация, на англ.)
Тем не менее, Beacon Chain - очень сложный протокол. На его реализацию уйдет много времени, тестов и сил.