Алгоритмы консенсуса - проблема византийских генералов

Алгоритмы консенсуса необходимы для функционирования технологии распределенной книги (DLT). Они используются для проверки того, какие данные, отправленные в общий реестр, следует сохранить как правильные, а какие - игнорировать.

Если рассматриваемая сеть одновременно является «недоверяемой» и «не разрешенной», любой компьютер может присоединиться к сети и, оказавшись в ней, может отправлять данные для записи в реестр.

В такой системе единственные правила, которые могут быть наложены, - это правила самого протокола платформы. Если протокол соблюден, другие узлы примут ввод, если протокол не соблюден, эти вводы можно игнорировать.

Именно это определение достоверности входных данных лежит в основе алгоритма консенсуса. Самым известным из них является Proof of Work, алгоритм консенсуса, используемый Биткойном. Поскольку Proof of Work довольно расточительно расходует электроэнергию, был предложен ряд других, которые находятся на разных стадиях разработки, в том числе Proof of Stake, Delegated Proof of Stake, Proof of Burn, Voting, Virtual Voting and Proof of Stapsed Time, среди других. Все они работают для достижения одного и того же результата: распределенного соглашения между сетью равных.

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

Эта проблема, также известная как проблема византийских генералов, была впервые поставлена ​​в 1982 году:

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

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

Решение проблемы византийских генералов с помощью Proof of Work

Proof of Work (PoW) - это оригинальный алгоритм консенсуса блокчейна, который используется в таких проектах, как Биткойн и Эфириум. Это механизм, который позволяет пользователям сети блокчейнов достигать согласованной «истины». Доказательство работы - это, по сути, ответ на сложную математическую проблему. Для создания требуется много работы (отсюда и название), но это легко проверить другими.

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

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

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

  1. Генералы соглашаются, что первый план, полученный всеми генералами, будет принят в качестве плана.
  2. Генерал решает проблему PoW, создавая блок, который транслируется в сеть, чтобы все генералы получали его.
  3. После получения этого блока каждый генерал проверяет и работает над решением следующей проблемы PoW, включая в нее предыдущее решение, так что их план дополняет предыдущее решение.
  4. Каждый раз, когда генерал решает проблему PoW, генерируется блок, и цепочка начинает расти. Со временем любой генерал, работающий над другим решением, переключится на самую длинную цепочку. Это то, чему способствует большинство генералов, и поэтому у него наибольшие шансы на успех.
  5. Поскольку генералы примерно знают, сколько времени требуется для решения PoW-решения, по прошествии определенного времени они узнают, работает ли достаточное количество других генералов в той же цепочке.

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

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

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

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

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

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

Эта неэффективность ресурсов является одной из проблем, которую сторонники других алгоритмов консенсуса, таких как Proof of Stake, называют причиной перехода с PoW.

Решение проблемы византийских генералов с помощью Proof of Stake (PoS)

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

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

Впервые реализованный PeerCoin и Nxt в 2012 и 2013 годах соответственно, PoS направлен на развитие некоторых предполагаемых слабых сторон PoW и становится все более популярным с Ethereum (в настоящее время второй по величине DLT по рыночной капитализации) с целью полного перехода от PoW к PoS в ближайшее будущее.

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

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

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

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

Возможные проблемы с PoS

Критики высказывают несколько опасений в отношении PoS.

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

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

Сторонники утверждают, что в случае атаки сеть может быть разветвлена, а сумма, на которую поставлена ​​злоумышленником, будет уничтожена. Идея состоит в том, что, в отличие от PoW (где злоумышленнику нужно просто купить достаточное количество оборудования для майнинга, чтобы захватить сеть и после атаки он может перенаправить указанное оборудование в другую систему PoW), с PoS злоумышленник должен будет купить 51% от общего объема поставленных ресурсов. каждое нападение. Однако это в значительной степени зависит от злоумышленника, у которого нет ресурсов или решимости пойти на эти жертвы, и что разветвленная сеть сможет пережить потерю уверенности, которую принесет атака.

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

