Поймите механизм консенсуса и 11 основных алгоритмов консенсуса в одной статье.

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

Докладчик: Учиха Мадара

** РЕДАКТИРОВАТЬ: затяжки **

Источник: Deschool

Эта статья представляет собой конспект третьего урока университетского курса DeSchool по веб3, а лектором является Учиха Мадара. Содержимое слишком сухое и не смешивается с водой, рекомендуется собирать его и медленно переваривать. Кроме того, для облегчения понимания в данную статью внесены некоторые изменения и дополнения, основанные на содержании курса.

Основное содержание статьи включает в себя:

  1. Введение в алгоритм консенсуса

  2. Классификация алгоритмов консенсуса

  3. Подробное объяснение алгоритмов консенсуса (PoW, PoS, PoH, PoA, PBFT и т. д.)

01 Введение в механизм консенсуса

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

**1. Зачем нужен механизм консенсуса? **

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

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

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

**2. Что такое механизм консенсуса? **

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

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

**3. Какие проблемы может решить механизм консенсуса? **

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

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

4. Атака с двойной тратой

** **

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

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

Как достигается двойная трата? Разделено на две ситуации:

**(1) Двойная трата до подтверждения. **Транзакции с нулевым подтверждением могут быть не записаны в блокчейн в конце. Если сумма не маленькая, лучше избегать таких двойных трат, хотя бы дождавшись подтверждения.

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

** Существует три наиболее распространенных атаки с двойной тратой: атака 51%, атака гонки и атака Финни. **

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

Race Attack: пользователь отправляет две транзакции двум продавцам (или продавцу и пользователю) одновременно. Таким образом, злоумышленник получает два набора товаров или получает товары и возмещает первоначальную стоимость транзакции.

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

Классический случай двойной цветочной атаки:

В 2018 году злоумышленник контролировал более 51% вычислительных мощностей в сети BTG.В период контроля вычислительных мощностей он отправил определенное количество BTG на свой кошелек на бирже.Этот филиал получил название филиал А. В то же время отправьте эти BTG на другой кошелек, который вы контролируете, и эта ветка называется веткой B. После подтверждения транзакции на ветке А злоумышленник немедленно продает BTG, чтобы получить наличные. Впоследствии злоумышленник майнит на ветке B. Поскольку он контролирует более 51% вычислительной мощности, длина ветки B вскоре превысит длину ветки A, и ветка B станет основной цепью. откатился, чтобы восстановить предыдущее состояние. BTG, которые злоумышленник перед этим обменял на наличные, вернулись в свои руки, и эти BTG являются потерей обмена. Таким образом, злоумышленник, полагаясь на более чем 50% контроля вычислительной мощности, реализовал «двойную трату» одной и той же криптовалюты.

5. Византийские неудачи

** **

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

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

В распределенных системах, особенно в сетевой среде блокчейна, она также похожа на византийскую общую среду, есть нормальные серверы (аналогичные лояльным византийским генералам), есть неисправные серверы и серверы-саботажники (аналогичные византийскому генералу-предателю). Суть алгоритма консенсуса заключается в формировании консенсуса о состоянии сети между обычными узлами. Если узлов всего 3, то задача о византийских полководцах неразрешима, а когда в узлах x узлов, а сумма точек меньше 3x+1, то задача о византийских полководцах не имеет решения.

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

02 Классификация консенсусных алгоритмов

1. История механизма консенсуса

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

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

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

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

Ученые, работающие с данными и компьютерными технологиями, такие как Мони Наор, Синтия Дворк, Адам Бек, Ник Сабо и многие другие, работали над сетевыми механизмами консенсуса и внесли свой вклад в их развитие.

2 Классификация консенсусных алгоритмов

По разным типам отказоустойчивости алгоритмы консенсуса можно разделить на две категории: алгоритм консенсуса CFT (невизантийская отказоустойчивость, т.е. вредоносные узлы не учитываются) и алгоритм консенсуса BFT (византийская отказоустойчивость, т.е. то есть вредоносными узлами считаются).

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

