Краткое руководство по алгоритмам консенсуса

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

Наиболее известный пример - доказательство выполнения работы, которое используется в сети Биткоин. Алгоритм консенсуса предназначен для двух вещей: он гарантирует, что найденный вариант блока является единственно верным, и он не позволяет злоумышленникам сбить систему с толку путем ветвления сети.

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

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

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

Ниже приведен список (не исчерпывающий) новых, альтернативных подходов к решению этой задачи.

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

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

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

При этом алгоритме ваши шансы оказаться выбранным для создания очередного блока зависят от того, какой долей монет системы вы владеете. Пользователь, имеющий 300 монет, имеет в три раза больше шансов, чем тот, у кого 100 монет.

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

Здесь мы сталкиваемся с проблемой. Что помешает валидатору создать два блока и получить два комплекта комиссий за транзакции? Что помешает голосующим проголосовать за оба таких блока? Эта проблема получила название "нулевой доли" (nothing-at-stake). Участника, которому нечего терять, ничего не удерживает от плохих поступков.

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

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

Доказательство доли владения впервые было применено в Peercoin, а затем - в Blackcoin и NXT. Ethereum сейчас работает на доказательстве выполнения работы, но планирует перейти на доказательство доли владения.

Доказательство активности (Proof of activity)

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

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

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

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

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

Претензии к алгоритму proof of activity - те же, что и к proof of work (требуется слишком много энергии) и proof of stake (ничто не мешает валидатору проголосовать дважды).

Сейчас доказательство активности используется только в Decred.

Доказательство сжигания (Proof of burn)

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

В зависимости от конкретной реализации алгоритма, майнеры могут проводить сжигание монет данной системы или другой системы (например, биткоины). Чем больше монет вы сжигаете, тем больше у вас шансов быть отобранными для майнинга очередного блока.

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

Хотя proof of burn - довольно интересная альтернатива proof of work, слабое место этого протокола - бесполезное расходование ресурсов. Критики его также указывают на то, что добывающие мощности просто переходят к тем, кто готов сжечь больше денег.

Сейчас доказательство сжигания использует только одна монета - Slimcoin, созданная на базе Peercoin. В ней используется сочетание протоколов proof of work, proof of stake и proof of burn. В настоящее время она находится в полуактивном состоянии.

Доказательство емкости (Proof of capacity)

Доказательство емкостиКак мы видели, большинство альтернативных протоколов предусматривают оплату за участие в том или ином виде. Доказательство емкости - не исключение, но здесь нужно "платить" объемом своего дискового пространства. Чем больше емкость вашего жесткого диска, тем выше ваши шансы на добычу очередного блока и получение соответствующего вознаграждения.

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

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

Вариантами proof of capacity являются proof of storage и proof of space. Burstcoin - единственная монета, в которой сейчас применяется доказательство емкости.

Доказательство истекшего времени (Proof of elapsed time)

Производитель процессоров Intel разработал свой вариант протокола консенсуса, получивший название доказательства истекшего времени. Он работает аналогично доказательству выполнения работы, но потребляет значительно меньше электроэнергии.

Вместо того, чтобы заставлять участников решать криптографические задачи, этот алгоритм использует доверенную среду выполнения (TEE), например, SGX, которая гарантирует, что все блоки производятся абсолютно случайным образом. Выполнения работы при этом не требуется.

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

Единственной проблемой данного протокола является то, что пользователю придется полагаться только на оборудование Intel. Но разве идея публичного блокчейна не состоит как раз в том, чтобы избежать необходимости полагаться на третьих лиц?

  • Proof of stake
  • алгоритмы консенсуса
  • доказательство доли владения
  • доказательство активности
  • Proof of activity
  • доказательство сжигания
  • Proof of burn
  • доказательство емкости
  • Proof of capacity
  • доказательство истекшего времени
  • Proof of elapsed time
X

Похожие публикации

Комментарии (3)

Чтобы оставить комментарий, вам необходимо войти или зарегистрироваться
UP