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

