Вы можете не переживать, у каждой криптовалюты есть свой надежный алгоритм консенсуса. Ни один из них не идеален, но у каждого есть свои преимущества. Эти алгоритмы существуют в криптовалютном мире для того, чтобы избежать повторного расходования средств, имеющихся на счету. Ниже мы рассмотрим самые популярные на данный момент алгоритмы консенсуса.
Proof-of-Work (PoW)
Популярные блокчейны на алгоритме: Bitcoin, Ethereum, Litecoin, Dogecoin (в общем, большинство валют)
Плюсы: Он надежен
Минусы: Низкая пропускная способность; уничтожение планеты высокими энергозатратами.
Proof-of-Work был первым алгоритмом консенсуса в блокчейне. PoW был разработан Сатоши Накамото для использования в блокчейне биткоина, и именно его мы можем благодарить за огромное энергопотребление и массовое помешательство на майнинге по всему миру. Мы знаем, что он точно работает (а это можно сказать далеко не про каждый алгоритм консенсуса), но на нынешнем этапе развития эта технология уже считается устаревшей. Даже Эфириум переходит с PoW на более энерго- и экономически эффективный PoS (читайте про историю развития Эфириума и о планах на ближайшее будущее). Появляется большое количество новых эффективных альтернатив алгоритму, и будет странно, если какой-либо новый блокчейн будет использовать PoW.
В PoW майнеры решают сложнейшие и бесполезные задачи для создания новых блоков. PoW работает по принципу «выигрывает самая длинная цепь».
Так как все майнеры работают в одной цепи, она растёт очень быстро, становится длинной и очень надёжной. Поэтому биткоин и является безопасным и будет таковым до тех пор, пока хотя бы больше 50% мощности в цепи контролируется честными майнерами.
Proof-of-Stake
Популярные блокчейны на алгоритме: Decred, Ethereum (скоро), Peercoin
Плюсы: Атаковать его дороже; он более децентрализован и энергоэффективен.
Минусы: Проблема «Nothing at Stake»
В PoS блоки не создаются при выполнении работы майнерами. Пользователи «делают ставки» своими токенами на то, какие блоки окажутся действительными. В случае форка пользователи голосуют своими токенами за ту ветвь, которую они хотят поддержать. Так как большинство людей голосуют за «правильный» форк, те валидаторы, которые ставят на другой, теряют свою долю (стейк) в первом.
Наиболее популярным аргументом против концепции PoS является проблема “Nothing at Stake”. Она заключается в том, что валидаторам практически не требуется никакой вычислительной мощности для поддержки форка (в отличие от PoW), поэтому они могут голосовать за обе ветви каждый раз, когда есть подозрение на попытку совершить обман. Поэтому форки в PoS могут случаться гораздо чаще, чем в PoW, что, как некоторые считают, может нанести ущерб авторитетности валюты, использующей этот принцип.
Delegated Proof-of-Stake (DPoS)
Популярные блокчейны на алгоритме: Steemit, EOS, BitShares
Плюсы: Дешёвые транзакции, высокая масштабируемость и энергоэффективность.
Минусы: Частичная централизация
DPoS – это детище Дениэла Ларимера, и он сильно отличается от PoS. В DPoS ходлеры не голосуют за валидность самих блоков, а делегируют своими голосами эту задачу тем, кто будет голосовать от их имени. Другими словами, образуется коллегия выборщиков. Обычно избирается от 21 до 100 таких участников. Делегаты периодически меняются местами и получают заказ на внесение своих блоков в систему. Малое количество делегатов позволяет им эффективно организоваться и создавать определенные временные слоты для каждого делегата, чтобы он мог опубликовать свой блок.
Если выборщики пропускают свои блоки или публикуют нелегитимные транзакции, участники цепи своими голосами убирают таких делегатов из системы и выбирают новых.
В DPoS майнеры могут сотрудничать, чтобы создавать блоки вместе, а не конкурировать, в отличие от PoW и PoS. Частично централизуя создание блоков, DPoS может работать на порядки быстрее, чем большинство других алгоритмов. EOS считается первым блокчейном, в котором на добавление блока в реестр тратится менее 1 секунды. Это немного быстрее, чем 10 минут в Биткоине.
Proof of Authority (PoA)
Популярные блокчейны на алгоритме: POA.Network, Ethereum Kovan
Плюсы: высокая пропускная способность, масштабируемость
Минусы: централизованность
Proof-of-Authority – это алгоритм консенсуса, в котором транзакции валидируются подтверждёнными участниками – «админами». Эти участники обладают полномочиями, которые получают от них другие ноды. PoA имеет высокую пропускную способность и оптимизирован под приватные сети. Маловероятно, что этот алгоритм будет использоваться в публичных сетях ввиду своей централизованности.
Proof-of-Weight (PoWeight)
Популярные блокчейны на алгоритме: Algorand, Filecoin, Chia
Плюсы: кастомизируемый, хорошо масштабируемый
Минусы: сложная система вознаграждений
PoWeight – общая классификация для целой группы алгоритмов консенсуса, основанных на модели Algorand. Общая идея в том, что в отличие от PoS, где процент ваших токенов в сети представляет вашу вероятность «нахождения» следующего блока, в системе PoWeight для оценки этой вероятности используются другие показатели. Конкретный пример: в Filecoin принцип Proof-of-Spacetime оценивает, сколько данных «межпланетной файловой системы» (IPFS) вы храните. В некоторых других системах, к примеру, используется Proof-of-Reputation.
Byzantine Fault Tolerance (BFT)
Популярные блокчейны на алгоритме: Hyperledger, Stellar, Dispatch, Ripple
Плюсы: высокая пропускная способность, низкие издержки, высокая масштабируемость.
Минусы: требует доверия между участниками
Существует классическая проблема – распределённые вычисления. Её часто объясняют через задачу византийских генералов. Несколько византийских генералов с подконтрольными им войсками окружают город. Они должны единодушно решить, атаковать противника или нет. Если часть войск будет атаковать, а часть – нет, осада закончится плачевно. Генералы обычно находятся на расстоянии друг от друга, для связи им необходимо передавать сообщения. Несколько криптовалютных протоколов используют разные версии концепции BFT для согласования сообщений - достижения консенсуса. В каждой есть свои плюсы и минусы:
Practical Byzantine Fault Tolerance (PBFT): Одно из первых решений проблемы было названо Practical Byzantine Fault Tolerance. Оно используется в Hyperledger Fabric, где существует несколько (не более 20) предварительно выбранных «генералов» PBFT. Преимущество состоит в высокой пропускной способности. Недостаток – централизация, «эксклюзивность».
Federated Byzantine Agreement (FBA): ещё один способ решения проблемы, используемый в криптовалютах Stellar и Ripple. Суть в том, что каждый византийский генерал, отвечающий за свою собственную цепь, сортирует приходящие сообщения и устанавливает истину. В Ripple «генералы»-валидаторы предварительно выбираются сообществом. В Stellar каждый может быть валидатором, поэтому их для себя пользователь выбирает сам.
Со своей невероятной пропускной способностью, низкими транзакционными сборами и масштабируемостью, алгоритм FBA, на наш взгляд, является самым лучшим на данный момент алгоритмом по достижению консенсуса.
Направленные ацикличные графы (Directed Acyclic Graphs – DAGs)
Популярные блокчейны на алгоритме: Iota, Hashgraph, Raiblocks/Nano
Плюсы: высокая масштабируемость, низкие издержки
Минусы: зависят от конкретного проекта
DAGs – это вид алгоритма консенсуса, который не использует структуру данных в виде блокчейна, а обрабатывает транзакции асинхронно. Большим плюсом является возможность (в теории) увеличение количества транзакций в секунду до бесконечности, но есть и минусы.
Tangle
Tangle – алгоритм DAG, используемый в IOTA (обзор проекта). Чтобы отправить транзакцию в этом блокчейне, вам нужно подтвердить две предыдущие транзакции, которые вы получили. Такой принцип достижения консенсуса увеличивает валидность операций с ростом их количества в сети. Поскольку консенсус определяется транзакциями, теоретически, если кто-то сможет сгенерировать треть транзакций, он сможет сделать действительными нелегитимные переводы. IOTA выполняет своего рода двойную проверку всех транзакций сети через централизованную ноду под названием “The Coordinator”.
Утверждается, что нода работает только до момента «набора необходимой массы» системы, и будет удалена тогда, когда Tangle разрастётся.
Hashgraph
Hashgraph – протокол достижения консенсуса, разработанный Лиимоном Бэрдом (Leemon Baird). Ноды делят известные им транзакции с другими нодами случайным образом, так что в один момент «сплетни» обо всех транзакциях расходятся по всем нодам. Hashgraph очень быстр (250.000+ транзакций в секунду, что превышает пропускную способность VISA и MasterCard вместе взятых), но неустойчив к атакам Сивиллы. Поэтому Hashgraph – отличный вариант для приватных сетей, но в публичных сетях его применение мы в ближайшее время вряд ли увидим.
Block-lattice
Сеть Nano (ранее – Raiblocks) работает на принципе Block-lattice. Block-lattice – это структура, в которой каждый пользователь получает свою собственную цепь, записывать в которую может только он. Каждая транзакция разбирается на блок отправки в цепи отправителя и блок получения в сети получателя.
Может показаться, что Block-lattice слишком прост для того, чтобы работать, но мы уже являемся свидетелями того, как он функционирует в реальном мире.
Уникальная структура всё же оставляет Block-lattice уязвимым к очень специфичным атакам. Например, атака Penny-spend, при которой атакующие увеличивают количество нод в цепи и отправляют малые суммы средств большому количеству пустых кошельков.
SPECTRE
SPECTRE (Serialization of Proof-of-work Events: Confirming Transactions via Recursive Elections) совмещает в себе принципы PoW и DAG для масштабируемости достижения консенсуса. В SPECTRE блоки добываются с указанием нескольких родительских блоков, а не одного. Поэтому сеть в теории может обрабатывать несколько блоков в секунду. Добыча блока, указывающего на родительские блоки, валидирует эти блоки. В отличие от принципа «побеждает самая длинная цепь» в PoW, SPECTRE использует принцип «побеждают блоки с наибольшим количеством “дочерних” блоков». SPECTRE ещё не тестировался в реальных сетях, и вполне возможно, что для него появятся новые виды атак. На данный момент кажется, что потенциал у SPECTRE есть.