Информация о криптовалютных транзакциях записывается в блокчейн — распределённый реестр, который представляет собой цепочку блоков. Чтобы блокчейн мог работать, необходим консенсус — коллективное согласие участников сети на включение той или иной записи в реестр.
Алгоритм консенсуса указывает, какие действия нужно выполнить для создания очередного блока транзакций, а также определяет надёжность и экономические параметры протокола.
Cryptonomist рассказывает, какие алгоритмы консенсуса используются сегодня в криптовалютных блокчейнах.
Proof of Work (PoW)
Алгоритм доказательства выполнения работы, который используется в блокчейне биткоина, эфира и ряда других криптовалют. Все майнеры, контролирующие узлы блокчейна, занимаются обеспечением безопасности сети и решают задачи для вычисления хеша — математической функции, которая позволяет создать новый блок.
Чтобы вычислить хеш, необходимо подобрать такую комбинацию, которая подходит ко всем новым транзакциям и секретному ключу. Задачу можно решить только простым перебором, что требует многократного повторения одних и тех же операций и задействования больших вычислительных мощностей.
Суть алгоритма PoW — в том, что хэш найти сложно и затратно, но проверить, что именно он является (либо не является) решением задачи, очень просто.
Тот майнер, который первым найдёт правильный хэш, добавляет в блокчейн новый блок транзакций и получает награду.
Фактически в PoW-блокчейнах майнеры одновременно пытаются найти очередной блок. Соревнуются они за счёт мощностей своего оборудования.
Преимущества алгоритма PoW: высокий уровень безопасности, сложность проведения атак. Однако вероятность получить награду за майнинг в этом случае напрямую зависит от объёма вычислительных мощностей. К тому же добыча блоков требует огромных затрат энергии.
Proof of Stake (PoS)
Алгоритм доказательства доли владения, который стал первой альтернативой PoW. Он не требует строительства мощных майнинг-ферм. Эффективность майнинга определяется тем, сколько монет находится у майнера в кошельке.
Каждый узел в PoS-блокчейне имеет определенный адрес.
Победитель определяется случайно, но чем больше монет в кошельке, тем выше шансы на успех.
Впервые PoS-алгоритм использовали в блокчейне криптовалюты PPCoin (позднее её переименовали в PeerCoin). Одна из самых популярных PoS-валют сегодня — Nxt.
Алгоритм PoS не требует высоких затрат энергии и колоссальных средств на строительство майнинг-ферм и обеспечивает пассивный доход от хранения монет в кошельке. Но он подходит только для платформ с фиксированной эмиссией (количеством выпускаемых монет) и предполагает крайне низкие шансы на добычу очередного блока майнерами с небольшим количеством монет в кошельке.
Leased Proof of Stake (LPoS)
Оптимизированный вариант алгоритма PoS, который решает основную проблему: повышает шансы мелких держателей монет на генерацию нового блока и получение награды.
В случае классического PoS-алгоритма мелкие держатели монет не заводят собственные узлы, а сеть обслуживает сравнительно небольшое количество крупных игроков. Но так как чем меньше узлов, тем ниже уровень безопасности, вовлекать мелких игроков со своими узлами выгодно.
В LPoS мелкие держатели монет могут сдавать свои балансы в аренду стековым узлам.
При этом они сохраняют полный контроль над средствами: могут пополнять баланс и тратить монеты (арендуется, соответственно, болше или меньше средств).
Стековым узлам выгодно арендовать монеты, так как за счёт них шансы узла на добавление блока в цепь повышается. А награда делится между владельцами монет пропорционально.
Одна из самых популярных криптовалют на базе алгоритма LPoS — это Waves.
Delegated Proof of Stake (DPoS)
Делегированное подтверждение доли владения — ещё один вариант PoS. В этом случае пользователи сами могут выбрать список узлов, которым предоставляют право использовать свой баланс для добавления в систему новых блоков.
В процесс вовлекаются все пользователи. За выполнение обязанностей в сети они могут получить награду, за злонамеренное поведение (к примеру, двойное расходование средств) — заслужить наказание.
Фактически пользователи участвуют в двух процессах: построении транзакций и верификации сгенерированного блока с помощью электронной подписи. Подписать новый блок должны хотя бы двое других пользователей. Их выбирают из особого списка, причём система периодически его обновляет по определённым правилам (учитывая полезность пользователя
В DPoS предполагается, что сеть принадлежит всем пользователям. Держатели монет могут голосовать за изменение параметров сети.
DPoS использует, к примеру, BitShares.
Proof of Importance (PoI)
Центральная идея этого алгоритма — в том, что пользователи должны получить награду и за хранение монет в кошельке, и за продуктивную деятельность в сети. В данном случае вероятность создания нового блока пользователем определяется несколькими факторами: остаток на счету, число принятых и отправленных транзакций, репутация (показатель, который вычисляет специальная система).
Чем пользователь «полезнее» для блокчейна, тем выше его шансы на успех.
Алгоритм консенсуса PoI применяется в блокчейне NEM.
Proof of Service
Чтобы получить награду за майнинг в этом случае, нужно приобрести определённое количество монет и запустить мастерноду (мастер-узел).
Мастернода осуществляет анонимизацию и подписывание транзакций, а также может принимать участие в голосованиях.
Впервые алгоритм Proof of Service использовали в криптовалюте DASH. Для участия в майнинге необходимо приобрести 1000 монет (около 20 биткоинов по курсу). Как только вы лишитесь хотя бы части этой суммы, перестанете участвовать в распределении вознаграждения.
Выводы
Любой алгоритм консенсуса обязан обеспечивать безопасность сети. Но так как абсолютной безопасности не бывает, реальная цель использования алгоритма консенсуса — сделать атаку невыгодной и слишком затратной для хакера.
В чистом виде описанные алгоритмы в новых криптовалютах применяются всё реже. Так, сейчас PeerCoin и Reddcoin используют алгоритм PoW для первоначального распределения, а PoS — для подтверждения транзакций. Ethereum собирается перейти от PoW к PoS для снижения затрат энергии, необходимой для работы блокчейна.