Ethereum 2.0

Оригинал статьи BitMEX Research

Аннотация. В этой статье мы анализируем запуск Ethereum 2.0, который, если не случится дополнительных задержек, должен состояться уже в июле 2020 года. Однако запуск может оказаться не таким важным событием, как кажется. Первое время Ethereum 2.0 будет работать главным образом как тестовая сеть для проверки работы системы алгоритма консенсуса Proof-of-Stake (PoS). Большая часть экономической активности и смарт-контрактов останутся в оригинальной сети Ethereum, которая будет продолжать существовать параллельно с Ethereum 2.0. В системе будет реализована возможность одностороннего перехода: из Eth1 в Eth2, но не наоборот. Поскольку разработчики решили масштабировать систему с помощью шардинга, мы считаем, что невероятно сложный многолетний переход в новую сеть — единственное решение для Ethereum.

(The Shard building in London)

Обзор

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

Bitcoin использует для решения этой проблемы сети 2-го уровня (например, Lightning), в то время как Bitcoin Cash делает вид, что проблемы не существует — по крайней мере, в некоторой степени. С каждым днем яснее, что Ethereum выбрал для решения этой дилеммы другой метод: шардинг.

Главная проблема шардинга в том, что его можно интерпретировать как отход от экономической модели Ethereum. Если пользователи воспринимают сеть Ethereum как один мировой компьютер, который невозможно остановить, она вряд ли оправдает их ожидания, если будет разделена на несколько сегментов (несколько компьютеров). Если смарт-контракт на шарде 1 захочет взаимодействовать со смарт-контрактом на шарде 2, то работа системы может значительно замедлиться из-за необходимости согласования последовательности событий и обмена информацией между шардами. В этом случае взаимодействие будет происходить иначе, чем если бы смарт-контракты находились на одном шарде, поэтому в планетарном масштабе мировой компьютер может в какой-то момент дать сбой. Можно даже утверждать, что Ethereum и шардинг противоположны по своей сути. С другой стороны, так Ethereum сможет удовлетворить нишевый спрос со стороны подгрупп пользователей, которые заинтересованы в несвязанных между собой приложениях. В этом случае шардинг оправдан и может улучшить гибкость сети для работы с различными группами пользователей, которых объединяет только использование токена Ethereum.

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

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

Три этапа перехода

Переход на Ethereum 2.0 будет осуществляться в три этапа, как описано ниже:

Этап

Название

Описание

0

Beacon chain

Этап «сигнальной» цепочки/блокчейна (или этап Beacon Сhain) должен начаться в ближайшее время. В прошлом его запуск откладывался, но, похоже, он все же состоится в июле 2020 года. Этот этап будет заключаться только в проверке системы Proof-of-Stake (а не чего-либо еще), поэтому «сигнальную» сеть можно рассматривать как тестовую, хотя в ней будет использоваться настоящий Ethereum. В системе Proof-of-Stake есть ряд аспектов, работоспособность которых необходимо проверить, например:

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

1

Сети с шардами

(Shard chain)

Вначале будет развернута сеть с 64 шардами. На этом этапе сеть будет во многом экспериментальной. Если нулевой этап направлен на тестирование базовых функций инфраструктуры Proof-of-Stake без значимой экономической активности, 1-й этап призван протестировать базовую модель шардинга.

На этом этапе будут параллельно работать 65 блокчейнов ― Beacon Сhain из нулевого этапа и 64 новых шарда. Между Beacon Сhain и всеми 64 шардами будет установлена двусторонняя связь с взаимными ссылками.

2

Полная реализация (State execution)

Ожидается, что на этом этапе в сети уже будет возможна значительная экономическая активность (а не только стейкинг) и смарт-контракты. Шарды больше не будут примитивными контейнерами данных и будут выполнять функции Ethereum 1.0, например, виртуальной машины и смарт-контрактов. Спецификации для этого этапа еще не завершены, и, по нашему мнению, необходимо проделать еще большую работу, чтобы сеть была готова ко 2-му этапу.

Односторонний характер перехода

После запуска Ethereum 2.0 параллельно будут работать две сети: Eth1 и Eth2. Первое время пользователи смогут переводить токены Eth1 в токены Eth2, но не наоборот. Следовательно, теоретически ETH2 должен торговаться по цене, меньшей или равной цене ETH1. Однако на ранних этапах перехода маловероятно, что ETH2 вообще будет иметь цену или торговаться на криптовалютных биржах, так как будет использоваться только для стейкинга. С ним нельзя будет выполнять даже базовые транзакции.

