Консенсус блокчейна: определение, виды, обзор алгоритмов

Консенсус блокчейна: определение, виды, обзор алгоритмов

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

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

Несколько слов об узлах и конструкции блокчейна

Технология блокчейн объединяет несколько видов сообщений:

  1. Транзакции. Финансовые операции (транзакции) – продукт непосредственно самих пользователей. В данном случае, алгоритм консенсуса блокчейн им не нужен – ведь для того, чтобы кому-то перекинуть некую сумму койнов (монет), никакого компромисса достигать не надо. Для этой операции достаточно знать приватный ключ.
  2. Блоки. С этой составляющей распределительной конструкции все с точностью наоборот. Сам по себе блок уже есть продукт протокола консенсуса, определяющий очередность финансовых операций в «учетной книге» всех транзакций.

Такой алгоритм действий необходим, чтобы нивелировать повторяющиеся операции с одной и той же монетой. Например, Некий гражданин хочет переслать 1 Bitcoin (BTC) двум другим участникам экосистемы, в связи с чем, запускает по сети две платежки. В случае, когда у двух получателей не согласована история финансовых операций, они оба получают этот платеж, так как транзакция имеет ЭЦП (электронно-цифровую подпись) и у отправителя до выполнения платежки действительно была эта сумма киберденег. После согласования «учетной книги» финансовых операций, действительным станет только одни платеж.

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

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

Факт! По состоянию на первый квартал 2017 года в блокчейне Bitcoin насчитывалось 7025 узлов с полной историей финансовых операций. Подавляющее большинство – узлы аудита. Несколько десятков – майнеры. Интересно то, что на тот же период количество пользователей экосистемой перевалило за 13 млн. человек. Это говорит о том, что рядовому участнику сети не нужно скачивать всю историю блокчейна, достаточно иметь приватный ключ, которым подписывается электронная платежка.

Теория протокола консенсуса

Процедура достижения единодушного мнения по заданному вопросу называется «механизмом консенсуса». Первостепенные задачи этого механизма заключаются в следующем:

  1. Формирование большего количества одобрений.
  2. Совместная работа всех участников.
  3. Общее решение – приоритет.
  4. Эгалитаризм – равноправие голосов.
  5. Привлечение к обсуждению консенсуса большего количества пользователей.
  6. Активное участие каждого пользователя цифровой архитектуры.

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

«Проблема византийских генералов»: доступно об архисложном понятии

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

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

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

  1. Имеется некая группа командующих войсками, поддерживающих между собой надежную связь пусть и доисторическим методом.
  2. В группе генералов есть часть военачальников, которые препятствуют соглашению между большинством.
  3. В свою очередь суть соглашения – получение достоверной информации о состоянии (численности) войск генералов, примкнувших к большинству, а также отработка единого мнения относительно состояния войск несогласных с большинством.

Описанные условия крайне важны для создания единой стратегии. В противном случае – неизбежная трагедия.

Алгоритм решения будет таким:

  1. Каждый военачальник уведомляет своих единомышленников об истинном количестве войск в подчинении. Противники большинства могут рассылать несколько депеш, где указывают различные данные.
  2. Опять-таки, каждый военачальник вычисляет свой вектор на основании полученных данных о других глав войск.
  3. После определения значения вектора, военачальники вновь осуществляют рассылку. Противники, опять-таки, в своих посланиях указывают произвольное значение вектора.
  4. Получив вектора от других командующих, генералы проверяют их элементы на предмет совпадения. Если в двух векторах они найдены, ему присваивается результативный статус. В ином варианте вектор отмечается, как неизвестный.

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

Консенсус в блокчейне

Задача распределенного единого мнения не является чем-то особенным для технологии блокчейн и имеет уже заявившие о себе решения для других конструкций – например, хранилище «инфы» NoSQL. Однако блокчейн Bitcoin, других ЭПС отличается условиями функционирования. Ведь в традиционных протоколах византийского консенсуса, разработанных в конце 90 годов для решения одноименной проблемы, узлы имеют реальных прототипов, которые отражаются в ЭЦП. К тому же реестр узлов известен заранее – если происходят какие-то изменения, то они легко предсказуемы. В блокчейне все с точностью наоборот:

  • участники экосистемы неизвестны;
  • пользователи могут в свободном режиме подключаться или отключаться от ЭПС;
  • никто не может запретить «копать» Биткойн;
  • нет необходимости в доверительном источнике для установления текущей версии «учетной книги» (корень доверия уже имплементирован в распределительную систему).

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

Proof of Work (POW)

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

Майнеры совместно одобряют истинность всего блокчейна. В свою очередь платежка остается в «подвешенном» состоянии до тех пор, пока не будут сгенерированы следующие блоки. При ситуации, когда мошенник захочет потратить койны обходным манером, экосистема просто отвергнет его транзакцию. Данный протокол поддерживают следующие популярные цифровые архитектуры: Bitcoin, Ethereum, Litecoin, Monero, ZCash, Dogecoin, а также многие другие.

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

Proof of Stake (PoS)

В переводе значит «Доказательство владения доли». Это алгоритм консенсуса блокчейн поддерживают следующие виртуальные конструкции:  VCash, BitBay, Peercoin, Qtum, Stratis. Протокол требует меньше ресурсов, чем POW – дает возможность функционировать с любого вычислительного устройства в онлайн режиме, менее централизован, подвержен атакам. Процесс добычи криптоденег полностью виртуален. Вместо понятия «майнер» используется термин «валидатор». Функционирует алгоритм таким образом:

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