PoS также потенциально уязвим для проблемы « ничего не поставлено на карту », когда валидаторам нечего терять, голосуя за несколько форков сети. Благодаря этому валидатор получит доли в двух цепочках. Ценность, сохраняемая форками Bitcoin и Ethereum, Bitcoin Cash и Ethereum Classic подчеркивает мотивацию для этого. В то время как майнер в системе PoW, такой как Биткойн, может одновременно выделять только 100% своих ресурсов одной сети, PoS позволяет валидаторам легко проверять обе цепи.

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

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

Delegated Proof of Stake (DPoS) получил свое название от Proof of Stake (PoS), но отличается как по концепции, так и по реализации. Он используется в таких проектах, как Lisk и предстоящий EOS, и предназначен для обеспечения более быстрых и дешевых транзакций, а также для повышения масштабируемости.

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

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

Избранные известны по ряду терминов в зависимости от сети, включая «делегаты», «свидетели» или «производители», но берут на себя те же обязанности, что и майнеры и валидаторы из PoW / PoS. Делегаты должны поддерживать узел 24/7 (в некоторых реализациях DPoS они также должны размещать некоторое количество токенов, как и в PoS), объединять транзакции по всей сети в блоки и впоследствии проверять / транслировать их в остальную сеть.

Это непрерывное голосование в режиме реального времени для избрания делегатов привносит несколько новых аспектов в алгоритмы консенсуса: оно дает всем держателям токенов возможность влиять на то, что происходит в сети; это также создает потребность в репутации делегата. Если у вас нет хорошей репутации, вас вряд ли изберут, поскольку пользователи будут стремиться выбирать тех, кто действует в соответствии с интересами сети. Наконец, он устраняет конкурентный аспект PoW / PoS и вместо этого позволяет делегатам сотрудничать друг с другом для создания новых блоков. Это устраняет некоторые потери при создании блоков PoW / PoS, когда неудачная работа просто отбрасывается.

