DigitalForest блог

Обзор 9 алгоритмов блокчейн консенсуса

Наиболее популярные алгоритмы консенсуса для блокчейн сетей
3 января 2018
На блокчейн рынке представлено достаточно много алгоритмов консенсуса, позволяющего выбрать, кто является наиболее подходящим узлом для подписания следующего блока. Часть из них хорошо известна и используется часто, например PoW, а часть только пытается пробить себе место "под солнцем".

Proof-of-Work (PoW)

Вероятно благодаря биткоину, алгоритм консенсуса PoW является наиболее известным способом подтверждения транзакций. Основная мысль состоит в том, чтобы узлы блокчейн сети, подтверждающие транзакции, проделывали достаточно сложную вычислительную работу (просчет алгоритма), результат работы которого был бы легко и быстро проверяем другими узлами сети.
Первый узел, который полностью провел все необходимые вычисления, получает вознаграждение от блокчейн сети. Все узлы борются между собой, наращивая емкость вычислительных ресурсов, чтобы оказаться тем самым, первым узлом, получившим вознаграждение.

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

Ссылки
- Доказательство выполнения работы / википедия
- Proof-of-work system / wikipedia
- Proof-of-work / bitcoinwiki

Proof-of-Stake (PoS)

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

Основными преимуществами являются:
- существенное снижение потребления электроэнергии (относительно PoW метода);
- для создания атаки Double-spending необходимо сконцентрировать больше 50% от общего количества всей валюты, что будет стоить огромного состояния. В том случае, если же атакующий все же сможет сконцентрировать такое количество средств, он своими действиями нарушит баланс и сам больше пострадает от своей же атаки.

Основными недостатками являются:
- мотивация в концентрации средств, что может приводить к централизации сети.

Ссылки
- Доказательство доли владения / википедия
- Proof-of-work system / wikipedia
- Proof-of-Stake / bitcoinwiki
Узнайте как применить приватные блокчейн решения в вашем бизнесе

Delegated Proof-of-Stake (DPoS)

Одна из разновидностей алгоритма консенсуса Proof-Of-Stake, в которой блоки подписывают выбранные представители. Владельцы наибольших балансов выбирают своих представителей, каждый из которых получает право подписывать блоки в блокчейн сети. Каждый представитель, обладающий одним или более процентами от всех голосов, попадает в совет. Из сформированного "совета директоров" по-кругу выбирается следующий представитель, который и подпишет следующий блок. В том случае, если по какой-либо причине представитель пропустил свою очередь в подписании, он лишается делегированных голосов и покидает "совет директоров", после чего на его место выбирается следующий наиболее подходящий кандидат.
Владельцы балансов, делегируя свои голоса, никоим образом не теряют над ними контроля, так как в любой момент могу их отозвать у своего представителя.

Основными преимуществами алгоритма DPoS являются:
- держатели балансов имеют возможность делегировать свои голоса, при этом не передавая сам баланс,
- держатели балансов имеют возможность получить дополнительный доход от их владения,
- минимизация издержек на поддержку блокчейн сети. В отличие от классического PoS, снижается количество "ненужной работы" при выборе следующего голосующего.

Ссылки
- Delegated Proof-of-Stake (DPoS) Explained
- Delegated Proof of Stake

Leased Proof-of-Stake (LPoS)

Как ясно из названия, LPoS — еще одна модификация алгоритма Proof-of-Stake. На данный момент он поддерживается только платформой Waves. В рамках этого алгоритма, любой пользователь имеет возможность передавать свой баланс в аренду майнинг-узлам, а за это майнинг-узлы делятся частью прибыли с пользователями. Таким образом, данный алгоритм консенсуса позволяет получить доход от майнинговой деятельности, не ведя самого майнинга.

Ссылки
- Waves / Wiki
- Waves Platform

Proof-of-Capacity (PoC)

Иногда еще называемый Proof-of-Space (PoSpace), еще один алгоритм консенсуса. Я нашел только одну блокчейн платформу, которая поддерживает данный алгоритм, это Burstcoin. PoC работает по следующему принципу:
- каждый майнер вычисляет достаточно большой объем данных, который записывается на дисковую подсистему (жесткий диск, облачные системы хранения) узла. Такой первоначальный набор данных в PoC называется "участок".
- для каждого нового блока в блокчейне, майнер читает небольшой набор данных (1/4096, что приблизительно составляет 0.024%) от своего общего сохраненного объема и возвращает результат (дедлайн), как прошедшее время в секундах с момента создания последнего блока, после которого майнер сможет создать новый блок.
- майнер, получивший минимальное время дедлайна, подписывает блок и получает вознаграждение за транзакции.

Таким образом вычислительные ресурсы необходимые майнеру для этой работы ограничены временем, которое необходимо для чтения файлов из дисковой подсистемы. Именно этот фактор позволяет производить майнинг с достаточно высокой энергоэффективностью. Майнеры соревнуются между собой за размеры сохранных данных, в отличие от скорости работы оборудования, которая является определяющей в майнинге построенном на PoW.

Ссылки
- Proof-of-space / Wiki
- Burstcoin / Wiki

Proof-of-Importance (PoI)

