Визначення
Tower BFT — це алгоритм консенсусу мережі Solana, який визначає канонічну гілку блоків за умови, коли валідатори не можуть одразу досягти згоди. Це адаптація класичного протоколу pBFT (Practical Byzantine Fault Tolerance), оптимізована для роботи з криптографічним годинником Proof of History. Назва походить від ключової метафори протоколу: кожен валідатор послідовно будує «вежу» своїх голосів, і саме висота цієї вежі визначає його вагу при виборі правильної гілки.
Як працює
Tower BFT вирішує одну завдання: коли мережа тимчасово роздвоюється, яка гілка має стати остаточною? Алгоритм відповідає на це питання через чотири механізми.
Голосування через підпис PoH-хешів. Замість того, щоб обмінюватися окремими повідомленнями про кожен блок, валідатор підписує хеш Proof of History відповідного слота. Цей підпис є одночасно голосом і доказом того, що валідатор знає точний порядок подій.
Механізм пропуску (skip). У класичному pBFT кожен валідатор повинен проголосувати за кожний блок, що створює O(n²) мережевий трафік. Tower BFT дозволяє валідатору пропустити слоти, за які він не встиг проголосувати, і одразу підписати пізніший хеш. Це різко зменшує навантаження на мережу, але скидає висоту вежі цього валідатора — він втрачає накопичену вагу і починає будувати вежу знизу.
Зростаючий період блокування (lockout). Після голосування за блок на висоті h валідатор не може голосувати за конкуруючий блок на тій самій висоті. Чим вище вежа, тим довший період блокування — він зростає експоненційно. Це ускладнює подвійне голосування і робить відкат гілки дорожчим.
Вибір гілки (fork choice). Мережа обирає гілку з найбільшою сумарною вагою веж усіх валідаторів, де вага кожного голосу пропорційна стейку валідатора. Гілка, що набрала голоси більш ніж двох третин загального стейку, вважається фіналізованою.
Приклад
Мережа тимчасово роздвоїлась: частина валідаторів побачила блок у слоті 100, інша частина — конкуруючий блок у тому ж слоті. Валідатори зі стейком 60% підписали хеш слота 100 для гілки A, 30% — для гілки B, 10% ще не проголосували. Оскільки сумарна вага веж у гілці A більша, валідатори, які ще не визначились, приєднаються до неї. Гілка B відкидається, а блоки в ній стають осиротілими.
Типова помилка
Вважати, що Tower BFT замінює Proof of History або виконує ту саму функцію. Це дві різні завдання: Proof of History впорядковує події в часі і дає спільний часомір, а Tower BFT використовує цей часомір, щоб вирішити, яка гілка блоків є правильною, коли виникає розбіжність. Без PoH-хешів Tower BFT не міг би реалізувати механізм пропуску і змушений був би працювати як класичний pBFT із високим мережевим навантаженням.
Пов'язані матеріали
Внутрішні переходи
- Proof of History — криптографічний годинник, який робить можливим механізм пропуску в Tower BFT
- Firedancer — альтернативна реалізація валідатора, яка зберігає сумісність із протоколом Tower BFT