Введение
В предыдущих статьях, посвященных майнингу, мы в подробностях рассмотрели алгоритм Proof of Work как подход, используемый в процессе добычи криптовалюты. PoW стал первым внедренным и изученным протоколом, однако альтернативные решения содержат в себе множество интересных деталей и также заслуживают внимания. Рассмотрим подробнее концепцию Proof of Stake.
Общие свойства PoS
Как уже упоминалось ранее, при PoS-подходе вероятность нахождения нового блока зависит от количества криптовалюты, которое полная нода вложила в систему. Тем не менее, весь этот процесс не так прост, как могло бы показаться на первый взгляд.
Первое, на что следует обратить внимание, — это роли, отведенные полным нодам в системе. Использование PoW не предусматривает функциональных различий между майнерами. Каждая полная нода — это полноправный участник гонки за правильным значением хеш-функции. В PoS это не всегда так. Даже если нода полная — то есть содержит полноценный блокчейн — в некоторых случаях у нее может не оказаться прав для принятия решения о закрытии блока.
Такая ситуация может возникнуть, когда из группы полных нод протокол должен выбрать нескольких подтверждающих. Для получения такой роли нода должна отправить специальную транзакцию, блокирующую некоторое количество криптовалюты в качестве депозита, или залога. После фиксации залога нода считается потенциально подтверждающей и может принимать участие в выборе следующего блока.
Процесс назначения подтверждающих нод из всего обилия претендентов зависит от деталей применения конкретного PoS-решения. Классическим вариантом считается назначение одной случайной подтверждающей ноды или группы таковых. В первом случае ключевой параметр — время. Оно весьма ограничено для подтверждения нового блока. Во втором случае важен размер залога. Именно он определяет «вес» подтверждающей ноды при обсуждении и достижении консенсуса относительно закрытия блока.
Два уровня PoS
Иногда используется двухуровневая система нод. Ноды первого уровня майнят новый блок, а ноды второго уровня подтверждают его. Периодически они меняются ролями в случайном порядке. Также известны смешанные решения, когда ключевые блоки майнятся при помощи PoW, а промежуточные — при помощи PoS.
Вторая важная деталь — возможность одной ставкой подтвердить несколько блоков одновременно. Такого рода спам позволяет злоумышленнику бесконечно пытаться подтвердить неправильный блок и надеяться на его включение в блокчейн.
Предложенное Виталиком Бутериным решение под названием Casper развивает идею PoS. Этот основанный на PoS подход предусматривает не только награду за обслуживание сети блокчейна, но и штрафы. Поскольку майнеры закрывают блок не только ради награды, но и для поддержания схождения блокчейна, в рамках решения Casper предлагается подталкивать майнеров делать ставки на «правильные» цепочки блоков, если их больше одной. Несколько таких цепочек могут появиться в результате форка блокчейна и привести к неприемлемым последствиям.
При этом никуда не пропадает возможность сделать ставку на несколько цепочек одновременно — просто в случае неудачи ставка будет списана. Таким образом разработчики дополнительно мотивируют майнеров и подтверждающие ноды к закрытию правильного блока.
Преимущества PoS
Преимущества подхода PoS перед PoW очевидны. Во-первых, резкое снижение энергозатрат. Действительно, тот же Эфириум требует лишь 2.4 гигагерц у вычисляющего устройства, 4 гигабайта оперативной памяти и место на жестком диске для кошелька. Конечно, при скачивании полной ноды потребуется много места для самого блокчейна, однако даже в таком случае нет необходимости запитывать целую стойку из микросхем.
Во-вторых, возможность применения случайного выбора для подтверждающих нод снижает риск потенциальной централизации. Улучшая предложенный вариант при помощи теории игр, можно добиться сглаживания распределения награды по нодам.
Послесловие
К сожалению, PoS не лишен недостатков. Он также может быть подвержен атаке контролирующим большинством или нежелательным форкам в случае нахождения уязвимостей в конкретных реализациях. Тем не менее такой подход выглядит достаточно устойчивым, а его положительные стороны — весьма внушительными.
Сергей Борсук, blockspoint