«Алгоритмы консенсуса»: Подтверждение доли и доказательство работы


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

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

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

/ изображение jgbarah

Разница между протоколом и Алгоритмом консенсуса

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

Простой пример: Bitcoin и Ethereum являются протоколами. Они сами по себе определяют правила существования сети. А алгоритмами консенсуса являются Proof of Work или Proof of Stake. На примере Эфира мы можем увидеть, что протокол остается всегда неизменным, а алгоритм консенсуса можно менять, хоть это и очень сложный и долгий процесс.

Что такое Консенсус?

Термин Консенсус (лат. Consensus – согласие) в общем случае трактуется как процесс принятия группой лиц единого решения, достижение согласия по какому-либо вопросу. При этом как такового голосования не проводится – решение принимается на основе отсутствия возражений у большинства участников.

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

Задача византийских генералов

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

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

Алгоритм консенсуса блокчейна как раз должен решать эту проблему. Либо все атакуют, либо отступают. В противном случае при отправке криптовалюты нет гарантий, что кто-то не изменит сумму. Все участники сети должны соблюдать протокол и приходить к общему консенсусу. На основе этой задачи родилось целое семейство алгоритмов консенсуса BFT. Многие криптовалюты вроде Ripple (XRP) и Solana (SOL) используют собственные алгоритмы валидации. А большинство стейблокинов наоборот, используют для работы чужие алгоритмы и блокчейны.

Почему консенсус так важен в блокчейне

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


Схема работы консенсуса в блокчейне

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

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

PoW – Proof of Work

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

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

Криптовалюты:

  • Bitcoin
  • Ethereum
  • Litecoin
  • Zcash
  • Monero

Доказательство работы — PoW

Доказательство работы было «изобретено» задолго до биткойна еще в начале 90-х и применялось в ином контексте: для защиты от спама. Например, один вариант доказательства работы (Hashcash) был предложен английским криптографом Адамом Бэком (Adam Back), который сейчас является генеральным директором одного из крупнейших блокчейн-стартапов.
В случае доказательства работы хеш сообщения, объединенного со специальным полем (nonce), должен быть меньше определенного значения (или начинаться с определенного числа нулевых битов). Nonce не несет смысла для самого сообщения — это поле перебирается автором доказательства, пока не будет найдено подходящее значение. Название «доказательство работы» отражает тот факт, что для нахождения nonce надо совершить вычислительную работу, ожидаемое количество которой измеримо. Например, если нужно, чтобы первые 16 бит хеша равнялись нулю, то в среднем нужно перебрать 65536 значений nonce.

Проиллюстрировать это можно с помощью программы на Python:

import itertools from hashlib import sha256 # Интерпретирует последовательность символов как little-endian число to_long = lambda x: sum(ord(b) << (8*i) for i, b in enumerate(x)) # Комбинирует nonce и сообщение для вычисления хэша. combine = lambda nonce, msg: str(nonce) + «:» + msg # Проверяет доказательство работы def verify_pow(msg, nonce, difficulty): h = sha256(combine(nonce, msg)).digest() # Равны ли первые difficulty битов хеша нулю? return to_long(h) % (1 << difficulty) == 0 # Создает доказательство работы для сообщения def create_pow(msg, difficulty): for nonce in itertools.count(0): if verify_pow(msg, nonce, difficulty): return nonce msg = «blockchain» nonce = create_pow(msg, 16) combine(nonce, msg), sha256(combine(nonce, msg)).hexdigest() #43952:blockchain 000027b5022f88d2da21bd2802268966050f5a0b031058ce4562939c13727303 Уточнение насчет ожидаемого количества работы является важным. Теоретически, при сильном везении, подходящий nonce можно найти очень быстро. Если программу выше запустить с сообщением «Bl0Ckchain», то получится, что значение nonce равняется 6571, а это в десять раз меньше ожидаемого. Поэтому, глядя на доказательство работы, можно лишь оценить затраченные на него ресурсы, однако для высокой сложности доказательства (то есть ожидаемого количества выполненной работы) эта оценка будет достаточно точна.

