Продолжение статьи: Ecosystem and projects’ updates, opinion and research articles
Идентификация вывода средств:Идентификация вывода средств необходима для предоставления счета, на который отправляются средства от валидатора. Стейкер идентифицирует выводной счет, добавляя в соглашение манипулированный открытый ключ:
1. Открытый ключ хэшируется для уменьшения его размера;
2. Первый байт хэша заменяется идентификатором типа (в настоящее время просто ‘0’).
Рисунок 4: идентификация изъятия
Обратите внимание, что идентификация вывода использует открытый ключ Ethereum 2, а не открытый ключ Ethereum 1, как это используется в Ethereum 2, когда приходит время для вывода стейкинга. Таким образом, он должен быть предоставлен непосредственно стейкером, а не восстановлен из подписи транзакции, как это обычно бывает с смарт-контрактами Ethereum 1.
Также обратите внимание, что если валидатор и стейкер являются одной и той же сущностью, то для идентификации валидатора и идентификации вывода средств следует использовать разные ключи. Это позволяет безопасно хранить ключ вывода средств в автономном режиме до тех пор, пока стейкер не будет готов вывести свои средства.Авторизация валидатора:Валидатор авторизация требуется для того, чтобы показать, что валидатор соглашается на проверку в рамках условий соглашения. Валидатор предоставляет свою авторизацию, подписывая согласованные условия тем же ключом, который используется для предоставления идентификации валидатора, и добавляя эту подпись к соглашению:
Рисунок 5: авторизация валидатора
Подача депозитного договора:На данный момент депозитный договор содержит четыре части информации: идентификацию валидатора, сумму, подлежащую стейкингу, идентификацию вывода средств и авторизацию валидатора. Если игрок желает продолжить депозит, он отправляет транзакцию на депозитный контракт Ethereum 1, содержащий соглашение и денежные средства:
Рисунок 6: подача депозитного договора
Есть два важных момента, которые необходимо сделать здесь:1. В депозитном договоре нет явной авторизации со стороны стейкера. Вместо этого, стейкер добавляет свою подпись к сделке до трансляции, предоставляя необходимую авторизацию;
2. Сделка должна сопровождаться точным количеством эфира, указанным в депозитном договоре; любая другая сумма приведет к тому, что сделка будет отклонена депозитным договором.
Транзакция принимается и обрабатывается договором депозита Ethereum; если все в порядке, договор депозита создает событие поступления депозита. Данное событие получения депозита содержит все данные, содержащиеся в депозитном договоре, и служит уведомлением о том, что депозитный договор принял депозитный договор и получил соответствующие денежные средства.
Активация депозитного договора:Активация контракта перемещает фокус с Ethereum 1 на Ethereum 2.
Ethereum 2 слушает обновления на Ethereum 1 для депозитных чеков. Каждый узел Ethereum 2 включает в себя последние депозитные поступления в своих предлагаемых блоках; по мере завершения этих блоков депозит становится частью общего состояния Ethereum 2. Депозитные квитанции хранятся на Ethereum 2 в качестве состояния валидатора.
Валидатор, в свою очередь, слушает обновления на Ethereum 2 для изменения состояния валидатора. Когда он видит запись в состоянии валидатора с его открытым ключом, он знает, что депозит произошел на Ethereum 1 и был распознан Ethereum 2, и настало время начать свою работу по аттестации.
Рисунок 7: активация депозитного договора
Полный процесс:Объединение частей подачи и активации обеспечивает полный процесс размещения сетевых средств Ethereum 1 на Ethereum 2, при этом информация от валидатора и стейкера передается от Ethereum 1 к Ethereum 2 и позволяет безопасно активировать валидатор с соответствующими средствами:
Рисунок 8: процесс внесения стейкинга
Нюансы:Хотя они не показаны, этот процесс включает в себя ряд задержек для дополнительной безопасности. Например, существует задержка между Ethereum 2, обнаруживающим событие получения депозита и добавлением его информации в состояние валидатора, чтобы гарантировать, что фактически нет никаких шансов на реорганизацию сетевой цепочки Ethereum 1, которая аннулировала бы депозит.
Проверено: стейкинг на eth2 #0Последняя информация о внутренней работе eth2 и о конкретных требованиях, стимулах и опыте работы в качестве валидатора.
В этой статье будет представлен обзор высокого уровня eth2, который послужит основой для серии статей по всем аспектам eth2, имеющим отношение к валидаторам. eth2 уже давно находится в работе и с годами значительно улучшился. То, что первоначально было отдельным сегментированием и доказательством доли владения (PoS), управляемых с помощью смарт-контрактов, превратилось в очень взаимосвязанный дизайн, который дает значительные улучшения в отношении эффективности, масштабируемости и безопасности.
Фазы:Поскольку части eth2 стали более взаимосвязанными, другие части были разделены на фазы, чтобы обеспечить лучшую конвейеризацию различных аспектов eth2. Фаза 0 приближается к запуску, поскольку разработчики внесли последние штрихи в клиентское программное обеспечение. Между тем, спецификация для участка 1 завершается, и участок 2 под активным НИОКР.
1. Фаза 0 связана с цепью маяков, ядром eth2, которая управляет валидаторами и координацией шардинга. Цепь маяков является источником основной истины, из которой все остальные аспекты eth2 являются загрузочными.
2.Этап 1 опирается на это, позволяя помещать данные в шардинг. Сложность реализации этого компонента намного меньше, чем других, поскольку на этапе 0 выполняется большая часть основных работ для шардинга.
3. Фаза 2 добавляет выполнение к eth2 в основном обновление eth2 от надежной базы данных до полностью децентрализованной вычислительной платформы.
Что такое фаза 0?Как упоминалось ранее, цепочка маяков отслеживает состояние как набора валидаторов, так и шардинга. На практике это означает, что если вы (периодически) будете следить за тем, что происходит в цепи маяков, вы будете знать достаточно, чтобы проверить все, что говорят, что происходит в eth2. Доверяй, но проверяй.
Для того, чтобы система PoS функционировала, необходимо достичь консенсуса в отношении того, кто такие валидаторы, и какой их стейкинг, чтобы узнать, сколько стоят их голоса, и надлежащим образом вознаграждать и/или наказывать их за их поведение. Цепь маяков также управляет аспектами сегментирования eth2, назначая обязанности валидатора в сегментах, а также отслеживая текущее состояние каждого сегмента.
Часть того, что отличает eth2 от других PoS-систем, - это само количество валидаторов, которые могут участвовать в протоколе. В отличие от 10, 100 и 1000 участников, которые возможны в других системах, eth2 масштабируется до сотен тысяч или даже миллионов валидаторов. Этот уровень децентрализации возможен только благодаря промежуточным уровням консенсуса, достигнутого группами валидаторов, называемых
комитетами. Цепь маяков использует одноименный случайный Маяк в своем ядре для назначения валидаторов комитетам, которым поручено оценивать, что является и не является частью цепей маяков и шардинга. Затем голоса комитета криптографически объединяются в
аттестацию, что означает, что проверка голосов всего Комитета лишь незначительно больше усилий, чем проверка одного голоса. Поэтому, чтобы проверить действительность цепочки маяков, необходимо рассмотреть лишь несколько агрегированных подписей для оценки голосов многих валидаторов.
Цепь маяка также отслеживает цепь eth1 и депозиты, поэтому новые валидаторы могут присоединиться к eth2, отправив 32 эфира в депозитный контракт на eth1. В результате голосования по цепи маяков на eth1-цепочке eth2 в какой-то момент в будущем повысит безопасность eth1, обеспечив экономическую гарантию того, что блоки, которые являются частью канонической eth1-цепи, будут включены.
Ноды и клиенты:eth2 делает различие между нодами маяка и клиентами валидатора, и валидаторы будут нуждаться в обоих для выполнения своих обязанностей.
Нода маяка (или просто нода ) заботится о поддержании вида цепи маяка, а также о том, какой шардинг может потребоваться пользователю или валидатору.
Как следует из их названия,
клиенты валидатора (или просто клиенты ) обрабатывают логику одного валидатора. Это достигается путем связи с нодой маяка для понимания текущего состояния цепи, путем подтверждения и предложения блоков, а также, когда это уместно, и, наконец, путем запроса ноды маяка, чтобы отправить эту информацию своим сверстникам.
Если вы не используете валидатор, нода маяка содержит всю информацию, необходимую для доверительного взаимодействия с eth2, так же как и полная нода в eth1.Ниже приведены некоторые из многих аргументов для этого разделения:- Каждый валидатор должен быть инициирован с депозитом точно 32 эфира, и поэтому люди, которые хотят поставить больше ETH, должны будут запустить несколько экземпляров валидатора. Разделение узла и клиента позволяет таким пользователям запускать только один узел маяка с несколькими валидаторами, подключенными к нему, что снижает требования к вычислениям, памяти и хранению.
- Поскольку узлы валидатора являются отдельными модулями, они, вероятно, будут более безопасными, поскольку проще писать, рассуждать и проверять меньшие модули кода.
- Для пользователей, особенно обеспокоенных избыточностью, несколько нод могут выполняться параллельно, что снижает вероятность выхода валидатора в автономный режим.
Поскольку клиенты валидатора могут взаимодействовать только с остальной частью сети eth2 через ноду маяка , и даже тогда через ограниченный API, поверхность атаки ноды валидатора значительно уменьшена.
- Для пользователей, которые хотят взаимодействовать с eth2, но не хотят быть валидатором, им нужно только управлять нодой маяка, который предоставит им доступ к цепи маяков и шардингу, которые они требуют.
Продолжение следует...