Введение
Алгоритм консенсуса — это механизм, который позволяет пользователям или машинам координировать свои действия в распределенной среде. Необходимо гарантировать, что все агенты в системе могут договориться о едином источнике истины, даже если некоторые агенты потерпят неудачу. Другими словами, система должна быть отказоустойчивой (см. также: Объяснение византийской отказоустойчивости).
В централизованной системе власть над системой имеет один субъект. В большинстве случаев они могут вносить изменения по своему усмотрению — не существует какой-то сложной системы управления для достижения консенсуса среди многих администраторов.
Но в децентрализованной системе это совсем другая история. Допустим, мы работаем с распределенной базой данных. Как нам достичь соглашения о том, какие записи будут добавлены?
Преодоление этой проблемы в среде, где незнакомцы не доверяют друг другу, было, пожалуй, самым важным событием, проложившим путь к блокчейнам. В этой статье мы рассмотрим, насколько алгоритмы консенсуса жизненно важны для функционирования криптовалют и распределенных реестров.
Алгоритмы консенсуса и криптовалюта
В криптовалютах балансы пользователей записываются в базу данных — блокчейн. Очень важно, чтобы каждый (или, точнее, каждый узел) поддерживал идентичную копию базы данных. В противном случае вы вскоре получите противоречивую информацию, что подорвет всю цель криптовалютной сети.
Криптография с открытым ключом гарантирует, что пользователи не смогут тратить монеты друг друга. Но по-прежнему необходим единый источник правды, на который полагаются участники сети, чтобы иметь возможность определить, были ли уже потрачены средства.
Сатоши Накамото, создатель Биткойна, предложил систему Proof of Work для координации участников. Вскоре мы разберемся, как работает PoW, а сейчас определим некоторые общие черты многих существующих алгоритмов консенсуса.
Во-первых, мы требуем, чтобы пользователи, которые хотят добавлять блоки (назовем их валидаторами), предоставили ставку. Ставка — это некая ценность, которую должен выдвинуть валидатор, которая отговаривает его действовать нечестно. Если они обманут, они потеряют свою ставку. Примеры включают вычислительную мощность, криптовалюту или даже репутацию.
Зачем им рисковать собственными ресурсами? Ну, еще есть награда. Обычно он состоит из собственной криптовалюты протокола и состоит из комиссий, уплачиваемых другими пользователями, недавно сгенерированных единиц криптовалюты или того и другого.
Последнее, что нам нужно, это прозрачность. Нам нужно иметь возможность обнаружить, когда кто-то обманывает. В идеале производство блоков должно быть дорогостоящим для них, но дешевым для тех, кто их проверяет. Это гарантирует, что валидаторы будут контролироваться обычными пользователями.
Типы алгоритмов консенсуса
Доказательство работы (PoW)
Доказательство работы (PoW) — крестный отец алгоритмов консенсуса блокчейна. Впервые он был реализован в Биткойне, но сама концепция существует уже некоторое время. В Proof of Work валидаторы (называемые майнерами) хэшируют данные, которые они хотят добавить, пока не создадут конкретное решение.
Хэш — это, казалось бы, случайная строка букв и цифр, которая создается, когда вы пропускаете данные через хеш-функцию. Но если вы снова пропустите через него те же данные, вы всегда получите один и тот же результат. Однако измените хотя бы одну деталь, и ваш хэш будет совершенно другим.
Глядя на выходные данные, вы не сможете сказать, какая информация была передана в функцию. Поэтому они полезны для доказательства того, что вы знали часть данных до определенного момента. Вы можете передать кому-нибудь его хэш, и когда вы позже раскроете данные, этот человек сможет запустить их через функцию, чтобы убедиться, что выходные данные одинаковы.
В Proof of Work протокол устанавливает условия, которые делают блок действительным. Например, он может сказать, что действительным будет только блок, хэш которого начинается с 00. Единственный способ для майнера создать комбинацию, соответствующую этой комбинации, — это перебор входных данных. Они могут настроить параметр в своих данных, чтобы получать разные результаты для каждого предположения, пока не получат правильный хэш.
Для крупных блокчейнов планка установлена невероятно высоко. Чтобы конкурировать с другими майнерами, вам понадобится склад, полный специального оборудования для хеширования (ASIC), чтобы иметь возможность создать действительный блок.
Ваша ставка при майнинге — это стоимость этих машин и электроэнергии, необходимой для их работы. ASIC созданы для одной цели, поэтому их нельзя использовать в приложениях, не связанных с майнингом криптовалют. Ваш единственный способ окупить первоначальные инвестиции — это майнинг, который принесет значительную награду, если вы успешно добавите новый блок в блокчейн.
Сеть легко проверить, действительно ли вы создали правильный блок. Даже если вы перепробовали триллионы комбинаций, чтобы получить правильный хэш, им достаточно один раз пропустить ваши данные через функцию. Если ваши данные дают действительный хэш, они будут приняты, и вы получите вознаграждение. В противном случае сеть его отвергнет, и вы потратите время и электроэнергию впустую.
Доказательство доли (PoS)
Доказательство доли (PoS) было предложено на заре существования Биткойна в качестве альтернативы Доказательству работы. В системе PoS нет понятия майнеров, специализированного оборудования или огромного потребления энергии. Все, что вам нужно, это обычный компьютер.
Ну, не все. Вам все равно нужно добавить скин в игру. В PoS вы выдвигаете не внешний ресурс (например, электричество или оборудование), а внутренний — криптовалюту. Правила различаются в зависимости от протокола, но обычно существует минимальная сумма средств, которую вы должны иметь, чтобы иметь право на участие в стейкинге.
Оттуда вы блокируете свои средства в кошельке (их нельзя перемещать, пока вы делаете ставки). Обычно вы соглашаетесь с другими валидаторами относительно того, какие транзакции перейдут в следующий блок. В каком-то смысле вы делаете ставку на блок, который будет выбран, и протокол выберет один.
Если ваш блок выбран, вы получите часть комиссии за транзакцию, в зависимости от вашей ставки. Чем больше средств вы заблокировали, тем больше вы получите. Но если вы попытаетесь обмануть, предложив недействительные транзакции, вы потеряете часть (или всю) своей ставки. Поэтому у нас механизм аналогичный PoW — действовать честно выгоднее, чем действовать нечестно.
Как правило, в качестве вознаграждения валидаторам не используются свежесозданные монеты. Таким образом, собственная валюта блокчейна должна быть выпущена каким-то другим способом. Это можно сделать либо посредством первоначального распространения (т. е. ICO или IEO), либо путем запуска протокола с PoW перед последующим переходом на PoS.
На сегодняшний день чистое доказательство доли реально применяется только в небольших криптовалютах. Поэтому неясно, может ли он служить жизнеспособной альтернативой PoW. Хотя теоретически это кажется обоснованным, на практике все будет совсем иначе.
Как только PoS развертывается в сети, имеющей большую ценность, система становится игровым полем для теории игр и финансовых стимулов. Любой, кто знает, как «взломать» систему PoS, скорее всего, сделает это только в том случае, если сможет получить от этого выгоду, поэтому единственный способ узнать, осуществимо ли это, — это работающая сеть.
Вскоре мы увидим широкомасштабное тестирование PoS — Casper будет реализован как часть серии обновлений сети Ethereum (известной под общим названием Ethereum 2.0).
Другие алгоритмы консенсуса
Proof of Work и Proof of Stake — наиболее обсуждаемые консенсусные алгоритмы. Но есть и множество других, каждый со своими преимуществами и недостатками. Ознакомьтесь со следующими статьями:
Объяснение отложенного доказательства работы
Объяснение консенсуса по арендованному доказательству доли
Объяснение доказательства полномочий
Объяснение доказательства ожога
Объяснение делегированного доказательства доли
Объяснение гибридного консенсуса PoW/PoS
Заключительные мысли
Механизмы достижения консенсуса жизненно важны для функционирования распределенных систем. Многие считают, что величайшим нововведением в Биткойне было использование доказательства работы, позволяющего пользователям согласовывать общий набор фактов.
Алгоритмы консенсуса сегодня лежат в основе не только систем цифровых денег, но и блокчейнов, позволяющих разработчикам запускать код в распределенной сети. Сейчас они являются краеугольным камнем технологии блокчейн и имеют решающее значение для долгосрочной жизнеспособности различных существующих сетей.
Из всех консенсусных алгоритмов Доказательство работы остается доминирующим предложением. Более надежная и безопасная альтернатива еще не предложена. Тем не менее, ведется огромное количество исследований и разработок в области замены PoW, и мы, вероятно, увидим, что в ближайшие годы их станет больше.



