Proceedings of the VIII International Conference "Distributed Computing and Grid-technologies in Science and
Education" (GRID 2018), Dubna, Moscow region, Russia, September 10 - 14, 2018
180
1. Виды консенсусов
Потребность сторон финансового или юридического соглашения в регуляторе,
добросовестность которого трудно проверить, при обеспечении надежного выполнения групп
операций – транзакций – создает определённые проблемы. Основой данной схемы является
доверие – механизм, который, строго говоря, не дает никаких гарантий точного исполнения,
даже в случае, если в качестве регулятора выступает государственный институт. Исключение
центрального элемента и переход на децентрализованную систему регулирования соглашений
избавляет от данной проблемы. При таком подходе задача безопасности, в частности
аутентификация, успешно решается криптографическими алгоритмами. Но нетривиального
подхода требует разработка инструмента, который обеспечит договоренность между
участниками системы относительно ее текущего состояния и правил его изменения, то есть
достижения консенсуса между участниками.
Данная проблема совместно с развитием цифровых технологий и криптографических
алгоритмов предрекли появление blockchain: технологии надежного распределенного хранения
достоверных записей. Blockchain является базой данных, которая формируется как постоянно
растущая линейная структура, состоящая из блоков с записями о всех транзакциях.
Информация в блоках носит открытый характер, но защищена от изменений при помощи хеш-
дерева (дерево Меркла) и цифровых подписей. База синхронизируется по формальным
правилам консенсуса и реплицируется между всеми участниками распределенной системы [1].
Применительно к blockchain достижение консенсуса заключается в решении классической
задачи византийских генералов [2]. Учитывая, что майнеры географически распределены и
времена создания блоков от различных майнеров сильно разнятся, возможно появление
множества альтернативных цепочек блоков. Следовательно, blockchain из линейной структуры
реорганизуется в древовидную. Цель консенсуса – обеспечить согласованное принятие каждым
узлом сети одной определенной цепочки, соответствующей правилам консенсуса.
На текущий момент разработаны следующие алгоритмы консенсуса:
Proof-of-Work (Pow) – «доказательство выполненной работы». Первый вид консенсуса,
используемый в первой криптовалюте – Bitcoin. Достижение консенсуса представляет
собой подбор для нового блока хеш-значения, удовлетворяющего определенному виду.
Таким образом, каждый блок показывает, что была проделана определенная работа
(затрачены определенные вычислительные ресурсы) по его нахождению.
Семейство «Доказательство доли владения»: Proof-of-Stake (PoS), Delegated Proof-of-Stake
(DpoS), Leased Proof-of-Stake (LpoS). Метод защиты криптовалюты, при котором
вероятность генерации блока прямопропорциональна наличию определенной суммы.
Помимо того, что криптовалюты Proof-of-Stake являются более энергоэффективными, чем
Proof-of-Work, стимулы генераторов блоков также различаются. Proof-of-Work майнер
может потенциально не владеть ни одной из валют, которую майнит. Это означает, что его
интересы могут расходиться с держателями монет. Майнера заботит краткосрочная
окупаемость оборудования и быстрая продажа монет. Тем не менее, Proof-of-Stake не
является идеальным вариантом для распределенного консенсус-протокола. Существует
проблема «ничего на кону» (nothing-on-stake), при которой одна и та же ставка применяется
к нескольким конкурирующим цепочкам, что мешает достижению консенсуса [3].
Гибридные: Proof-of-Burn (PoB) – «доказательство сжигания», Proof-of-Activity (PoA) –
«доказательство активности». «Доказательство сжигания» декларирует, что для
приобретения права на генерацию блоков криптовалюты необходимо уничтожить
некоторое ее количество, полученной в системе с доказательством выполнения работы.
Под «сжиганием» подразумевается отправка майнером некоторого количества средств на
специальный адрес, с которого невозможно их вернуть или потратить. Proof-of-Activity
предполагает совместное участие майнеров Proof-of-Work и Proof-of-Stake с разделением
ролей. Первые обеспечивают генерацию новых монет за счет сложности такого типа
майнинга. Вторые формируют и подтверждают массив транзакций, который будет
включен в блок.