Модель
IntentionBFT выдерживает византийского противника, контролирующего до трети всей ставки. Честная ставка поэтому всегда составляет больше двух третей, а стандартный кворум — это любой набор валидаторов, чья суммарная ставка превышает две трети; на этих страницах он называется кворумом по весу ставки. Сеть частично синхронна: до точки стабилизации задержки произвольны, после неё задержки между честными валидаторами ограничены.Оракульный sidecarу каждого валидатора
Валидатор проверяет и подписываетв том числе свежесть по настроенным порогам
Gossip между валидаторамикак сообщение сети консенсуса
Сертифицированные ценыпо эпохам и раундам
Доступность цены управляет производством блоковВалидатор имеет право предложить блок, только если может предъявить валидные наблюдения цен за текущий раунд, — поэтому подписи, фиксирующие транзакции, фиксируют и цены, по которым эти транзакции рассчитываются.
Чего это не утверждаетЭто связывает цену с транзакцией, но не делает цену правильной: консенсус сертифицирует, что кворум валидаторов отправил эти наблюдения в этом раунде, и не более того.
Фиксация порядка
Порядок транзакций внутри блока поднят до объекта, который фиксирует консенсус, а не оставлен побочным продуктом исполнения. Хеш блока покрывает упорядоченную полезную нагрузку, поэтому любая перестановка после консенсуса делает недействительными подписи, которыми он был зафиксирован. Следствие: как только блок финализирован, кворум по весу ставки подписал обязательство именно об этом порядке, и ни один честный валидатор не подписал другой порядок тех же транзакций в том же раунде. А раз исполнение идёт последовательно поверх этого зафиксированного порядка, детерминированное воспроизведение перестаёт быть внутренней договорённостью реализации и становится свойством, которое может проверить кто угодно.Свобода лидера внутри одного предложения — какие из доступных пакетов включить и как их расположить — остаётся остаточной поверхностью атаки; её смягчают репутация лидера и то, что без валидных наблюдений цен лидер вообще не может произвести блок. Более сильные конструкции честного упорядочивания рассматриваются как кандидат на будущее обновление.
Доступность пакетов
В наивном протоколе лидер предлагает блок, полезная нагрузка которого несёт все транзакции раунда, из-за чего размер сообщений консенсуса привязан к пропускной способности. IntentionBFT отделяет распространение данных от упорядочивания. Валидаторы непрерывно распространяют пакеты транзакций в фоне. Каждый пакет подтверждается, пока его источник не сможет доказать доступность по весу ставки, и только тогда предложение может на него сослаться — по дайджесту, а не по содержимому. Сообщения консенсуса остаются небольшими независимо от пропускной способности, а зафиксированный блок всегда воспроизводим, потому что ни один блок не может ссылаться на данные, которые держало лишь византийское меньшинство.Сертификация цен
Валидаторы — это ещё и наблюдатели цен, а блок несёт в себе те цены, по которым он был исполнен.Валидаторыконсенсус · мемпул · оракульный sidecar · ядро · хранилище
Единственные, кто голосует
Полные узлы валидаторовследуют за блоками и исполняют их; не голосуют
Изоляция: они принимают публичный трафик чтения и соединения с пирами, чтобы валидаторы не были открыты в интернет
Публичные полные узлызапустить может любой; следуют, исполняют, отдают чтения
Открытый уровень
Клиентыфронтенды · торговые агенты · маркет-мейкеры · индексаторы
Подключаются к полным узлам, а не к валидаторам. Клиент, которому нужна самая быстрая и полная картина, запускает собственный.
Четыре уровня, от консенсуса вовне
Зачем нужен уровень
Репутация лидера
Лидеры выбираются раунд за раундом детерминированной ротацией по весу ставки, дополненной репутационной эвристикой на скользящем окне. Валидатор, у которого предложения срываются раз за разом — а это признак недоступности или враждебного поведения, — понижается в последующих выборах, и его слоты уходят тем, кто в последнее время отвечал исправно: недоступный валидатор не должен тормозить продвижение, занимая лидерство в закреплённых за ним слотах. Раз право на предложение зависит от наблюдений цен, репутация не должна ещё и концентрировать лидерство у валидаторов с лучшим доступом к рыночным данным. Требование разнообразия площадок — наблюдения берутся из нескольких независимых источников по каждому инструменту — закрывает этот путь.Эпохи и переконфигурация
Время организовано в эпохи. Внутри эпохи набор валидаторов и большинство параметров постоянны. На границах эпох они могут измениться через переконфигурацию, санкционированную управлением протоколом: изменения набора валидаторов, изменения параметров консенсуса, обновления параметров риска и экстренные действия. Переходы атомарны — каждый честный валидатор видит один и тот же переход на одной и той же высоте блока.Топология сети
Лидер
Валидаторы
Блокчейн
Агрегат 2f+1 по весу ставки
Порядок и цены теперь неизменны
Предложить блок — дайджесты пакетов и сертифицированные цены
Проверить доступность, порядок и цены
Голос
Сертифицировать раунд
Зафиксировать
Что дальше
Мемпул
Что доходит до консенсуса, в каком порядке и что отбрасывается.
IntentionKernel
Что происходит с блоком после того, как его порядок и цены зафиксированы.
Оракул
Как получается индексная цена до того, как её подпишет валидатор.
Запуск узла
Почему набор валидаторов закрыт и как узнать о вступлении в него.