---
title: "Вознаграждения и штрафы в Proof-of-Stake"
description: "Узнайте о внутрипротокольных стимулах в Эфириуме на базе Proof-of-Stake."
lang: ru
---

[Эфириум](/) защищен с помощью своей собственной криптовалюты — эфира (ETH). Операторы узлов, желающие участвовать в проверке блоков и определении вершины цепи, вносят эфир в [депозитный контракт](/staking/deposit-contract/) в Эфириуме. Затем им платят в эфире за запуск программного обеспечения валидатора, которое проверяет действительность новых блоков, полученных через одноранговую сеть, и применяет алгоритм выбора форка для определения вершины цепи.

У валидатора есть две основные роли: 1) проверка новых блоков и их «аттестация», если они действительны, 2) предложение новых блоков при случайном выборе из общего пула валидаторов. Если валидатор не выполняет ни одну из этих задач по запросу, он упускает выплату в эфире. Валидаторам также иногда поручается агрегация подписей и участие в комитетах синхронизации.

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

Все вознаграждения и штрафы применяются один раз за эпоху.

Читайте дальше для получения более подробной информации...

## Вознаграждения и штрафы {#rewards}

### Вознаграждения {#rewards-2}

Валидаторы получают вознаграждения, когда они отдают голоса, которые согласуются с большинством других валидаторов, когда они предлагают блоки и когда они участвуют в комитетах синхронизации. Значение вознаграждений в каждой эпохе рассчитывается на основе `base_reward`. Это базовая единица, из которой рассчитываются другие вознаграждения. `base_reward` представляет собой среднее вознаграждение, получаемое валидатором в оптимальных условиях за эпоху. Оно рассчитывается из эффективного баланса валидатора и общего количества активных валидаторов следующим образом:

```
base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance))))
```

где `base_reward_factor` равно 64, `base_rewards_per_epoch` равно 4, а `sum(active balance)` — это общий стейк эфира среди всех активных валидаторов.