Для перевода ETH1 в ETH2 необходимо использовать депозитный контракт в сети Eth1.  Этот контракт по сути уничтожает монеты ETH1 и в дальнейшем может использоваться как доказательство для получения новых монет ЕTH2. Монеты сжигаются навсегда, хотя теоретически их можно будет восстановить в сети  Eth1 с помощью изменения протокола посредством хардфорка. Монеты, переведенные в сеть Eth2, автоматически попадают в пул валидаторов Proof-of-Stake. Как мы писали в нашей статье, посвященной алгоритму Proof-of-Stake, в 2018 году, в основе этой концепции лежит следующий принцип: вес каждого голоса и вознаграждение участников (агентов) консенсуса определяются стоимостью монет, находящихся в их владении. В соответствии со спецификациями Eth2 для стейкинга требуется 32 ETH. Если на контракт отправлено больше 32 ETH, то стейкер не получит вознаграждения от этих дополнительных монет, а если отправлено менее 32 ETH, стейкер не будет активирован. Поэтому переводить ETH в систему Eth2 нужно партиями по 32 монеты. Каждая партия 32 ETH может быть отдельным стейкингом.

Выпуск монет

Как мы уже писали выше, одновременно будут существовать две параллельные системы. Eth1 продолжит работать на базе алгоритма Proof-of-Work, а Eth2 будет работать на новой системе Proof-of-Stake. В течение этого периода участникам консенсуса (т.е. майнерам и стейкерам) нужны будут стимулы, поэтому уровень инфляции в сети Ethereum продолжит расти (по крайней мере, временно) до тех пор, пока две системы в конечном итоге не объединятся. Это можно считать недостатком, а можно — ценой за успешный переход на Eth2.

Что касается графика инфляции Eth2, то уровень и частота эмиссии будут зависеть от количества ETH, задействованного в стейкинге. Годовой график выпуска момент будет основан на следующем алгоритме:

где Eth2 ― это количество ETH, задействованного в пуле PoS-валидаторов. Эти цифры, по-видимому, взяты из этого сообщения Виталика Бутерина, опубликованного в апреле 2019 года.

Суть приведенной выше формулы сводится к следующему: чем больше ETH переводится в Eth2, тем больше выпускается новых монет, но инвестиционный доход при этом будет уменьшаться с увеличением количества монет, задействованных в стейкинге. График изменения инфляции показан ниже:

Рисунок 1. Уровень инфляции в сети Ethereum 2.0

Стейкинг ETH

Максимальная годовая эмиссия

Максимальный уровень годовой инфляции Eth2

16 000

22 897

143,1%

100 000

57 243

57,2%

1 000 000

181 019

18,1%

10 000 000

572 433

5,7%

100 000 000

1 810 193

1,8%

134 217 728

2 097 152

1,6%

(Источник: BitMEX Research)
(Примечание. Минимальный уровень для запуска сети Beacon Chain — приблизительно 16 000 ETH) 

Рисунок 2. Уровень инфляции в сети Ethereum 2.0

(Источник: : BitMEX Research)

Такой график эмиссии объясняется стимулами. На начальных этапах вознаграждения должны стать стимулом для перемещения монет в Eth2 и их использования для стейкинга; по мере роста количества монет стимулов будет все меньше и меньше, так как в успешной системе Eth2 потребность в монетах снижается. Это обеспечит перемещение в новую сеть достаточного количества монет для ее роста, но при этом эмиссия не будет слишком высокой в случае успеха Eth2.

Безусловно, выпуск новых монет плохо вписывается в первоначальный план Ethereum обеспечивать «постоянную линейную инфляцию», что обязательно вызовет вопросы.

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

(Источник: официальный технический документ Ethereum) 

Существует ряд факторов, которые могут смягчить влияние потенциально высокого уровня инфляции:

  • Ожидается, что на 1-м этапе комиссия в сети будет состоять из двух элементов: базовой комиссии, при которой монеты уничтожаются, и премии, которую получают стейкеры. Эти уничтоженные монеты могут снизить уровень инфляции.
  • Если валидаторы не смогут участвовать в процессе валидации (например, в случае выхода узлов из строя или их отключения от сети), вознаграждение за стейкинг упадет.
  • Если валидаторы будут вести себя недобросовестно и нарушать правила, система может их оштрафовать, и эти монеты также будут сожжены.

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