**Кроме того, его можно разделить на две категории по согласованности: **алгоритм вероятностного консенсуса и алгоритм абсолютной согласованности. Алгоритм вероятностного консенсуса означает, что среди различных распределенных узлов существует высокая вероятность обеспечения согласованности данных между узлами, но все же существует определенная вероятность того, что данные между некоторыми узлами несовместимы. Например, Proof of Work (PoW), Proof of Stake (PoS) и Delegated Proof of Stake (DPoS) — все это алгоритмы вероятностного консенсуса.

Алгоритм абсолютной согласованности означает, что в любой момент времени данные между разными распределенными узлами будут оставаться абсолютно согласованными, и между разными узлами не будет несогласованности данных. Например, алгоритм PAXOS и производный от него алгоритм RAFT.

Далее следует конкретное деление и введение по типу отказоустойчивости.

Алгоритм консенсуса 3CFT

Crash Fault Tolerance невизантийская ошибка: подходит для сетей с высокой степенью доверия узлов. В том числе Паксос, Плот.

Алгоритм консенсуса 4BFT

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

03 Подробное объяснение алгоритма консенсуса

Немного надоело это видеть, нажмите в избранное, сделайте перерыв и продолжайте грызть самую сложную часть этой статьи! Студенты с ограниченным временем могут начать прямо с третьего алгоритма PoW.

Алгоритм 1Paxos

** **

  • ** Введение в алгоритм: ** В 1990 году алгоритм Paxos представляет собой алгоритм распределенного консенсуса, основанный на передаче сообщений, предложенный Лэмпортом, и получил премию Тьюринга в 2013 году. С момента появления Paxos он продолжал монополизировать алгоритм распределенного консенсуса, в основном решая, как достичь консенсуса по конкретному значению в распределенной системе. Процесс консенсуса алгоритма Paxos заключается в том, что предлагающий выдвигает предложение, чтобы получить поддержку большинства акцепторов. Когда предложение получило более половины поддержки, окончательный результат отправляется на все узлы для подтверждения.Во время этого процесса если предлагающий потерпит неудачу, это может быть решено путем запуска механизма тайм-аута.Если предлагающий каждый новый раунд предложений терпит неудачу, система никогда не сможет достичь консенсуса. Но вероятность этого крайне мала.

Ранний протокол Basic Paxos был сложным и относительно неэффективным, поэтому позже была предложена улучшенная версия Paxos. Например: Fast Paxos, Multi-Paxos и Byzanetine Paxos и т. д.

  • ** Вариант использования: ** ZooKeeper
  • **Принцип алгоритма: **Алгоритм Paxos работает в асинхронной системе, которая допускает простои и сбои, не требует надежной доставки сообщений и допускает потерю, задержку, беспорядок и повторение сообщений. Он использует механизм большинства (Majority) для обеспечения отказоустойчивости 2f+1, то есть система с 2f+1 узлами допускает одновременный отказ не более чем f узлов. Пока сбоев меньше, чем (n-1)/2, Paxos достигает консенсуса. Эти отказы не могут быть византийскими, иначе доказательство BFT будет нарушено. Следовательно, предпосылка этого алгоритма состоит в том, чтобы предположить, что сообщения никогда не могут быть повреждены, и что узлы не могут вступить в сговор, чтобы повредить систему.

Paxos проходит через набор раундов переговоров, в которых один узел находится в состоянии «лидерства». Если лидер не в сети, прогресс остановится до тех пор, пока не будет избран новый лидер или если старый лидер внезапно не вернется в сеть.

Paxos разделяет роли в системе на «Предлагающий», «Принимающий» и «Ученик»: «Предлагающий: Предложение». Информация о предложении включает номер предложения (идентификатор предложения) и предлагаемую стоимость (значение). Принимающая сторона: участвовать в принятии решений и отвечать на предложения предлагающих. После получения Предложения предложение может быть принято.Если Предложение принимается большинством Акцептантов, Предложение считается одобренным. Учащийся: Не участвуйте в принятии решений, узнайте последнее согласованное предложение (Ценность) от Предлагающих/Принимающих.

2. Алгоритм плота

