Алгоритмы консенсуса в блокчейне 2020: POW, POS и другие

Алгоритмы консенсуса в блокчейне 2020: POW, POS и другие

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

Что такое алгоритм консенсуса

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

Происхождение доказательства выполнения работы

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

Может ли армия при таком сценарии реализовать какую-нибудь стратегию?

Да, может, но для этого выбранную стратегию должно поддержать большинство (т. е. 51% или больше генералов).

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

По словам создателя Ethereum Виталика Бутерина, цель алгоритма консенсуса – «сделать возможным безопасное обновление состояния согласно определённым правилам смены состояний, где право производить смену состояний распределено между определённым экономическим множеством».

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

Первый алгоритм консенсуса, появившийся в криптовалютную эру благодаря блокчейну биткойна, – это «доказательство выполнения работы» (Proof-of-Work, PoW). PoW требует, чтобы каждый участвующий в подтверждении пользователь доказал выполнение им вычислительных действий, чтобы предотвратить атаку на сеть в виде спама или DoS-атак. Каждый узел пытается решить сложные криптографические задачи, используя собственные вычислительные ресурсы, – тот, кто найдёт решение, получает право подтвердить транзакции и записать блок в блокчейн. Это значит, что узлы (также известные как майнеры) соревнуются друг с другом за создание следующего блока транзакций в блокчейне. Майнер-победитель, в свою очередь, получает криптовалютные токены в качестве вознаграждения за потраченные на поиск решения время и энергию. К примеру, майнеры биткойна получают вознаграждения в биткойнах. Такая система вознаграждений мотивирует майнеров генерировать верное решение и обеспечивает безопасность сети. При этом только что созданные монеты добавляются в обращение.

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

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

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

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

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

Архитектура блокчейна

Составные части блокчейна

Каждый участник может запустить свою ноду с полной копией блокчейна (full node). Полные ноды, которые могут записывать транзакции в блокчейн, называются узлами консенсуса (witness), или майнерами (miner). Полные ноды, которые только проверяют правильность транзакций называются узлами аудита (audit). Легкие клиенты (light clients) не хранят полных копий блокчейна, а взаимодействуют с сетью, используя полные ноды.

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

Жизненный цикл транзакции

Посмотрим на жизненный цикл транзакции и разберем его по частям.

Технологии блокчейна

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

Идентификация

Каждая блокчейн транзакция должна быть подписана цифровой подписью. Поэтому для совершения транзакции каждый участник должен иметь пару ключей: private / public. Иногда пару ключей называют кошелек (wallet), т.к. ключи однозначно связаны с уникальным цифровым адресом и балансом участника. В реальности ключи и адреса — это просто строки цифр в разных системах счисления. Примеры ключей и адреса кошелька:

Private key: 0a78194a8a893b8baac7c09b6a4a4b4b161b2f80a126cbb79bde231a4567420f

Public key: 0579b478952214d7cddac32ac9dc522c821a4489bc10aac3a81b9d1cd7a92e57ba

Address: 0x3814JnJpGnt5tB2GD1qfKP709W3KbRdfb27V

Для создания цифровой подписи в блокчейнах используется алгоритм, основанный на эллиптических кривых: Elliptic Curve Digital Signature Algorithm (ECDSA). Для его работы приватный ключ (256 битное число), обычно, берется случайно. Число вариантов ключей составляет 2 в степени 256, поэтому можно говорить о практической невозможности совпадения значений приватных ключей.

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

Есть масса статей с подробностями по криптографии, используемой в блокчейне, например: Bitcoin in a nutshell — Cryptography.

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

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

Транзакции

Нам же важно понимать, что каждая транзакция имеет по крайней мере следующие данные:

From: 0x48C89c341C5960Ca2Bf3732D6D8a0F4f89Cc4368 – цифровой адрес отправителя

To: 0x367adb7894334678b90аfe7882a5b06f7fbc783a – цифровой адрес получателя

Value: 0,0001 – сумма транзакции

Transaction Hash: 0x617ede331e8a99f46a363b32b239542bb4006e4fa9a2727a6636ffe3eb095cef – хэш транзакции.

Далее транзакция подписывается приватным ключом и рассылается (см. подробности по работе протокола Bitcoin in a nutshell-Protocol) всем нодам в блокчейне, которые проверяют транзакции на валидность. Алгоритм проверки транзакции нетривиален и включает два десятка шагов.