Доказательство работы похоже на цифровые подписи — оно обеспечивает целостность сообщения, так как вероятность того, что один и тот же nonce подойдет для различных сообщений, очень мала. Доказательства также легко проверяются — достаточно провести лишь одну операцию хеширования. В отличие от подписей, создание доказательства работы не требует знания секретов, но «потребляет» больше вычислительных ресурсов. Например, в приведенной выше программе на создание доказательства работы для сообщения «blockchain» сложностью 32 бита требуется несколько часов вычислений на обычном персональном компьютере, однако проверяется это доказательство практически мгновенно.

sha256(«5263268363:blockchain») = 000000007cf39dfc8fccae534b39b5f362c16891abca02d0e7b1dbd5a129ee17

PoS – Proof of Stake

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

Популярность этого алгоритма обусловлена многолетним переходом Эфириума с PoW на PoS. После перехода эфир будут называть Ethereum 2.0. Добыча ETH на алгоритме консенсуса PoS называется стейкинг, он уже запущен на бирже Binance. Этот переход необходим для безопасности, масштабирования и обслуживания токенов.

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

Криптовалюты:

  • Peercoin
  • NXT
  • Blackcoin

Основные недостатки PoW

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

Более того, майнинг – дело дорогостоящее. По некоторым оценкам, стоимость всего электричества, ежегодно уходящего на майнинг Биткойна, составляет порядка $500 млн. В одном исследовании всё энергопотребление майнинга Биткойна даже сравнили со средним потреблением электричества Ирландии. И это только Биткойн – есть масса новых криптовалют, использующих ту или иную разновидность алгоритма PoW.

Кроме того, в процессе майнинга, как правило, используется продвинутое и дорогое фирменное оборудование. В результате майнеры массово скупают это оборудование, что, в свою очередь, привело к активным разработкам производителями максимально продвинутого специализированного аппаратного обеспечения для майнинга. Возьмём, к примеру, интегральные схемы специального назначения (ASIC) – высокоспециализированное оборудование, специально разработанное для майнинга Биткойна и других криптовалют. Хотя ASIC существенно улучшают эффективность процесса майнинга, уникальный характер такого нишевого оборудования делает его достаточно дорогим. Разработки ASIC сейчас в значительной степени сосредоточены в Китае – стране, где электричество также сравнительно дёшево. Так как китайские производители ASIC существенно мотивированы просто майнить биткойны для себя – и действительно это делают, – это привело к тому, что, по оценкам, 60-70% всей вычислительной мощности Биткойна сосредоточено в этой единственной стране.

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

DPOS – Delegated Proof Of Stake

Делегированное владение доли ещё одна разновидность Proof of Stake, но принципиально отличается. Участники сети (ноды) выбирают через голосование узлы, которые будет валидировать блоки. Чем больше коинов в одной ноде, тем больший вес имеет ее голос. Допустим, из 100 узлов каждый раз рандомно будут выбираться 21 стейкхолдер.

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

Первый коин на этом алгоритме был BitShares, а самый популярный – проект EOS.

Криптовалюты:

  • TRON
  • Cardano
  • Tezos
  • Lisk

Протоколы набирающие популярность

Delegated Proof-of-Stake (DPoS)

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

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

Leased Proof of Stake (LPoS)

Leased Proof of Stake — усовершенствованная версия алгоритма Proof of Stake (PoS). Традиционно в алгоритме Proof of Stake каждый узел содержит определенную сумму криптовалюты и может добавить следующий блок в цепочку блоков. Однако, с помощью Leased Proof of Stake, пользователи могут сдавать в аренду свои монеты пользователям, держащим полные узлы (full nodes).


принцип работы LPoS

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

Proof of Elapsed Time (PoET)

