Proof of Stake - Доказательство наличия доли
Оглавление:
- Особенности
- Валидаторы
- Порядок выполнения транзакций
- Крипто-экономическая безопасность
- Выбор форка
- Сильные и слабые стороны алгоритма Proof of Stake
- Отсутствие стекинга
- Примеры POS
- Другие алгоритмы
1. Особенности
Считается самой распространенной альтернативой алгоритма консенсуса PoW. Ethereum перешел от консенсуса PoW к консенсусу PoS. В этом типе алгоритма консенсуса валидаторы инвестируют в монеты системы, блокируя некоторые из своих монет в качестве ставок (стекинг) вместо того, чтобы вкладывать средства в дорогостоящее оборудование для решения сложной головоломки. Валидаторы будут проверять блоки, делая на них ставку, при обнаружении ими блока, который, по их мнению, может быть добавлен в блокчейн.
Основываясь на фактических блоках, добавленных в блокчейн, все валидаторы получают вознаграждение, пропорциональное размеру ставок. Кроме этого валидатор выбирается для создания нового блока на основе количества сделанных ставок. Таким образом, PoS побуждает валидаторов к соглашению с помощью механизма стимулирования.
Proof-of-stake включает в себя ряд улучшений устаревшей системы Proof-of-Work:
- повышенная энергоэффективность – нет необходимости тратить много энергии на вычисления для проверки работоспособности.
- более низкие суммы начальных ставок, сниженные требования к оборудованию – нет необходимости в дорогостоящем оборудовании для возможности создания новых блоков
- сниженный риск централизации – доказательство доли должно привести к большему количеству нод, защищающих сеть
- из-за низкой потребности в энергии требуется меньше эмиссии ETH для стимулирования участия
- экономические штрафы за неправильное поведение делают атаки в стиле 51% более дорогостоящими для злоумышленника по сравнению с применением алгоритма доказательством работы.
- сообщество может прибегнуть к социальному восстановлению честной цепочки, если криптоэкономическая защита будет нарушена атакой 51%.
2. Валидаторы
Для получения статуса валидатора пользователю нужно внести 32 ETH в депозитный контракт и запустить три отдельных части программного обеспечения: клиент исполнения, клиент консенсуса и валидатор. При внесении ETH пользователь присоединяется к очереди активации, которая ограничивает количество новых валидаторов, присоединяющихся к сети. После активации валидаторы получают новые блоки от пиров в сети Ethereum. Транзакции, доставленные в блоке, выполняются повторно, и подпись блока проверяется для верификации действительности блока. Затем валидатор отправляет добытый блок на голосование (называемое аттестацией).
Если в алгоритме доказательства работы время блоков определяется сложностью майнинга, при доказательстве доли темп является фиксированным. Время в Proof-of-Stake Ethereum разделено на слоты (12 секунд) и эпохи (32 слота). В каждом слоте случайным образом выбирается один валидатор в качестве предлагающего блоки. Избранный валидатор отвечает за создание нового блока и его отправку другим нодам в сети. Также в каждом слоте случайным образом выбирается комитет валидаторов, чьи голоса используются для определения действительности предлагаемого блока.
3. Порядок выполнения транзакций
- Пользователь создает и подписывает транзакцию своим закрытым ключом. Обычно это обрабатывается кошельком или библиотекой, такой как ether.js, web3js, web3py и т.д. Пользователь определяет количество газа, которое он готов заплатить в качестве чаевых валидатору для того чтобы последний включил транзакцию в блок. Чаевые выплачиваются валидатору, а базовая комиссия сгорает.
- Транзакция отправляется исполняющему клиенту Ethereum, который проверяет ее действительность. Под действительностью подразумевается, что у отправителя достаточно ETH для выполнения транзакции, и что он подписал ее с помощью правильного ключа.
- Если транзакция действительна, клиент выполнения добавляет ее в свой локальный мемпул (список ожидающих транзакций), а также транслирует ее другим нодам по сети. Когда другие узлы узнают о транзакции, они также добавляют ее в свой локальный мемпул. Опытные пользователи могут воздержаться от трансляции своей транзакции и вместо этого направить ее специализированным сборщикам блоков, таким как Flashbots Auction. Это позволяет им организовывать транзакции в предстоящих блоках для получения максимальной прибыли (MEV).
- Одна из нод в сети является инициатором блока для текущего слота, предварительно выбранным псевдослучайным образом с использованием RANDAO. Эта нода отвечает за создание и трансляцию следующего блока, который будет добавлен в блокчейн Ethereum, а также за обновление глобального состояния. Нода состоит из трех частей: клиента исполнения, клиента консенсуса и клиента валидатора. Клиент выполнения объединяет транзакции из локального мемпула в «полезную нагрузку выполнения» и выполняет их локально для генерации изменения состояния. Эта информация передается клиенту консенсуса, где полезная нагрузка выполнения превращается в часть «маякового блока», который также содержит информацию о вознаграждениях, штрафах, сокращениях, аттестациях и т. д., что позволяет сети согласовать последовательность блоков в начале цепи.
- Другие ноды получают новый блок-маяк в сети уровня консенсуса. Они передают его своему исполняющему клиенту, где транзакции повторно выполняются локально, чтобы убедиться, что предложенное изменение состояния допустимо. Затем клиент-валидатор подтверждает, что блок действителен и является логическим следующим блоком в их представлении о цепочке (это означает, что он строится на блокчейнес наибольшим весом подтверждений, как определено в правилах выбора форка). Блок добавляется в локальную базу данных в каждой ноде, которая его подтверждает.
- Транзакция может считаться «завершенной», т. е. необратимой, если она стала частью цепочки с «мажоритарным звеном» между двумя контрольными точками. Контрольные точки возникают в начале каждой эпохи, и для того, чтобы иметь связь с квалифицированным большинством, они оба должны быть подтверждены 66% от общего количества ETH в сети.
4. Крипто-экономическая безопасность
Запуск валидатора — обязательство. Ожидается, что валидатор будет поддерживать достаточное оборудование и возможности подключения для участия в проверке и предложении блоков. Работа валидатора оплачивается в ETH (с помощью увеличения баланса застейканых монет).
С другой стороны, участие в качестве валидатора также открывает новые возможности для пользователей, чтобы использовать сеть для личной выгоды или саботажа. Для предотвращения не честной работы валидаторы не получают вознаграждения в ETH, если они не принимают участия, а их существующая ставка может быть уничтожена, если они ведут себя нечестно.
Есть два основных вида поведения, которые можно считать нечестными: предложение нескольких блоков в одном слоте (двусмысленность) и представление противоречивых подтверждений.
Количество урезанного ETH зависит от количества одновременно урезанных валидаторов. Это известно как «штраф за корреляцию», и он может быть незначительным (~1% ставки для одного валидатора урезается сам по себе) или может привести к уничтожению 100% ставки валидатора ( массовое уничтожение).
Он применяется в середине периода принудительного выхода, который начинается с немедленного штрафа (до 0,5 ETH) в 1-й день, штрафа за корреляцию в 18-й день и, наконец, исключения из сети в 36-й день. Они получают небольшие штрафы за аттестацию каждый день, потому что присутствуют в сети, но не отдают голоса.
5. Выбор форка
При оптимальной работе сети в начале блокчейна всегда есть только один новый блок, и все валидаторы подтверждают это.
Однако у валидаторов могут быть разные взгляды на начало блокчейна из-за сетевых задержек или из-за двусмысленности инициатора блока. Следовательно, консенсусным клиентам требуется алгоритмдля принятия решения о выборе блока. Алгоритм, используемый в Proof-of-Stake Ethereum, называется LMD-GHOST, и он работает, идентифицируя форк с наибольшим количеством аттестаций.
6. Сильные и слабые стороны алгоритма Proof of Stake
С одной стороны, PoS устраняет некоторые недостатки системы PoW, лежащей в основе криптовалют, таких как биткойн. PoS по существу устраняет барьеры для входа в процесс проверки. Пользователям больше не нужно покупать специализированные компьютеры только для того, чтобы получить шанс выиграть эту неуловимую награду за блок. Следовательно, PoS требует меньше вычислительной мощности, чем PoW, и поэтому оказывает меньшее влияние на окружающую среду.
С другой стороны, некоторые сети PoS имеют серьезные недостатки, зависящие от вариантов, используемых для определения доли в сети. Производители блоков некоторых монет могут обладать большими полномочиями при небольшом количестве производителей блоков. Однако полномочия производителя могут быть автоматически отозваны в любое время, когда он или она делает что-либо, противоречащее интересам сети. Если, например, производитель монеты EOS не работает ни с одним блоком в течение 24 часов, его место быстро занимает резервная копия.
Второй основной недостаток заключается в том, что ряд систем PoS отдают предпочтение состоятельным пользователям: больше застеканых монет больше голосов
Например, в Cardano, уже решили эту проблему, внедрив рандомизированный выбор производителей блоков. В этом случае более состоятельные пользователи по-прежнему имеют больше шансов стать производителями блоков, но внешнее влияние «крипто-китов» — участников, владеющих гораздо большим количеством монет конкретной сети, чем средний пользователь — уменьшается.
7. Отсутствие стекинга
Наконец, в сети Proof-of-Stake существует проблема, известная как «полное отсутствие стекинга». В сети PoW редко бывает так, что два майнера создают блок почти одновременно из-за временной задержки. Это приводит к временной путанице в сети, и узлам необходимо достичь консенсуса в отношении действительного блока. Следовательно, майнерам необходимо выбирать, на какую версию блокчейна тратить свои ресурсы, минуя другие возможности.
Однако, как и в системе PoS, для создания новых блоков требуется мало ресурсов. Валидатор может продолжить работу над несколькими версиями форка и создать новые блоки. Как следствие, пользователи могут майнить на конкурирующих ветвях блокчейна, чтобы максимизировать размер комиссий за транзакции, которые они получают. Для решения этой проблемы у большинства монет PoS есть дополнительные механизмы защиты, встроенные в их протокол.
8. Примеры POS
К самым популярным примерам POS относятся:
- и другие.
9. Другие алгоритмы
-