Что такое алгоритмы консенсуса? Полный список алгоритмов блокчейна

    Что такое алгоритмы консенсуса? Полный список алгоритмов блокчейна
    0

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

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

    История первых алгоритмов достижения консенсуса

    Первый алгоритм консенсуса, нашедший массовое применение – PoW, был реализован в 2009 году создателем Bitcoin, Сатоши Накамото. Внутренняя валюта – BTC, выполняющая роль цифровых денег, требовала максимальной защищённости, и потому подтверждение путём доказательства наличия вычислительной мощности стало самым эффективным способом создать виртуальную единицу с материальной ценностью.

    Следующий этап развития блокчейн-технологии – виртуальная машина для выполнения смарт-контрактов Ethereum. Изначально она использует алгоритм PoW, но уже с первых лет рассматривалась возможность перехода на PoS – доказательство доли владения.

    Идея смены алгоритма появилась из-за проблем масштабирования и скорости пропускной способность с сохранением децентрализации могут быть более эффективно удовлетворены PoS и решением задачи византийских генералов (BFT) валидаторами, размещающими свои токены ETH в стейкинг.

    Валидаторы - участники сети, подтверждающие валидность блоков с помощью заданного алгоритма консенсуса.

    Дальнейшая эволюция подразумевает создание приложений, не требующих столь высокого подкрепления материальной ценности, как у Bitcoin, поскольку они обретают интеллектуальную ценность в действующей экосистеме. Коммерческие блокчейны и вовсе могут проводить валидацию централизованно.

    Новые алгоритмы консенсуса и их модификации появляются регулярно. Получите представление о том, как они работают.

    PoW (Proof of Work)

    Этот алгоритм Доказательства работы требует вычислительной мощности майнеров. Эти узлы выполняют поиск хэша, в котором закодирован набор данных (путём двойного хэширования алгоритмом SHA-256). 

    image

    Тот, кто быстрее остальных найдёт нужное число, получит производное искомого хэша и сможет включить транзакции в блок (тем временем они ожидают в мемпуле). Майнер сам принимает решение, какие транзакции будут добавлены в блок. Их количество ограничено размером блока (2MB, или около 2500 транзакций). Отправитель оставляет некоторое количество монет в виде награды для майнера, и по принципу аукциона, зачастую, предпочтение отдаётся тем, кто готов заплатить максимум за включение в блок.

    Данные всех предыдущих событий навсегда бетонируются в блокчейне Биткоина. Их набор заключён в хэше следующего искомого блока, потому не подлежит редактированию.

    Сеть достигает консенсуса, когда более 51%, а в действительности 70-80% нод соглашаются с одной и той же версией блока. В случае несогласия, происходит форк: часть майнеров начинает добывать параллельную ветку. Во избежание атаки двойной траты, когда отправитель овладевает большей частью вычислительной мощности в сети и успешно размещает в сети блок с поддельной информацией о расходе, пользователи ожидают 3, 5 или 10 подтверждений сети. Каждый новый блок увеличивает дистанцию, которую способен теоретически симулировать злоумышленник.

    Используют: Bitcoin, Litecoin, Bitcoin Cash, Ethereum 1.0, Monero, ZCash.

    PoS (Proof of Stake)

    Доказательство доли владения требует наличия стейка (монет на балансе валидатора) и сервер для вычислений. Объем добычи не зависит от мощности сервера.

    Более подробно об алгоритме PoS можно узнать по ссылке.

    image

    Поскольку чеканка блоков в PoS моделях, в сравнении с PoW, не требует сложных вычислений, она может происходить в фиксированном временном интервале.

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

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

    Используют: Peercoin, Blackcoin, Nxt, Polygon.

    DPoS (Delegated Proof of Stake)

    Делегированное доказательство доли владения предусматривает голосование стейкхолдеров за назначение, например 100 свидетелей, из которых 21 будут перемешиваться, выбираться случайным образом и утверждать блоки.

    image

    Впервые предложено Дэном Ларимаром и вызвало неоднозначную реакцию сообщества: с одной стороны такой подход значительно быстрее большинства других PoS-алгоритмов консенсуса, с другой – более централизован. Хотя в действительности половина вычислительной мощности PoW сети Bitcoin сконцентрирована всего в 4 пулах, что не мешает считать его децентрализованным.

    Более подробная статья про алгоритм DPoS содержит особенности блокчейна, его историю, преимущества и недостатки.

    Используют: TRON, Tezos, Cardano, Lisk, Elastos, Ark, Rise, Credits, Aunite.

    BFT PoS (Byzantine Fault Tolerance Proof of Stake)

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

    image

    Достигается BFT путём утверждения тех блоков, чье содержимое по крайней мере ⅔ узлов считают валидным. Поведение всех узлов постоянно отслеживается: простои и отправка ложной информации наказываются лишением награды, либо даже стейка.

    Толерантность находит активное применение в PoS системах. Узлы получают возможность выходить из строя по сценарию, вместо остановки и отказа в обслуживании. На базе этого алгоритма созданы модицикации консенсуса, на которых работают такие монеты, как Internet Computet (ICP)

    Используют: Ethereum 2.0.

    DBFT PoS (Delegated Byzantine Fault Tolerance Proof of Stake)

    Ускоряет финализацию блоков путём делегирования права валидации конкретному набору узлов. Подобно DPoS.

    Используют: NEO.

    LFT (Loop Fault Tolerance)

    Стремится создать высокопроизводительный алгоритм консенсуса, основанный исключительно на передаче сообщений между участниками без посредников. 

    В традиционном дизайне BFT есть 3 шага: предварительная подготовка, подготовка и фиксация. LFT сокращает процесс до 2,5 шагов, ограничивая количество узлов, транслирующих результаты генерации блоков; остальные узлы в нём участвуют только в голосовании. Это сокращает расходы на коммуникацию за счёт консолидации сообщений из сети.

    image

    Механизм LFT использует технику «спиннинга», чтобы упростить алгоритм выбора первичного узла. На иллюстрации выше показан принцип его работы. Ноды-валидаторы передают необходимые транзакции считывающим нодам. Основные ноды собирают затем все транзакции и генерируют блок, рассылая его с подписью для того, чтобы остальные валидационные узлы могли проверить его.

    Loop Fault Tolerance продолжает серию эволюционных решений для Byzantine Fault Tolerance (BFT), одного из самых безопасных, высокопроизводительных и масштабируемых консенсусных алгоритмов для блокчейнов.

    Используют: ICON.

    PoA (Proof of Authority)

    Транзакции и блоки в механизме PoA проверяются утверждёнными валидаторами. В сети должна хранится подтверждённая информация об их личности. Право на участие труднодостижимо и лицензируется с привязкой к личности, например, у государственного нотариуса. Для создания эффективного органа, проверки и процедуры должны быть полностью единообразны.

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

    Новый блок генерируется ведущей нодой в указанном временном отрезке. Следующий отрезок будет подтверждать следующая нода, что будет назначена ведущей и ожидает очереди в списке.

    image

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

    Узлы-валидаторы должны убедиться, что: блок сгенерировала лидирующая нода (в правильном временном интервале); это единственный сгенерированный ею блок; он сформирован и подписан корректно. Затем подтвердить транзакции, одна за другой. Если блок успешно подтверждён, он добавляется в цепочку, если нет: отвергнуть его и отправить «bad block» транзакцию. Ведущая нода, что продолжает генерировать плохие блоки будет исключена из процесса.

    Проблема форка решается по принципу самой длинной цепочки.

    Используют: Ethereum Kovan, Ethereum Parity, Clique Rinkeby (TestNet), POA.Network.

    PoS (Proof of Service)

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

    Репутация мастерноды и ставка (количество токенов, которое владелец мастерноды готов разместить, чтобы увеличить шанс быть выбранным для обеспечения консенсуса) будут влиять на случайный шанс закрытия блока.

    Существует 2 типа аккаунтов: операционные и репутационные. При первом запуске мастернода должны перевести часть монет на свой репутационный баланс.

    image

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

    Каждый блок содержит открытый ключ из запроса и транзакцию со ставкой. Мастерноды транслируют произведенные блоки всем членам комитета. Консенсус по подтверждению блока достигается внутри комитета, и структура комитета изменяется после каждого успешного подтверждения блока. Если комитет консенсусом принял блок, предложенный мастернодой – мастернода получает вознаграждение.

    Используют: remChain.

    PoR (Proof of Retrievability)

    Доказательство возможности восстановления для файловых систем позволяет устройству убедить клиента (верификатора) в том, что целевой файл не повреждён и может быть полностью восстановлен в полном объеме. Алгоритм изложен в научной работе Университета Мэриленда по возможному использованию Биткоина для сохранения данных, и реализован в проекте Permacoin.

    Для поддержания работы PoR строится головоломка, решить которую можно с помощью вычислительных мощностей, плюс предоставив доказательства наличия и целостности данных в хранилище.

    image

    В результате: валидаторы надёжно хранят подмножество данных, загружают новый объем непересекающихся данных, весь набор данных можно восстановить из содержимого локальных запоминающих устройств.

    Используют: Microsoft, Permacoin.

    PoB (Proof of Believability)

    Надёжность ноды при проверке блоков основывается на его прошлом поведении и вкладе. Блокчейн остаётся децентрализованным и может быть масштабирован без потери должного уровня безопасности.

    Репутация оценивается токенами, что не подлежат продаже и выдаются всем, кто поддерживает систему. Наличие их повышает шансы избрания валидатором.

    Доказательство доверия делит всех участников процесса на две группы: правдивую и нормальную. Вначале правдивые ноды быстро обрабатывают транзакции и завершают первую фазу. Затем нормальные ноды финализируют состояние цепи.

    Избрание в правдивую лигу рассчитывается на основании нескольких факторов активности (баланс, вклады, отзывы).

    image

    Суровая система наказаний предусматривает лишение валидатора всех токенов и репутации в системе при некорректном поведении.

    Если шарду не хватает правдивых валидаторов, происходит откат от формата двух групп к одной группе, где есть только комитеты, состоящие из валидаторов со статусом нормальных. Тогда транзакции начинают обрабатываться напрямую по классическому алгоритму PBFT. Это необходимо при временных простоях или падении активности в сети.

    Используют: IOST.

    PoA (Proof of Activity)

    Комбинация из последовательно применяемых алгоритмов PoW и PoS, усиливающая защиту от атаки 51%.

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

    image

    Комиссия делится между удачливым майнером и валидаторами, что подписали действительный блок.

    Если некоторые валидаторы не подписывают блок в течение заданного времени, он отбрасывается как неполный и используется следующий выигрышный блок. Так будет происходить до тех пор, пока найденный блок не будет утверждён стейкхолдерами.

    Используют: Decred, Espers.

    LCPoA (Limited Confidence Proof of Activity)

    Модификация алгоритма Proof of Activity, где успех на этапе Proof of Work зависит не от количества вычислений, а от количества затраченного времени на поиск хэша. Это снижает требования к вычислительным ресурсам для генерации блока.

    Используют: IZZZ, Bitcoen.

    PoR (Proof of Research)

    Механизм доказательства исследования сочетает в себе черты классического Proof of Stake, плюс Proof of BOINC. Berkeley Open Infrastructure for Network Computing – платформа для распределительных вычислений, что используется научными исследователями в различных областях, позволяя им использовать простаивающие вычислительные ресурсы компьютеров по всему миру.

    PoR использует Gridcoin. Эту криптовалюту может заработать любой, кто поделится своим ресурсом с BOINC. Независимые инвесторы тоже могут получать вознаграждение, размещая свои монеты в стейкинг.

    image

    Исследователь устанавливает программное обеспечение BOINC и регистрирует проект из белого списка BOINC со своим адресом электронной почты. Исследователю присваивается уникальный проектный идентификатор (CPID), и он начинает загрузку рабочей доли. Как только вычисление завершено, исследователь возвращает результат с кредитной рекомендацией для выполненной рабочей нагрузки. Рекомендация сравнивается с рекомендацией другого исследователя, и присуждается минимальный балл. Эти кредитные данные рабочей нагрузки хранятся в заголовке каждого блока, и исследователь награждается соответствующей суммой Gridcoin. 

    В достижении консенсуса доминирует PoS, при этом Proof-of-BOINC действует как механизм вознаграждения за совместное использование неиспользуемых вычислительных ресурсов, доступных исследователям. Его безопасность аналогична безопасности традиционного PoS.

    Используют: Gridcoin.

    PoB (Proof of Burn)

    Доказательство сжигания не требует расхода физических ресурсов. Валидаторы заменяют потраченные усилия бёрнингом части собственных монет.

    В PoW процессоры расходуют электроэнергию, и это является доказательством того, что им будет невыгодно или затруднительно жульничать. PoB делает то же самое, но в виртуальной форме: майнеры отправляют установленную сумму монет на адрес, к которому никто не сможет получить доступ, тем самым «сжигая» их. Взамен они получают награду, если удалось найти блок. Вероятность успеха напрямую зависит от сожжённой суммы, аналогично тому, сколько процессоров подключают майнеры в PoW системах.

    image

    Сжигаться могут как собственные токены экосистемы, так и другие монеты с уже существующей стоимостью (пример: конвертация ценности BTC в Counterparty).

    Используют: Counterparty, Slimcoin, OpenBazaar, SATOZ.

    PoI (Proof of Importance)

    Доказательство важности основывается на объеме стейка, и главную роль в ней играет репутация ноды и её история. 

    image

    Алгоритм консенсуса реализован в блокчейне NEM. Пользователи, часто отправляющие и получающие транзакции имеют повышенный шанс найти блок. Чтобы стать узлом, на аккаунте должно быть минимум 10 тыс. монет. Следуя этим характеристикам, узел получает больше наград:

    • Транзакции на адресах должны быть не старше 30 дней (поздние транзакции имеют больший вес).
    • У получателя должно быть минимум 10 тыс. монет на адресе (чем больше монет тем выше шансы).
    • Количество кластеров (учётные записи, завязанные в активных кластерах предпочитаются выше, чем брошенные адреса и концентраторы).

    Поощряются торговцы и биржи, вместо традиционных крупных держателей PoS-систем. PoI снижает риски атаки 51%, поскольку при форке потребуется поддержка транзакционной активности на двух ветвях одновременно.

    Используют: NEM.

    PoSV (Proof of Stake-Velocity)

    Алгоритм нелинейной функции старения монет, в добавок в классическому PoS предусматривает затяжное старение (новые монеты дают доходность быстро, а старые медленно увеличивают доходность).

    image

    Это по задумке создателей блокчейна Reddcoin, должно стимулировать пользователей к размещению средств в стейкинг, и создавать постоянный приток новых участников.

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

    Используют: Reddcoin.

    FBA (Federated Byzantine Agreement)

    Форма Византийской отказоустойчивости, когда каждый генерал несёт ответственность за свой блокчейн. Ноды собираются в кворумы и федеративно проводят валидацию лишь части событий, экономя ресурсы и увеличивая пропускную способность сети. Избавляет от недостатков традиционного BFT, когда крупные собственники капитала могут представлять угрозу, влияя на валидацию блока целиком.

    Узлы должны быть известны и проверены заранее (Ripple) или могут подключаться произвольно (Stellar).

    image

    Консенсус достигается несколькими раундами. На первом шаге узлы получают транзакции от внешних приложений и формируют список всех действительных кандидатов в транзакции, голосуют за их достоверность, и транзакции, набравшие не менее 50% голосов проходят в следующий раунд. На втором шаге минимум 80% узлов должны обладать одинаковым набором кандидатов на подтверждение, и если хэши их регистров совпадают, происходит включение их в блок.

    Используют: Ripple, Stellar, Bravo, Shaan.

    PoET (Proof of Elapsed Time)

    Hyperledger Sawtooth разработан Intel для создания распределенных реестров. Он использует Proof of Elapsed Time, который зависит от функционала Intel SGX (Software Guard Extension).

    Intel SGX – это новый тип доверенной среды выполнения (TEE), интегрированный в процессоры Intel нового поколения. SGX позволяет выполнять код в защищенном анклаве внутри процессора, достоверность которого может быть проверена с помощью процесса удалённой аттестации, поддерживаемого SGX.

    image

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

    Используют: Hyperledger Sawtooth.

    PoB (Proof of Brain)

    Алгоритм консенсуса, вознаграждающий пользователей за социальную активность, создание контента. Доказательство мозга предусматривает максимальную награду участникам, чья информация больше всего просматривается и нравится пользователям. 

    image

    PoB был разработан, стремясь увеличить преимущество для валидации в информационных блокчейнах, нацеленных на массовость, где количество пользователей и образная мощность их разумов превосходит вероятность наличия у них сложных вычислительных устройств.

    Для чеканки блоков избирается 21 активный свидетель путём голосования, и они перемешиваются в каждом раунде. Валидаторы могут проводить модерацию самостоятельно, либо исходя из объема запросов пользователей на удаление нежелательного контента. Блоки генерируются каждые 3 секунды.

    Используют: Steem.

    LPoS (Leased Proof of Stake)

    Расширенная модель PoS, где внутренняя архитектура блокчейна позволяет пользователям сдавать в аренду свои средства полным узлам под валидацию блоков, без участия третьих лиц (P2P).

    Арендованные токены блокируются на счетах на указанный период, и не могут быть проданы или переданы дальше.

    image

    В остальном консенсус в LPoS может достигаться по аналогии с классическим PoS.

    Используют: WAVES.

    SBFT (Simplified Byzantine Fault Tolerance)

    В упрощённой форме BFT валидаторы назначаются и удаляются вручную руководителями приложения. Все участники знают подписывающие лица и доверяют им.

    image

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

    Может использоваться в блокчейнах частных коммерческих компаний и организаций.

    PoC (Proof of Capacity) или PoWeight (Proof of Weight)

    Тип алгоритмов консенсуса, где для вероятности обнаружения узлом следующего блока используется какое-то другое значение, нежели вычислительная мощность. Например, вместо объема стейка (как в PoS системах), Filecoin чаще вознаграждает участников, которые хранят в IPFS больше данных (Proof of Spacetime или Proof of Storage). 

    Для валидации ноды собираются в комитеты случайным образом и приоритет отдаётся узлам с наибольшим «весом».

    Используют: Algorand, Filecoin, Digital Ocean, Chia, Burstcoin, Spacemint.

    PoC (Proof of Care)

    Большую силу в механизме с доказательством заботы имеют те пользователи, что принимают максимальное участие в жизни проекта. Валидация блоков при этом может происходить традиционным вычислением или голосованием.

    Используют: Quantstamp, TomoCoin.

    PoF (Proof of Formulation)

    В отличие от консенсусов PoW и PoS, PoF не требует чрезмерных вычислительных ресурсов и не зависит от суммы «доли», которой кто-то обладает. Из-за этого уменьшается конкуренция за то, кто добывает и создает блоки, и каждый получает ход. PoF также имеет встроенные механизмы, предотвращающие возможность возникновения любых форков. 

    В остальном принцип достижения консенсуса близок к Proof of Service.

    image

    Proof of Formulation – запатентованный алгоритм консенсуса в Патентном бюро Соединённых Штатов (Приложение №62717695).

    Используют: FLETA.

    от РЕДАКЦИЯ
      Регистрируясь, вы акцептуете Оферту
      Товарный знак Кошелёк.ру принадлежит
      ООО "Кошелёк.ру" (ИНН 7811454512)
      [email protected]
      8(800)55555-89 для звонков по РФ
      +7(900)55555-89 для международных звонков и мессенджеров