Доказательство потраченного времени — это механизм, который предотвращает высокое использование ресурсов и высокого потребления энергии. Концепция была изобретена в начале 2016 года компанией Intel.

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

Каждый узел в блокчейне генерирует случайное время ожидания и переходит в спящий режим на указанный промежуток времени. Тот, кто «просыпается» первым, — и есть тот участник, у которого самое короткое время ожидания. Он «просыпается» и включает новый блок в цепочку, передавая необходимую информацию всей одноранговой сети. Затем повторяется тот же процесс для обнаружения следующего блока.

Simplified Byzantine Fault Tolerance (SBFT)

В SBFT один назначенный генератор блоков собирает и проверяет предложенные транзакции, периодически объединяя их в новый блок. Консенсус обеспечивается Генератором, который применяет правила (проверки), согласованные узлами (ядрами цепочки) к блоку и назначенным подписчиком блока. Другие (множественные) назначенные подписчики блоков ратифицируют предложенный блок своими подписями.

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

Delegated Byzantine Fault Tolerance (DBFT)

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

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

Directed Acyclic Graphs (DAG)

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

Proof of Activity (POA)

Доказательство деятельности. Это смешанный подход, который объединяет два других часто используемых алгоритма, а именно: доказательство работы (POW) и доказательство ставки (POS).

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

Proof of Importance (Pol)

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

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

Proof of Capacity (PoC)

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

Proof of Burn (PoB)

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

Proof of Weight (PoWeight)

Доказательство веса (PoWeight) — эта модель консенсусного алгори каждого пользователя и определяет его вес в зависимости от количества монет, которыми тот владеет. Чем больше монет — тем лучше. Этот алгоритм обладает высокой масштабируемостью и является энергоэффективным, что является его сильной стороной.

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

PoC – Proof of Capacity

Доказательство участия происходит с помощью различных значений, отличных от вычислительной мощности. Например, Filecoin чаще вознаграждает участников, хранящих больше данных. Chia coin использует аналогичный консенсус, который известен как майнинг на жестких дисках.

Криптовалюты:

  • Filecoin
  • Chai coin
  • Algorand
  • Digital Ocean
  • Burstcoin

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

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

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

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

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

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

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

BFT алгоритм

Используют Hyperledger, Stellar, Dispatch, and Ripple.

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

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

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

Где выгоднее покупать криптовалюту? ТОП-5 бирж

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

Надежность площадки в первую очередь определяется объемом торгов и количеством пользователей. По всем ключевым метрикам, крупнейшей криптовалютной биржей в мире является Binance. Также Binance самая популярная криптобиржа в России и на территории СНГ, поскольку имеет наибольший оборот денежных средств и поддерживает переводы в рублях с банковских карт Visa/MasterCard и платёжных систем QIWI, Advcash, Payeer.

Специально для новичков мы подготовили подробный гайд: Как купить биткоин на криптобирже за рубли?

Рейтинг криптовалютных бирж:

#Биржа:Cайт:Оценка:
1Binance (выбор редакции)https://binance.com9.7
2Huobihttps://huobi.com7.4
3Exmohttps://exmo.me6.9
4OKExhttps://okex.com6.5
5Bybithttps://bybit.com6.3

Критерии по которым выставляется оценка в нашем рейтинге криптобирж:

  • Надежность работы
    — стабильность доступа ко всем функциям платформы, включая бесперебойную торговлю, ввод и вывод средств, а также срок работы на рынке и суточный объем торгов.
  • Комиссии – размер комиссии за торговые операции внутри площадки и вывод активов.
  • Дополнительные возможности и сервисы — фьючерсы, опционы, стейкинг, NFT-маркетплейс.
  • Отзывы и поддержка – анализируем отзывы пользователей и качество работы техподдержки.
  • Удобство интерфейса – оцениваем функциональность и интуитивность интерфейса, возможные ошибки и сбои при работе с биржей.
  • Итоговая оценка – среднее число баллов по всем показателям, определяет место в рейтинге.
Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]