Обзор современных алгоритмов консенсуса в системах блокчейн | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 января, печатный экземпляр отправим 8 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №28 (266) июль 2019 г.

Дата публикации: 14.07.2019

Статья просмотрена: 178 раз

Библиографическое описание:

Крохин, М. О. Обзор современных алгоритмов консенсуса в системах блокчейн / М. О. Крохин. — Текст : непосредственный // Молодой ученый. — 2019. — № 28 (266). — С. 7-9. — URL: https://moluch.ru/archive/266/61587/ (дата обращения: 22.12.2024).



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

Одним из самых основных аспектов для работы блокчейн системы является механизм консенсуса. Он определяет как скорость работы приложения, так и безопасность этого приложения. На данный момент существует довольно большое количество алгоритмов консенсуса, однако для построения приложения стоит понимать, что каждой ситуации соответствует свой алгоритм (согласно теореме DCS) [1]. Такие алгоритмы как Proof-of-Work и Proof-of-Stake являются уже хорошо изученными, со своими ощутимыми положительными и негативными сторонами. Мы рассмотрим наиболее современные алгоритмы, выясним их сильные и слабые стороны, что поможет разработчикам в дальнейшем при построении децентрализованных приложений.

Proof-of-Capacity

Появился как альтернатива Proof-of-Work, одна из основных его идей является задействование памяти жесткого диска компьтера, что помогает решить пролему высокого энергопотребления. Два основных этапа алгоритма — плотинг и майнинг. На этапе плотинга происходит создание списка со всеми возможными решениями(нонсами) при помощи повторного хеширования данных. Каждый из таких нонсов состоит из 8192 хэша и соседние хэши образуют скупы или пары. Соответственно, чем больше свободного места на жестком диске, тем больше возможных решений на нем хранится и, следовательно, выше шансы у майнера получить вознаграждение за блок. На втором этапе происходит майнинг, т. е. добыча криптовалюты. Майнеры пытаются вычислить значение скупа и затем при помощи данного значения пытаются вычислить значение крайнего срока(дедлайна). В данном случае, дедлайн — время в секундах, которое должен выждать майнер между созданием предыдущего блока и текущего, т. е. если никто за данное время никто не создал новый блок, то майнер может сделать это и получить вознаграждение [2].

Преимущества Proof-of-Capacity:

  1. Возможность задействования любых жестких дисков;
  2. Не требуется специальное оборудование, т. к. данные майнинга можно удалить и использовать диск в любых других целях;

Недостатки Proof-of-Capacity:

  1. Остается проблема nothing-at-stake: вы можете мгновенно пробежаться по всем своим терабайтам, чтобы проверить свои шансы в альтернативной цепочке, как и в случае PoS. То есть одновременно майнить сразу несколько цепочек, не затрачивая лишних ресурсов.
  2. Обращения к диску занимают довольно существенное время.

Proof of Elapsed Time

Алгоритм, разработанный компанией Intel. Так же, как и Proof-of-Capacity является улучшенной версией Proof-of-Work, но имеет меньшее энергопотребление. Одна из основных его идей — использование принципов справедливой лотереи. Все ноды имеют одинаковый шанс на победу и это справедливо для максимально возможного числа участников.

Функция лотереи имеет следующие характеристики:

– Справедливость: функция должна распределять выборы лидеров среди максимально широкого круга участников.

– Инвестиции: стоимость контроля над процессом выбора лидера должна быть пропорциональна полученной от него выгоде.

– Проверка: всем участникам относительно просто убедиться в том, что лидер был выбран законным образом.

Алгоритм PoET работает с использованием новых безопасных инструкций процессоров (CPU) под названием Intel Software Guard Extensions (SGX). SGX позволяет приложениям запускать доверенный код в защищенной среде. Специализированный аппаратный компонент может создать подтверждение того, что определенный защищенный код был правильно настроен в защищенной среде. Внешняя сторона может использовать аттестацию, чтобы убедиться, что правильный код выполняется правильно. Это позволяет участнику сети доказать другим участникам, что он выполняет доверенный код для сети. Без этой функции сеть не сможет узнать, действительно ли участник использует доверенный код PoET. Доверенный код выполняется в среде, которая является частной для остальной части приложения. Остальная часть приложения не может проверять или вмешиваться в пространство памяти доверенного кода. Это гарантирует, что злонамеренный участник не сможет обмануть, манипулируя доверенным кодом PoET после его настройки [4]. PoET использует вышеперечисленные характеристики лотереи для обеспечения безопасности и случайности выбора лидера, при этом не требуя дорогостоящей энергии и специализированного оборудования, необходимых для большинства алгоритмов “доказательства”.

Механизм работы:

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

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

Преимущества:

  1. Высокая нагрузка на центральный процессор, что позволяет блокчейну. функционировать на любом устройстве с большим вычислительным потенциалом.
  2. Позволяет облегчить майнинг на ASICs и GPU.

Недостатки:

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

Proof of Activity

Гибридный алгоритм, совмещающий принципы работы Proof-of-Work и Proof-of-Stake. В данном алгоритме блоки PoS и PoW ищутся параллельно. Майнеры PoW осуществляют майнинг для первоначального распределения монет в сети — генерируют новую криптовалюту. PoS майнеры играют важную роль в подтверждение транзакций, но не имеют возможность добывать новые монеты. Причем подтверждение транзакций может быть произведено только после произведение соответствующих операций первой группой майнеров. Таким образом достигается общая децентрализация и безопасность сети [5].