Если на то пошло, мы сомневаемся в эффективности сжигания любой части комиссии за транзакцию. С экономической точки зрения было бы более логично, если бы интересы участников консенсуса и пользователей совпадали, и последние платили первым комиссию за предоставление услуги. Если бы финансирование участников консенсуса осуществлялось полностью за счет платежей пользователей, а не за счет вознаграждения за добычу блока, конфликты между этими двумя группами были бы менее вероятными. В то же время попытка произвольно определить правильную схему вознаграждения может привести к падению эффективности (гораздо эффективнее схема вознаграждения, естественным образом сформировавшаяся под влиянием рынка). Конечно, биткоин тоже пока в этом не преуспел, так как вознаграждение за блок все еще остается довольно высоким. Возможно, в долгосрочной перспективе для Ethereum более устойчивой оказалась бы схема, по которой всю комиссию за транзакции получали бы стейкеры, а инфляцию можно уменьшить, чтобы нейтрализовать последствия этого решения. В конце концов, валидаторы существуют только для того, чтобы обезопасить деятельность пользователей, и если пользовательской деятельности нет, то и валидаторы не нужны. Это может облегчить достижение сложного баланса между обеспечением безопасности и инфляцией.

Слияние блокчейнов

Конечная цель создателей Ethereum — объединение Eth1 и Eth2 в одну систему, что, по нашему мнению, может занять несколько лет. В конечном итоге, Eth1 станет одним из шардов внутри Eth2. Тогда можно будет переводить ЕТН между шардами в обоих направлениях, и две монеты сольются в одну. По плану, большая часть активности, которая сейчас сосредоточена в Eth1, продолжится внутри шарда Eth2.

Следующим шагом может стать слияние систем консенсуса. Шард Eth1 сможет постепенно перейти на алгоритм Proof-of-Stake. Первое время алгоритм Proof-of-Work будет продолжать работу, но после добычи заданного количества блоков (например, после каждых 100 блоков) консенсус может определяться системой Proof-of-Stake. Алгоритм Proof-of-Stake по сути вытеснил бы Proof-of-Work, а в контрольных точках Proof-of-Stake безоговорочную силу имел бы алгоритм Proof-of-Work. В конечном итоге, подтверждение через Proof-of-Work могло быть полностью прекращено, в вознаграждении за добычу блоков по алгоритму Proof-of-Work больше не было бы необходимости, и его можно было бы отменить. Это дало бы пользователям и инвесторам Ethereum больше определенности в отношении будущей инфляции.

Предлагаемые сетевые константы

Ниже приведены некоторые константы в спецификации Eth2, которые мы считаем наиболее значимыми и информативными.

Этап Потенциальные первоначальные настройки сети Значение
0 Интервал между блоками 12 секунд
Мин. кол-во ETH у стейкера 32
Количество блоков на контрольную точку 32
Целевой размер комитета стейкеров (желательный минимум) 128
Максимальный размер комитета стейкеров 2 048
Максимальное количество комитетов в слоте (будет удалено на 1-м этапе) 64
1 Количество шардов 64
Максимальное количество шардов, на которые содержатся ссылки в каждом «сигнальном» блоке 64
Целевой размер комитета стейкеров в шарде 128
Период выхода комитета стейкеров в шарде 27 часов
Максимальный размер блока в шарде 1 MB 

(Источник: BitMEX Research, спецификации Ethereum 2.0)

Proof-of-Stake

В основе алгоритма Proof-of-Stake лежит общее правило о выборе форка с самым значительным стейком (т.е. блокчейна с наибольшим количеством голосующих монет). Разумеется, возникает вопрос, как структурировать процесс голосования. Основные принципы системы голосования в сети Eth2 не изменились с 2018 года, когда появился Ethereum; она по-прежнему работает на базе протокола Casper Friendly Finalty Gadget. Но в новой сети будет использоваться обновленная система, в которой Casper Friendly Finalty Gadget сочетается с правилом выбора форка Latest Message Driven Greedy Heaviest Observed Subtree  (Casper FFG & LMD GHOST Fork Choice Rule).