Блоки транзакций

Проверив валидность транзакций, ноды формируют из них блоки. Помимо транзакций в блок записывается хеш предыдущего блока, число (счетчик Nonce), и происходит вычисление хеша текущего блока по алгоритму SHA-256. Хеш должен обладать установленным условиям сложности. Например, в сети Bitcoin сложность хеша автоматически меняется раз в 2 недели в зависимости от мощности сети, с тем чтобы блок генерировался примерно раз в 10 минут. Сложность определяется следующим условием: найденный хеш должен быть меньше заранее заданного числа. Если данное условие не выполняется, то к Nonce прибавляется 1, и работа по вычислению хеша повторяется. Для подбора хеша используется поле Nonce, т.к. это единственные данные в блоке, которые можно изменить, остальные должны оставаться неизменными.

Правильный хеш должен иметь определенное число нулей в начале, например, один из реальных хешей:

000000000000000000000bf03212e7dd1176f52f816fa395fc9b93c44bc11f91

Успешное нахождение хеша и является доказательством проделанной работы (Proof-of-Work, PoW) для сетей Bitcoin или Ethereum. Процесс нахождения хешей называется майнингом (mining), по аналогии с добычей золота. Название достаточно точно определяет суть процесса, т.к. происходит простой перебор вариантов, и если кто-то нашел хеш, то это действительно удача. Это как найти реальный самородок золота в тоннах пустой породы. Вознаграждение за блок сейчас составляет 12,5 BTC, и если умножить на актуальный курс биткоина $3900, то получается больше килограмма чистого золота. Есть за что побороться!

После успешного нахождения хеша блок и сам найденный хеш записываются в блокчейн следующим блоком. Подробнее про структуру блоков можно посмотреть в статье Bitcoin in a nutshell-Blockchain.

Блокчейн начинается с блока, у которого еще нет хеша предыдущего блока. Такой блок в блокчейне один и имеет собственное название Genesis block. У остальных блоков одинаковая структура и отличаются они только числом транзакций. Реальные транзакции и блоки создающиеся в настоящее время в Bitcoin или Ethereum можно смотреть в Block Explorer.

Размер блоков в Bitcoin ограничен 1Мб, и при минимальном объеме информации в транзакции около 200 байт максимально в блоке может быть около 6000 транзакций. Отсюда, кстати, и следует производительность Bitcoin, над которой все смеются: блок генерируется примерно раз в 10 мин * 60 сек = 600 сек, что и дает формальную производительность около 10 TPS. Хотя на самом деле — это не производительность, а сознательно реализованный алгоритм работы. В Ethereum для конкуренции просто сделали время генерации блока 15 сек. и производительность формально взлетела. Поэтому в блокчейнах, использующих PoW в качестве консенсуса, вообще бессмысленно сравнивать производительность, т.к. она напрямую зависит от сложности вычисления хеша, которую можно назначить любую.

Форки

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

Что происходит далее? Далее часть сети начинает работать над блоком N+2 от одной цепочки, а часть от другой.

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

При этом может сложиться ситуация, когда транзакция участника находилась только в одном из блоков форка, который и был отменен. Поэтому, чтобы быть уверенным, что нужная транзакция записалась в блокчейн, есть общая рекомендация: прежде чем доверять транзакции, надо подождать, пока следующие несколько блоков не будут добавлены в блокчейн. Рекомендации, сколько блоков ждать, для разных блокчейнов различаются. Например, для сети Bitcoin минимум — это 2 блока, максимум 6.

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

Консенсус

Для записи блока в блокчейн сеть должна прийти к консенсусу. Давайте вспомним задачу достижения консенсуса в компьютерных сетях связи. Проблема формулируется как задача византийских генералов BFT (Byzantine fault tolerance). Опуская живописное описание проблем византийской армии, задачу можно сформулировать так: как узлам сети прийти к общему результату, если часть узлов сети могут сознательно их искажать. Существующие алгоритмы решения задачи BFT показывают, что сеть может функционировать правильно, если мошенников меньше 1/3. Почему в сети Bitcoin не был применен консенсус BFT? Зачем нужно было использовать PoW? Есть несколько причин:

  • BFT хорошо работает с небольшим фиксированным набором нод, а в публичном блокчейне число нод непредсказуемо и, более того, ноды могут произвольно включаться-выключаться.
  • Необходимо мотивировать людей запускать блокчейн ноды. Для этого люди должны получать вознаграждение. В BFT формально не за что получать вознаграждение, а вот за что идет вознаграждение в PoW, всем понятно на интуитивном уровне: за электричество, потребленное процессором в процессе нахождения хеша блока.

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

  • PoS (Proof-of-Stake, доказательство владения) — в блокчейне Hyperledger;
  • DPoS (Delegated Proof-of-Stake, дегированное доказательство владения) — в блокчейне BitShares;
  • Модификации BFT: SBFT ( Simplified BFT ) и PBFT ( Practical BFT ), например, в блокчейне Exonum.

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