DPoS решает проблему византийских генералов следующим образом:

  1. Генералы голосуют, чтобы избрать доверенных делегатов. Эти голоса взвешиваются пропорционально количеству владений каждого генерала в валюте платформы. В этом примере предположим, что есть девять генералов, которые избирают трех генералов в качестве делегатов.
  2. Алгоритм DPoS случайным образом выбирает одного из трех делегатов для создания следующего блока, который создается выбранным делегатом, а затем проверяется двумя другими делегатами.
  3. Новый блок создается каждые три секунды, и ни один из трех делегатов не может создать блок, если это не их заранее назначенный ход. Каждый новый блок основан на предыдущем и включает ссылку на него.
  4. Чтобы оставаться в качестве делегата, поддерживать свою репутацию и свою долю (если применимо), делегаты должны создавать свои блоки вовремя, не пропуская своего слота. По мере того, как цепочка продолжает расти, все делегаты подтверждают цепочку большинства, что означает, что поддельные цепочки сложно создать - у них не будет транзакций из законной цепочки.
  5. DPoS разработан так, чтобы не возникали вилки, поскольку делегаты скорее сотрудничают, чем соревнуются. Если есть разногласия между Генералами, то консенсус автоматически переключается на самую длинную цепочку (в нашем примере, если A и B оба создали разные цепочки, то C будет решающим фактором, и какая бы цепочка они ни выбрали, снова станет цепочкой большинства. Вот почему нечетное количество делегатов - во избежание тупика.
  6. Остальные генералы видят одобренную большинством цепочку и знают, что все делегаты вносят в нее свой вклад. В результате они могут знать, что это согласованный консенсус и, следовательно, приказ следовать.

Важно помнить, что алгоритм консенсуса просто достигает консенсуса - но не обязательно «правильный» консенсус. Цепочка DPoS может быть захвачена злоумышленниками. Если мы предположим, что A и B являются злонамеренными, созданная ими цепочка станет цепочкой большинства. В этом случае C продолжит создавать свою собственную цепочку меньшинств до тех пор, пока не будут проведены выборы, чтобы исключить A и B из этой цепочки. После того, как A и B будут отправлены на развилку C и будут назначены честные актеры, три вместе взятых честных актера смогут быстро обогнать злостную вилку по длине. Стимулы для честных действий делегата возвращаются к предлагаемым наградам и угрозе быть отстраненным от этих прибыльных ролей.

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

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

Однако критики отмечают ряд проблем с DPoS.

Не все так радужно.

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

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

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

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

В одном из крупнейших пулов голосования Lisk 32 из 101 лучших делегатов. Другой - 54 . Делегат, занявший 101-е место, в настоящее время имеет одобрение 26,3%, что означает, что любой «независимый» потенциальный делегат должен получить более четверти всей базы для голосования, чтобы иметь право быть делегатом, что фактически невозможно.

Эти недостатки сильно преувеличены, если принять во внимание быстрый рост цен, который в последнее время пережили многие системы DPoS. Существуют сети DPoS, которые с 2017 года подорожали в 50–500 раз, что создает явный дисбаланс.

Например, в конце 2016 года Ark собрал менее 1 миллиона долларов в ходе своего ICO за 93,75 миллиона токенов. Эти 93,75 миллиона токенов теперь будут стоить около 300 миллионов долларов. Это приводит к вероятности того, что небольшое количество пользователей контролирует сеть, и их будет очень трудно заменить, учитывая долю сети, которую они совместно контролируют, и стоимость достижения паритета. Это не обязательно проблема, связанная с DPoS - некоторые проекты PoS страдают той же проблемой, - но это делает первоначальное распределение токенов более насущной проблемой и ослабляет многочисленные существующие реализации.

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

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

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

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

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

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

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

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

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

Соответственно, виртуальное голосование решает проблему византийских генералов следующим образом:

  1. Генералы обладают способностью сплетничать друг с другом (ради сохранения примера средневековых генералов, допустим, у них есть почтовые голуби, способные передавать очень узкий набор сообщений один на один).
  2. Генералы отправляют своих голубей случайным генералам с подробностями о других сообщениях, которые они получили от других генералов. Они также присылают информацию о своих намерениях. Каждый из них записывает время получения каждого сообщения.
  3. Отправляя и получая эту информацию, генералы создают картину того, что думают другие генералы, и время, когда все генералы заявили о своих намерениях / поделились информацией.
  4. Любые злоумышленники, пытающиеся заблокировать передаваемую информацию, обнаружат, что другие Генералы в любом случае могут поделиться ею между собой, и, следовательно, злонамеренный Генерал будет обойден (пока эти вредоносные Генералы составляют менее 1/3 от общего числа). Если злонамеренный генерал не придет к той же истории событий, что и другие генералы, они будут знать, что генерал не честен или надежен.
  5. Благодаря этому генералы придут к общему соглашению относительно правильной информации и, следовательно, могут одновременно договориться о том, атаковать или нет и когда это делать - без необходимости проводить формальное голосование по этому поводу.

В результате виртуальное голосование происходит быстрее, чем PoW или PoS. Это также позволяет избежать потерь энергии в сетях PoW, поскольку нет майнинга. Узлы не конкурируют друг с другом за проверку блока - вместо этого все узлы в сети генерируют все события одновременно через протокол сплетен. События не отбрасываются, и в сети все узлы постоянно взаимодействуют друг с другом.

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

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

Этот переход от частного к публичному ведет, например, к необходимости предотвратить атаки Сибиллы. Именно здесь злоумышленник пытается захватить сеть, наводняя ее узлами, которые они контролируют, и является вектором атаки, от которого призваны защищаться как PoW, так и PoS.

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

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

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

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

Разделение DAG на множество более мелких подмножеств означает, что злоумышленнику необходимо контролировать значительно меньшую часть общей мощности сети (хеширование, ставки или делегированные голоса), чтобы иметь возможность атаковать сеть.

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