Как стать автором
Обновить

Переосмысление алгоритма консенсуса PoA – алгоритм PoG

Время на прочтение 4 мин
Количество просмотров 5K
консенсус

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

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

На данные момент самыми распространенными являются следующие реализации:

1. PoW (proof of work) доказательство работы. Правильность данных подтверждает узел, который выполнил определённую работу для решения сложной задачи, результат выполнения которой легко проверить. Алгоритм обеспечивает безопасность тем, что, если злоумышленник захочет обмануть сеть, ему понадобятся вычислительные мощности, превосходящие мощность остальной сети. У данного алгоритма есть недостатки и противники, об этом много материала в интернете, сейчас мы не будем на этом останавливаться.

2. PoS (proof of stake) доказательство доли владения. Данные подтверждает случайный узел, у которого имеются монеты данной сети. Чем больше монет, тем выше шанс что данные подтвердите именно Вы. На мой взгляд это далеко не самый лучший алгоритм, ведь богатые будут становиться ещё богаче и в итоге практически вся власть может сосредоточится в одних руках. Возможно Я что то не так понял, можете поправить меня в комментариях.

3. PoI (proof of importance) доказательство важности. По сути тот же PoS только в расчет, помимо количества монет, берутся количество совершенных транзакций и длительность нахождения в сети.

4. PoA (proof of Authority) доказательство полномочий. Новый блок генерируют только те узлы, которым изначально дали на это право. И тут, как Вы понимаете, никакой речи о полной децентрализации идти не может. Но так ли это плохо?

Анархия до добра не доведет


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

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

PoG (proof of genesis) доказательство происхождения


Как Вы наверно знаете, первый блок в блокчейн сети называется генезисом. Я решил, что логично будет дать право на подтверждение правильности информации создателю сети, ведь если Вы не доверяете создателю, то зачем вообще использовать эту сеть? Именно разработчик (создатель) трудится над поддержанием и развитием сети и ему нет смысла пытаться обмануть участников. Всё что ему нужно – это стабильная прозрачная работа сети, её дальнейшее развитие и… Небольшое вознаграждение за транзакции. Это к слову уже относится к монетизации платформы, ведь на развитие и поддержание системы нужны деньги. Комиссия так же поможет избавиться от DDOS-a. Если кто-то захочет заспамить сеть кучей транзакций, ему придется за это хорошо заплатить.

Принцип работы PoG прост: в генезис блоке указываются 2 адреса – первый будет подписывать блоки блокчейна, второй необходим для защиты. Если каким-то образом подпись первого адреса воспроизведут или украдут, то выпускается следующий генезис блок, где второй адрес станет основным, дополнительный адрес создается вновь и временная метка, чтобы отменить все блоки, созданные после неё.

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

Что мы имеем


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

Послесловие


Буду рад ответить на возникшие вопросы и пропустить мимо ушей выслушать конструктивную критику.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+5
Комментарии 149
Комментарии Комментарии 149

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн