ETH 2.0: стейкинг, шардинг и масштабирование Ethereum

Специалисты Interdax анализируют Ethereum 2.0, объясняют, как будет происходить переход на proof-of-stake (PoS) и рассказывают о возможных последствиях этого перехода.

Ethereum 2.0: совершенствование криптоэкономических стимулов

Переход на PoS существенно изменяет криптоэкономику Ethereum, меняя стимулы для валидации блокчейна и участия в сети. Первая фаза перехода на Ethereum 2.0 официально началась 1 декабря, с запуском Beacon Chain, нового координационного блокчейна для ETH 2.0.

Как Ethereum работает сейчас

На сегодняшний день в основной сети Ethereum, как и в других крупнейших криптовалютах (Bitcoin, Litecoin), используется протокол proof-of-work (PoW), в котором майнеры конкурируют между собой за то, чтобы первыми найти верное значение, необходимое для формирования валидного блока с транзакциями.

За затраченные на это энергию и ресурсы майнеры получают компенсацию в виде награды за блок и комиссий за транзакции. Получаемая ими награда за блок включается в каждый валидный блок, добавляемый в блокчейн. В Ethereum размер награды за блок составляет 2 ETH, в дополнение к которым майнеры получают переменную сумму уплачиваемых пользователями комиссий за транзакции.

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

PoW-блокчейн Ethereum. Майнеры организуют транзакции в блоки. Хеш предыдущего блока используется для создания следующего.

Безопасность PoW-блокчейнов достигается ценой их масштабируемости и доступности. В блок Ethereum 1.0 можно включить ограниченный объем данных, поскольку каждый блок добывается последовательно. Если количество транзакций в очереди превышает доступное пространство блока, то оставшиеся транзакции должны будут ждать следующего блока. Стало быть, Ethereum может обрабатывать только 7–15 транзакций в секунду, и любое действительно успешное и получившее широкое распространение приложение, может парализовать работу всей сети и взвинтить уровень комиссий за транзакции.

Еще одна проблема PoW — это централизация майнинга. Входной барьер высок, и это делает отрасль в целом менее конкурентоспособной, а некоторые меньшие криптовалюты — более уязвимыми перед определенными видами атак, такими как атака 51% или эгоистичный майнинг. Для того чтобы извлекать из майнинга прибыль, начинающим майнерам необходимо покупать специализированное оборудование, иметь доступ к дешевой электроэнергии и возможность работать в довольно существенных масштабах.

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

Распределение хешрейта Ethereum по майнинговым пулам по состоянию на июнь 2020 года. Источник: Etherchain

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

Proof-of-stake: как он будет выглядеть в Ethereum

Одна из задач, решаемых в Ethereum 2.0 (или Eth2/Serenity), состоит в уравнивании посредством введения PoS условий для большего числа индивидуальных валидаторов, которые смогут получать отдачу от сохранения истинности сети.

В отличие от PoW-майнеров, расходующих для создания и проверки блоков физическую энергию в виде электричества, в PoS-системе Eth2 валидаторы фиксируют в «стейке» (stake) 32 ETH — своего рода залог. На место фиксированному выпуску новых монет, выплачиваемых в качестве награды за блок, приходит модель переменного объема эмиссии, определяемого количеством заблокированных для стейкинга (он же PoS-майнинг) эфиров.

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

Для участия в PoW-блокчейнах майнеры сталкиваются с капитальными (покупка ASIC и прочего оборудования) и операционными (как, например, счета за электроэнергию и недвижимость) затратами. Вне зависимости от успешности майнера, эти расходы ложатся на плечи любого майнера в PoW-сети.

Безопасность PoS-сетей обеспечивается за счет потенциальной потери недобросовестными валидаторами внесенного ими стейка, то есть капитальных или операционных затрат валидаторы практически не несут. В случае форка PoW-майнеры распределяют доступные им ресурсы в пользу поддержки корректной, по их мнению, ветки. Однако в PoS-системе никаких внутренних затрат на защиту сети (как, например, электричество) не подразумевается, поэтому у валидаторов нет никаких противопоказаний для стейкинга на обеих ветках форка одновременно.