Это означает, что базовое вознаграждение пропорционально эффективному балансу валидатора и обратно пропорционально количеству валидаторов в сети. Чем больше валидаторов, тем больше общая эмиссия (поскольку `sqrt(N)`), но тем меньше `base_reward` на одного валидатора (поскольку `1/sqrt(N)`). Эти факторы влияют на APR для узла стейкинга. Ознакомьтесь с обоснованием этого в [заметках Виталика](https://notes.ethereum.org/@vbuterin/serenity_design_rationale?type=view#Base-rewards).

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

```
1. source vote: валидатор своевременно отдал голос за правильную исходную контрольную точку
2. target vote: валидатор своевременно отдал голос за правильную целевую контрольную точку
3. head vote: валидатор своевременно отдал голос за правильный головной блок
4. sync committee reward: валидатор принял участие в комитете синхронизации
5. proposer reward: валидатор предложил блок в правильном слоте
```

Веса для каждого компонента следующие:

```
TIMELY_SOURCE_WEIGHT	uint64(14)
TIMELY_TARGET_WEIGHT	uint64(26)
TIMELY_HEAD_WEIGHT	uint64(14)
SYNC_REWARD_WEIGHT	uint64(2)
PROPOSER_WEIGHT	uint64(8)
```

Сумма этих весов равна 64. Вознаграждение рассчитывается как сумма применимых весов, разделенная на 64. Валидатор, который своевременно отдал голоса за источник, цель и вершину, предложил блок и участвовал в комитете синхронизации, может получить `64/64 * base_reward == base_reward`. Однако валидатор обычно не является предлагающим блок, поэтому его максимальное вознаграждение составляет `64-8 /64 * base_reward == 7/8 * base_reward`. Валидаторы, которые не являются ни предлагающими блок, ни членами комитета синхронизации, могут получить `64-8-2 / 64 * base_reward == 6.75/8 * base_reward`.

Дополнительное вознаграждение добавляется для стимулирования быстрых аттестаций. Это `inclusion_delay_reward`. Его значение равно `base_reward`, умноженному на `1/delay`, где `delay` — это количество слотов, разделяющих предложение блока и аттестацию. Например, если аттестация отправляется в течение одного слота после предложения блока, аттестующий получает `base_reward * 1/1 == base_reward`. Если аттестация поступает в следующем слоте, аттестующий получает `base_reward * 1/2` и так далее.

Предлагающие блок получают `8 / 64 * base_reward` за **каждую действительную аттестацию**, включенную в блок, поэтому фактическое значение вознаграждения масштабируется в зависимости от количества аттестующих валидаторов. Предлагающие блок также могут увеличить свое вознаграждение, включив в предложенный ими блок доказательства неправомерного поведения других валидаторов. Эти вознаграждения являются «пряниками», которые поощряют честность валидаторов. Предлагающий блок, который включает слэшинг, будет вознагражден `slashed_validators_effective_balance / 512`.

### Штрафы {#penalties}

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

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

Узнайте больше о вознаграждениях и штрафах в [спецификациях консенсуса](https://github.com/ethereum/consensus-specs/blob/master/specs/altair/beacon-chain.md). Вознаграждения и штрафы были скорректированы в обновлении Bellatrix — посмотрите, как Дэнни Райан и Виталик обсуждают это в этом [видео Peep an EIP](https://www.youtube.com/watch?v=iaAEGs1DMgQ).

## Слэшинг {#slashing}

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

- Путем предложения и подписания двух разных блоков для одного и того же слота
- Путем аттестации блока, который «окружает» другой (фактически изменяя историю)
- Путем «двойного голосования» при аттестации двух кандидатов на один и тот же блок

Если эти действия обнаружены, валидатор подвергается слэшингу. Это означает, что 0.0078125 немедленно сжигается для валидатора с 32 ETH (масштабируется линейно с активным балансом), затем начинается 36-дневный период удаления. В течение этого периода удаления стейк валидатора постепенно истощается. На середине срока (18-й день) применяется дополнительный штраф, величина которого масштабируется в зависимости от общего стейка эфира всех валидаторов, подвергнутых слэшингу за 36 дней до события слэшинга. Это означает, что когда больше валидаторов подвергается слэшингу, величина слэшинга увеличивается. Максимальный слэшинг — это полный эффективный баланс всех валидаторов, подвергнутых слэшингу (т. е. если слэшингу подвергается много валидаторов, они могут потерять весь свой стейк). С другой стороны, единичное, изолированное событие слэшинга сжигает лишь небольшую часть стейка валидатора. Этот штраф на середине срока, который масштабируется в зависимости от количества валидаторов, подвергнутых слэшингу, называется «штрафом за корреляцию».

## Утечка при бездействии {#inactivity-leak}

Если уровень консенсуса прошел более четырех эпох без достижения финальности, активируется аварийный протокол, называемый «утечка при бездействии». Конечная цель утечки при бездействии — создать условия, необходимые для восстановления финальности цепи. Как объяснялось выше, для финальности требуется, чтобы 2/3 от общего стейка эфира согласовали исходные и целевые контрольные точки. Если валидаторы, представляющие более 1/3 от общего числа валидаторов, отключаются от сети или не могут отправить правильные аттестации, то абсолютное большинство в 2/3 не может финализировать контрольные точки. Утечка при бездействии позволяет стейку, принадлежащему неактивным валидаторам, постепенно истощаться до тех пор, пока они не будут контролировать менее 1/3 от общего стейка, что позволит оставшимся активным валидаторам финализировать цепь. Каким бы большим ни был пул неактивных валидаторов, оставшиеся активные валидаторы в конечном итоге будут контролировать >2/3 стейка. Потеря стейка является сильным стимулом для неактивных валидаторов возобновить работу как можно скорее! Сценарий утечки при бездействии произошел в тестовой сети Medalla, когда < 66% активных валидаторов смогли прийти к консенсусу относительно текущей вершины блокчейна. Утечка при бездействии была активирована, и финальность в конечном итоге была восстановлена!

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

## Дополнительная литература {#further-reading}

- [Обновление Эфириума: уровень стимулов](https://eth2book.info/altair/part2/incentives)
- [Стимулы в гибридном протоколе Casper Эфириума](https://arxiv.org/pdf/1903.04205.pdf)
- [Аннотированная спецификация Виталика](https://github.com/ethereum/annotated-spec/blob/master/phase0/beacon-chain.md#rewards-and-penalties-1)
- [Советы по предотвращению слэшинга в Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50)
- [Анализ штрафов за слэшинг в рамках EIP-7251](https://ethresear.ch/t/slashing-penalty-analysis-eip-7251/16509)

_Источники_

- _[https://benjaminion.xyz/eth2-annotated-spec/phase0/beacon-chain/](https://benjaminion.xyz/eth2-annotated-spec/phase0/beacon-chain/)_