Алгоритм работы:

  1. Выполнение работы PoW майнерами, то есть вычисление верхнего хэша.
  2. Данные о хэше передаются в сеть, однако эти данные не являются окончательным блоком, то есть это лишь своеобразная «заготовка».
  3. Данная заготовка подписывается PoS майнерами, затем происходит формирование блока, который будет записан в блокчейн.
  4. Вознаграждение распределяется между майнерами.

Преимущества:

  1. Вышеупомянутые «заготовки» являются точкой сохранения информации, что позволяет обеспечить высокую устойчивость к атакам.
  2. Происходит постоянный обмен данными между пользователями, что позволяет уменьшить общую нагрузку на сеть.
  3. Невозможна атака 51 % и контролирование всей сети одним участником. Даже если один из пользователей завладеет 50 % всех монет в сети генерация новых блоков будет невозможна, так как данные блоки будут выкидываться PoW майнерами.

Недостатки:

  1. На данный момент является всего лишь теоретической моделью и используется в малоизвестных проектах.

Proof-of-Importance

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

Преимущества:

  1. Если пользователь имеет большое количество валюты на кошельке, то он не будет иметь преимущества перед активными пользователями.
  2. Решена проблема nothing-at-stake

Недостатки:

  1. Возможность фиктивных транзакций. Пользователь будет вознагражден за транзакции вида «back and forth», что позволит ему заполучить преимущества перед другими пользователями.

Заключение

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

Литература:

  1. The DCS Theorem — URL: https://medium.com/@samdjones/the-dcs-theorem-e0d45012ef2a
  2. BitcoinBurst — Part 3: Proof-of-Capacity, The Green Alternative? — URL: https://hackernoon.com/burst-part-3-proof-of-capacity-the-green-alternative-8e2651211671
  3. Understanding Hyperledger Sawtooth — Proof of Elapsed Time — URL: https://medium.com/kokster/understanding-hyperledger-sawtooth-proof-of-elapsed-time-e0c303577ec1
  4. PoET 1.0 Specification — URL: https://sawtooth.hyperledger.org/docs/core/nightly/0–8/architecture/poet.html?highlight=sgx
  5. Proof-of-Activity — URL: https://www.investopedia.com/terms/p/proof-activity-cryptocurrency.asp
Основные термины (генерируются автоматически): доверенный код, SGX, алгоритм, сеть, CPU, DCS, DSC, жесткий диск, остальная часть приложения, справедливая лотерея.


Похожие статьи

Исследование и сравнительный анализ работы нейронных сетей для решения проблемы метеопрогноза

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

Влияние выбора программной платформы на безопасность веб-приложений

В данной статье проведен анализ безопасности трех ведущих программных платформ для веб-разработки: Symfony, Laravel и Yii. Целью исследования было сравнение уровня безопасности этих платформ с учетом выбора наиболее подходящей для создания безопасных...

Сравнение потоков Java и Kotlin Coroutines в контексте Android-разработки

В современной разработке мобильных приложений на Android, понимание и эффективное использование многозадачности является ключевым для создания высокопроизводительных и отзывчивых приложений. Многозадачность позволяет приложениям одновременно обрабаты...

Разработка компьютерной модели сверхширокополосного канала связи

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

Обучающий тренажер «Принятие решений в условиях статистической неопределенности»

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

Программная реализация одного класса многошаговых игр поиска

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

Реализация управления конфигурацией сетевого оборудования с использованием Ansible: интерфейс управления

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

Определение условий для применения каскадной и гибкой методик управления проектами

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

Геометрическая задача повышенной сложности № 25 в ОГЭ по математике

Задания второй части ОГЭ направлены на проверку владения материалом на повышенном уровне. В своей статье автор рассматривает основные идеи для решения геометрической задачи № 25 ОГЭ по математике. При подготовке к экзамену по математике большинство з...

Нечеткая модель оценки рисков информационной безопасности и поддержки уровня защищенности ERP-систем

Данная статья посвящена вопросу использования нечеткой модели для оценки рисков информационной безопасности и поддержки уровня защищенности ERP-систем. Рассмотрены требования к информационной безопасности ERP-систем и проанализированы проблемы их без...

Похожие статьи

Исследование и сравнительный анализ работы нейронных сетей для решения проблемы метеопрогноза

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

Влияние выбора программной платформы на безопасность веб-приложений

В данной статье проведен анализ безопасности трех ведущих программных платформ для веб-разработки: Symfony, Laravel и Yii. Целью исследования было сравнение уровня безопасности этих платформ с учетом выбора наиболее подходящей для создания безопасных...

Сравнение потоков Java и Kotlin Coroutines в контексте Android-разработки

В современной разработке мобильных приложений на Android, понимание и эффективное использование многозадачности является ключевым для создания высокопроизводительных и отзывчивых приложений. Многозадачность позволяет приложениям одновременно обрабаты...

Разработка компьютерной модели сверхширокополосного канала связи

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

Обучающий тренажер «Принятие решений в условиях статистической неопределенности»

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

Программная реализация одного класса многошаговых игр поиска

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

Реализация управления конфигурацией сетевого оборудования с использованием Ansible: интерфейс управления

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

Определение условий для применения каскадной и гибкой методик управления проектами

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

Геометрическая задача повышенной сложности № 25 в ОГЭ по математике

Задания второй части ОГЭ направлены на проверку владения материалом на повышенном уровне. В своей статье автор рассматривает основные идеи для решения геометрической задачи № 25 ОГЭ по математике. При подготовке к экзамену по математике большинство з...

Нечеткая модель оценки рисков информационной безопасности и поддержки уровня защищенности ERP-систем

Данная статья посвящена вопросу использования нечеткой модели для оценки рисков информационной безопасности и поддержки уровня защищенности ERP-систем. Рассмотрены требования к информационной безопасности ERP-систем и проанализированы проблемы их без...

Задать вопрос