И поскольку в этом случае валидаторы не несут издержек упущенной выгоды, это создает ситуацию фактического «отсутствия ставки» (проблема nothing at stake). Поэтому рациональным поведением для валидатора представляется голосование одновременно по каждой из конкурирующих веток, чтобы максимизировать свою прибыль. PoS-криптовалюты решают проблему «отсутствия ставки» по-разному. Исследования на тему PoS и разделения Ethereum на шарды (сегменты), начались еще до января 2014 года, когда сооснователь сети Виталик Бутерин предложил следующее решение проблемы nothing at stake:

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

Эта идея Бутерина в конечном счете и вылилась в Casper, алгоритм, предусматривающий наказание валидаторов, которые работают на более чем одной конкурирующей ветке блокчейна или иным образом наносят вред сети, обходя проблему «отсутствия ставки».

Дизайн Eth2 предполагает, что при атаке на сеть люди в большей мере склонны рисковать заблокированными для стейкинга криптовалютными токенами в сравнении с расходами на электроэнергию. Если провалившаяся атака на PoW-сеть приводит к потере затрат на электроэнергию, то изъятие стейка валидатора при неудачной атаке на PoS-сеть эквивалентно уничтожению всей серверной фермы. Стоимость атаки на Eth2 равна сумме заблокированных для стейкинга ETH — таков размер штрафа за вредоносные действия валидатора. Поскольку Eth2 предусматривает одновременно стимулы для честных валидаторов и наказание для злонамеренных, то защита сети от недобросовестных акторов теоретически должна стать сильнее.

Обзор Eth2/Serenity

Реализация Eth2 осуществляется поэтапно и происходит в несколько этапов: фазы 0, 1 и 2, как подробно показано на схеме ниже:

Фазы реализации Eth2. Источник: docs.ethhub.io

С каждым этапом эти изменения будут охватывать все большую долю Ethereum и его комьюнити. Пользователям предоставлена возможность для раннего участия в стейкинге в фазе 0, либо они могут просто подождать, пока PoW-блокчейн Ethereum (Eth1) не мигрирует полностью на Eth2.

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

Программы-клиенты для Eth2. Источник: docs.ethhub.io