Этот протокол также имеет «слабые места». В первую очередь он элитарный – чтобы стать валидатором (майнером), нужно иметь внушительные заблокированные средства в крипте.

Delegated Proof of Stake (DPoS)

Или «Делегированное доказательство доли владения». Поддерживается платформами  Steemit, EOS, BitShares. Например, EOS применяет этот протокол для повышения скорости обработки платежек (до 1 млн. операций/секунду). Отличается от предыдущего протокола тем, что пользователи не проводят голосование непосредственно за блоки. Однако выбирают путем голосования делегатов, которые от своего имени и осуществят проверку. Количество делегатов – от 21 до 100 нод. Должность избирательная. Если обнаруживается недобросовестная работа ставленников – постоянное пропускание блоков, обнародование недействительных платежек, делегаты переизбираются. Частично централизуя блокчейн, протокол функционирует на порядок быстрее своих конкурентов.

TAPOS (Транзакции, как доказательство доли)

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

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

Применяется в цифровой архитектуре NEO. Представим пользователей данной ЭПС гражданами государства. Большинство владельцев внутрисистемных койнов – обычные ноды, обменивающиеся монетами. Они не участвуют в аудите блоков, как граждане любой страны не управляют государством. Делегаты, выбранные гражданами (66% голосов «за») – узлы учета, осуществляющие проверку каждого блока в цепочке блокчейн. Опять-таки, если сравнить с государством, то они занимаются обсуждением и принятием пропозиций от народонаселения (осчастливливают людей), голосовавшего за них. В контексте экосистемы НЕО, чтобы стать узлом учета, необходимо иметь выделенную сеть Интернет, специальное вычислительное оборудование и заблокированные средства в системной крипте – не менее 1 тысячи койнов. Дальше все просто: выпускаемый закон – текущий блок в цепочке. Степень счастья – хэш этого блока.

Протокол BFT

Применяется Hyperledger, Stellar, Dispatch и Ripple. На текущий момент Hyperledger Fabric использует алгоритм PBFT (практическая задача византийских генералов), который решает проблему военачальников. С высокой обработкой платежек присутствует полная централизация. Виртуальные конструкции Stellar и Ripple применяют FBA (федеративное византийское соглашение), которое также решает известную проблему. Механизм консенсуса работает так, что каждый военачальник самостоятельно отвечает за свою цепочку, перебирая сообщения, чтобы в итоге установить истину. В экосистеме Ripple военачальники, они же валидаторы, выбираются разработчиками цифровой конструкции. В сети Stellar любой может стать валидатором, поэтому пользователи самостоятельно выбирают, кому отдать свое предпочтение. В целом это дает следующие преференции: высокую масштабируемость и пропускную способность, а также низкие платежные издержки.

Proof of Activity (PoA)

Протокол «Доказательство активности» задействован в тестнете Ethereum Kovan. Принцип функционирования построен на проверке платежек «одобренными учетками», наподобие «админов» той или иной системы. Именно от них другие узлы получают «инфу» о состоянии финансовой операции. Обладает высокими пропускными возможностями и «заточен» для реализации в частных проектах. Из-за безоговорочной централизации протокола, его вряд ли придется наблюдать в публичной архитектуре.

Proof of Burn (PoB)

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

Proof of Weight

Протокол «Доказательства веса» реализуется платформами Algorand, Filecoin, Chia. Данный протокол объединяет несколько алгоритмов в одну группу. В сравнении с PoS, где количество заблокированных в экосистеме койнов прямо влияет на нахождение нового блока, здесь реализуется другое взвешенное значение. В качестве примера: Proof-of-Spacetime от Filecoin взвешен относительно информации IPFS, которую хранит пользователь. Другие виртуальные конструкции могут интегрировать в себя вес таких вещей, как «Доказательство репутации».

Proof of Capacity и Proof of Storage

Первый протокол «Доказательство ресурсов» поддерживают SpaceMint, Burstcoin, Chia и Bitcoin Ore. В данном протоколе реализуется идея «мегабайты, как ресурсы». Проще говоря, чтобы получить бонус, необходимо предоставить место на собственном жестком диске. В процессе хэширования протокол создает множество блоков на жестком диске. Чем больше хэшей, тем выше возможность получить желаемое вознаграждение. Однако концепция имеет слабую сторону – можно просто приобрести асик-чип и тогда не нужно свободное место на диске.

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

Proof of Checkpoint (PoC)

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

Proof of Importance (PoI)

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

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

Directed Acyclic Graphs (DAG)

Алгоритм, имеющий название «Направленный ациклический граф» используют следующие экосистемы: Iota, Hashgraph, Raiblocks/Nano. Определяющее отличие DAG от других протоколов консенсуса заключается в способе обработки платежек. Дело в том, что в данной цифровой конструкции не используется технология блокчейн. Поэтому, DAG, как правило, обрабатывает платежки асинхронно, что теоретически подразумевает неограниченное количество операций/секунду.

Leased Proof of Stake (LPoS)

«Арендованное доказательство доли владения» поддерживает EOS, Lisk, Ark, Steem. Работа построена на разрешении владельцам небольших состояний, сдавать собственные балансы в аренду стековым нодам. Владельцы сданных в аренду средств сохраняют полный контроль над ними – осуществлять переводы, тратить и т.д. Правда на этом аренда закончится. Койны, взятые в аренду, увеличивают «авторитет» ноды, что пропорционально поднимает шанс на добавление блока в цепочку. Бонус распределяется между арендатором койнов и арендодателем. Такая конструкция используется в отечественной крипте Waves.

Proof of Authority (POAuthority)

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: