Всем привет! Для тех, кто уже читал мои посты о блокчейне хочу сказать, что рад вас видеть снова на своей странице. Для тех, с кем мы еще не знакомы, меня зовут Валерий, я junior developer в западном стартапе, приятно познакомиться. 

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

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

Столпы, на которые опираются блокчейны

Каждый блокчейн основан на протоколе, а учитывая то, что каждый из блокчейнов служит своей цели, то и количество протоколов явно больше одного. Кстати, блокчейн – это не только про криптовалюты, эти «базы данных» используются и в других сферах и только набирают обороты. 

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

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

PoW (Proof-of-Work — Доказательство работы)

Proof-of-Work – алгоритм консенсуса биткоина, породивший, можно сказать, новую профессию на рынке, а именно майнер. Смысл как всегда кроется в названии, для участия в транзакции членам сети требуется решить произвольную математическую головоломку по нахождению хэша (hash) и публично доказать проделанную работу, чтобы избежать обмана системы. Первый, кому посчастливилось найти правильное решение, получает возможность добавить блок в цепочку. Бонусом идет не только добавление нового блока, но и возможность получить награду за проделанную работу, это и является основным мотиватором для участия в данном протоколе. 

Хеш-функция — функция, осуществляющая преобразование массива входных данных произвольной длины в выходную битовую строку установленной длины, выполняемое определённым алгоритмом. Преобразование, производимое хеш-функцией, называется хешированием. Результат преобразования называется «хешем». 

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

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

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

PoS  (Proof-of-Stake — Доказательство доли)

Proof-of-Stake создан как альтернатива Proof-of-Work и стремится перекрыть его недостатки, например, огромное энергопотребление. Данный механизм уменьшает объем вычислительной работы, необходимой для проверки блоков и транзакций, которые обеспечивают безопасность блокчейна. Вычислительная мощность (проверка блоков) заменяется стейкингом, в результате чего способность майнинга человека рандомизируется сетью. Владельцы предлагают свои монеты в качестве залога за возможность проверки блоков и становятся «валидаторами». Валидатор проверяет правильность транзакций в блоке. Если все сделано правильно, они добавляет блок к цепочке блоков и получают награду за свой вклад. Однако, если валидатор предлагает добавить заведомо неверный блок, он теряет часть своих стейкинговых активов в качестве штрафа. Примеры использования – NXT, Tezos, Peercoin, Blackcoin.

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

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

  • Proof of Work (POW) использует метод конкурентной проверки для подтверждения транзакций и добавления новых блоков в блокчейн.

  • Proof of Stake (POS) использует случайно выбранных участников сети для проверки транзакций. 

DPoS (Delegated Proof-of-Stake — Делегированное доказательство доли)

Delegated Proof-of-Stake схож по работе с PoS, за исключением того, что он включает в себя механизм голосования и делегирования, чтобы стимулировать пользователей защищать сеть и проверять блоки с помощью монет, оставленных в качестве залога. Благодаря данному залогу пользователи могут участвовать в голосовании, где выбирают делегатов, которые будут ответственны за все аспекты проведения транзакций. Когда делегаты наконец избраны, важно, чтобы они смогли договориться о том, какие транзакции следует отклонить, а какие — одобрить. Применяется в Cosmos, Tron, EOS.

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

Валидаторы — это узлы, которые могут проверять, что блоки, созданные разными свидетелями, соответствуют правилам консенсуса. Если пользователь становится валидатором блоков, все, что от него требуется, — это запустить валидатор и проверить сеть. 

Свидетели — пользователи, которые несут ответственность за безопасность и проверку блокчейна. Чтобы стать свидетелем, пользователь должен получить достаточное количество голосов. Общее количество свидетелей на одном сервере может варьироваться от 21 до 101. Несмотря на то, что свидетель может удерживать определенные транзакции вне блока, он не может изменить информацию о транзакции. Среди свидетелей очень большая конкуренция, если свидетель теряет доверие пользователей, его место занимает другой.

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

Заключение

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

Сравнение PoS, PoW, DPoS

PoS

PoW

DPoS

Производительность

высокая

низкая

высокая

Энергозатратность

низкая

высокая

низкая

Вознаграждение за участие

есть

есть

есть

Безопасность

высокая

низкая

высокая

Участие валидаторов

да

нет

да

Участие с использованием залога

да

нет

да

Пример использования

NXT, Tezos, Peercoin

Bitcoin, Ethereum, Litecoin

Cosmos, Tron, EOS.

Комментарии (8)


  1. Al_Pollitruk
    25.03.2022 14:09
    +2

    Если в таблице столбцы PoS и DPoS ничем не отличаются кроме примеров, то сравнение выполнено не очень качественно.


  1. splix
    25.03.2022 17:49

    У вас написано:


    Proof of Stake (POS) использует случайно выбранных участников сети

    Можете что вы имеет ввиду? По-первых "случайных" это не сильно решаемая проблема, вся индустрия криптографии бьется над решением этой проблемы. А во-вторых в PoS, насколько мне известно, все наоборот, и распределение участников строго детерминированно в соответствии с алгоритмом.


    1. rPman
      25.03.2022 20:27

      порядок участия определяют в dpos блокчейнах типа eos, там витнесы договариваются (протокол для этого) кто в какой порядке будет работать, если кто то пропустил свою очередь по таймаутам, из списка выкидывают и наказывают штрафами

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


      1. splix
        25.03.2022 21:02

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


        Возвращаясь к PoS. Если лишь случайная нода генерит блок, то как тогда бороться с атаками и форками? Какую ветку выбирать в случае форка? И особенно с учетом что все текущие P2P соединения вашей ноды могут контролироваться злоумышленником?


        1. rPman
          25.03.2022 21:16

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

          в pow консенсусе за право подписывать блоки нужно заплатить тратами энергии

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

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

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

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

          proof of capacity на сколько я помню тоже уязвим к переписыванию блокчейна, что старый burstcoin что наверняка последний chia но не изучал вопрос

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

          p.s. я бы поглядывал на proof of identity, очень интересная концепция, криптовалюта idena, но не спешите покупать монеты ;) высокая их цена ослабит его защиту


          1. splix
            26.03.2022 00:52

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


  1. lizergil
    25.03.2022 23:26

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


  1. vtools
    27.03.2022 17:33

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