Николай Дуров представил Catchain — алгоритм консенсуса в Telegram Open Network
TON | Telegram Open Network
В документе от 3 февраля, написанным соучредителем Telegram Николаем Дуровым, изложены детали алгоритма консенсуса Telegram Open Network (TON) под названием Catchain. Предложенное решение представляет собой протокол Byzantine Fault Tolerant (BFT), аналогичный тому, который используется в NEO или Cosmos.
Разработчики Леонид Холодов и Дмитрий Штукенберг из TON Labs также выпустили дополнение к документу Дурова. Они объяснили, что алгоритмы BFT являются попытками решения так называемой «задачи византийских генералов», которая и лежит в основе любого блокчейна, поскольку позволяет узлам сети согласовывать следующий блок, не доверяя друг другу.
Система Catchain фокусируется на проверке каждого блока по мере его создания, как в Cosmos Tendermint или NEO dBFT. Каждый новый блок создается через раунды генерации блоков, в течение которого валидаторы имеют ограниченное время для согласования. Если они этого не сделают, блок будет пропущен.
Каждый валидатор играет свою роль во время процедуры голосования по блокам: одни создают блоки, другие предлагают блок для голосования, а остальные узлы голосуют за предложение. Роли меняются с каждым новым раундом.
Чтобы предотвратить монополизацию консенсуса, алгоритм использует циклическую передачу роли от валидатора к валидатору. Таким образом, для каждого раунда и каждой попытки назначается несколько валидаторов для генерации блоков, а один валидатор назначается на предложение блока для голосования. Поскольку валидаторы меняются ролями при каждой новой попытке, механизм консенсуса не может быть заблокирован невозможностью получить решение от большинства валидаторов.
Ключевая идея здесь состоит в том, чтобы удостовериться, что 2/3 голосов валидаторов для конкретного блока фактически отданы. Пороговое значение в 2/3 является теоретическим, которое позволяет убедиться, что решение принято на основе консенсуса. Любой валидатор взаимодействует только со случайно выбранным подмножеством валидаторов и использует полученные из них данные для принятия решения во время раунда валидации.
В TON участвует не более 100 валидаторов для основного блокчейна (master chain) и от 10 до 30 для каждого шарда (shard chain). Тестирование показало, что блок может генерироваться каждые пять секунд, проходя процедуру полного согласования.
Почему Catchain? Ну, в своем дополнении разработчики приводят цитату из сказки Редьярда Киплинга «Кот, который гулял где хотел»:
Я кот, разгуливаю совсем один, где мне хочется, и для меня все места одинаковы.