Алгоритм консенсуса используемый блокчейн платформой NEM. Значимость каждого пользователя в сети NEM определяется как количество средств имеющихся у него на балансе и количество проведенных транзакций с/на его кошелек. В отличии от более привычного PoS, который учитывает только баланс имеющихся средств у пользователя, PoI учитывает как количество средств, так и активность пользователя в блокчейн сети. Такой подход вовлекает пользователей не просто держать средства у себя на счету, но и активно использовать их.

Ссылки
- What is Proof of Importance?
- NEM (cryptocurrency) / Wik

Proof-of-Activity (PoA)

Описание алгоритма опубликовано в 2014 году, как потенциально нового и более надежного алгоритма для биткоина, информации о его имплементации я так и не нашел. Авторы алгоритма PoA попытались объединить два наиболее популярных алгоритма, такие как Proof-of-Work и Proof-of-Stake, с целью увеличения уровня защиты от потенциально возможных атак (51% attack, Denial-of-Service attacks (DoS). Принцип работы алгоритма описан ниже:
- каждый майнер блокчейн сети пробует сгенерировать заголовок пустого блока, который включает в себя хеш предыдущего блока, публичный адрес майнера, индекс текущего блока в блокчейне и nonce.
- после генерации заголовка пустого блока отвечающего текущим требованиям сложности, узел рассылает этот заголовок в блокчейн сеть.
- все узлы сети рассматривают заголовок такого блока, как данные полученные от псевдослучайных владельцев. Используя хеш разосланного заголовка блока и хеш предыдущего блока + N пресетов с использованием алгоритма follow-the-satoshi выбираются стейкхолдеры.
- каждый стейкхолдер, находящийся в онлайне, проверяет полученный, пустой заголовок блока на его корректность. Во время проверки каждый получивший заголовок проверяет является ли он одним из первых N-1 стейкхолдеров "счастливчиков" этого блока и в этом случае подписывает заголовок пустого блока своим секретным ключом и отправляет его в блокчейн сеть.
- Когда N-й стейкхолдер видит, что он должен стать подписантом этого блока, он, в дополнение к заголовку пустого блока, добавляет блок с включенными транзакциями (количество включаемых транзакций он выбирает сам), все подписи N-1 от других стейкхолдеров и подписывает блок.
- Стейкхолдер N рассылает новый, подготовленный блок. Узлы получают этот блок, убеждаются в его законности и добавляют этот блок в блокчейн.
- Премия за транзакции, которую получил N-стейкхолдер, распределяется между майнером и N стейкхолдерами "счастливчиками".

Ссылки
- Proof of Activity: Extending Bitcoin's Proof of Work via Proof of Stake / PDF

Proof-of-Authority (PoAuthority)

PoA алгоритм консенсуса стоящий несколько особняком от остальных алгоритмов, так как для своей работы ему не требуется иметь вообще какого-либо майнинга, как в случае с PoW или PoS. В блокчейн сети, базирующейся на PoAuthority, все транзакции и блоки проверяются посредством одобренных аккаунтов (валидаторов). Проведение транзакций и создание блоков, проходит в автоматическом режиме при помощи вычислительных мощностей валидатора.

Положительным моментом данного алгоритма является:
- отсутствие майнинга и, как следствие, существенное снижение затрат на его обслуживание.

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

Ссылки
- Proof-of-Authority / Wiki

Proof-of-Burn (PoB)

Еще один интересный тип алгоритма консенсуса — Proof-of-Burn. При его использовании майнер отправляет монеты на случайный адрес сгенерированного хеша, потратить средства с этого адреса практически невозможно, так как вероятность подобрать к нему ключи стремится к нулю. За такое сжигание монет, майнер получает постоянный шанс найти PoB блок и получить за него награду. Шансы на майнинг увеличиваются при увеличении количества сожженных монет. Экономически этот процесс сжигания монет можно представить как покупка буровой установки для майнинга. Естественно такой алгоритм имеет смысл использовать только на поздних этапах существования той или иной криптовалюты, тогда когда есть что "сжигать" ;) Интересной мыслью является то, что этот метод также хорошо подходит для трансфера из "старых" в "новые" криптовалюты. Например, "старая" криптовалюта находится в финальной точки своего майнинга, мы можем использовать метод PoB тогда, когда для того, чтобы получить "новую" криптовалюту, нам необходимо сжечь "старую".

Данный алгоритм используется на платформе Slimcoin.

Ссылки
- What is Proof of Burn?
- Proof of burn
Большинство платформ использует такие алгоритмы консенсуса как Proof-of-Work и Proof-of-Stake, а также и их модификации. На рынке присутствуют достаточно специфические примеры консенсусов, такие как: Proof-of-Authority, Proof-of-Capacity или Proof-of-Burn. Интересным, с точки зрения экономики платформы является Proof-of-Importance, так как он вовлекает владельцев крипто монет, не только заниматься их сбором и хранением, но и активно их использовать. Одним из наиболее оптимальных, является алгоритм Delegated Proof-of-Stake. В плюсы этого алгоритма можно записать увеличенную скорость подписания блоков и большую энергоэффективность, за счет ограниченного количества подписантов.
Читайте продолжение обзора алгоритмов блокчейн консенсуса
Часть 2 расскажет об Ouroboros PoS, Proof of Elapsed Time и Practical Byzantine Fault Tolerance
Есть вопросы или комментарии — пишите нам!