July 22

Что такое ваш консенсус?

Для начало посмотрим на традиционное понятие консенсуса

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

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

Но перед тем как говорить о том как это работает погорим немного о Предыстории возникновения такого понятия как консенус.

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

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

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

Теперь разберемся с общей механикой работы консенсуса

Так как блокчейн - это сеть, стоящая из набора связанных между собой блоков и их общая динамическая последовательность является образом блокчена и так как блокчейн это децентрализованная система - образ блокчейна храниться на всех устройствах которые принимают участие в сети. И следовательно каждый из участников сети может добавить свой блок в этот образ так вот работа по проверке этого блока на достоверность и внесение его в цепочку существующих блоков и является консенсусом. Решение по достоверности блока промаяться на основе мнения большинства то есть если 51% участников сети согласиться что блок правомерен даже если это не так то блок будет принят. Это общая идея работы консусенса, на данный момент я нашел 7 способа ее технической реализации

  1. Proof-of-Work (PoW)
  2. Proof-of-Stake (PoS)
  3. Delegated-Proof-of-Stake (DPoS)
  4. Proof-of-Activity (PoA)
  5. Proof-of-Burn (PoB)
  6. Proof-of-Importance (POI)
  7. Proof-of-Capacity (PoC)

Сами популярными являться первые два их и расмотрим и найдем отличия

Proof-of-Work (PoW)

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

Чтобы найти начинающийся на 10 нулей хеш, у одного компьютера уйдет несколько десятков лет. Но если объединить тысячи компьютеров в единую сеть и искать параллельно, то по теории вероятностей эта задача решается в среднем за 10 минут. Это и есть время появления нового блока в блокчейне биткоина. Каждые 8-12 минут кто-то на земле находит такой хеш и получает привилегию анонсировать свою находку на всех, избежав тем самым проблемы кто был первым.

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

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

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

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

Из-за этого были придуманы три правила безопасности хвоста блокчейна (end of chain insecurity):

  1. Вознаграждениями за майнинг, можно пользоваться только спустя еще 20 подтвержденных блоков после получения. Для биткоина это около трёх часов.
  2. Если вам переслали биткоины, использовать их в качестве инпутов в новых транзакциях можно только спустя 1-5 блоков.
  3. Правила 1 и 2 всего лишь прописаны в настройках каждого клиента. Никто не следит за их соблюдением. Но закон о самой длинной цепочке всё равно уничтожит все ваши транзакции, если вы попытаетесь обмануть систему, не соблюдая их.
  1. Proof-of-Stake (PoS)

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

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

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

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

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

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

  1. Delegated-Proof-of-Stake (DPoS)

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

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

  1. Proof-of-Activity (PoA)

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

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

Proof-of-Burn (PoB)

— концепция консенсуса, в основе которой лежит идея «сожжения» монет, то есть отправка монет на специальный адрес, с которого их невозможно изъять.

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

  1. Proof-of-Importance (POI)

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

  1. Proof-of-Capacity (PoC)

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

Также существуют несколько других типов алгоритмов консенсуса, таких как Proof-of-Location (PoL), суть которого заключается в отслеживании местонахождения цифровых активов с помощью специальных маячков для предотвращения мошенничества в сети, а также Proof-of-Elapsed-Time (PoET), принцип работы которого заключается в генерации случайного времени ожидания для блока. Нода «засыпает» ровно на это время, а первая, которая просыпается, получает право на валидацию и добавление блока в цепь.