Консенсус PoS основан на выборе узла, который может записать блок с транзакциями в блокчейн в зависимости от количества средств на счету, вернее, не на счету, а в залоге, Т.е. чем у тебя больше средств в залоге, тем с большей вероятностью сеть выберет твой узел для записи блока. Залог не возвратится, если блок окажется невалидным. Таким образом реализована защита от мошенничества. Есть следующие вариации PoS:

  • Консенсус Delegated PoS (DPoS, делегированное доказательство владения) разделяет участников на «голосующие» и «валидирующие». Держатели монет (голосующие участники) делегируют свое право проверять и записывать транзакции в блокчейн другим участникам. Таким образом, валидаторы выполняют всю вычислительную работу и получают за это вознаграждение, а наличие голосующих участников гарантирует честность валидаторов, т.к. их можно сменить в любой момент.
  • Консенсус LPoS (Leased Proof-of-Stake, арендованное доказательство владения) позволяет отдать свои средства в аренду другим узлам, чтобы те имели больше шансов для проверки блоков. Т.о. можно получать комиссию за транзакции, при этом не участвуя в самой проверке транзакций и майнинге блоков.

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

  • PoET ( Proof-of-Elapsed Time ) (доказательство прошедшего времени)
  • PoC ( Proof-of-Capacity ) (доказательство мощности)
  • PoB ( Proof-of-Burn ) (доказательство сжигания)
  • PoWeight ( Proof-of-Weight ) (доказательство веса)
  • PoA ( Proof-of-Activity ) — PoW + PoS (доказательство деятельности)
  • PoI ( Proof-of- Importance ) (доказательство важности)

Надежность и модели развертывания блокчейнов

Публичный блокчейн

Устойчивость Public blockchain, или Permissionless blockchain (блокчейна без разрешения) достигается тем, что каждый может подключиться и просмотреть информацию или даже подключить свой узел, а доверие строится на консенсусе PoW.

Приватный блокчейн

Private, или Private Permissioned blockchain (частный блокчейн с разрешением). В этих блокчейнах только определенная группа участников (организаций или людей) имеет доступ к информации. Такие блокчейны строят организации с целью увеличения общей выгоды или эффективности. Их надежность обеспечивается общими целями участников и алгоритмами консенсуса PoS и BFT.

Блокчейн-консорциум

Существуют Consortium, или Public Permissioned blockchain (публичный блокчейн с разрешением). Это такие блокчейны, к которым каждый может подключиться для просмотра, но добавлять информацию или подключить свой узел участник может только с разрешения других участников. Такие блокчейны строят организации с целью повышения доверия со стороны заказчиков или потребителей продукции или общества в целом. Здесь надежность также достигается присутствием доверия между участниками и теми же алгоритмами консенсуса PoS и BFT.

Какова надёжность и долговечность блокчейна

Блокчейн-технология, как и Интернет, имеет встроенную устойчивость к ошибкам. Сохраняя блоки информации, идентичные во всей сети, блокчейн:

  1. не может контролироваться кем-то одним;
  2. не имеет единой точки отказа.

Биткоин был изобретен в 2008 году. С этого времени блокчейн биткоина работает без существенных сбоев. (Ситуации, связанные с биткойном, были из-за взлома сервисов, построенных поверх него, или недостаточного контроля. Другими словами, эти проблемы возникают из-за плохих намерений и человеческих ошибок, а не из-за недостатков в архитектуре протокола.)

