- BFT-алгоритм в сети Free TON
- Византийская Отказоустойчивость (BFT)
- Виды протоколов
- Proof-of-Work
- Proof-of-Stake
- Byzantine Fault Tolerance (BFT)
- Сравнение Catchain с другими BFT-алгоритмами
- Роль протоколов
- Пример решения задачи
- Протоколы набирающие популярность
- Delegated Proof-of-Stake (DPoS)
- Leased Proof of Stake (LPoS)
BFT-алгоритм в сети Free TON
Алгоритм BFT необходим для достижения консенсуса всех участников сети (валидаторов) о включении или транзакциях в новый блок или их отклонении в случае ошибки (или злонамеренных действий).
В бесплатном блокчейне TON используется проприетарная версия BFT под названием Catchain. Его разработал Николай Дуров. Его работа над Catchain , где Telegram опубликовал файлы и документацию TON. Подробное описание алгоритма консенсуса Catchain можно найти на бесплатном сайте разработчиков TON.
Этапы достижения консенсуса в Catchain:
- Выбор валидаторов на основе размера ставки, то есть количества монет, которые валидатор использует для создания блоков.
- Начало процесса проверки.
- Несколько раундов изготовления блоков.
В каждом раунде для производства блоков автоматически выбираются несколько валидаторов, и один валидатор отвечает за голосование при генерации блока. Вес голоса каждого участника пропорционален размеру ставки: чем больше количество монет, тем больше голос. Время каждого хода ограничено. Чтобы децентрализовать работу, валидаторы меняют роли каждый раунд.
Во время каждого раунда валидаторы:
- Обмен сообщениями о возможных блоках («кандидатах»).
- Проверять.
- Выберите «кандидатов».
- Проголосуйте за выбор одного из них, подписавшись их закрытыми ключами.
Для повышения производительности каждый валидатор взаимодействует только со случайно выбранной группой других валидаторов и использует полученные от них данные для принятия решений во время раунда.
Если запрашивающий блок получает не менее двух третей от общего «веса» голосов, он принимается в этом раунде и добавляется к общей цепочке. Если две трети голосов не поданы за какого-либо «кандидата» в назначенное время, проводится новое голосование. Влияние злодеев на голосование исключается, если их «вес» в голосовании составляет менее одной трети.
В результате достижения консенсуса в бесплатном блокчейне TON появляется новый блок.
Византийская Отказоустойчивость (BFT)
Проще говоря, византийская отказоустойчивость (BFT) — это свойство системы, способной противостоять классу отказов из-за проблем византийских генералов. Это означает, что система BFT может продолжать работать, даже если некоторые узлы неактивны или действуют злонамеренно.
Существует несколько возможных решений проблемы византийских генералов и, следовательно, несколько способов построения системы BFT. Точно так же существуют различные подходы к блокчейну для достижения византийской отказоустойчивости, и это подводит нас к так называемым консенсусным алгоритмам.
Виды протоколов
Не все блокчейны созданы равными, и многие из них сильно различаются в зависимости от типа используемого алгоритма консенсуса.
изображение кликабельно
Proof-of-Work
Суммируя:
- Proof-of-Work — это согласованный алгоритм, который защищает децентрализованную сеть блокчейнов Биткойна.
- Биткойн-майнеры пытаются решить сложные математические уравнения с помощью энергоемкого процесса, чтобы генерировать новые блоки и получать биткойн-вознаграждения.
Самый известный алгоритм консенсуса — Proof-of-Work (PoW). Он представлен такими монетами, как Bitcoin, Ethereum и Litecoin. PoW был первым таким алгоритмом и продолжает широко использоваться сегодня.
PoW — это простая конструкция, известная своей высокой устойчивостью к кибератакам. Этот подход полностью полагается на вычислительную мощность каждого члена сети для решения проблем и достижения консенсуса по транзакции.
Тот факт, что он требует ввода данных в свою сеть, очень затрудняет взлом PoW (для любой успешной атаки потребуется не менее 50% мощности хэширования всей сети), но это также делает его чрезвычайно энергоемким. По некоторым оценкам, Биткойн потребляет 32 ТВтч энергии в год, что примерно равно количеству электроэнергии, потребляемой всей Данией.
В результате многие инсайдеры отрасли считают, что, хотя PoW является надежным, протокол уже теряет некоторую актуальность, а такие монеты, как Ethereum, как говорят, изучают альтернативные меры для защиты своих децентрализованных сетей. Кроме того, FOTON подсчитал, что вся криптоиндустрия может сэкономить около 36 миллиардов долларов в год, отказавшись от PoW.
Proof-of-Stake
По крайней мере, Ethereum рассматривает Proof-of-Stake (PoS) как наследника престола блокчейна. PoS действует как гораздо более энергоэффективная и децентрализованная реализация алгоритма консенсуса.
Переход криптогиганта Ethereum от PoW к PoS показывает потенциал альтернативного подхода.
передача Proof-of-Work в Proof-of-Stake
Там, где PoW требует, чтобы сеть работала вместе для создания узлов, PoS, скорее всего, будет работать. Совет Blockchain определяет PoS следующим образом:
«Доказательство ставки» основано на вероятностной модели выбора валидаторов, в которой вероятность того, что валидатор получит блок решения, прямо пропорциональна количеству монет, которые они вносят в качестве обеспечения для защиты сети. Данная гарантия может быть отозвана, если валидатором было обнаружено нарушение. Основная математическая головоломка аналогична той, что используется в Proof of Work. Однако его сложность значительно снижена»
Byzantine Fault Tolerance (BFT)
Byzantine Fault Tolerance (BFT) получил свое название от старой математической головоломки Задача византийских генералов. В известной загадке несколько византийских генералов окружили город своими армиями: они должны были договориться о действиях для атаки или отступления. Если решение не будет согласовано генералами, операция приведет к катастрофе.
суть задачи
Создатели алгоритма консенсуса увидели связь между проблемой византийских генералов и проблемой поиска консенсуса в распределенной базе данных блокчейна. В некоторых приложениях, где критически важна целостность цепочки, например в платформах управления цифровыми активами, создание быстрого соединения между сетями является краеугольным камнем использования блокчейна. Этот подход консенсусного алгоритма основан на массовой координации.
Преимущество подхода BFT заключается в том, что это экономичное решение, которое можно масштабировать. Однако такой подход пока не завоевал доверия сообщества.
Сравнение Catchain с другими BFT-алгоритмами
Алгоритм BFT используется в других сетях PoS (но не во всех). Близкими к Catchain в этом смысле являются PBFT (Practical Byzantine Fault Tolerance), Tendermint и Algorand.
PBFT. Самый старый в этом списке алгоритм PBFT был описан в 1999 году Мигелем Кастро и Барбарой Лисков. В нем лидер меняется в процессе достижения консенсуса, только если он плохо работает. В Catchain лидер меняется случайным образом каждый раунд. Кроме того, в PBFT все узлы обмениваются сообщениями друг с другом, в то время как в Catchain количество сообщений намного меньше: исходящее сообщение передается только небольшой группе соседей, которые отправляют их дальше.
Тренд. Этот алгоритм ближе всего к Catchain, чем другие. В нем «главный» узел также меняется каждый раунд. Но если узлы в Tendermint используют местное время для расчета тайм-аутов, в Catchain они синхронизируются с одним глобальным временем. Обе сети используют протокол Gossip для распространения сообщений.
Альгоранд. Этот протокол использует меньшее количество узлов голосования (так называемый «комитет») на каждом этапе консенсуса. Выборы являются секретными: только пользователь знает, что он избран (даже если он может доказать это другим), голосуют только члены «комитета» (шифрование устраняет угрозу безопасности). Согласие в Algorand не требует синхронизации времени, все узлы должны иметь только задержку тайм-аута. Как и Catchain, протокол Gossip используется для отправки сообщений.
Роль протоколов
Роль алгоритмов консенсуса заключается в достижении уровня надежности для сети, построенной на серии узлов (устройства, подключенные к другим устройствам как часть компьютерной сети). Это означает, что при совершении транзакции алгоритм начнет работать, обмениваясь данными по сети, чтобы проверить, может ли это действие иметь место.
Тот же процесс также применяется для создания новых узлов данных в цепочке блоков или при синхронизации сетевого оборудования для обеспечения согласованности всего консенсуса.
Алгоритмы консенсуса должны быть достаточно интеллектуальными, чтобы предвидеть ошибки связи в сети.
Алгоритм автоматически предполагает, что некоторые процессы и системы будут недоступны, и в результате некоторые коммуникации будут потеряны. Чтобы противостоять этому, алгоритм консенсуса должен быть отказоустойчивым и работать в направлении получения заранее определенного консенсуса или одобрения, по крайней мере, от большинства машин в сети.
Пример решения задачи
Представим, что есть генерал и 3 лейтенанта. Генерал, лейтенант 1 и лейтенант 2 верны, а лейтенант 3 — предатель. Для достижения консенсуса необходимо 3 решения. Вот как это сделать:
Шаг 1. Генерал отправляет приказ об атаке (значение Y) с указанием точного времени действия.
Шаг 2. Лейтенанты обмениваются приказами. Верные офицеры (лейтенант 1 и лейтенант 2) передают это значение Y двум другим. Но предатель (лейтенант 3) отправляет другое значение (X) двум верным офицерам.
Шаг 3. Каждый лейтенант принимает личное решение на основе решений других членов.
Лейтенант 1 берет Y у генерала, Y у лейтенанта 2 и X у лейтенанта 3 (предатель) и выбирает Y.
Лейтенант 2 получает значение Y от генерала, Y от лейтенанта 2 и X от лейтенанта 3 (предателя) и выбирает Y.
Лейтенант 3 получает Y от генерала, Y от лейтенанта 1 и Y от лейтенанта 2. Но поскольку он предатель, он может принять любое решение между ними (Y или X).
Производство. Такое же решение приняли двое из трех лейтенантов — Ю. Но это тоже приказ генерала. Консенсус был достигнут. Этот метод, основанный на принятии решений на основе решений двух третей других участников, называется византийской отказоустойчивостью (BFT).
Протоколы набирающие популярность
Delegated Proof-of-Stake (DPoS)
Этот алгоритм очень похож на PoS, но пользователи с большим количеством монет могут голосовать и выбирать представителей (других пользователей, которым они доверяют) для проверки транзакций, а высшие представители (которые получили наибольшее количество голосов) могут подтверждать транзакции.
Пользователи также могут делегировать свои права голоса другим пользователям, которым они доверяют, чтобы они могли голосовать за других членов сообщества от их имени.
Leased Proof of Stake (LPoS)
Leased Proof of Stake — это улучшенная версия алгоритма Proof of Stake (PoS). Традиционно в алгоритме Proof of Stake каждый узел содержит определенное количество криптовалюты и может добавить следующий блок в цепочку блоков. Однако с арендованным доказательством ставки пользователи могут сдавать свои монеты в аренду пользователям, которые владеют полными узлами).
как работает LPoS
Чем больше сумма узла (включая арендованные монеты), тем больше шансов, что для создания следующего блока будет выбран полный узел. Если узел выбран, пользователь получит процент от комиссии за транзакцию, которую собирает узел. Протокол позволяет зарабатывать деньги на майнинге без проведения самого майнинга.