Мы попытаемся объяснить основные принципы  системы голосования, разбив ее на несколько частей. Первое, что нужно учитывать, — это большой пул стейкеров, каждый из которых имеет до 32 ETH (это минимальное количество монет, необходимое для активации стейкера, стейкер деактивируется, когда число монет опускается до 16 ETH). Эти стейкеры не голосуют по блокам напрямую, а разделяются на несколько голосующих комитетов, члены которых выбираются случайным образом из более обширного пула.

Комитеты нужны для того, чтобы не привлекать каждого стейкера к голосованию по каждому блоку; в противном случае блокчейн содержал бы слишком много данных о голосующих, и масштабировать его было бы невозможно. Комитеты также позволяют организовать данные о голосовании в управляемые блоки. Поэтому выбор стейкеров для голосования в комитетах происходит в произвольном порядке. Согласно спецификации Eth2, в каждом комитете будет 128 стейкеров, но это, скорее, желаемый минимум. Главное, что этого количества стейкеров достаточно, чтобы обеспечить вероятностные гарантии при выборе блоков. Подписи под голосами можно объединить, чтобы уменьшить требуемое для блоков пространство и обеспечить возможность масштабирования сети.

Отбор стейкеров в комитеты происходит случайным образом, с использованием технологии «RanDAO». Этот случайный отбор определяется произвольными исходными данными (т.н. «сидом»), которые добавляются в каждый предлагаемый блок. Чтобы предотвратить манипуляции при выборе валидатора (stake grinding), у пользователя, предлагающего блок, есть только два варианта действий, которые могут повлиять на сид: предлагать блок или нет. Благодаря этому возможности для манипуляций ограничены.

Помимо разделения стейкеров на комитеты, существует еще одна классификация, которую следует учитывать: разделение блоков на простые и контрольные. Один из каждых 32 блоков является контрольным, и период между этими блоками иногда называют “эпохой”. В каждой эпохе 32 временных интервала по 12 секунд, в течение которых можно предложить блоки. Таким образом, в каждой эпохе 32 набора временных отрезков (слотов) для 32 комитетов. После окончания эпохи все члены комитета тасуются, как карты в колоде. На каждом временном отрезке есть свой комитет (целевой размер которого — 128 членов («желаемый минимум»)), одному из членов которого предоставляется эксклюзивное право предложить блок в течение 12-секундного периода, а другим членам — проголосовать за предложенный блок. Это голосование иногда называют аттестацией.

Организация участников в комитеты показана на Рисунке 3 ниже:

Рисунок 3. Схема организации участников стейкинга в «сигнальном» блокчейне (Beacon Chain) (1 комитет на 1 слот)

В действительности все немного сложнее, чем показано на схеме выше. На нулевом этапе может быть до 64 комитетов валидаторов в одном временном отрезке (слоте), а не один, как показано на схеме выше. Таким образом, если в каждом комитете 128 членов, то в каждой эпохе могут участвовать до 262 144 стейкеров, что соответствует почти 8,4 млн ETH.

Каждый стейкер отбирается строго в один комитет, и чем больше стейкеров, тем больше комитеты. Максимальный размер комитета составляет 2 048, что примерно равно общему количеству Ethereum, используемому в каждую эпоху (64 комитета * 32 ETH * 32 временных отрезка * 2 048 стейкеров в комитете = 134,2 млн ETH). Поэтому в комитетах всегда будут места, сколько бы пользователей ни участвовало в стейкинге. На Рисунке 4 ниже показано, как количество комитетов и количество членов в каждом комитете изменяется в зависимости от количества ETH в пуле стейкинга. Как видим, по мере роста пула стейкинга сначала увеличивается количество комитетов (до 64), а затем (когда пул стейкинга приближается к 8,4 млн ETH) начинает увеличиваться размер комитетов.

Рисунок 4. Количество комитетов и количество членов в комитете

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

Финализация

Голосуя за блок, члены комитета не только голосуют за конкретный предложенный блок, но и ссылаются на определенный исторический контрольный блок и голосуют за него — точнее, ссылаются на переход от одного контрольного блока к другому (исходный контрольный блок и конечный контрольный блок). Именно этот механизм помогает гарантировать правильную реализацию процесса голосования. Таким образом, в алгоритме Proof-of-Stake используются, по сути, две процедуры голосования, одна внутри другой. Эти два типа голосования и блоки, в которых могут храниться голоса, показаны на Рисунке 5 ниже.