За почти 30 лет Интернет стал быстрее и надёжнее. Это достижение служит хорошим предзнаменованием для блокчейн-технологии, которая продолжает развиваться.Как бы революционно это ни звучало, блокчейн действительно представляет собой механизм, обеспечивающий высшую степень учета и идентификации. Больше не будет пропущенных транзакций, ошибок человека или машины или даже изменений, сделанных без согласия вовлеченных сторон. А наиболее важно то, что блокчейн помогает гарантировать законность транзакции путем записи её не только в главном реестре, а в распределённой системе реестров, связанных через защищенный механизм проверки.

Сферы применения блокчейна

Сущность «цепи блоков» как общедоступной, распределенной и 100% достоверной базы данных делает применение блокчейн весьма привлекательным для компаний, работающих в разных областях.

В настоящее время уже существует ряд расширений для разработки бизнес-приложений на блокчейн, обеспечивающих:

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

Внедрение технологии блокчейн в России и на Украине

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

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

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

Плюсы и минусы технологии

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

  • неоправданно долгое время выполнения финансовых операций;
  • высокие расходы на содержание сверхмощных серверов и систему защиты информации;
  • монополизация рынка;
  • коррупция;
  • денежные махинации и другие финансовые злоупотребления.

Скептики выдвигают следующие контраргументы:

  • Отсутствие законодательной базы, регулирующей статус блокчейн проектов.
  • Атака 51% приведет к коллапсу сети.
  • Невозможность модификации блокчейн. Если возникает насущная потребность изменить данные или исходный код, единственный выход – это хардфорк сети.
  • Потеря приватных ключей становится бедой для инвестора. Если private key хранится только у владельца криптомонет вместе с ключами он навсегда теряет доступ к активам.
  • Высокое энергопотребление блокчейн сетей, работающих на Proof of Work. Майнерам биткоин нужно больше мегаватт электроэнергии, чем некоторым европейским государствам.
  • Регистры блокчейн экосистем в будущем могут непомерно разрастись, что приведет к снижению количества узлов сети.

По поводу угрозы 51% надо сказать, что на молодые экосистемы «атака Голдфингера» вполне реальна, но, чтобы сосредоточить под своим контролем свыше 50% вычислительной мощности сетей Ethereum или Bitcoin, нужно выбросить на ветер много денег. И не факт, что блокчейн обрушится, хотя такой сценарий серьезно повлияет на стоимость криптовалюты. Хакеры стали частью системы, ее темной стороной, и они не заинтересованы в обвале цен и тем более уничтожении виртуальных активов.

Рост блокчейна не страшен. Жесткие диски в 1ТБ давно уже доступны обычным пользователям. На момент написания статьи размер блокчейна Bitcoin 234 ГБ, а в будущем, несомненно, будут изобретены еще более объемные и компактные носители цифровой информации.

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

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

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

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

Proof-of-Work (PoW) был первым успешным децентрализованным алгоритмом консенсуса в блокчейне. PoW используется в Bitcoin, Ethereum (Ethereum планирует перейти на Proof-of-Stake), Litecoin, ZCash, Monero и на многих других платформах. Самый известный алгоритм работает следующим образом: в начале пользователи сети отправляют друг другу цифровые токены, затем все произведенные транзакции собираются в блоки и записываются в распределенный открытый реестр — блокчейн.

В PoW все транзакции доказываются с помощью трудных математических вычислений, достоверность которых может перепроверить любой пользователь сети. Май­не­ры ре­ша­ют за­да­чу, фор­ми­ру­ют новый блок и под­твер­жда­ют тран­зак­ции. За­да­чи с каждым разом становятся сложнее, так как ко­ли­че­ство поль­зо­ва­те­лей растет, и на­груз­ка на сеть становится больше. Хэш каж­до­го блока со­дер­жит хэш — выходные данные преды­ду­ще­го блока. Это по­вы­ша­ет без­опас­ность системы, и порядок созданных блоков нарушить невозможно. Пользователь должен первым правильно определить «nonce» — число, добавленное в конец строки для того, чтобы создать хеш, который начинается с нужного числа нулей. Если май­нер сумел ре­шить за­да­чу, фор­ми­ру­ет­ся новый блок: в нем раз­ме­ща­ет­ся оче­ред­ной ком­плект тран­зак­ций, и они счи­та­ют­ся под­твер­жден­ны­ми.

