Алгоритмы консенсуса
💎 Русский TONКонсенсус в общем понимании означает способ прийти к соглашению. В блокчейне, который представляет собой децентрализованную систему не имеющую единого управляющего органа, для достижения консенсуса разработаны различные алгоритмы.
В блокчейне не имеет значения, доверяют ли участники системы друг другу, они должны договориться о принципах работы, которые будут касаться всех. И это – прямая функция алгоритма консенсуса.
Алгоритм консенсуса в блокчейне представляет собой набор математических правил и функций, которые позволяют достичь соглашения между всеми участниками и обеспечить работоспособность сети.
PoW
Proof-of-Work или PoW — первый алгоритм консенсуса, который был создан. Он используется в блокчейне Bitcoin и многих других криптовалют первой волны.
Майнинг в алгоритме PoW представляет из себя многочисленные попытки решения задачи, которую генерирует блокчейн основываясь на общей мощности всех майнеров в сети. Это нужно для того, чтобы решение занимало определённое количество времени и заранее нельзя было предсказать кто из майнеров найдёт его. Решение этой задачи вознаграждается фиксированным количеством монет, после чего возникает новая задача.
Единственный способ решения этой головоломки – последовательный, стремительный перебор чисел, требующий серьезных вычислительных ресурсов. Когда задача решается слишком быстро, блокчейн увеличивает уровень сложности, таким образом для следующего решения потребуется больше мощностей. Если же решение заняло слишком много времени, уровень сложности снижается. Чем больше пользователей участвует в процессе майнинга, тем сложнее получить монеты.
PoS
Proof-of-Stake или PoS — похож на голосование среди акционеров компании, где наибольшую власть получает владелец большей части акций. Для подтверждения блоков в PoS не требуется мощное оборудование, потому как вместо вычислений здесь голоса распределяются пропорционально вложенным средствам. Преимущество этого алгоритма состоит в том, что валидаторы заинтересованы честно подтверждать транзакции, так как в противном случае они рискуют получить штраф и потерять деньги.
DPoS
Delegated Proof-of-Stake или DPoS — эволюционировавший алгоритм PoS, единственным отличием которого является возможность всех пользователей блокчейна передавать свои монеты во временное управление валидаторам, которые в свою очередь используют эти средства для увеличения своей «силы голоса» при подтверждении новых блоков.
BFT
Byzantine Fault Tolerant или BFT — алгоритм основным отличием которого является механизм добавления новых блоков в блокчейн. В случае с PoW, PoS и подобным – блоки создаются до того как все валидаторы пришли к консенсусу, с последующим сложным процессом согласования и проверки. BFT подразумевает генерацию блоков после достижения консенсуса, любой из валидаторов может предложить новый блок, а другие валидаторы должны проверить и подтвердить его, прежде чем он появится в блокчейне.
Catchain
Catchain — алгоритм из семейства BFT, который включает в себя как сам алгоритм консенсуса, так и протокол обмена сообщениями между узлами валидаторов сети. Изначально протокол назывался Catch-chain (блокчейн-ловушка), поскольку по сути это отдельный блокчейн, предназначенный для перехвата нежелательных событий, затрудняющих достижение консенсуса.
Для создания новых блоков формируется специальная группа, состоящая из нескольких валидаторов, процесс достижения консенсуса состоит из нескольких раундов, при этом этапы одного раунда могут пересекаться с другими. Каждый раунд заканчивается либо коллективным принятием блока-кандидата, предложенного одним из валидаторов, либо не принятием ни одного из предложенных кандидатов. Раунд считается завершённым только после того, как потенциальный кандидат соберет подписи более чем 2/3 всех валидаторов, после чего начинается следующий раунд.
PoA
Proof-of-Authority или PoA — это алгоритм консенсуса, учитывающий репутацию валидаторов. Это своеобразная попытка объединить PoW и PoS.
Так, за работоспособность сети отвечает фиксированное число валидаторов, которые были выбраны участниками сети или разработчиками проекта. Такой подход гарантирует высокую скорость обработки транзакций и хорошую масштабируемость. При этом валидаторы заинтересованы в том, чтобы их работа была честной и прозрачной, иначе они потеряют свой статус и репутацию надежного участника сети.
Главный недостаток PoA — возможность излишней централизации и отсутствие мотивации пользователей, которые не получают вознаграждения за майнинг или стейкинг. Более того, в рамках классического PoA обычный пользователь никак не может повлиять на работу блокчейн-сети, поскольку этим занимаются доверенные ноды, как правило, принадлежащие одной компании.
PoET
Proof-of-Elapsed-Time или PoET — алгоритм консенсуса от компании Intel. Используется корпоративными блокчейнами, например, Hyperledger.
Принцип работы PoET напоминает лотерею. В каждой ноде сети генерируется случайное время ожидания для конкретного блока — каждый раз оно разное. После этого нода «замораживается» (переходит в период ожидания). Блок добывает та нода, у которой время ожидания блока окажется наименьшим. Специальная система SGX следит за тем, чтобы все это происходило действительно случайным образом.
Главный недостаток PoET — обязательное использование процессора Intel Software Guard Extension, поддерживающего SGX.