Ниже описаны несколько основополагающих концепций Eth2:

  • Casper: комбинация Casper the Friendly Finality Gadget (FFG) и LMD-GHOST (известного также как Gasper) призвана обеспечить плавный переход от старого механизма консенсуса PoW к PoS, сначала через наложение нового протокола на текущий. LMD-GHOST — это аббревиатура от Greedy Heaviest Observed Subtree – Last Message Driven (жадное и самое весомое видимое поддерево, управляемое последним сообщением). Подробную информацию о том, как сеть будет переходить на PoS, можно найти здесь (англ., PDF). В Casper есть две основные заповеди. Первая: валидатор не должен транслировать два разных голоса для одной высоты блока. Вторая: валидатор не должен голосовать в пределах других своих голосов. Этот механизм позволяет избежать большинства проблем, имеющихся как в существующих PoS-подходах, так и в семействе Byzantine Fault Tolerant (устойчивых к византийской ошибке) алгоритмов консенсуса. Любой валидатор, нарушающий какую-либо из этих заповедей, считается вредоносным и лишается всего своего депозита (не только суммы стейка). В целях повышения доступности и сокращения возможности для цензурирования транзакций, предусмотрено также наказание за уход нод офлайн.
  • Beacon Chain (координационный блокчейн): в качестве первого шага по переходу на PoS в фазе 0 был запущен координационный блокчейн с PoS-механизмом Casper. Будучи основой будущей PoS-сети, Beacon Chain должен обеспечивать темп достижения консенсуса и состоит из слотов и эпох. По достижении в ethereum-комьюнити определенного уровня консенсуса в отношении стабильности различных клиентов, на Eth1 был опубликован депозитный контракт. Цель этого контракта заключается в сборе стейков от потенциальных валидаторов ETH 2.0, чтобы они могли получить доступ к проверке данных в Beacon Chain. После того как на этот контракт было депонировано заданное количество ETH (524 288 ETH), 1 декабря координационный Beacon Chain был запущен и начал производить блоки.
  • Шардинг: на сегодня каждая нода Ethereum должна проверять и выполнять каждую транзакцию, что снижает масштабируемость и пропускную способность сети. Шардинг — это потенциальное решение проблемы масштабирования блокчейна, которое будет вводиться в действие постепенно, начиная с фазы 1. Термин означает горизонтальное разделение базы данных. В общих чертах, разделенный на шарды блокчейн имеет подмножества валидаторов, которые обрабатывают и проверяют транзакции только в рамках своего сегмента – шарда. Ожидается, что разделенный на шарды Ethereum сможет обрабатывать более 15 000 транзакций в секунду. Каждый шард — это отдельный блокчейн со своим собственным состоянием (остатки на счетах, смарт-контракты) и историей транзакций. По плану, во второй фазе шардинг должен занять центральное место в дизайне системы Ethereum и масштабировать его PoS-блокчейн.
  • Фаза 0: Beacon Chain

    Сейчас Eth2 находится в фазе 0, которая включает в себя тестирование и [произошедший 1 декабря 2020 г.] запуск Beacon Chain (координационного блокчейна), основы новой PoS-архитектуры Ethereum.

    На схеме ниже показана архитектура Beacon Chain:

    Beacon chain. Адаптировано из источника: https://ethos.dev/beacon-chain/

    В нулевой фазе Beacon Chain еще не может обрабатывать транзакции, выполнять смарт-контракты или другие функции, доступные на PoW-блокчейне Ethereum, Eth1. На Beacon Chain реализован алгоритм завершения транзакций Casper (FFG) и генератор случайных чисел для перетасовки валидаторов и симулирования перекрестных ссылок между несуществующими еще блокчейнами шардов. Eth1 продолжает получать обновления и функционировать параллельно с новым координационным блокчейном для Eth2.

    Eth2 рассчитан на как минимум 16 384 валидатора (ожидается, что в течение пары лет эта цифра вырастет до сотен тысяч). В нулевой фазе валидаторы могут голосовать по блокам и получать вознаграждение за стейкинг в Beacon Chain.

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

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

    Что еще более важно, в Casper предусмотрен механизм, который мгновенно и в полном объеме конфискует стейк любого валидатора, пытающегося поддержать невалидную ветку, проверяя более одного блока за раз. Если валидатор попытается скомпрометировать сеть (т.е. валидировать некорректную историю данных), то ETH из его стейка будут изъяты — полностью или частично. Пользователи могут представлять доказательства голосования валидаторов по некорректным веткам и инициировать для них наказание. То есть Casper решает проблему «отсутствия ставки» путем введения штрафов за некорректное голосование.

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

    Как происходит голосование за блоки в Eth2?

    Beacon Chain (координационный блокчейн Ethereum 2.0) можно сравнить с метрономом, задающим темп для достижения консенсуса системой.

    Каждый слот составляет 12 секунд, каждая эпоха состоит из 32 слотов, что эквивалентно 6,4 минуты (как показано ниже).

    Когда система работает оптимально, каждые 12 секунд в Beacon Chain добавляется новый блок. Адаптировано из источника: https://ethos.dev/beacon-chain/

    В каждую эпоху псевдослучайный процесс RANDAO выбирает для каждого слота инициаторов блоков (proposers) и распределяет валидаторов в комитеты. Валидаторы могут участвовать только в одном слоте и в одном комитете за эпоху. В каждом комитете для каждого слота участвуют не менее 128 валидаторов.

    Валидатор участвует в консенсусе назначенного ему шарда и может голосовать за указатель head этого сектора (хотя настоящие шарды будут реализованы только в фазе 1). Валидатор связывает «голову» шарда — его последнее состояние — с beacon-блоком для слота. Валидаторы также контролируют друг друга и получают награду за сигналы о недобросовестном поведении других валидаторов — о конфликтующих голосах или предложении одновременно нескольких блоков.

    Комитету псевдослучайным образом назначается шард для связывания посредством перекрестной ссылки с beacon-блоком. Состав комитетов не постоянен. Комитет, ответственный за связывание перекрестными ссылками блока шарда, меняется от блока к блоку. Подробное изучение комитетов шардов, ответственных исключительно за состояние блокчейна шарда, — это тема для будущих исследований.

    В каждую эпоху валидаторы заново сортируются в комитеты для создания аттестаций (или голосования) по каждому из 32 слотов. Адаптировано из источника: https://ethos.dev/beacon-chain/

    Основным источником нагрузки на Beacon Chain являются голоса (или аттестации). Аттестация — это голос валидатора, взвешенный по его балансу, и такие аттестации транслируются валидаторами в дополнение к блокам.

    Блок в первом слоте эпохи называют чекпойнтом (контрольной точкой) или граничным блоком эпохи. В эпохе всегда есть один чекпойнт-блок, где все валидаторы голосуют по Casper FFG. Блок может быть чекпойнтом и для нескольких эпох.

    В большинстве случаев валидаторы — это аттестаторы, голосующие за блоки Beacon Chain и шардов. Эти голоса записываются в Beacon Chain. Голоса определяют актуальное состояние Beacon Chain и шардов.

    Когда члены комитета голосуют за блок, они должны ссылаться и голосовать за конкретный чекпойнт-блок из истории, а также отдать голос за конкретный предложенный блок. Или, точнее, ссылку на переход от одного чекпойнт-блока к другому (от исходного к целевому чекпойнту) — механизм, дающий уверенность в том, что процесс голосования урегулирован.

    Блок считается «обоснованным» (justified), если поверх него сформирован чекпойнт-блок и более чем две трети членов комитета ссылаются на этот чекпойнт. Это может быть достигнуто, самое раннее, по истечении двух третей эпохи. Когда эпоха заканчивается, чекпойнт считается обоснованным.

    Чекпойнты и окончательность. Адаптировано из источника: https://ethos.dev/beacon-chain/

    Затем этот блок становится финализированным, когда после него в блокчейн записывается два новых обоснованных блока. Как правило, время до обоснования блока будет составлять одну эпоху (~6,4 минуты), а до его финализации — две эпохи (~12,8 минуты).

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

    Правило выбора форка LMD-GHOST гарантирует, что при расчете актуального состояния (head) цепочки учитывается только последний голос каждого валидатора, а не любой его выбор, сделанный в прошлом (что значительно сокращает объем требуемых вычислений).

    Для Casper FFG все голоса состоят из двух ‘субголосов’: один — за эпоху, которая обосновывается в данный момент, и второй — за предыдущую, финализируемую эпоху. Такое разделение на два субголоса сокращает потребность в дополнительной связи между нодами, позволяя сети масштабироваться до большего числа валидаторов.

    Консенсус в Eth2 основывается на следующих важных технологиях:

    • LMD-GHOST (добавляет новые блоки и определяет голову цепочки) — позволяет быстро и эффективно добавлять блоки;
    • Casper FFG (принимает окончательное решение о том, какие блоки являются или не являются частью цепочки) — обеспечивает безопасность следования за LMD-GHOST и финализирования эпох.

    Вместе все валидаторы в эпоху посредством голосования Casper FFG стремятся финализировать одну контрольную точку, а все валидаторы, назначенные слоту, посредством голосования LMD-GHOST стремятся определить один консенсусный указатель head координационного Beacon Chain.

    Связывание Eth1 и Eth2

    Для участия в нулевой фазе был создан новый токен для Beacon chain (BETH), обменный курс которого привязан к ETH. BETH создаются через одностороннюю транзакцию из Eth1 в Eth2 и не могут быть возвращены в основной блокчейн до окончания нулевой фазы. Использование BETH в блокчейнах шардов (для смарт-контрактов) станет доступно в фазе 2.

    По зачислении ETH на bridge-контракт («контракт-мост») пользователь получает такую же сумму BETH на Beacon Chain. Минимальная сумма депозита на bridge-контракт составляет 1 ETH, но для того чтобы стать валидатором, нужно внести не менее 32 ETH. Использование одностороннего моста делает систему проще и надежнее, но подразумевает потенциальный риск блокировки (а также вероятность возникновения рынков фьючерсов на отдельные токены Eth1 и Eth2).

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

    Для запуска нулевой фазы необходимо было собрать не менее 524 288 ETH и 16 384 валидатора, чтобы обеспечить достаточный уровень децентрализации и безопасности, что и было сделано к 1 декабря, когда произошел запуск Beacon Chain. Со временем в экосистеме Ethereum должны будут появиться продукты и решения, позволяющие пользователям объединять свои средства в пулы и получать соразмерную своему вкладу долю от общего вознаграждения за стейкинг.

    При минимально возможном количестве валидаторов (16 384), годовая доходность стейкинга составляет около 20% (при условии 95% времени безотказной работы ноды). Но по мере увеличения общего стейка ETH и числа валидаторов доходность будет сокращаться. Ниже приведен график, показывающий устойчивый рост числа потенциальных валидаторов за последний год.

    Количество потенциальных валидаторов Eth2. Учитываются только счета, принадлежащие внешним владельцам. Источник: Glassnode

    По состоянию на 17 мая 2020 г. (доступ к более поздним данным был ограничен платной подпиской) количество адресов с балансом ≥ 32 ETH составляло 115 411.

    Потенциальные риски и доходы валидаторов

    Есть различные статьи затрат и дохода, которые следует учитывать инвесторам, заинтересованным в запуске валидатора для Eth2. Например, Beacon Chain деактивирует всех валидаторов, баланс которых сокращается до 16 ETH — это называется «принудительным выводом» (forced exit). При этом стейкер имеет возможность вывести любой остаток баланса валидатора (но не раньше начала фазы 1).

    Баланс честного валидатора можно будет вывести примерно через 27 часов. Валидаторы смогут также покинуть сеть добровольно («voluntary exit») после того, как отработали 2048 эпох (что соответствует примерно девяти дням). При любом выходе валидатора — добровольном или принудительном — существует задержка в четыре эпохи, прежде чем стейкер сможет запросить вывод средств из своего стейка. В эти четыре эпохи валидатор еще может быть пойман на недобросовестном поведении и лишен средств в стейке, полностью или частично. Однако для подвергнутого штрафу валидатора задержка перед выводом средств увеличивается до 8192 эпох (около 36 дней).

    Ниже перечислены основные выгоды и затраты, ассоциируемые с поддержанием нод-валидаторов:

    Выгоды:

    • Награды за аттестацию: валидаторы получают вознаграждение за аттестации (голосование в LMD-GHOST и Casper FFG), с которыми соглашается большинство других валидаторов. В первой фазе Eth2 валидаторы также будут получать вознаграждение за перекрестные ссылки. Аттестации в финализированных блоках стоят дороже.
    • Награды инициаторам блоков: вознаграждение получают инициаторы блоков (proposers), которые в итоге были финализированы. Валидаторы, постоянно находящиеся онлайн и качественно выполняющие свои обязанности, получают примерно одну восьмую от общего вознаграждения за предложение блоков с новыми аттестациями. При сокращении депозита виновного валидатора, инициаторы блоков также получают небольшое вознаграждение за включение в блок записи об этом.
    • Награды информаторов (разоблачителей): разоблачители могут получать награду за сигналы о совершении валидаторами наказуемых действий. В нулевой фазе все награды информаторам фактически переходят инициаторам блоков.

    Затраты:

    • По приблизительной оценке, вычислительные затраты для beacon-ноды и клиента валидатора составляют около 120 $/год.
    • Штрафы аттестаторам: валидаторы получают штрафы, если не аттестуют блоки или если аттестуют блоки, которые не были финализированы.
    • Штраф за бездействие: если достаточное количество нод становится неактивным, они со временем теряют свой баланс, так, чтобы (взвешенное по стейку) отношение валидаторов онлайн к их общему числу снова превысило две трети, и Eth2 мог продолжить принимать решения как протокол. Штрафы за бездействие — это один из механизмов обеспечения жизнеспособности Eth2 в случае некоего апокалиптического события. В случае отключения от сети более чем трети валидаторов, автономные валидаторы обнаружат, что их балансы сократились настолько, что их участие в консенсусе сети больше не является необходимым.
    • Нарушения, наказываемые мгновенным сокращением депозита: штрафы за такие нарушения варьируются в диапазоне от 0,5 ETH до всего стейка валидатора. До тех пор, пока валидатор не подпишет конфликтующую аттестацию или предложение, его стейк не может быть сокращен или изъят. Валидатор теряет не менее 1/32 своего баланса и деактивируется, то есть принудительно выводится из числа валидаторов. Протокол также налагает на него дополнительное наказание, исходя из того, сколько других валидаторов было наказано за то же нарушение примерно в то же время. Так что если одна треть всех валидаторов в короткий промежуток времени совершит такого рода нарушение, то все эти валидаторы лишатся своего баланса в полном объеме.

    К нарушениям, наказываемым мгновенным сокращением стейка, относятся:

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

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

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

    Источник: bitnovosti.com

    Загрузка ...