** Введение в алгоритм: ** Алгоритм Raft (репликация и отказоустойчивость) представляет собой упрощенную реализацию пары алгоритмов Paxos. Название Raft происходит от аббревиатуры «Надежный, реплицированный, избыточный и отказоустойчивый», «избыточный, отказоустойчивый»). raft делает много приятных упрощений по сравнению с Paxos с продолжением журнала. Он гарантирует согласованность системы, когда более половины узлов в системе, состоящей из n узлов, работают нормально. В отличие от алгоритма Paxos, который получен непосредственно из проблемы распределенной согласованности, алгоритм Raft предлагается с точки зрения конечного автомата с несколькими копиями и используется для управления репликацией журнала конечного автомата с несколькими копиями. Например, в системе с 5 узлами 2 узла могут иметь невизантийские ошибки, такие как время простоя узла, сетевой раздел и задержка сообщений.

** Вариант использования: ** Репликация master-slave базы данных, цепочка альянсов.

Принцип алгоритма. В системе Raft есть три роли: лидер, ведомый и кандидат. В обычных условиях будет только один лидер, а остальные — ведомые. А лидер будет нести ответственность за все внешние запросы, если они не поступят на машину лидера, то запрос будет направлен лидеру. Обычно лидер отправляет сообщение в фиксированное время, то есть сердцебиение (heartbeat), чтобы сообщить последователям, что лидер кластера все еще работает. Каждый ведомый разработает механизм тайм-аута (тайм-аут), когда сердцебиение не будет получено в течение определенного периода времени (обычно 150 мс или 300 мс), система войдет в состояние выборов.

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

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

**Преимущества алгоритма Raft: **Первое — простота. Если мы углубимся в то, где Paxos сложнее, чем Raft, Хайди Ховард и Ричард Мортье обнаружили, что сложность Paxos отражается в двух аспектах. Во-первых, Raft фиксирует журналы последовательно, в то время как Paxos допускает коммит журналов не по порядку, но требует дополнительного протокола для заполнения дыр в журналах, которые могут возникнуть в результате. Во-вторых, все реплики журнала в Raft имеют одинаковый индекс, термин и порядок, тогда как в Paxos эти термины могут отличаться.

Второй момент заключается в том, что у Raft есть эффективный алгоритм выбора лидера. Алгоритм выборов, приведенный в документе Paxos, сравнивает размер идентификатора сервера.Когда несколько узлов одновременно участвуют в выборах, побеждает узел с большим идентификатором сервера. Проблема в том, что если у избранного таким образом лидера отсутствуют какие-то логи, он не может сразу выполнить операцию записи, и должен сначала скопировать какие-то логи с других узлов. Журнал Raft всегда может выбрать узел с мажоритарным логом, поэтому нет необходимости догонять лог.Хотя иногда выборы будут повторяться из-за разделения голосов, в целом это более эффективный алгоритм выборов.

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

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

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

** Варианты использования: ** Биткойн, ETH1.0, Litecoin, Conflux, Dogecoin.

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

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

** Недостатки: ** Низкая скорость, огромное энергопотребление, вред для окружающей среды, уязвимость к «эффекту масштаба».

Плюсы: Проходит всесторонние испытания с 2009 года и широко используется по сей день.

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

Введение в алгоритм: В 2011 году Quantum был предложен на форуме Bitcointalk. В августе 2012 года родился Peercoin, первый блокчейн-проект, основанный на консенсусе PoS.Peercoin — первое приложение, реализующее алгоритм PoS. Интерес к Peercoin - это возраст монеты, который является произведением количества монет, хранящихся на узле, и времени удержания.Инициирование транзакции будет потреблять определенное количество возраста монеты, и каждый раз, когда потребляется возраст монеты 365, годовой будет получена процентная ставка 5%.

Пользователи: Ethereum(2.0), Conflux, Peercoin.

Принцип алгоритма: Например, если кто-то держит 100 доткойнов в транзакции в общей сложности 30 дней, тогда возраст монеты составляет 3000, а блок PoS обнаруживается позже, возраст монеты сбрасывается до 0, а проценты получается 0,05*3000/365=0,41 монеты. В процессе консенсуса ноды получают право бухгалтерского учета по возрасту потребляемой монеты.Чем больше возраст монеты потребляет нода, тем больше шанс получить право бухгалтерского учета. Принцип основной цепочки, заданный алгоритмом, таков: цепочка, потребляющая наибольшее количество валюты, является правильной и эффективной цепочкой в системе.

