Доказательство доли владения (PoS)
Доказательство доли владения (PoS) лежит в основе механизма консенсуса Эфириума. Эфириум перешел на механизм доказательства доли владения в 2022 году, поскольку он более безопасен, менее энергоемок и лучше подходит для внедрения новых решений по масштабированию по сравнению с предыдущей архитектурой доказательства выполнения работы.
Предварительные требования
Для лучшего понимания этой страницы мы рекомендуем сначала прочитать про механизмы консенсуса.
Что такое доказательство доли владения (PoS)?
Доказательство доли владения — это способ доказать, что валидаторы внесли в сеть нечто ценное, что может быть уничтожено, если они будут действовать нечестно. В доказательстве доли владения Эфириума валидаторы явно стейкают капитал в виде ETH в смарт-контракт в Эфириуме. Затем валидатор несет ответственность за проверку того, что новые блоки, распространяемые по сети, являются действительными, а также время от времени сам создает и распространяет новые блоки. Если они попытаются обмануть сеть (например, предлагая несколько блоков, когда должны отправить один, или отправляя противоречивые аттестации), часть или весь их застейканный ETH может быть уничтожен.
Валидаторы
Чтобы участвовать в качестве валидатора, пользователь должен внести 32 ETH в депозитный контракт и запустить три отдельные программы: клиент исполнения, клиент консенсуса и клиент валидатора. После внесения ETH пользователь присоединяется к очереди на активацию, которая ограничивает скорость присоединения новых валидаторов к сети. После активации валидаторы получают новые блоки от пиров в сети Эфириум. Транзакции, доставленные в блоке, выполняются повторно, чтобы проверить, что предложенные изменения состояния Эфириума действительны, а также проверяется подпись блока. Затем валидатор отправляет голос (называемый аттестацией) в пользу этого блока по всей сети.
В то время как при доказательстве выполнения работы время появления блоков определяется сложностью майнинга, в доказательстве доли владения темп фиксирован. Время в Эфириуме на основе доказательства доли владения делится на слоты (12 секунд) и эпохи (32 слота). Один валидатор случайным образом выбирается в качестве предлагающего блок в каждом слоте. Этот валидатор отвечает за создание нового блока и его отправку другим узлам в сети. Также в каждом слоте случайным образом выбирается комитет валидаторов, чьи голоса используются для определения действительности предлагаемого блока. Разделение набора валидаторов на комитеты важно для поддержания управляемой нагрузки на сеть. Комитеты разделяют набор валидаторов таким образом, чтобы каждый активный валидатор проводил аттестацию в каждой эпохе, но не в каждом слоте.
Как выполняется транзакция в PoS Эфириума
Ниже приведено подробное объяснение того, как транзакция выполняется в Эфириуме с доказательством доли владения.
- Пользователь создает и подписывает транзакцию своим приватным ключом. Обычно это обрабатывается кошельком или библиотекой, такой как ethers.js (opens in a new tab), web3js (opens in a new tab), web3py (opens in a new tab) и т. д., но технически пользователь делает запрос к узлу, используя JSON-RPC API Эфириума. Пользователь определяет количество газа, которое он готов заплатить в качестве чаевых валидатору, чтобы побудить его включить транзакцию в блок. Чаевые выплачиваются валидатору, в то время как базовая комиссия сжигается.
- Транзакция отправляется клиенту исполнения Эфириума, который проверяет ее действительность. Это означает проверку того, что у отправителя достаточно ETH для выполнения транзакции и что он подписал ее правильным ключом.
- Если транзакция действительна, клиент исполнения добавляет ее в свой локальный мемпул (список ожидающих транзакций), а также транслирует ее другим узлам через gossip-сеть уровня исполнения. Когда другие узлы узнают о транзакции, они также добавляют ее в свой локальный мемпул. Продвинутые пользователи могут воздержаться от трансляции своей транзакции и вместо этого переслать ее специализированным сборщикам блоков, таким как Flashbots Auction (opens in a new tab). Это позволяет им организовывать транзакции в предстоящих блоках для получения максимальной прибыли (MEV).
- Один из узлов-валидаторов в сети является предлагающим блок для текущего слота, будучи предварительно выбранным псевдослучайным образом с использованием RANDAO. Этот узел отвечает за создание и трансляцию следующего блока, который будет добавлен в блокчейн Эфириума, и обновление глобального состояния. Узел состоит из трех частей: клиента исполнения, клиента консенсуса и клиента валидатора. Клиент исполнения объединяет транзакции из локального мемпула в «полезную нагрузку исполнения» и выполняет их локально для генерации изменения состояния. Эта информация передается клиенту консенсуса, где полезная нагрузка исполнения оборачивается как часть «блока сигнальной цепи», который также содержит информацию о вознаграждениях, штрафах, слэшингах, аттестациях и т. д., что позволяет сети согласовать последовательность блоков в начале цепи. Связь между клиентами исполнения и консенсуса более подробно описана в разделе Подключение клиентов консенсуса и исполнения.
- Другие узлы получают новый блок сигнальной цепи в gossip-сети уровня консенсуса. Они передают его своему клиенту исполнения, где транзакции повторно выполняются локально, чтобы убедиться, что предложенное изменение состояния действительно. Затем клиент валидатора подтверждает (аттестует), что блок действителен и является логическим следующим блоком в их представлении цепи (это означает, что он строится на цепи с наибольшим весом аттестаций, как определено в правилах выбора форка). Блок добавляется в локальную базу данных на каждом узле, который его аттестует.
- Транзакция может считаться «финализированной», если она стала частью цепи со «связью абсолютного большинства» между двумя контрольными точками. Контрольные точки возникают в начале каждой эпохи и существуют для учета того факта, что только подмножество активных валидаторов проводит аттестацию в каждом слоте, но все активные валидаторы проводят аттестацию в течение каждой эпохи. Следовательно, только между эпохами может быть продемонстрирована «связь абсолютного большинства» (это когда 66% от общего количества застейканных ETH в сети соглашаются с двумя контрольными точками).
Более подробную информацию о финальности можно найти ниже.
Финальность
Транзакция обладает «финальностью» в распределенных сетях, когда она является частью блока, который не может измениться без сжигания большого количества ETH. В Эфириуме с доказательством доли владения это управляется с помощью блоков «контрольных точек». Первый блок в каждой эпохе является контрольной точкой. Валидаторы голосуют за пары контрольных точек, которые они считают действительными. Если пара контрольных точек привлекает голоса, представляющие не менее двух третей от общего количества застейканных ETH, статус контрольных точек повышается. Более поздняя из двух (целевая) становится «обоснованной». Более ранняя из двух уже является обоснованной, потому что она была «целевой» в предыдущей эпохе. Теперь ее статус повышается до «финализированной». Этот процесс повышения статуса контрольных точек обрабатывается Каспер FFG (Casper the Friendly Finality Gadget) (opens in a new tab). Каспер FFG — это инструмент финальности блоков для консенсуса. Как только блок финализирован, он не может быть откачен или изменен без слэшинга большинства стейкеров, что делает это экономически невыгодным.
Чтобы откатить финализированный блок, злоумышленник должен пойти на потерю как минимум одной трети от общего объема застейканных ETH. Точная причина этого объясняется в этом посте в блоге Фонда Ethereum (opens in a new tab). Поскольку финальность требует большинства в две трети, злоумышленник мог бы помешать сети достичь финальности, проголосовав одной третью от общего стейка. Существует механизм защиты от этого: утечка при бездействии (opens in a new tab). Она активируется всякий раз, когда цепь не может финализироваться в течение более чем четырех эпох. Утечка при бездействии постепенно списывает застейканные ETH у валидаторов, голосующих против большинства, позволяя большинству восстановить перевес в две трети и финализировать цепь.
Криптоэкономическая безопасность
Запуск валидатора — это коммитмент. Ожидается, что валидатор будет поддерживать достаточное аппаратное обеспечение и подключение для участия в валидации блоков и их предложении. Взамен валидатор получает оплату в ETH (его застейканный баланс увеличивается). С другой стороны, участие в качестве валидатора также открывает новые возможности для пользователей атаковать сеть ради личной выгоды или саботажа. Чтобы предотвратить это, валидаторы лишаются вознаграждений в ETH, если они не участвуют, когда к ним обращаются, а их существующий стейк может быть уничтожен, если они ведут себя нечестно. Два основных типа поведения могут считаться нечестными: предложение нескольких блоков в одном слоте (двусмысленность) и отправка противоречивых аттестаций.
Количество ETH, подвергнутого слэшингу, зависит от того, сколько валидаторов также подвергаются слэшингу примерно в то же время. Это известно как «корреляционный штраф» (opens in a new tab), и он может быть незначительным (~1% стейка для одного валидатора, подвергнутого слэшингу в одиночку) или может привести к уничтожению 100% стейка валидатора (массовый слэшинг). Он налагается на полпути периода принудительного выхода, который начинается с немедленного штрафа (до 1 ETH) в 1-й день, корреляционного штрафа на 18-й день и, наконец, исключения из сети на 36-й день. Они получают незначительные штрафы за аттестацию каждый день, потому что присутствуют в сети, но не отправляют голоса. Все это означает, что скоординированная атака обойдется злоумышленнику очень дорого.
Выбор форка
Когда сеть работает оптимально и честно, в начале цепи всегда есть только один новый блок, и все валидаторы аттестуют его. Однако возможно, что у валидаторов будут разные представления о начале цепи из-за задержки в сети или из-за того, что предлагающий блок допустил двусмысленность. Поэтому клиентам консенсуса требуется алгоритм, чтобы решить, какому из них отдать предпочтение. Алгоритм, используемый в Эфириуме с доказательством доли владения, называется LMD-GHOST (opens in a new tab), и он работает путем определения форка, который имеет наибольший вес аттестаций в своей истории.
Доказательство доли владения и безопасность
Угроза атаки 51% (opens in a new tab) по-прежнему существует в доказательстве доли владения, как и в доказательстве выполнения работы, но для злоумышленников она еще более рискованна. Злоумышленнику потребуется 51% от застейканных ETH. Затем они могли бы использовать свои собственные аттестации, чтобы гарантировать, что предпочитаемый ими форк будет тем, у которого больше всего накопленных аттестаций. «Вес» накопленных аттестаций — это то, что клиенты консенсуса используют для определения правильной цепи, поэтому этот злоумышленник смог бы сделать свой форк каноническим. Однако преимущество доказательства доли владения перед доказательством выполнения работы заключается в том, что у сообщества есть гибкость в организации контратаки. Например, честные валидаторы могут решить продолжить строительство на цепи меньшинства и игнорировать форк злоумышленника, одновременно поощряя приложения, биржи и пулы делать то же самое. Они также могут решить принудительно удалить злоумышленника из сети и уничтожить его застейканные ETH. Это сильные экономические средства защиты от атаки 51%.
Помимо атак 51%, злоумышленники также могут попытаться осуществить другие виды вредоносных действий, такие как:
- атаки на большом расстоянии (хотя инструмент финальности нейтрализует этот вектор атаки)
- «реорганизации» на коротком расстоянии (хотя усиление предлагающего и сроки аттестации смягчают это)
- атаки с отскоком и балансировкой (также смягчаются усилением предлагающего, и эти атаки в любом случае были продемонстрированы только в идеализированных сетевых условиях)
- лавинные атаки (нейтрализуются правилом алгоритмов выбора форка, учитывающим только последнее сообщение)
В целом, доказательство доли владения в том виде, в каком оно реализовано в Эфириуме, продемонстрировало большую экономическую безопасность, чем доказательство выполнения работы.
Плюсы и минусы
| Плюсы | Минусы |
|---|---|
| Стейкинг облегчает отдельным лицам участие в обеспечении безопасности сети, способствуя децентрализации. Узел валидатора можно запустить на обычном ноутбуке. Пулы для стейкинга позволяют пользователям стейкать, не имея 32 ETH. | Доказательство доли владения моложе и менее проверено в боевых условиях по сравнению с доказательством выполнения работы |
| Стейкинг более децентрализован. Эффект масштаба не применяется так же, как при майнинге PoW. | Доказательство доли владения сложнее в реализации, чем доказательство выполнения работы |
| Доказательство доли владения обеспечивает большую криптоэкономическую безопасность, чем доказательство выполнения работы | Пользователям необходимо запустить три программы для участия в доказательстве доли владения Эфириума. |
| Для стимулирования участников сети требуется меньшая эмиссия новых ETH |
Сравнение с доказательством выполнения работы
Изначально Эфириум использовал доказательство выполнения работы, но перешел на доказательство доли владения в сентябре 2022 года. PoS предлагает несколько преимуществ по сравнению с PoW, таких как:
- лучшая энергоэффективность — нет необходимости тратить много энергии на вычисления доказательства выполнения работы
- более низкие барьеры для входа, сниженные требования к аппаратному обеспечению — нет необходимости в элитном оборудовании, чтобы иметь шанс на создание новых блоков
- снижение риска централизации — доказательство доли владения должно привести к тому, что больше узлов будут обеспечивать безопасность сети
- из-за низких требований к энергии требуется меньшая эмиссия ETH для стимулирования участия
- экономические штрафы за неправомерное поведение делают атаки в стиле 51% более дорогостоящими для злоумышленника по сравнению с доказательством выполнения работы
- сообщество может прибегнуть к социальному восстановлению честной цепи, если атака 51% преодолеет криптоэкономическую защиту.
Дополнительная литература
- Часто задаваемые вопросы о доказательстве доли владения (opens in a new tab) Виталик Бутерин
- Что такое доказательство доли владения (opens in a new tab) ConsenSys
- Что такое доказательство доли владения и почему это важно (opens in a new tab) Виталик Бутерин
- Почему доказательство доли владения (ноябрь 2020 г.) (opens in a new tab) Виталик Бутерин
- Доказательство доли владения: как я научился любить слабую субъективность (opens in a new tab) Виталик Бутерин
- Атака и защита Эфириума с доказательством доли владения (opens in a new tab)
- Философия дизайна доказательства доли владения (opens in a new tab) Виталик Бутерин
- Видео: Виталик Бутерин объясняет доказательство доли владения Лексу Фридману (opens in a new tab)