Обзор: алгоритмы консенсуса в блокчейне
Одним из наиболее важных аспектов децентрализованного криптовалютного проекта является алгоритм консенсуса, ведь именно от него зависит внедрение новой цифровой валюты. Консенсусный алгоритм предотвращает проблему с двойными расходами, так как крипто-конверсии реализуются в форме общедоступных децентрализованных регистров, ведь блокчейн — децентрализованная система, в которой нет центральной власти, но есть вопросы по поводу принятия решений.
Консенсусные алгоритмы предназначены обеспечивать достоверность транзакций через проверку точности проведенных действий, которая распределяется между многими участниками сети. В рамках существующих блокчейн-проектов выделяют четыре основных алгоритма консенсуса, каждый из которых имеет свои уникальные преимущества.
Доказательство работы (PoW)
Proof-of-Work (PoW) был первым успешным децентрализованным алгоритмом консенсуса в блокчейне. PoW используется в Bitcoin, Ethereum (Ethereum планирует перейти на Proof-of-Stake), Litecoin, ZCash, Monero и на многих других платформах. Самый известный алгоритм работает следующим образом: в начале пользователи сети отправляют друг другу цифровые токены, затем все произведенные транзакции собираются в блоки и записываются в распределенный открытый реестр — блокчейн.
В PoW все транзакции доказываются с помощью трудных математических вычислений, достоверность которых может перепроверить любой пользователь сети. Майнеры решают задачу, формируют новый блок и подтверждают транзакции. Задачи с каждым разом становятся сложнее, так как количество пользователей растет, и нагрузка на сеть становится больше. Хэш каждого блока содержит хэш — выходные данные предыдущего блока. Это повышает безопасность системы, и порядок созданных блоков нарушить невозможно. Пользователь должен первым правильно определить «nonce» — число, добавленное в конец строки для того, чтобы создать хеш, который начинается с необходимого количества нулей. Если майнер сумел решить задачу, формируется новый блок: в нем размещается очередной комплект транзакций, и они считаются подтвержденными.
Консенсусные алгоритмы предназначены обеспечивать достоверность транзакций через проверку точности проведенных действий, которая распределяется между многими участниками сети. В рамках существующих блокчейн-проектов выделяют четыре основных алгоритма консенсуса, каждый из которых имеет свои уникальные преимущества.
Этот алгоритм является честным и понятным, ему можно доверять. Однако у PoW есть главный недостаток — потребление огромного количества энергии. В 2017 году на полное оформление одной транзакции в системе Bitcoin требовалось затратить в среднем 163 кВт/ч энергии. Таким количеством энергии можно в течение пяти с половиной дней полностью обеспечивать нужды семьи из трех человек, проживающей в небольшом одноэтажном доме. Кроме того, те майнеры, которые обладают более быстрыми и мощными ASIC, получают больше, чем остальные. В результате этого биткоин оказывается не таким децентрализованным, как задумывалось изначально.
Доказательство владения доли (PoS)
Proof-of-Stake во всех реализациях для проверки транзакций требует от участников доли части монет, которые они хранят в сети. PoS является альтернативным механизмом PoW, впервые реализованным в 2012 году в криптовалюте PPCoin (переименована в PeerCoin). Идея Proof-of-Stake заключается в решении проблемы Proof-of-Work, связанной с большими затратами на электроэнергию.
Достоверность произведенных транзакций подтверждают валидаторы. Преимущество PoS заключается в том, что он более энергоэффективен и, возможно, лучше предотвращает атаки, чем PoW.
Валидаторы ставят свои монеты на транзакции путем блокировки монет. Микшер, который используется для завершения блока, выбирается пропорционально значению, поставленному в сети. Proof-of-Stake предотвращает плохое поведение в сети с помощью перекладывания полномочий по проверке на самых активных и интересующихся пользователей. Алгоритм консенсуса доказательства владения доли используется в Peercoin, Decred и вскоре будет функционировать на Ethereum, в котором заранее прописывался переход с одного алгоритма на другой.
Делегированное подтверждение доли (DPoS)
Делегированное подтверждение доли Delegated proof-of-stake (DPoS), которое было разработано Дэниелом Ларимером в 2014 году, только внешне похоже на имя Proof-of-stake, ведь детали реализации двух алгоритмов существенно отличаются друг от друга. В DPoS вместо ставки на монеты для проверки транзакций держатели токенов в ходе голосования выбирают валидаторов транзакций, которые будут формировать блоки. Вес каждого голоса определяется суммой активов голосующего. Держатели монет, в случае сомнений, могут перевыбирать кандидатов. Благодаря этому можно достичь высокой устойчивости сети. Если большая часть исполнителей вышла из строя, то сообщество тут же проголосует за их замену.
DPoS остается децентрализованным в том смысле, что все пользователи в сети участвуют в выборе тех нодов, которые проверяются транзакциями, но централизован этот алгоритм консенсуса из-за того, что все решения принимает небольшая группа. Реализации DPoS поддерживают постоянный процесс голосования и систему перетасовки, которая выбирает рандомных валидаторов. Работоспособность системы заключается в отборе ценных для сети участников и в удалении бесполезных, поэтому весь алгоритм зависит от активности избирателей.
DPoS используется Steemit, EOS и BitShares. Новый крипто-проект Minter от блокчейн-сообщества DeCenter основан на алгоритме консенсуса делегированного подтверждения доли.
Задача византийских генералов (BFT)
Византийская отказоустойчивость (Byzantine fault tolerance) носит весьма технический характер (как и другие консенсусные алгоритмы). Целью BFT является установление доверия между несвязанными сторонами сети. Концепция данного алгоритма консенсуса была представлена в научной работе Лесли Лэмпорта, Роберта Шостака и Маршала Писа еще в 1982 году.
BFT позволяет валидаторам совершать быстрые транзакции, управлять каждым состоянием сети и обмениваться сообщениями друг с другом, чтобы получить правильную запись транзакции и обеспечить честность. Данный алгоритм реализуется компанией Ripple, где валидаторы предварительно выбираются фондом Ripple, и Stellar, где любой может быть валидатором — доверие устанавливается сообществом. В отличие от блокчейнов, основанных на PoW, блокчейны BFT не подвергаются нападению, если только сами пользователи сети не координируют атаку. BFT считается выгодным алгоритмом, поскольку он масштабируем и охватывает транзакции с низкой стоимостью, но, как и DPoS, внедряет компонент централизации.
Новые алгоритмы консенсуса
Проблема алгоритмов консенсуса и проверки транзакций очень сложна и имеет много нюансов. Более согласованные алгоритмы, которые находят разные комбинации компромиссов, скорее всего, будут представлены в будущем и заменят используемый текущий набор алгоритмов.
Например, сейчас набирают популярность направленные ациклические графы Directed acyclic graph (DAG), и, возможно, в ближайшем будущем будут активно использоваться в блокчейн-проектах, потому что они могут выступить в качестве потенциального решения проблем, связанных с масштабируемостью. DAG — ориентированный граф с данными на основе топологической сортировки. Его развитие идет только в одном направлении — от ранних блоков к поздним. Из-за безблочного устройства все транзакции совершаются в сетях DAG, поэтому этот процесс занимает намного меньше времени, чем в случае блокчейнов, основанных на PoW и PoS. В сети DAG нет майнеров. Подтверждение осуществляется непосредственно в самих транзакциях, поэтому сделки проходят почти мгновенно.
Интересным с точки зрения экономики платформы является Proof-of-Importance (PoI). Алгоритм консенсуса используется в блокчейне NEM. Значимость каждого пользователя в сети определяется количеством средств, имеющихся у него в кошельке, и количеством проведенных транзакций. В отличие от PoS, который учитывает сумму имеющихся средств у пользователя, PoI принимает в расчет количество средств и активность пользователя в блокчейне. Такой подход побуждает активно использовать те средства, которые хранятся на счете.
Вывод
Большинство платформ, несмотря на обилие алгоритмов консенсуса, по-прежнему используют Proof-of-Work, Proof-of-Stake и их модификации. Одним из наиболее оптимальных является алгоритм консенсуса Delegated Proof-of-Stake, плюсы которого заключаются в увеличенной скорости подписания блоков и большей энергоэффективности за счет ограниченного количества подписантов.
В настоящее время алгоритмы консенсуса должны находить компромисс между масштабируемостью и степенью централизации. Остается лишь наблюдать за тем, как механизмы приспособятся к реалиям, а сообщества адаптируются к внедрению технологических разработок. Кто сможет лучше всех остальных простимулировать широкомасштабное участие и стабильное управление проектов — покажет время.
Адаптация материала с Hackernoon.