Преимущества: Нет необходимости в мощном и дорогом оборудовании для майнинга. Сократите потребление ресурсов и уменьшите вероятность атак 51%.

** Недостатки: ** Это может привести к тому, что богатые будут копить криптовалюты, создавая эффект Мэтью, который может вызвать инфляцию криптовалюты.

5 Доказательство истории (PoH)

** Введение в алгоритм: ** Доказательство истории было создано Solana, высокопроизводительной цепочкой блоков, запущенной в 2018 году. Доказательство истории позволяет участникам сети достичь консенсуса вовремя, используя поддающуюся проверке функцию задержки, тем самым избегая «самого длительного времени». Правило цепи.

PoH — это часы сети, а TowerBFT — ее сторожевая башня, задачей которой является предотвращение подмены временных параметров вредоносными узлами. Любой валидатор, проголосовавший за блок, должен дождаться создания следующего блока и получить подтверждение от доказательства истории о том, что «время прошло», прежде чем голосовать снова.

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

**Пользователь:**Солана

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

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

**Минусы: **Проблемы централизации, в настоящее время Solana имеет менее 1200 валидаторов, проверяющих транзакции в своей сети. Меньше децентрализованных приложений: часто упоминается как убийца Ethereum. Согласно его веб-сайту, на Solana было создано более 350 Dapps по сравнению с почти 3000 на Ethereum, и именно здесь Defi в настоящее время требуется больше времени для разработки и инноваций.

6 Подтверждение полномочий (PoA)

Введение в алгоритм: он был предложен в 2017 году Гэвином Вудом, соучредителем Ethereum (ETH) и Parity Technologies. Механизм PoA не майнит и не требует токена. Во вторичной сети блокчейнов на основе PoA все транзакции и блоки обрабатываются валидаторами. Стоимость обслуживания платформы PoA невелика, но в PoA верификатором транзакции и проверки блокчейна должен быть человек, который может пройти проверку надежности. Поэтому верификаторы PoA должны уделять большое внимание своей репутации. Репутация — очень важный актив в PoA. Как правило, валидаторы раскрывают свою настоящую личность. В настоящее время технология блокчейна, сформированная этим механизмом консенсуса, в основном применяется к цепочкам альянсов и частным цепочкам с очевидными отраслевыми характеристиками.

Пользователи: PoA, Ethereum Kovantestnet, xDai, VeChain и логистическая сеть Walmart.

Принцип алгоритма:

а. Выберите авторитетного сертификатора;

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

преимущество:

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

b Проверка выполняется быстро и поддерживает более быстрые транзакции;

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

г. Хардфорки защищены законом, и каждый валидатор подписывает юридическое соглашение.

недостаток:

А. Публичная идентичность, конфиденциальность и анонимность будут снижены

B. Валидаторы назначаются как юридически поддерживаемые централизованные узлы полномочий.

**7 Отложенное доказательство работы (**Отложенное доказательство работы, dPoW)

** **

** Введение в алгоритм: ** Прежде чем объяснять DPoW, вам нужно объяснить, что такое PoB. PoB (Proof of Burn) называется механизмом доказательства сжигания, который представляет собой обязательство голосовать за лидерство в сети путем сжигания токенов в собственных руках. Чем больше количество сожженных токенов, тем выше вероятность достижения лидерства в сети.

В блокчейне на основе dPoW майнеры больше не получают вознаграждение за добычу токенов, а «дрова», которые можно сжигать — горящую древесину. Майнеры используют свои собственные вычислительные мощности, чтобы окончательно подтвердить свою рабочую нагрузку с помощью алгоритма хеширования, а затем получить соответствующую древесину, которую нельзя продать. Когда дрова накопится до определенного количества, вы можете отправиться на место сжигания, чтобы сжечь дрова.

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

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

**Пользователь:**Комодо

