Какие алгоритмы консенсуса на блокчейне бывают?

  Автор:

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

Итак, как работают эти механизмы консенсуса и каковы главные из разновидности рассказываем в этом материале.

Читайте в статье

  • Теоретическая сторона понятия «консенсус»
  • неувязка византийских генералов
  • Proof Of Work / PoW
  • Proof of Stake / PoS
  • Delegated Proof Of Stake / DPOS
  • TAPOS / Транзакции как подтверждение толики
  • dBFT / Делегированная задачка византийских генералов
  • BFT метод
  • Proof Of Activity / подтверждение деятельности
  • Proof Of Burn / метод сжигания монет
  • Proof of Weight / подтверждение веса
  • Proof of Capacity и Proof of Storage
  • Proof of Checkpoint / PoC
  • Proof of Importance / подтверждение значимости
  • Directed Acyclic Graphs / Направленный ациклический граф

Теоретическая сторона понятия «консенсус»

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

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

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

способ, средством которого достигается принятие решений, именуется «механизмом консенсуса». Его цели:

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

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

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

Неувязка византийских генералов

Источник: hackernoon.com

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

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

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

Proof Of Work / PoW

Пользующиеся популярностью валюты: Bitcoin, Ethereum, Litecoin, Monero, ZCash, Dogecoin и почти все остальные.

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

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

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

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

В итоге этого биткоин не так децентрализован, как желает. к примеру, у BTC ~ 65% хешета делится меж 5 пулами. На теоретическом уровне, они могут объединяться друг с другом и запускать атаку 51% в сети.

Proof of Stake / PoS

Пользующиеся популярностью валюты:  VCash, BitBay, Peercoin, Qtum, Stratis

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

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

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

Nothing at Stake в PoS / Нечего терять

Но в PoS есть неувязка «Nothing at Stake» — можно поддерживать любые цепи (в том числе злоумышленные), потому что терять нечего. Чтоб ввести консенсусную систему POS в Ethereum, необходимо решить эту делему, и Ethereum решает сделать это весьма увлекательным методом, через Casper (подробности).

Если коротко, то Каспер различается от остальных протоколов Proof of Stake:

  • Валидаторы ставят часть собственных Эфиров как долю.
  • Опосля этого они начнут проверку блоков. Когда они обнаруживают блок, подтверждают, поставив на него свою долю.
  • Если блок добавляется, то валидаторы получат вознаграждение, пропорциональное их ставкам.
  • Но, если валидатор действует злонамеренно и пробует «ничего не поставить на карту», ​​они будут немедля заблокированы, а все их стэки пропадут.

Хоть какой, кто действует как злодей, сходу же будет наказан. Тут он различается от большинства остальных POS-протоколов.

Proof of Stake Time / PoST

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

Delegated Proof Of Stake / DPOS

Делегированное подтверждение толики владения употребляют Steemit, EOS, BitShares.

EOS употребляет этот механизм консенсуса для масштабирования до миллионов транзакций в секунду. Подробнее о принятом в проекте методе в разделе «Как майнить EOS».

DPoS является порождением Дэниела Ларимера и по сути весьма различается от PoS. В DPoS токены не голосуют за сами блоки, но голосуют избрание делегатов, которые проведут проверку от собственного имени. Их быть может в районе 21-100. Делегаты временами переизбираются. Система работает стремительно. Если избранные узлы повсевременно пропускают блоки либо публикуют недействительные транзакции, ставящие голосуют против их и подменяют их наилучшим вариантом.

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

TAPOS / Транзакции как подтверждение толики

Транзакция как подтверждение ставки либо TAPOS является функцией программного обеспечения EOS. Для каждой транзакции в системе требуется хэш крайнего заголовка блока. Это дает последующее:

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

dBFT / Делегированная задачка византийских генералов

Употребляется NEO.

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

Чтоб разъяснить, как работает dBFT, будем применять облегченную аналогию. Есть страна под заглавием Нео. Любому гражданину страны предоставляется право голосовать, кто будет их фаворитом, он также именуется делегатом. Делегаты составляют законы страны. Если граждане не согласны с тем, как делегат проголосовал за закондолжен выслеживать требования всех людей и документировать их в книжке. Эти требования будут учтены при принятии законов, направленных на то, чтоб сделать людей счастливыми.

