Алгоритмы консенсуса - PoW и PoS
Что такое алгоритм консенсуса и зачем он нужен
Для того, чтобы понимать значимость алгоритма консенсуса, разберемся сначала с самыми базовыми понятиями. А именно - что вообще такое блокчейн и как он функционирует.
Не будем углубляться в дебри технической терминологии, а рассмотрим все на самом простом примере в виде аналогий.
Блокчейн по сути является огромной электронной бухгалтерской таблицей, в которую постоянно вносятся новые данные, или транзакции. Например у А было 4 монеты, 1 из которых он перевел В, 2 перевел С и остался в результате с 1 монетой. Все эти действия сохраняются в “ячейках” таблицы, позволяя таким образом в любой момент выяснить сколько монет сейчас у А, В и С, а также отследить их движение в течение всего времени существования блокчейна-таблицы.
В случае классической банковской системы существует некий “центр обработки данных”, который получает данные об изменениях от одного из участников, верифицирует (заверяет) их, вносит в “общую бухгалтерскую таблицу” и распространяет другим участникам (например филиалам банка) новые подтвержденные данные. Подобная модель прекрасно работает до того момента, пока работает центральный узел. Кроме того, у центрального узла появляется возможность изменить информацию “на ходу” и таким образом “обмануть” других участников.
Блокчейн создавался как полностью децентрализованная сеть, распределенная по тысячам компьютеров. Блокчейн работоспособен до того момента, пока в нем имеется хотя бы несколько участников. Это означает, что любой участник сети имеет равные права на внесение новых записей и в сети отсутствует “центральный валидатор”, который проверяет правильность и заключениям которого все участники могут доверять.
Участники сети не только заранее неизвестны, но и могут свободно подключаться или отключаться от сети. При этом блокчейн, являясь децентрализованной системой, имеет устойчивость к цензуре (никто не может запретить работать компьютерам в нем) и объективность (для определения текущей версии журнала транзакций не нужно доверие неким авторитетным источникам) — корень доверия находится в самом блокчейне.
Вернемся к аналогии с “электронной таблицей” - каждый определенный промежуток времени в нее добавляется новая “строка”, содержащая все произошедшие за данный период изменения (транзакции), которая в дальнейшем будет храниться у каждого из тысяч компьютеров, находящихся в блокчейне. Эта строка называется блоком, которое и объясняет суть термина “блокчейн” - цепочка блоков. Но в связи с равноправностью участников, встает дилемма - на основании чего можно доверять данным новой “строки таблицы” и считать их правдивыми, если в сети отсутствует “главный валидатор”. Каким образом удостовериться, что запись “А отправил 1 монету к B” верна, а “А отправил 1 монету к С” - подделка? Именно для этих целей и создан алгоритм консенсуса.
Работу и функционирование участников блокчейна можно проиллюстрировать картинкой ниже:
Синие участники заняты выработкой консенсуса и внесением новых записей. В классической блокчейн сети это делают майнеры, вычислительная мощность блокчейна. Зеленые участники хранят у себя полные копии блокчейна, проверяют достоверность новых записей и распределяют задачи по сохранению очередной группы транзакций в блоках. Обычно это полнофункциональные узлы-кошельки. Желтые участники - это самые простые пользователи блокчейна, на уровне мобильных электронных кошельков, которые обычно имеют доступ к записям, связанным лишь с собой или определенным фрагментам “таблицы”.
Результатом работы алгоритма консенсуса является своеобразная уникальная электронная подпись (хэш), которой подписывается каждый блок (новая строчка таблицы). Эта “подпись” такова, что ее подлинность может проверить и подтвердить любой участник блокчейна. Любое изменение данных в блоке вызовет его несоответствие “подписи”. Более того, каждая последующая подпись базируется на предыдущей, таким образом любой участник может определить, является ли новый блок настоящим продолжением блокчейна (напомним, блокчейн - цепочка блоков).
Алгоритм консенсуса призван обеспечивать достоверность транзакций через проверку точности проведенных действий, которая распределяется между многими участниками сети. В настоящее время выделяют четыре основных алгоритма консенсуса, каждый из которых имеет свои уникальные преимущества. Мы рассмотрим лишь 2 наиболее популярных.
Алгоритм консенсуса PoW
Алгоритм Proof-of-Work (Pow) или “доказательство работы” является наиболее старым, проработанным и безопасным.
В PoW все транзакции доказываются с помощью сложных математических вычислений, достоверность которых может перепроверить любой пользователь сети. Майнеры решают задачу. Если майнер сумел решить задачу, формируется новый блок: в нем размещается очередной комплект транзакций, и они считаются подтвержденными. За свою работу майнер получает вознаграждение - оно формируется из награды за создание блока и комиссий за транзакции в данном блоке.
Такой подход дает несколько преимуществ:
- Консенсус PoW решает проблему взлома сети, в которых злоумышленник создает огромное число поддельных участников с ложной информацией, чтобы «задавить» получившимся большинством. Для того, чтобы реализовать подобный механизм в PoW потребуется обладание огромной вычислительной мощностьи.
- PoW обеспечивает честность — награда каждого майнера пропорциональна его вычислительной мощности (хешрейту). Если у майнера есть 2% хешрейта от всей сети, то он будет в среднем создавать 2% блоков и получать 2% распределяемой награды.
- Так как на вычисления тратятся реальные ресурсы (которые в случае сети биткойна измеряются тысячами долларов в минуту), у майнеров возникает совершенно новый стимул действовать в рамках правил - нечестное поведение немедленно лишает их реальных денег.
Стоит также отметить, что если среди майнеров появится злонамеренное большинство (так называемая атака 51%), они лишь смогут игнорировать блоки от всех остальных майнеров, чтобы забрать себе всю награду за майнинг в сети. Однако при этом даже если все майнеры в сети сговорятся, они не смогут обойти базовые механизмы безопасности биткойна — например, не смогут похитить биткойны пользователей.
Алгоритм консенсуса PoS
Алгоритм Proof-of-Stake (PoS) или “доказательство доли владения” функционирует подобно PoW, но с тем отличием, что майнерам не приходится решать сложные вычислительные задачи.
PoS является альтернативным механизмом PoW, и впервые был реализован в 2012 году в криптовалюте PPCoin (переименована в PeerCoin). Идея Proof-of-Stake заключается в решении проблемы Proof-of-Work, связанной с большими затратами на электроэнергию.
Достоверность произведенных транзакций подтверждают валидаторы. Proof-of-Stake для проверки и подтверждения транзакций требует от участников (условных майнеров) монеты, которые они хранят в сети. Эти монеты блокируются (осуществляется их стейкинг) и становятся на время стейкинга недоступными к иному использованию, выступая в роли голосов, имеющих право той самой “подписи”. При этом вознаграждение “за решение математической задачи” в PoS отсутствует, майнер (стейкер) получает вознаграждение из комиссий за транзакции. Чем больше “голосов” заблокировано стейкером в сети и чем дольше этот период, тем больше его вознаграждение (по аналогии с вычислительной мощностью PoW).
Так что же лучше?
Энергопотребление
У консенсуса PoW его главная особенность, является сама же по себе и крупнейшим недостатком - для обеспечения безопасности нужно «работать», то есть производить доказательства работы. Вычисления, которые выполняются в рамках PoW, не служат никакой полезной цели, и это архитектурная особенность. До сих пор не придумано доказательство работы, которое бы выполняло общественно полезную роль. Поэтому общепринято считается, что ресурсы на майнинг (прежде всего, электричество) тратятся впустую (если не считать, что они тратятся на обеспечение безопасности пользователей). PoS не производит “ненужных никому” вычислений и с этой точки зрения на порядок энергоэффективнее.
Масштабируемость
Низкая скорость обработки транзакций - бич блокчейнов, которые работают медленнее привычных существующих систем. Это плата за безопасность и децентрализацию. Масштабируемость может увеличивать быстродействие.
С этой точки зрения PoW имеет худшие возможности по масштабированию. Ускорение обработки транзакций возможно путем “сегментирования” блокчейна - технологии, которая называется шардингом (sharding). В теории шардинг возможен для любого блочейна, однако на практике функционирующие модели шардинга пока существуют только в блокчейнах с консенсусом PoS.
Децентрализация
Баланс между децентрализацией и централизацией - ключевой вопрос для сетей блокчейнов. Хотя оба алгоритма консенсуса децентрализованы, есть несколько факторов, которые могут подтолкнуть блокчейн к централизации.
В случае PoW майнингом занимается целая индустрия и основные вычислительные мощности сосредоточены у относительно небольшого числа их владельцев, зарабатывающих большую часть вознаграждения сети. PoS имеет аналогичные проблемы, поскольку богатые пользователи, вложившие в стейкинг большие объемы, имеют больше шансов и возможностей получать вознаграждение. Соответственно, если исходить из того, что несколько процентов майнеров или стейкеров контролируют 30-40% сети, децентрализацию вряд ли можно назвать настоящей.
Безопасность
Безопасность сети - приоритет любого блокчейна. Теоретически, единственная возможная атака на сеть блокчейна - это так называемая “атака 51%”, когда кто-то получает контроль более чем над половиной сети.
В сети PoW подобная атака возможна с помощью контроля над мощностями майнинга, что требует гигантских вычислительных ресурсов и для таких огромных сетей, как биткойн или Ethereum, подобное практически недостижимо.
В сети PoS для проведения подобной атаки потребуется иметь более половины монет, находящихся в стейкинге. Соответственно злоумышленнику потребуется их приобретать, что уже само по себе экономически невыгодно, поскольку подобное приобретение автоматически многократно увеличит цену за счет столь огромного спроса.
Таким образом PoW и PoS можно считать одинаково безопасными, поскольку “атака 51%” не даст особенного выигрыша, соразмерного затратам на ее проведение.