Этот алгоритм является честным и понятным, ему можно доверять. Однако у PoW есть главный недостаток — потребление огромного количества энергии. В 2017 году на полное оформление одной транзакции в системе Bitcoin требовалось затратить в среднем 163 кВт/ч энергии. Таким количеством энергии можно в течение пяти с половиной дней полностью обеспечивать нужды семьи из трех человек, проживающей в небольшом одноэтажном доме. Кроме того, те майнеры, которые обладают более быстрыми и мощными ASIC, получают больше, чем остальные. В результате этого биткоин оказывается не таким децентрализованным, как задумывалось изначально.

Доказательство владения доли (PoS)

Proof-of-Stake во всех реализациях для проверки транзакций требует от участников доли части монет, которые они хранят в сети. PoS является альтернативным механизмом PoW, впервые реализованным в 2012 году в криптовалюте PPCoin (переименована в PeerCoin). Идея Proof-of-Stake заключается в решении проблемы Proof-of-Work, связанной с большими затратами на электроэнергию.

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

Валидаторы ставят свои монеты на транзакции путем блокировки монет. Микшер, который используется для завершения блока, выбирается пропорционально значению, поставленному в сети. Proof-of-Stake предотвращает плохое поведение в сети с помощью перекладывания полномочий по проверке на самых активных и интересующихся пользователей. Алгоритм консенсуса доказательства владения доли используется в Peercoin, Decred и вскоре будет функционировать на Ethereum, в котором заранее прописывался переход с одного алгоритма на другой.

Делегированное подтверждение доли (DPoS)

Делегированное подтверждение доли Delegated proof-of-stake (DPoS), которое было разработано Дэниелом Ларимером в 2014 году, только внешне похоже на имя Proof-of-stake, ведь детали реализации двух алгоритмов существенно отличаются друг от друга. В DPoS вместо ставки на монеты для проверки транзакций держатели токенов в ходе голосования выбирают валидаторов транзакций, которые будут формировать блоки. Вес каждого голоса определяется суммой активов голосующего. Держатели монет, в случае сомнений, могут перевыбирать кандидатов. Благодаря этому можно достичь высокой устойчивости сети. Если большая часть исполнителей вышла из строя, то сообщество тут же проголосует за их замену.

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

DPoS используется Steemit, EOS и BitShares. Новый крипто-проект Minter от блокчейн-сообщества DeCenter основан на алгоритме консенсуса делегированного подтверждения доли.

Новые алгоритмы консенсуса

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

Например, сейчас набирают популярность направленные ациклические графы Directed acyclic graph (DAG), и, возможно, в ближайшем будущем будут активно использоваться в блокчейн-проектах, потому что они могут выступить в качестве потенциального решения ситуаций, связанных с масштабируемостью. DAG — ори­ен­ти­ро­ван­ный граф с дан­ны­ми на основе то­по­ло­ги­че­ской сор­ти­ров­ки. Его раз­ви­тие идет толь­ко в одном на­прав­ле­нии — от ран­них блоков к поздним. Из-за без­блоч­но­го устрой­ства все тран­зак­ции совершаются в сетях DAG, поэтому этот про­цесс за­ни­ма­ет на­мно­го мень­ше вре­ме­ни, чем в слу­чае блок­чей­нов, ос­но­ван­ных на PoW и PoS. В сети DAG нет май­не­ров. Под­твер­жде­ние осуществляется непо­сред­ствен­но в самих тран­зак­ци­ях, поэтому сдел­ки про­хо­дят почти мгно­вен­но.

Интересным с точки зрения экономики платформы является Proof-of-Importance (PoI). Алгоритм консенсуса используется в блокчейне NEM. Значимость пользователя в сети определяется количеством средств, имеющихся у него в кошельке, и количеством проведенных транзакций. В отличие от PoS, который учитывает сумму имеющихся средств у пользователя, PoI принимает в расчет количество средств и активность пользователя в блокчейне. Такой подход побуждает активно использовать те средства, которые хранятся на счете.

Почему алгоритмы консенсуса имеют значения для криптовалют

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

Алгоритм консенсуса Proof of Work считается одним из лучших решений Проблем византийских генералов, что позволило создать биткойн как систему их решения. Это означает, что биткойн блокчейн обладает высокой устойчивостью к атакам, таким как атака 51% (или атака большинства). Не только потому что сеть децентрализована, но и из-за алгоритма PoW. Высокие затраты, связанные с процессом майнинга, делают его очень трудным и маловероятным, чтобы майнеры вкладывали свои ресурсы в разрушение сети.