25 консенсус-протоколов для распределенных систем. Виды консенсус-алгоритмов.
**Что такое консенсус? **
Если давать широкое определение, консенсус является соглашением, которое удовлетворяет каждую из вовлеченных сторон. Это ключ к демократии и децентрализации в целом, а также технологии распределенного реестра в частности.
Посмотрите на биткоин: несмотря на то, что Сатоши Накамото — его таинственный основатель, у него нет власти над сообществом. Биткоин, как и блокчейн, полностью прозрачен и открыт, а каждый узел (node) равноправен в этой сети.
В том узком смысле, который мы применяем для криптографии, консенсус является процедурой принятия решения.
Его цель — обеспечить то, чтобы все участники сети согласовали свое текущее состояние после добавления новой информации, блока данных или пакета транзакций. Другими словами, консенсус-протокол гарантирует, что цепь верна, и дает стимулы для того, чтобы оставаться честными участниками. Это важная структура для предотвращения ситуации, когда кто-то один контролирует всю систему, и она гарантирует то, что все соблюдают правила сети.
Краткий обзор
Протокол — это набор правил.
Протоколы помогают:
обеспечить жизнеспособность транзакций в сети;
устранить возможность двойной траты;
удостовериться, что участники не жульничают.
Протокол — это сумма:
детерминированных логических правил;
криптографии и шифрования как основы безопасности;
социального поощрения, чтобы поддерживать сеть протокола.
Давайте рассмотрим некоторые из этих протоколов.
Протоколы «доказательства работы»
Proof-of-Work (PoW — Доказательство работы)
Принцип: трудно найти решение, но легко проверить результат.
Производительность: низкая.
Среда DLT: публичный блокчейн.
Завершенность: вероятностная.
Пример использования: Bitcoin, Ethereum, Litecoin.
Блокчейн биткоина, — пожалуй, самый копируемый блокчейн. Многочисленные ноды подтверждают транзакции в соответствии с алгоритмом консенсуса PoW. Чтобы добавить новый блок, участник должен доказать, что он выполнил определенную работу. Если быть точным, он решает очень сложную задачу по нахождению хэша (hash), который соответствует определенным правилам. Первый, кому посчастливилось найти правильную комбинацию, получает возможность добавить блок в цепочку.
В результате участие в PoW подразумевает затраты вычислительных ресурсов, но преимуществом является то, что он может быть реализован в среде, где участники абсолютно не доверяют друг другу. Любой желающий может присоединиться к сети, так как она является блокчейном, не требующим разрешений (permissionless). И хотя масштабируемость одноранговых сетей высокая, скорость транзакций остается низкой.
Ещё одна проблема заключается в мотивации участников сети — они, как правило, присоединяются, чтобы разбогатеть, а не для поддержания справедливости. Уменьшение вознаграждения за майнинг со временем и низкие комиссий в будущем, могут сильно повлиять на безопасность сети.
Протоколы «доказательства доли»
Proof-of-Stake (PoS — Доказательство доли)
Принцип: сеть доверяет валидатору, который ставит свои собственные ресурсы в залог за возможность создавать блоки: чем больше доля, тем выше вероятность, что сеть разрешит создание блока.
Производительность: высокая.
Среда DLT: публичный/приватный блокчейн.
Завершенность: вероятностная.
Пример использования: NXT, Tezos, вскоре Ethereum.
Основная сеть Ethereum имеет характеристику полноты по Тьюрингу и работает на протоколе PoW. Однако проект планирует переключиться на более эффективный протокол, известный как Proof-of-Stake (PoS) или «доказательство доли».
Техническая особенность PoS — отсутствие сложных и ненужных вычислений. Вместо того, чтобы конкурировать с другими, участники сети дают в залог свои криптоактивы, такие как эфир (Ether) в Ethereum, и ждут, чтобы их выбрали для создания нового блока.
Но на практике этот алгоритм еще хорош, потому что мотивация участников сети кардинально отличается от PoW. Тут участники заинтересованы в безопасности, так как сами владеют монетами системы. Алгоритм выбирает одного валидатора, основываясь на принадлежащей ему доле. Поэтому если участник владеет долей в 5%, то и проверять будет 5% транзакций. Идея состоит в том, что чем выше доля валидатора, лежащей в основе криптовалюты, тем меньше у него интерес к манипуляциям процессом валидации.
Как и в случае с алгоритмом PoW, завершение транзакции в PoS является вероятностным. Хотя транзакции относительно быстрые, по сравнению с транзакциями в сети биткоин, для этого всё ещё требуются токены. Более того, скептики указывают на тот факт, что валидаторы с крупными долями будут выбираться чаще и, стало быть, будут получать ещё больше токенов: богатые становятся богаче.
Delegated Proof-of-Stake (DPoS) (Делегированное доказательство доли)
Принцип: участники делегируют производство новых блоков небольшому и фиксированному числу избранных валидаторов. Высокая конкуренция, но очень выгодная.
Производительность: высокая.
Среда DLT: публичный/приватный блокчейн.
Завершенность: вероятностная.
Пример использования: EOS, BitShares.
Тем временем разработчики предложили альтернативный экономический стимул, названный Delegated Proof-of-Stake (DPoS) (Делегированное доказательство доли). Он позволяет создавать блоки на высокой скорости и обрабатывать большее количество транзакций в секунду, по сравнению с другими алгоритмами консенсуса, за счет уменьшения количества валидаторов. Во время голосования держатели монет выбирают валидаторов транзакций, которые будут формировать блоки. Вес каждого голосования определяется суммой активов голосующего. Держатели монет могут проголосовать за кандидатов в любое время. Это определяет высокую устойчивость сети: если большинство исполнителей терпят неудачу, сообщество сразу же проголосует за их замену.
Генерация новых блоков происходит каждые 1-2 секунды. Этот протокол не только быстрее, но и более справедлив, так как «делегированный» валидатор позже делится токенами со своими избирателями. Тем не менее подтверждение готовых блоков всё ещё лежит на плечах всех остальных участников сети. Daniel Larimer разработал DPoS в 2014 году. Сначала он использовал его в своём проекте BitShares, а позже в Steemit и EOS. Larimer предположил, что валидаторы DPoS будут иметь сильный стимул оставаться честными и предлагать самый быстрый и лучший сервис. В конце концов было бы глупо взломать сеть, которая хорошо вам платит. А если вы прекратите делать работу качественно, всегда есть другие участники, которые готовы занять место валидатора.
Byzantine Fault Tolerance (BFT) протоколы
До сих пор мы говорили о публичных блокчейнах, которые работают в публичной среде и нацелены на децентрализацию. Как насчёт частных предприятий на блокчейне? Что изменится, если участники будут немного больше знать о друг друге, или даже будут известны с самого старта сети (например, разные подразделения одной и той же компании)? В таких случаях можно оптимизировать консенсус-алгоритм и достичь намного большей пропускной способности. Фактически скорость увеличится в 10 раз, от сотен до тысяч транзакций в секунду, что отлично подходит для корпоративных реалий.
Важно отметить, что протоколы, «устойчивые к византийской проблеме» (BFT) — это характеристика, которой наделена или нет распределенная система. Однако в контексте нашей категоризации BFT обозначает новый класс протоколов, который не требует токенов для голосования, как в алгоритме PoW или PoS. Кроме того, он позволяет подписывать блок, даже если 1/3 участников терпят неудачу или действуют злонамеренно. BFT также решает проблему сбоев в системе и задержек в коммуникации.
Delegated Byzantine Fault Tolerance (DBFT) (Делегированный протокол задачи византийских генералов)
Принцип: предварительно выбранные «доверенные» участники поддерживают консенсус, даже если 1/3 из них терпят неудачу или являются злонамеренными.
Производительность: очень высокая.
Среда DLT: публичный/приватный блокчейн.
Завершенность: немедленная.
Пример использования: NEO, TON.
Этот алгоритм относится к старой задаче византийских генералов, основанной на реальном историческом событии. Используя аналогию, протоколу всё равно, если «генерал» заболел или саботировал коллег. Система будет работать, даже когда нода переходит в режим офлайн. Таким образом, консенсус протокол BFT кажется спасением от несовершенств PoW и PoS, но учитывая тысячи валидаторов, он всё равно будет бороться за решение проблемы скорости. Именно поэтому разработчики предложили делегированную модель BFT — the DBFT.
Предопределенные валидаторы в этом протоколе консенсуса позволяют значительно опередить другие протоколы. Взгляните на Ethereum с 15-20 транзакциями в секунду и на NEO с почти 10 000 т/с. Действительно удобно иметь несколько известных действующих лиц, которые проверяют транзакции перед выпуском для других нод. В случае, если валидатор «сливается», участники могут делегировать новую ноду. Стоит отметить, что хоть этот протокол рассчитан на публичное окружение, он является более централизованным.
Примечание: поскольку NEO работает на протоколе PoS DBFT, члены сети не только делегируют валидаторов, но также получают нативный токен GAS, как часть доли их валидатора.
Practical Byzantine Fault Tolerance (PBFT) (Реализация протокола задачи византийских генералов)
Принцип: простая и быстрая реализация алгоритма BFT для приватных сетей.
Производительность: высокая.
Среда DLT: приватный блокчейн с разрешениями.
Завершенность: немедленная.
Пример использования: Hyperledger, Chain.
Если вам нужен масштабируемый и быстрый, но приватный блокчейн, этот протокол для вас. Протокол PBFT очень похож на DBFT, особенно в отношении его более централизованного характера. Единственное отличие состоит в том, что первый имеет более простую реализацию, и часто работает в приватной среде с известными участниками. Что очень практично, не так ли?
Когда валидатор получает сообщение, он должен принять решение — верить ему или нет. Для этого он выполняет свои проверки и после опрашивает все остальные ноды по очереди, действительна ли транзакция по их мнению. Если ⅔ участников за эту транзакцию, нода её принимает и передает своё решение в сеть для других валидаторов. Таким образом, консенсус достигается на основе подтверждения, которое будет представлено всеми валидаторами.
PBFT эффективен в системах с низкой задержкой, но очень чувствителен к количеству валидаторов и пропускной способности, так как одно сообщение генерирует множество других запросов и проверок. Он хорошо подходит для частной среды, где не требуется большая нагрузка, но есть потребность в большом количестве транзакций. PBFT гарантирует окончательность решений о транзакциях в сети, так как оно было принято абсолютным большинством в каждый момент времени.
Возможно, вы также слышали о протоколе Sieve, который является усовершенствованной версией PBFT. Его особенность в том, что он умеет обрабатывать недетерминированные алгоритмы и их результаты, то есть такие, которые имеют несколько путей обработки тех же входных данных. В BFT мире существуют также такие протоколы, как Cross Fault Tolerance (XFT — упрощенный PBFT), Paxos и Raft. Последние два особо устойчивы к сбоям системы и называются Crash Fault Tolerant (CFT).
Federated Byzantine Agreement (FBA) (Федеративное византийское соглашение)
Принцип: блоки валидированы, если они подписаны конкретным кворумом подписчиков.
Производительность: высокая.
Среда DLT: публичный или приватный блокчейн, не требующий разрешения.
Завершенность: немедленная.
Пример использования: Stellar, Ripple.
Federated Byzantine Agreement (FBA), или «федеративное византийское соглашение», не требует разрешения или заранее известного набора участников, в отличие от PBFT и других вариаций BFT. FBA позволяет кому-либо присоединиться к сети. Транзакции в этом протоколе валидируются фиксированным количеством участников, которые выбираются из тех, кто в тот момент находятся в сети.
Примечательно, что по правилам FBA существуют Gateways (шлюзы) и Market-Makers (мэйкеры), которые обеспечивают честность и ликвидность сети. Первые выступают в роли традиционных банков, владеющих финансовыми средствами и создающих их эквивалент в виртуальных токенах. Вторые — ведут учетные записи с многочисленными шлюзами и сразу в нескольких валютах.
Краткое резюме
Proof-of-Work стал первым и самым надежным протоколом консенсуса для публичных блокчейнов, таких как Bitcoin и Ethereum, однако он энергозатратный.
Proof-of-Stake не требует сложных вычислений. Вместо этого, он поощряет пользователей закладывать собственные средства для выполнения эквивалентного количества проверок транзакций и предполагает, что все будут действовать рационально.
BFT является упрощение концепции PoS, которая делает её намного быстрее. Однако BFT протоколы практичны только в небольшой и приватной среде.
PBFT — это проверенное решение для приватных распределённых систем. Быстрый и надёжный протокол, но очень зависит от пропускной способности.
DBFT улучшает BFT, позволяя участникам сети делегировать ответственность на валидаторов. Этот протокол, в отличие от PBFT, может быть использован в публичной среде. Очень быстрый, но более централизованный.
Хотя вышеупомянутые варианты BFT являются блокчейнами, требующими разрешения, чтобы быть допущенным к сети, FBA является открытым для участия и часто не требует разрешения.
Есть и другие протоколы...
«Неблокчейны»
Исследователь Сергей Попов провел мысленный эксперимент: а что, если мы сможем полностью избежать блоков?
Directed Acyclic Graph (DAG) (Направленный ациклический граф)
Принцип: нет фиксированных блоков, и подтверждены они в случайном порядке в линейном масштабе.
Производительность: высокая.
Среда DLT: публичный неблокчейн с разрешениями.
Завершенность: вероятностная.
Пример использования: IOTA, ByteBall.
Основная проблема с блокчейном — это его синхронная природа. Блокчейны не могут быть параллельными. Можно изменить размер или частоту блоков, а также участников, которые их валидируют, но в итоге вся история событий будет заточена в строгую линейную последовательность. В качестве альтернативы, технология Directed Acyclic Graph (DAG) является асинхронной, что даёт конкурентное преимущество одновременных событий.
Протокол в таких системах позволяет участникам для добавления одного блока транзакций подтвердить несколько предыдущих. Из чего следует, что «чем больше новых транзакций, тем быстрее валидируются старые». Хотя это подразумевает сверхвысокие скорости для сети — DAG более медленный в меньших масштабах.
HashGraph (ХэшГраф)
Принцип: ноды связываются случайным образом с использованием протокола «gossip about gossip» и соглашаются на консенсус после определенного раунда коммуникации.
Производительность: очень высокая.
Среда DLT: приватный неблокчейн с разрешениями.
Завершенность: зависит от раунда.
Пример использования: HashGraph.
Разработчики этого протокола утверждают, что блокчейн является устаревшей системой. В качестве замены они также выступают за концепцию DAG. Однако ключевым отличием HashGraph является протокол «gossip about gossip», где нода получает набор транзакций с меткой времени, о которых «знает» другая нода. Для работы такого алгоритма все участники в сети должны быть известными. В результате синхронизации каждая нода хранит всю информацию и историю получения этой информации всеми нодами сети. Как только нода видит в своей истории, что конкретное сообщение уже было получено и проверено большинством, нет сомнений, что оно действительно.
Однако существуют определённые ограничения.
Во-первых, существует мало доказательств практической реализации в крупных масштабах, особенно по сравнению с рабочими блокчейн-проектами.
Во-вторых, технология HashGraph запатентована и приобретение лицензии стоит денег. Это также приводит к третьему вопросу: отсутствие сильного сообщества (как например те, что связаны с проектами с открытым исходным кодом). Такое сообщество может проверить надежность протокола, его уязвимость перед хакерами и проблемы совместимости.
Примечание: недавно проект обновился и переименовался в Hedera Hashgraph. Некоторые наработки теперь доступны на GitHub.
Другие протоколы консенсуса для конкретных задач
Как будто этого было мало, люди ещё больше развили технологию и воображение. Всё больше исследователей и разработчиков блокчейна экспериментируют с новыми моделями консенсуса для различных бизнес-задач.
Proof-of-Activity (PoA) (Доказательство активности)
Принцип: гибрид PoW и PoS.
Производительность: низкая.
Среда DLT: публичный, не требующий разрешения блокчейн.
Завершенность: вероятностная.
Пример использования: Decred.
Proof-of-Activity (PoA) объединяет протоколы PoW и PoS, что означает, что участники могут как майнить, так и закладывать долю для валидации блоков. Итак, протокол PoA обеспечивает баланс между майнерами и обычными участниками сети.
**Proof-of-Location (PoL) (Доказательство местоположения
Принцип: используются маячки, чтобы заметить ноду в синхронизированном состоянии, а затем отметить временным штампом её присутствие.
Производительность: средняя.
Среда DLT: общественный, не требующий разрешения блокчейн.
Завершенность: немедленная.
Пример использования: FOAM, Platin.
Proof-of-Location (PoL) позволяет пользователям закрепить за собой конкретную GPS-локацию и таким образом аутентифицировать себя в сети. Интересно то, что протокол опирается на BFT маячки (beacons), которые записывают геолокацию и маркеры времени в блокчейне, что предотвращает сбои и мошенничество в системе.
Proof-of-Importance (PoI) (Доказательство важности)
Принцип: как и PoS, но с дополнительными свойствами, которые влияют на ваш рейтинг.
Производительность: высокая.
Среда DLT: общественный, не требующий разрешения блокчейн.
Завершенность: вероятностная.
Пример использования: NEM.
Алгоритм консенсус Proof-of-Importance (PoI) (доказательство важности) действует почти как PoS, но включает в себя три компонента:
- количество токенов на счету;
- активность операций счета;
- время, проведенное владельцем счёта в сети.
Хотя первый параметр играет важную роль в рейтинге для проверки транзакций, второй и третий параметры довольно слабые, но всё же помогают установить «важность» учётной записи. Чем меньше сумма токенов, тем сильнее влияние других параметров.
Следственно, учётная запись, которая закладывает сотни тысяч токенов, может увеличить коэффициент значимости почти в 3 раза из-за её активности и постоянного присутствия в сети. С другой стороны, это не имеет никакого значения для тех, кто владеет сотнями миллионов токенов в своем аккаунте.
Proof-of-Elapsed-Time (PoET) (Доказательство прошедшего времени)
Принцип: блоки создаются в доверенной среде с равными периодами.
Производительность: средняя.
Среда DLT: частный блокчейн, с разрешениями и без них.
Завершенность: вероятностная.
Пример использования: Intel.
Производитель чипов Intel не отставал и разработал собственный блокчейн под названием IntelLedger. Алгоритм консенсуса IntelLedger называется Proof-of-Elapsed-Time (PoET) или «доказательство прошедшего времени». Сегодня он присутствует в одном из Hyperledger-продуктов.
Эта система похожа на Proof-of-Work, но потребляет гораздо меньше электроэнергии. Вместо того, чтобы участники решали криптографическую головоломку, алгоритм работает в среде надежного выполнения (Trusted Execution Environment, TEE), такой, как Intel Software Guard Extensions (SGX). Протокол PoET также гарантирует, что блоки создаются случайно, но без какой-либо необходимой работы.
В качестве решения Intel предлагает гарантированное время ожидания согласно TEE. По информации компании, алгоритм PoET можно масштабировать до тысяч нод, и он будет корректно работать на любом процессоре Intel, поддерживающем SGX. Однако разве блокчейн не должен помогать нам избегать третьих сторон, а не полагаться на них?
Заключение
Протоколы консенсуса являются неотъемлемой частью распределенных систем. В первую очередь они помогают достигать справедливости, избегать сбоев системы, когда один из участников — нод — выходит из строя. Во-вторых, децентрализованная среда требует решения, которое поможет двигаться вперёд и изменять общее состояние, даже в среде, где никто никому не доверяет. Определенные правила помогают достичь «консенсуса»
.
Мы рассмотрели самые популярные протоколы, которые применяются уже в десятках проектов. Есть ещё много других и более экзотических протоколов, таких как Cross Fault Tolerance (XFT), Paxos, Sieve, Raft, Proof-of-Stake-Time (PoST) и Proof-of-Brain (PoB), которые мы просто не смогли вместить в эту статью, но обязательно опишем в следующих публикациях. Если же у вас есть вопросы, оставляйте комментарии под статьей.
Byzantine Fault Tolerance (BFT) протоколы.
В этом разделе рассмотрим несколько технических характеристик протоколов, «устойчивых к византийской проблеме» (BFT). Их особенность в том, что даже когда нода (один из валидаторов) не может выполнить действие, остальные ноды продолжают работать, поддерживая систему. Незначительные различия в технических характеристиках протокола помогают распределенным системам адаптироваться к конкретным условиям и быть более надежными.
Протоколы BFT обеспечивают безопасность, подразумевая, что ничего плохого никогда не произойдет, а также жизнеспособность — ведь в конечном итоге произойдет что-то хорошее. Ранее только частные сети могли иметь свойства BFT. Когда были представлены Bitcoin и Proof-of-Work, это стало возможным и в публичной среде.
1.1. Протокол SIEVE
Принцип: выполнение операций, сравнение исходящих данных в копиях и поиск любых расхождений.
Производительность: высокая.
Среда DLT: приватный блокчейн c разрешениями.
Завершенность: немедленная.
Пример использования: Hyperledger.
Поскольку Hyperledger является модульной структурой, у вас есть возможность добавить варианты консенсуса, и SIEVE один из них. Стандартным вариантом является протокол PBFT или Practical Byzantine Fault Tolerance, который мы рассмотрели в предыдущей статье. SIEVE и XFT все еще находятся в бета-версии, но ниже описан функционал, детали которого уже известны.
SIEVE был разработан для обработки недетерминированных операций при выполнении кода блокчейна. Когда такие операции присутствуют в коде, они могут производить разные исходные данные при выполнении разными копиями в распределенной сети.
SIEVE обрабатывает транзакции, которые обычно являются детерминированными, но иногда могут генерировать разные исходные данные. После выполнения всех операций он сравнивает исходные данные в копиях:
Если протокол обнаруживает незначительные несоответствия среди небольшого числа этих копий, значения с несоответствиями просеиваются (буквальное значение английского «sieve»).
Если несоответствие происходит между несколькими процессами, то просеивается сама операция-нарушитель.
1.2. Протокол Round Robin
Принцип: несколько нод играют ключевую роль в подтверждении и голосовании за транзакции. Процесс валидации блока не зависит от одного участника.
Производительность: высокая.
Среда DLT: приватный блокчейн c разрешениями.
Завершенность: немедленная.
Пример использования: Multichain, Tendermint.
Механизм протокола Round Robin лучше всего подходит для бизнеса в сфере финансовой торговли и цепочки поставок. Этот алгоритм предполагает, что валидаторы достигают консенсуса, голосуя за блоки. Голосование проходит в три этапа:
- предварительный (pre-vote);
- предварительно фиксированный (pre-commit);
- фиксированный (commit).
Получение более 2/3 фиксированных голосов означает получение фиксированных голосов от большинства валидаторов. Блок считается фиксированным, когда 2/3 вали***даторов отдали за него фиксированные голоса.
1.3. Протоколы Paxos и Raft
Существуют протоколы особо устойчивые к сбоям системы (crash-fault tolerant или CFT), известные как Paxos и Raft. Оба являются более быстрыми версиями BFT и действуют по принципу репликации операции (state machine replication), которым пользуется Microsoft.
1.4. HoneyBadger Byzantine Fault Tolerance (hbBFT)
Принцип: деление на эпохи, подразумевающее добавление каждой новой партии транзакций к зафиксированному (и распределенному) логу в конце каждой эпохи.
Производительность: высокая.
Среда DLT: блокчейн с разрешениями и не требующий разрешений.
Завершенность: немедленная.
Пример использования: n/a.
HoneyBadger Byzantine Fault Tolerance (hbBFT) — это первый BFT протокол атомарного вещания, обеспечивающий оптимальную асимптотическую эффективность в асинхронных условиях. Говоря простым языком, HoneyBadgerBFT устойчив к сбоям в глобальных сетях, чем превосходит другие алгоритмы BFT. Ноды HoneyBadger могут оставаться скрытыми за анонимными реле, на подобии браузера Tor. Транзакции происходят в разное время и протокол работает с любой скоростью, которую поддерживает сеть.
1.5. Loopchain Fault Tolerance (LFT) (Устойчивость к проблеме платформы Loopchain)
Принцип: сокращает модель работы Round Robin до двух шагов и разрешает ограниченное количество нод.
Производительность: высокая.
Среда DLT: приватный блокчейн с разрешениями.
Завершенность: немедленная.
Пример использования: ICON.
Протокол Loopchain Fault Tolerance (LFT) является продолжением Tendermint (который объединяет DPoS и PBFT, мы описали их в первой статье) и усовершенствованной версией BFT, что позволило ему стать безопасным, высокопроизводительным и масштабируемым консенсус-алгоритмом.
LFT напоминает алгоритм Round Robin своей трехэтапной системой голосования (предварительный, предварительно фиксированный, фиксированный), но сокращенный до 2 шагов. В голосовании участвует ограниченное количество нод. LFT использует технику «Spinning» (Вращение), чтобы упростить запутанный алгоритм выбора первичной ноды.
1.6. Cross-Fault Tolerance (XFT) (Устойчивость к проблеме системных сбоев)
Принцип: усовершенствованный BFT протокол. Объединяет синхронные и асинхронные протоколы для связи.
Производительность: очень высокая.
Среда DLT: приватный блокчейн с разрешениями.
Завершенность: немедленная.
Пример использования: Hyperledger.
Наконец мы подошли вплотную к протоколу, который использует комбинацию асинхронных и синхронных методов для сетевых коммуникаций. Cross-Fault Tolerance (XFT) сочетает в себе скорость протокола Crash-Fault Tolerance (CFT) и надежность BFT характеристики. Согласно авторам технологии, «XFT разумно срезает углы и игнорирует возможные атаки, которые сегодня считаются либо дорогостоящими, либо крайне маловероятными».
Протокол XFT упрощает модель атаки и делает BFT осуществимым и эффективным для практических сценариев. Протоколы BFT предполагают сильного противника, который может контролировать взломанные ноды, а также обмен сообщениями по всей сети.
Исследования алгоритмов консенсуса от KPMG
Консенсус-протоколы для других задач
Не все предприятия должны быть частными. Некоторые компании предполагают использование децентрализованных публичных алгоритмов. Самые популярные из них мы рассмотрели в Части 1, но упомянули не все.
2.1. Proof-of-Asset (PoA) (Доказательство актива)
Принцип: токенизация активов, часто физических товаров.
Производительность: высокая.
Среда DLT: публичный / приватный блокчейн.
Завершенность: немедленная.
Пример использования: Digix, BANKEX.
Вы уже знаете, что, по своей сути, блокчейн является неизменным регистром. Поскольку его природа не допускает ошибок учета, он может объединять физический актив или сертификат с технологией блокчейна при соотношении 1:1. Этот подход известен как протокол Proof-of-Asset (PoA).
Что еще можно токенизировать с помощью алгоритма PoA, помимо золота? Например:
право собственности на землю;
права владения;
акции, облигации, долговые кредиты и другие производные финансовые инструменты.
В этом отношении протокол Proof-of-Asset прост, гибок и надежен. Требуется лишь небольшая адаптация и / или добавление действующих лиц в протокол, и система будет готова для работы с другими типами активов.
2.2. Proof-of-Authority (PoA) (Доказательство полномочий)
Принцип: право валидации транзакций имеют только известные участники (BFT).
Производительность: высокая.
Среда DLT: публичный / приватный блокчейн.
Завершенность: вероятностная.
Пример использования: POA network, Parity.
Алгоритм Proof-of-Authority (PoA) используется как в приватных, так и в публичных блокчейн-проектах. Он обеспечивает сравнительно быстрые транзакции через механизм консенсуса, основанный на идентичности (полномочия участников).
Это просто другое название для BFT-подобной приватной блокчейн-среды, где одобренные аккаунты имеют право валидации транзакций и блоков, при этом процесс полностью автоматизирован. Протокол PoA позволяет участникам заработать право стать валидаторами, поэтому существует стимул сохранить авторитет и впоследствии.
2.3. Proof-of-Brain (PoB) (Доказательство «мозговой деятельности»)
Принцип: мотивация участников создавать и курировать контент, который будет храниться в блокчейне.
Производительность: средняя.
Среда DLT: публичный/ приватный блокчейн.
Завершенность: вероятностная.
Пример использования: Basic Attention Token, Steem, Golos.
Что, если ваш бизнес — это СМИ или социальная сеть? Что, если вы связываете создателей контента с рекламодателями, но никто из них не доверяет текущей системе? На сегодняшний день экономика совместного потребления и экономика добавленной стоимости требуют новых моделей для решения этих проблем.
Протокол Proof-of-Brain (PoB) основан на активности пользователей и поощряет качественный контент на соответствующих платформах. Майнинг происходит путем создания или взаимодействия с контентом через голосование (лайки и комментарии) или просмотры. Чем больше лайков, комментариев или подтвержденных просмотров на странице, тем больше монет может быть намайнено. Этот подход, основанный на коллективном разуме, делает этот алгоритм как умным, так и социальным.
2.4. Proof-of-Capacity (PoC) (Доказательство ресурсов)
Принцип: чем больше места на жестком диске вы выделите, тем выше ваши шансы принять участие в майнинге.
Производительность: высокая.
Среда DLT: публичный блокчейн.
Завершенность: вероятностная.
Примеры использования: Burst.
Proof-of-Space (Доказательство свободного места), Proof-of-Storage (Доказательство места для хранения) или Proof-of-Capacity (Доказательство ресурсов). Называйте как угодно. Предложенный еще в 2014 году, этот алгоритм является одновременно энергоэффективным и позиционируется как равномерно распределенный.
Концепция «мегабайты как ресурсы» предполагает использование значительного объема памяти, чтобы заполнить его данными. Чем больше памяти выделит участник, тем выше его шансы сгенерировать блок. Storj работает по аналогичному протоколу с названием Proof-of-Retrievability (Доказательство извлекаемости), но с небольшими изменениями.
2.5. Proof-of-Contribution (PoCo) (Доказательство вклада)
Принцип: механизм консенсуса вне блокчейна, основанный на вычислительной мощности.
Производительность: низкая.
Среда DLT: публичный блокчейн.
Завершенность: немедленная.
Пример использования: iExec, CyberVein.
Proof-of-Contribution основан на мощности компьютера в сети и подобен протоколу Proof-of-Research (Доказательство проведенного исследования), который вознаграждает добровольцев за то, что они тратят свою компьютерную мощность на большие научные вычисления. Например, на исследование данных астрономических наблюдений SETI@Home на платформе BOINC.
Примером протокола PoCo является iExec — это децентрализованный проект облачных вычислений на основе блокчейна. Он использует идею грид-вычислений (Desktop Grid), также называемую «вычислениями на волонтерской основе» (Volunteer Computing). Эта форма распределенных вычислений означает сбор компьютерных ресурсов через интернет, которые мало используются, для их объединения в «виртуальный суперкомпьютер». Таким образом можно параллельно запускать очень большие приложения за долю от стоимости традиционного суперкомпьютера.
2.6. Proof-of-Stake-Time (PoST) (Доказательство доли времени)
Принцип: Улучшение протокола PoS, при котором предпочтение отдается более старым нодам.
Производительность: высокая.
Среда DLT: публичный блокчейн.
Завершенность: вероятностная.
Пример использования: Peercoin, VeriCoin.
В протоколе Proof-of-Stake-Time (PoST) размер хэша меньше, чем кратное количество монет, доля времени и цель. Таким образом, участники с меньшим количеством токенов по-прежнему имеют возможность участвовать в майнинге (майнинг в проектах на основе протокола Proof-of-Stake). Это несколько похоже на протокол Proof-of-Importance (PoI) (Доказательство важности), используемый проектом NEM, который мы рассмотрели в первой статье, но с небольшими отличиями. Например, когда мощность сети ниже, время простоя увеличивается.
2.7. Leased-Proof-of-Stake (LPoS) (Арендованное доказательство доли)
Принцип: дать возможность всем участвовать в майнинге через протокол PoS.
Производительность: высокая.
Среда DLT: публичный/приватный блокчейн.
Завершенность: вероятностная.
Пример использования: WAVES.
Leased Proof-of-Stake — это гибридная форма алгоритма PoS. По сути, мелкие участники, которые не имеют достаточной доли и, следовательно, не могут майнить новые монеты, получают возможность сдавать свои крипто-активы полным нодам. Так первые получают возможность участвовать в майнинге и извлекают прибыль, а вторые — более высокую вероятность создания следующего блока, и вся сеть становится более децентрализованной.
Это напоминает майнинг пулы, которые чаще всего обслуживают сеть Биткоин. Более того, система LPoS позволяет участникам в любое время делать с монетами все, что угодно: потратить их или обменять на альткоины. В этом случае «арендный» договор автоматически аннулируется, и владелец арендованных монет больше не может рассчитывать на долю.
Заключение
Мы рассмотрели множество новых протоколов консенсуса, которые помогают предприятиям использовать технологию блокчейна и лучше всего соответствуют их потребностям. В начале мы упомянули наиболее востребованные протоколы BFT, которые больше присущи частным блокчейн-сетям. Затем мы перешли к более специализированным алгоритмам, играющим роль в токенизации физических активов, создании, курировании и защите интеллектуальной собственности, а также обеспечении космических скоростей даже в публичной среде.
оригинал https://dou.ua/lenta/articles/konsensus-protocols-2/