Proof-of-Stake: ставка вместо вычислений

Proof-of-Stake заменяет дорогие вычисления денежным залогом: ведёшь себя честно — получаешь награду, мухлюешь — теряешь ставку.

«Зачем сжигать электричество, чтобы доказать серьёзность намерений, если можно поставить деньги на кон?»

В 2022 году Ethereum совершил историческое событие под названием The Merge — перешёл с proof-of-work на proof-of-stake (доказательство доли владения, PoS). Это снизило энергопотребление сети более чем на 99%. Разберёмся, как это работает.

Идея ставки

В PoS нет майнеров — есть валидаторы. Чтобы стать валидатором в Ethereum, нужно заблокировать в специальном контракте залог — стейк (для одного валидатора это 32 ETH). Сеть случайным образом выбирает, кто из валидаторов предложит следующий блок, а другие — подтвердят его. За честную работу валидатор получает награду.

А что мешает мухлевать? Слэшинг (slashing) — наказание. Если валидатор пытается обмануть сеть, например подтвердить два конфликтующих блока, часть его залога сжигается, а сам он выгоняется. Обманывать становится прямо невыгодно: рискуешь собственными деньгами.

Как работает под капотом

        Выбор валидатора по ставке

   Валидатор A: ставка 32 ETH    ]
   Валидатор B: ставка 64 ETH    ]--> сеть случайно
   Валидатор C: ставка 32 ETH    ]    выбирает предложить блок

   Честный блок  -> награда
   Обман (2 блока) -> СЛЭШИНГ: часть ставки сжигается

Смоделируем взвешенный случайный выбор валидатора: чем больше ставка, тем выше шанс быть выбранным.

Попробуй сам ▶ Запусти код прямо здесь — он работает в браузере:

import random

validators = {'A': 32, 'B': 64, 'C': 32, 'D': 16}
total = sum(validators.values())

# Проведём 10000 'раундов' и посмотрим, как часто выбирают каждого
counts = {v: 0 for v in validators}
for _ in range(10000):
    pick = random.uniform(0, total)
    running = 0
    for v, stake in validators.items():
        running += stake
        if pick <= running:
            counts[v] += 1
            break

for v, stake in validators.items():
    share = counts[v] / 100
    print(f'{v}: ставка {stake:>2} ETH -> выбран в {share:5.1f}% раундов')
# Доля выборов примерно равна доле ставки в общем пуле

PoW против PoS

СвойствоProof-of-WorkProof-of-Stake
Что вкладываютВычисления и энергияДенежный залог (стейк)
ЭнергопотреблениеОчень высокоеНизкое
Наказание за обманПотраченные впустую ресурсыСлэшинг — сжигание ставки
ПримерБиткоинEthereum (после 2022)

Частые заблуждения

  • «В PoS богатые полностью контролируют сеть». Большая ставка даёт больше шансов, но и больше риска при обмане; к тому же атака требует контролировать огромную долю всех монет.
  • «PoS совсем не потребляет энергию». Потребляет, но в десятки тысяч раз меньше, чем PoW: достаточно обычных серверов.
  • «Стейкинг — это гарантированный доход без рисков». Нет: есть слэшинг, заморозка средств и рыночные риски самой монеты.

Важно понимать (риски)

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

Разбор: почему «атаковать невыгодно» — это не лозунг

Главная идея proof-of-stake часто звучит как лозунг: «обманывать невыгодно». Но за ним стоит конкретная экономика, которую стоит разобрать. Чтобы навязать сети ложную историю, атакующему нужно контролировать огромную долю всех застейканных монет — порядка трети или больше. Купить столько монет на рынке невозможно незаметно: спрос взвинтит цену, и атака обойдётся в миллиарды.

Но самое тонкое — что произойдёт после атаки. Допустим, кто-то всё же собрал гигантскую ставку и подорвал доверие к сети. Цена монеты, в которой и лежит его ставка, рухнет — он сам обесценит свой капитал. Получается, атакующий должен потратить состояние, чтобы уничтожить то, чем владеет. Это и есть суть экономической защиты: интересы валидатора совмещены с интересами сети. Слэшинг добавляет к этому прямое наказание за конкретные нарушения. Вместе они делают честное поведение не благородным выбором, а просто самым выгодным.

Итоги

  • Proof-of-Stake выбирает валидаторов по размеру их залога, а не по вычислениям.
  • Нечестность наказывается слэшингом — сжиганием части ставки.
  • Ethereum перешёл на PoS в 2022 году, снизив энергопотребление более чем на 99%.
  • У PoS свои риски: централизация стейкинга и усиление неравенства.
Проверьте себя
1. Как в Proof-of-Stake наказывают нечестных валидаторов?
AПовышают им комиссии
BСлэшинг — сжигают часть их залога
CОтключают интернет
DНикак не наказывают
2. Что изменил переход Ethereum на Proof-of-Stake (The Merge)?
AСделал транзакции бесплатными
BСнизил энергопотребление сети более чем на 99%
CОтменил комиссии
DУбрал смарт-контракты