Принцип алгоритма: В системе dPoW есть два типа узлов: нотариальные узлы и обычные узлы. 64 нотариальных узла выбираются заинтересованными сторонами блокчейна dPoW для добавления нотариально заверенных блоков из блокчейна dPoW в прикрепленный блокчейн PoW. Как только блок добавлен, хэш блока добавляется к транзакции Биткойн, подписанной 33 нотариальными узлами, и создает запись блока dPow, хешированную в блокчейне Биткойн. Запись была нотариально заверена большинством нотариальных узлов в сети.

Чтобы избежать майнинговых войн между нотариальными узлами и снизить эффективность сети, Komodo разработал метод майнинга с использованием механизма опроса, который имеет два режима работы.

В режиме «Без нотариуса» все узлы сети поддерживают участие в майнинге, что аналогично традиционному механизму консенсуса PoW. В режиме «Нотариусы активны» сетевые нотариусы используют значительно сниженный уровень сложности сети. В режиме «нотариальной активации» каждому нотариусу разрешено использовать свою текущую сложность для майнинга блока, в то время как другие нотариальные узлы должны использовать 10-кратную сложность майнинга, а все обычные узлы используют 100-кратную сложность нотариальных узлов для майнинга.

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

Недостатки: Только блокчейны, использующие PoW или PoS, могут принять этот алгоритм консенсуса; в режиме «Активные нотариусы» хэши разных узлов (нотариусов или обычных узлов) должны иметь калиброванную скорость, иначе разница между хешрейтами резко возрастет.

8 Авторизованный PoS (DPoS, делегированное доказательство доли)

Введение в алгоритм: Механизм DPoS, также известный как «Механизм подтверждения авторизации общего доступа» и «Механизм доверенного лица», был предложен в апреле 2014 года Дэном Ларимером (BM), главным разработчиком Bitshares. С определенной точки зрения DPOS чем-то напоминает парламентскую систему или систему народных собраний. Если делегат не выполняет свои обязанности (не создает блок, когда наступает его очередь), он исключается из списка, и сеть выбирает новую суперноду для его замены.

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

Если лидер некомпетентен или делает что-то во вред компании, сотрудник может отозвать голосование за лидера, чтобы его голосование не попало в топ-10, тем самым уйдя из руководства.

Пользователи: BitShares, Steemit, EOS, Lisk, Ark.

**Плюсы: **Энергосбережение, скорость, блог-сайт Steemit с высокой посещаемостью. Время блока EOS составляет 0,5 секунды.

**Минусы: **Слегка централизовано; участники с высокой ставкой могут проголосовать за то, чтобы стать валидатором (в последнее время это было проблемой в EOS).

9 Практическая византийская отказоустойчивость (PBFT)

** **

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

Консенсус:

А. Клиент отправляет запрос на мастер-узел для выполнения операции

Б. Главный узел передает этот запрос каждому резервному узлу.

в) все узлы выполняют операцию и возвращают результат клиенту

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

Используется: HyperLedgerFabric, Stellar, Ripple, Dispatch

**Преимущества: **Высокая скорость, масштабируемость.

Минусы: Обычно используется в частных и защищенных сетях.

10 Делегированная византийская отказоустойчивость (dBFTДелегированная византийская отказоустойчивость, dBFT)

Введение в алгоритм: Китайское блокчейн-сообщество NEO (ранее известное как Xiaoyi) предложило улучшенный византийский отказоустойчивый алгоритм dBFT. Этот алгоритм основан на идее построения PoS на основе PBFT. Бухгалтер, а затем бухгалтеры достигают консенсус через византийский отказоустойчивый алгоритм. Этот алгоритм устраняет отсутствие окончательной согласованности PoW и PoS, делая блокчейн пригодным для финансовых сценариев.

Кроме того, для решения проблемы византийских генералов механизм «Авторизованная византийская отказоустойчивость» представляет собой алгоритм консенсуса, который гарантирует отказоустойчивость, реализованную внутри блокчейна NEO. В этом механизме два участника, один является «учетным узлом» для профессиональной бухгалтерии, а другой является обычным пользователем в системе.

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

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

**Пользователь:**Нео

Консенсус:

А. Любой может быть представителем, если он или она соответствует требованиям. Все держатели токенов NEO могут голосовать, делегаты не являются анонимными, а для того, чтобы стать владельцем узла, требуется 1000 GAS.