Рисунок 5. Голосование и ссылки в условиях идеального обмена данными (1 комитет на 1 слот)

Блок считается «подтвержденным», если он содержит контрольный блок, на который в своих голосах ссылаются более двух третей членов комитетов, по индексу всех комитетов в ту или иную эпоху. Этого можно достичь не ранее, чем по истечении двух третей эпохи. Следующий этап — финализация или завершение блока; блок считается завершенным, когда после него в блокчейне было подтверждено два  блока. Поэтому в большинстве ситуаций, когда пороговый уровень в две трети голосов достигается достаточно быстро благодаря хорошим каналам связи, пользователю придется ожидать подтверждения блока приблизительно одну эпоху (6,4 минуты) и еще две эпохи (12,8 минуты) — его завершения. Это показано на Рисунке 6 ниже.

Рисунок 6. Схема процесса подтверждения и завершения блока в «сигнальном» блокчейне (Beacon Chain) в нормальных условиях

Недобросовестное поведение

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

Ситуации недобросовестного поведения:

  1. Создатель блоков предлагает два конфликтующих (противоречащих друг другу) блока в пределах своего назначенного слота.
  2. Генерация двух голосов, содержащих конфликтующие ссылки на переходы между контрольными блоками одного уровня.
  3. Генерация двух голосов со ссылками на частично совпадающие переходы между контрольными блоками одного уровня. Например, один голос ссылается на переход от контрольного блока 1 к контрольному блоку 4, а другой — на переход от контрольного блока 2 к контрольному блоку 3. Казалось бы, это правило следует заменить более очевидным: ссылки на переход между контрольными блоками должны быть последовательными, но возможно, что добросовестный узел может пропустить контрольный блок, и голос, ссылающийся на непоследовательные блоки, может быть не мошенническим. Этот сценарий показан на Рисунке 7 ниже.

Рисунок 7. Пример недобросовестного поведения: ссылки на частично совпадающие/окружные переходы между контрольными блоками

Оценка процесса Proof-of-Stake

Считается, что завершение блока дает пользователям твердые гарантии того, что их транзакции не могут быть продублированы (т.е. их средства не могут быть потрачены дважды). Но эти системы чрезвычайно трудно оценить; особенные трудности вызывает оценка степени конвергенции и завершенности.

Не исключено, что все эти голосующие комитеты, индексы голосующих комитетов, переходы между контрольными блоками и ожидание завершения блоков в течение двух эпох — ненужная абстракция, простая разбивка системы голосования Proof-of-Stake на различные компоненты, призванная добавить сложности и скрыть тот факт, что эта модель обеспечения безопасности ущербна по своей сути (что связано с проблемой «Nothing at stake» (пользователи условно ничего не теряют)). С другой стороны, возможно, разбивка процесса голосования на эти подкомпоненты действительно повышает характеристики безопасности сети. Мы считаем, что различные аспекты описанных процессов голосования могут в определенной степени повышать безопасность. Сложность этого процесса, например, раунды стейкинга внутри раундов стейкинга, технически затрудняет любые отклонения от общепринятого поведения стейкеров, направленные на увеличение прибыли, что повышает уровень безопасности. Вопрос о том, достаточно ли этого, чтобы сделать систему достаточно устойчивой для процветания в долгосрочной перспективе. Необходимо подчеркнуть, что наши комментарии и анализ не следует воспринимать как истину в последней инстанции, так как наше понимание этой системы является неполным.

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

Шардинг

На 1-м этапе в систему добавляются шарды. Первоначально разработчики планировали начать с 1024 шардов, но теперь их количество сократилось до 64. На этом этапе «сигнальный» блокчейн все еще считается главной или родительской цепочкой, только теперь он также содержит ссылки на шарды. Поскольку в сети 64 шарда, и каждый блок в «сигнальном» блокчейне может ссылаться на 64 шарда, предполагается, что при нормальной работе сети каждый «сигнальный» блок может содержать ссылку на каждый шард.

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

Рисунок 8. Схема структуры блоков в системе шардов Ethereum (на примере двух шардов)

(Источник: BitMEX Research)
(Примечание. Синие стрелки обозначают хэш, который обязательно включается в каждый блок. Серые стрелки обозначают перекрестные ссылки на шарды, которые может быть включены (или нет) в блок «сигнальной» цепочки. Если блок шарда пропущен, ссылка на него может быть включена в следующий «сигнальный» блок, как показано в правой части схемы).

Следует отметить, что именно на 1-м этапе появляется взаимосвязь между системой шардов и процессом стейкинга. Многочисленные комитеты валидаторов каждого временного интервала (слота) нулевого этапа теперь соотносятся с  шардами. Таким образом, с каждым шардом связывается отдельный голосующий комитет стейкеров, который меняется по истечении периода его работы. Точно так же, как и в случае «сигнального» блокчейна, одному из членов комитета поручается задание сгенерировать блок в отведенное время, а остальные члены комитета затем голосуют за предложенный блок. Очень важно (и это обязательно следует учитывать), что, когда «сигнальный» блокчейн ссылается на блоки в шардах с помощью перекрестных ссылок, вся информация о голосовании включается в «сигнальный» блокчейн.

На схеме ниже мы попытались показать возможное распределение стейкеров по цепочкам шардов. На 1-м этапе участники стейкинга распределяются случайным образом — либо в «сигнальную» цепочку, либо в цепочку определенного шарда. Если в пуле стейкинга менее 8,4 млн ETH, то для полного обслуживания всех шардов недостаточно стейкеров, что может привести к некоторому замедлению работы шардов.

Рисунок 9. Возможный механизм распределения комитетов стейкеров  по шардам в системе Ethereum

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

  • каждый блок цепочки шардов содержит хэш последнего блока «сигнальной» цепочки, и
  • блок «сигнальной» цепочки может содержать всю информацию о голосовании в цепочках шардов (путем перекрестной ссылки).

Таким образом, информацию о голосовании и стейкинге в цепочках шардов можно также использовать при расчете правила выбора форка и в процессе финализации блоков в главной «сигнальной» цепочке. Система Proof-of-Stake будет работать точно так же, как и раньше, за исключением того, что теперь «сигнальная» цепочка содержит не информацию о голосовании по индексу комитетов, а информацию о голосовании в цепочке каждого шарда.

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

Таким образом, перекрестные ссылки выполняют три функции:

  • учет голосов стейкеров в голосующих комитетах в блокчейнах шардов в главном «сигнальном» блокчейне;
  • подтверждение и завершение блоков в цепочках шардов, и
  • все другие виды перекрестной связи между шардами, например, передача ETH или других активов по блокчейнам шардов, хотя, насколько мы можем судить, практический механизм для этого еще не до конца проработан. Хотя эта тема может возникнуть только на 2-м этапе, скорее всего, это будет еще одна область компромисса между масштабируемостью и удобством использования. Можно даже утверждать, что проблемы в этой сфере настолько велики, что ставят под сомнение целесообразность модели шардинга.

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

Заключение

Держатели ЕТН любят экспериментировать с новыми и сложными системами, будь то DAO, ICO, Maker, и вот теперь DeFi. Некоторые члены сообщества выразили обеспокоенность по поводу того, что технологии Ethereum уже пять лет, она устарела, и им нужно что-то новое. Ethereum 2.0 стал ответом на запрос сообщества, которое всегда готово к экспериментам. Поэтому мы прогнозируем, что многие пользователи переведут средства (возможно, порядка миллиардов долларов) в Ethereum 2.0 ради вознаграждения за стейкинг.

Многие спрашивают, как запуск Ethereum 2.0 повлияет на цену ЕТН. Конечно, в краткосрочной перспективе значительное количество ETH, привлеченного желанием получить вознаграждение за блок, может быть заблокировано в «сигнальном» блокчейне. Это может ограничить предложение ETH на рынке и спровоцировать рост цены; с другой стороны, ETH может быть привлечен из других смарт-контрактов. Но главный вопрос в том, будет ли Ethereum 2.0 иметь долгосрочную ценность, а для этого необходимо не только ограничить предложение, но и создать устойчивый спрос.

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

При написании этой статьи мы отметили одну вещь, которая выделяется на фоне всего остального:  Ethereum 2.0 — исключительно сложная система. При таком количестве комитетов, шардов и типов голосования кажется вполне вероятным, что что-то пойдет не так, что неминуемо приведет к задержкам в реализации проекта. Однако, несмотря на все эти потенциальные проблемы, Ethereum 2.0 все же стоит попробовать запустить. Ведь если это удастся, потенциальная выгода будет огромной.

Отказ от ответственности

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