18 ноября 2021

Как защитить транзакции Алисы от акулы: объясняем алгоритм консенсуса Tenderbake на Tezos

4 ноября разработчики Nomadic Labs добавили в главную ветку Tezos Gitlab записи о Tenderbake — новом алгоритме консенсуса. Сейчас они тестируют алгоритм в сети Idiazabalnet. Из улучшений: ускоренная финализация, повышенная безопасность и уменьшенный порог входа в бейкинг.

Объясняем, зачем Tezos новый алгоритм консенсуса, почему Tenderbake лучше текущего Emmy* и как внедрение нового алгоритма повлияет на бейкинг. Мы все упростили и добавили акул, которые грызут оптоволокно на дне Атлантики. Если вы интересуетесь техническими деталями Tenderbake, советуем посмотреть семинар Nomadic Labs или изучить Tezos Gitlab.

Зачем разработчики Tezos меняют алгоритм консенсуса

Один из важных показателей надежности децентрализованной сети — скорость финализации транзакций. Это время или количество блоков, по прошествию которого можно считать, что включенную транзакцию уже нельзя изменить или стереть. Например, в сети Bitcoin транзакция считается окончательной после добавления шести блоков после блока с транзакцией, в Tron — после двадцати. Обратите внимание — транзакция считается финализированной, но не является такой.

Дело в том, что в блокчейн включается самая длинная цепочка блоков из созданных. Существует вероятность появления второй более длинной цепочки, которая заменит раннюю. 

Пример отбрасывания цепочки: 

  1. Последний блок в блокчейне — N0.
  2. Алиса находится в США. Она отправляет транзакцию, местный майнер включает ее в блок Х1 на базе N0 и добавляет его в блокчейн.
  3. Акула в Атлантическом океане кусает оптоволоконный кабель, который соединяет Америку с Европой, и вызывает задержку в передаче сигнала.
  4. Информация о нахождении блока X1 еще не пришла в Европу. Майнер во Франции создает блок Y1 на базе N0, в котором нет транзакции Алисы.
  5. Майнеры начинают создавать блоки уже на основе X1 и Y1 в зависимости от того, какой блок они получили первым. 
  6. Если майнеры будут быстрее создавать блоки на базе Y1, то несколько блоков спустя сеть отбросит всю цепочку на основе X1.
  7. Транзакция Алисы исчезает из блокчейна.

Вероятность отмены транзакции из-за акулы минимальна, но все же существует. 

Поэтому разработчики протокола Tezos хотят перейти с вероятностного алгоритма Emmy* на детерминированный Tenderbake, который гарантированно включает транзакции в блокчейн.

Почему Tenderbake лучше Emmy*

Главное преимущество Tenderbake — в детерминированности: транзакции являются финализированными и точно не исчезнут из блокчейна. Бейкеры не смогут на базе блока N0 создать несколько цепочек, а потом отбросить часть транзакций. Это возможно за счет другого подхода к созданию блоков во время асинхронного периода, когда бейкеры не могут синхронизировать свои действия.

В Bitcoin и других сетях с Nakamoto-style консенсусом майнеры продолжают работать во время асинхронного периода. Именно это и приводит к созданию форков.

Алгоритм Tenderbake предполагает, что асинхронный период когда-нибудь закончится. Хакер завершит DDoS-атаку, интернет-провайдер перезагрузит оборудование, а водолаз отгонит акулу от кабеля. И раз этот период закончится, нужно просто подождать.

Если бейкеры замечают рассинхронизацию с сетью, то приостанавливают создание новых блоков. Но при использовании BFT-алгоритма консенсуса достаточно, чтобы были синхронизированы хотя бы две трети узлов. Таким образом медленное соединение между Америкой и Европой не поставит на паузу всю сеть, если узлы Европы и Азии общаются между собой на нормальной скорости.

В итоге в блокчейне с алгоритмом Tenderbake всегда будет существовать только одна цепочка на базе последнего созданного блока. Для гарантированной финализации транзакций нужно создать только один блок N1 на базе N0. 

Как внедрение Tenderbake повлияет на бейкинг в Tezos

Во-первых, сеть Tezos сможет снизить порог входа в бейкинг. Разработчики Nomadic Labs предложили уменьшить минимальный стейк для запуска узла с 8000 до 6000 tez, а в будущем — снизить его еще.

Во-вторых, больше не нужно ждать, пока вероятность форка упадет до нуля. Бейкеры будут получать награды сразу после подписания или подтверждения блока, а не через пять циклов (12-13 дней).

В-третьих, сеть будет наказывать неактивных бейкеров, которые вредят синхронизации и BFT-консенсусу. Для получения награды за подтверждение блоков узел должен будет подтвердить больше 50% своих слотов. Это простимулирует бейкеров обновить оборудование и тщательнее следить за его работой.

В итоге после внедрения Tenderbake транзакции в сети Tezos станут быстрее и надежнее.

Подписывайтесь на социальные сети Tezos Ukraine, чтобы ничего не пропустить:

  1. Telegram-канал
  2. Facebook.
  3. Twitter на русском и украинском языках
  4. Twitter на английском языке
  5. YouTube-канал
  6. Instagram
  7. LinkedIn
  8. hub на ForkLog

Изначально мы опубликовали этот материал в блоге Tezos Ukraine.