б) Спикер выбирается случайным образом из числа делегатов.

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

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

**Преимущества: **Быстро (генерация блока занимает 15-20 секунд), высокая пропускная способность транзакций, отсутствие необходимости потреблять энергию, масштабируемость, отсутствие форков.

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

11. Ротационная практическая византийская отказоустойчивость (RBPFT)

Введение в алгоритм: Принципы dBft и RPBFT аналогичны PBFT, за исключением того, что не все узлы участвуют в консенсусе, а узлы делятся на два типа:

А. Узел консенсуса: узел, который выполняет процесс консенсуса PBFT и имеет право поочередно генерировать блоки.

B. Узел проверки: не выполнять процесс консенсуса, проверить, является ли узел консенсуса законным, заблокировать проверку, после нескольких раундов консенсуса он переключится на узел консенсуса.

В циклической византийской отказоустойчивости узлы консенсуса по очереди заменяются узлами проверки.

** Вариант использования: ** Fisco-BCOS

**Преимущества: **Скорость передачи выше, чем у сплетен, и нет избыточного пакета сообщений.

Разделяй и властвуй, исходящая пропускная способность каждого узла составляет O(1), сильная масштабируемость

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

12. АптосБФТ

** **

Введение в алгоритм: Это также производный алгоритм PBFT.Алгоритм консенсуса, названный в честь Aptos, основан на HotStuff, который основан на PBFT. Преимущества этой модели алгоритма подобны луковице и матрешке, которую нужно снимать слой за слоем. Каждый узел общается только с лидером, а не отправляет сообщения лидеру и всем остальным «генералам». Лидер транслирует сообщение (предлагаемый блок) для голосования; каждый узел отправляет свой голос лидеру, который собрал сообщение.

Случай использования: Aptos

Наконец, резюме этой части прилагается:

**Кроме того, существуют некоторые необычные алгоритмы консенсуса. **

В 2015 году профессор Дэвид Мазьер, главный научный сотрудник Stellar.org, предложил протокол консенсуса Stellar (SCP), созданный на основе Федерального византийского соглашения и Соглашения Ripple и являющийся первым доказуемо безопасным механизмом консенсуса с четырьмя ключевые свойства децентрализованного управления, низкая задержка, гибкое доверие и асимптотическая безопасность.

В том же году проект Hyperledger Sawtooth Lake объединил консенсус Ripple и SCP и предложил алгоритм консенсуса с голосованием кворума для работы со сценариями приложений, требующими мгновенной завершенности транзакций.

В 2016 году лауреат премии Тьюринга и профессор Массачусетского технологического института Сивио Микали предложил быстрый византийский отказоустойчивый алгоритм консенсуса под названием AlgoRand.Этот алгоритм использует технологию криптографической лотереи для выбора верификатора и лидера процесса консенсуса, а также с помощью разработанного BA* The Byzantine Fault. Протокол Tolerant достигает консенсуса по новым блокам, AlgoRand требует очень мало вычислений и очень мало форков и считается действительно демократичной и эффективной технологией консенсуса распределенного реестра.

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

##04 Резюме

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

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

Не существует лучшего алгоритма, есть только тот алгоритм, который вам больше всего подходит. Выбор алгоритма консенсуса тесно связан со сценарием приложения.Надежные среды используют Paxos или RAFT, разрешенные альянсы могут использовать PBFT, а цепочки без разрешений могут использовать консенсус PoW, PoS, Ripple и т. д. **Лучший механизм консенсуса всегда тот, который соответствует потребностям пользователя. **

Ссылка:

  1. Что такое механизмы консенсуса в блокчейне и криптовалюте?
  1. Угроза двойной цветочной атаки на блокчейн
  1. Прочитать 11 основных алгоритмов консенсуса в одной статье и полностью понять, что, черт возьми, такое PoS, PoW, dPoW, PBFT и dBFT?

4Понимание двойной траты и как предотвратить атаки

5Введение в применение византийских механизмов консенсуса

6AptosBFT: все, что вам нужно знать о консенсусе BFT в Aptos

Посмотреть Оригинал
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить