Для добавления записи в реестр или блокчейн Стеллар (Stellar) должны соблюдаться 4 основных правила:
- Свобода участия: к процессу консенсуса может присоединиться кто-угодно, при этом никто не обладает абсолютной полнотой принятия решения.
- Низкая латентность: быстрые и дешевые транзакции, подтверждающиеся в течение нескольких секунд.
- Свобода доверия: ноды (участвующие в консенсусной схеме) выбирают собственную группу доверенных нод, а также могут в любой момент аннулировать полномочия участников, поведение которых вызывает недоверие.
- Безопасность: даже если ноды выходят из строя или в сети появляются вредные факторы, консенсус все же может быть достигнут и сеть придет к правильному решению.
Вышеуказанные правила консенсусной схемы Стеллар (Stellar) являются предлагаемым решением консенсусной дилеммы, известной как Проблема Византийских Генералов (BGP). Проблема описывает сценарий, когда большая византийская армия пытается завоевать обороняющийся город и должна коллективно решить атаковать или отступить. Армию, из-за ее большого размера, возглавляет множество генералов, которые должны координировать свои действия через посланников. Корень проблемы состоит в сбоях в коммуникации и ненадежности генералов и посланников, среди которых могут быть предатели. Решить дилемму BGP можно с помощью алгоритма Византийской Терпимости к Ошибкам (BFT), когда все заслуживающие доверия генералы приходят к одному и тому же выводу, несмотря на то, что они потерпели ряд неудач и среди них, возможно, есть предатели. Другими словами, консенсус в распределенной системе (такой как блокчейн или аналог византийской армии) можно найти с помощью алгоритма BFT, отказоустойчивого метода, который выдерживает действия злоумышленников.
В отличие от алгоритма BFT, консенсусный механизм Стеллар (Stellar) представляет собой разновидность Федеративного Византийского соглашения (FBA), называемого Консенсусным Протоколом Стеллар (SCP). В стеллар-сети сбои проявляются в виде неисправных или вредоносных нод. Стеллар (Stellar) может обеспечить безопасность (или гарантию того, что ничего нежелательного, например такого как форк сети, никогда не произойдет), потому что участники его системы могут продолжать голосовать за желаемый результат до тех пор, пока не будет достигнут консенсус. В случае расхождения, то есть если кворум (группа нод, достаточная для достижения консенсуса) не сможет договориться о том, что следует поместить в реестр - тогда вся сеть прекратит работу до момента достижения консенсуса.
Такой конечный результат крайне редок из-за того, что ноды могут выбрать другую группу принадлежащих им доверенных нод. Это подмножество доверенных нод называется кворумным срезом, небольшим фрагментом общего кворума, который должен прийти к соглашению, чтобы закрыть реестр (т.е. добавить блок транзакций в глобальный реестр). Отдельные доверенные ноды будут убеждать друг друга прийти к согласию в пределах кворума. Поскольку срезы кворума пересекаются друг с другом, общая сеть может очень быстро достичь консенсуса.
Вывод
Для того чтобы распределенные системы, такие как блокчейн, были безопасными и масштабируемыми, должны существовать защитные меры (например, Консенсусный Протокол Стеллар), выдерживающие потенциальные сбои и атаки злоумышленников. Собственный Консенсусный Протокол Stellar является разновидностью Федеративного Византийского Соглашения, которое позволяет сети избегать дилеммы BGP и работать в соответствии с четырьмя правилами, описанными выше.