Когда пришло время принять законзаконзаконзаконзакон

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

Применяя эту аналогию к блокчейну Нео, хоть какой, кто обладает Нео, является гражданином. Большая часть держателей Neo являются обыкновенными нодами, которые могут передавать либо обменивать монеты. Как и граждане страны, они не участвуют в проверке блоков. Делегаты представляют собой особенные ноды учета: они инспектируют любой блок, записанный в блокчейн. Чтоб стать узлом учета, должны быть соблюдены определенные требования: особое оборудование, выделенные веб-соединения и определенный размер GAS (на момент написания 1000).

Далее по аналогии: закон

BFT метод

Употребляют Hyperledger, Stellar, Dispatch, and Ripple.

Практическая задачка византийских генералов (PBFT): одним из первых решений данной нам трудности был разработан данный метод. В истинное время он употребляется Hyperledger Fabric. Это высочайшая пропускная способность транзакций, но централизация.

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

Это дает высшую пропускную способность, низкие транзакционные Издержки и масштабируемость.

Proof Of Activity / Подтверждение деятельности

Реализован в тестнете Ethereum Kovan.

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

Proof Of Burn / метод сжигания монет

Употребляет Slimcoin.

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

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

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

Proof of Weight / Подтверждение веса

Употребляется в Algorand, Filecoin, Chia.

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

Похожи на это методы ниже:

Proof of Capacity и Proof of Storage

Proof of Capacity — это воплощение концепции «мегабайты как ресурсы». Чтоб получать вознаграждение, необходимо поделиться своим местом на твердом диске. Это помогает на пользу направлять ресурсы, которые не употребляются.

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

метод делает огромные блоки данных на диске при помощи хэширования, чем больше хэшей у вас есть, тем выше шанс заслуги. Но эта теория неидеальна, потому что не решается неувязка «Ничего на кону» и прибыльнее приобрести особый асик под дисковое место, что снова уходит в борьбу ресурсов.

Proof-of-Storage — это схожий метод, но мегабайты употребляются как пасмурное хранилище данных. Такое есть в SIA.

Proof of Checkpoint / PoC

Это гибридная система, которая употребляет всякую систему PoS с PoW. Любому блоку, доказаном в одном методе, должен найтись аналог в другом.

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

Proof of Importance / Подтверждение значимости

Употребляется NEM.

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

Чтоб иметь Право на «вычисления значимости», юзеры обязаны иметь не наименее 10 000 XEM на балансе. Может быть, этот порог будет изменен в дальнейшем.

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

Как сеть NEM описывает оценку значимости? Когда кто-то обладает 10 000 XEM либо наиболее, происходит математический расчет. больше транзакций XEM в сети, связанной с данной нам учетной записью, сделает лучше оценку значимости. Подробности в WP проекта.

PoI для другого метода мы писали в отдельной карточке.

Directed Acyclic Graphs / Направленный ациклический граф

Построение по типу DAG употребляют Iota, Hashgraph, Raiblocks/Nano.

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

  • Tangle — это метод консенсуса DAG, который употребляет Iota. Чтоб выслать транзакцию, нужно подтвердить две прошлые транзакции, которые вы получили. Консенсус по принципу «два к одному» крепит справедливость транзакций. Так как консенсус определяется транзакциями, на теоретическом уровне, если кто-то может генерировать третья часть всех транзакций, они могут захватить сеть. В Iota есть «двойная проверка» всех транзакций сети на централизованном узле «Координатор». Команда гласит, что Координатор работает как поддержка системы и будет удален, как Tangle будет довольно большенный.
  • Hashgraph употребляет aBFT — это консенсус, разработанный Leemon Baird. Узлы распределяют свои известные транзакции с иными узлами наобум, потому в конечном итоге все транзакции переплетаются вокруг всех узлов. Hashgraph резв (250 000 транзакций в секунду), но не устойчив к атакам Sybil. Он походит для личных сетей.

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

Источник

Интересная статья? Поделитесь ею пожалуйста с другими:
Оставьте свой комментарий:
Оставьте свой комментарий или вопрос

на Блоге
в Вконтакте
в Фейсбук