Фіналізація блоку Етеріуму займає близько 15 хвилин. Однак ми можемо зробити так, щоб механізм консенсусу Етеріуму перевіряв блоки ефективніше, і значно скоротити час до фінальності. Замість того, щоб чекати 15 хвилин, блоки можуть бути запропоновані та фіналізовані в одному слоті. Ця концепція відома як однослотова фіналізація (SSF).
Що таке фінальність?
У механізмі консенсусу Етеріуму на основі доказу частки (PoS) фінальність означає гарантію того, що блок не може бути змінений або видалений з блокчейну без спалювання щонайменше 33% від загальної кількості застейканих ETH. Це «криптоекономічна» безпека, оскільки впевненість ґрунтується на надзвичайно високій вартості, пов'язаній зі зміною порядку або вмісту ланцюга, що утримає будь-якого раціонального економічного суб'єкта від таких спроб.
Навіщо прагнути до швидшої фінальності?
Поточний час до фінальності виявився занадто довгим. Більшість користувачів не хочуть чекати 15 хвилин на фінальність, і це незручно для застосунків та бірж, які можуть потребувати високої пропускної здатності транзакцій, чекати так довго, щоб бути впевненими в незворотності своїх транзакцій. Наявність затримки між пропозицією блоку та його фіналізацією також створює можливість для коротких реорганізацій, які зловмисник може використати для цензурування певних блоків або вилучення MEV. Механізм, який займається поетапним оновленням блоків, також є досить складним і кілька разів виправлявся для закриття вразливостей безпеки, що робить його однією з частин кодової бази Етеріуму, де з більшою ймовірністю можуть виникати непомітні помилки. Усі ці проблеми можна було б усунути, скоротивши час до фінальності до одного слота.
Компроміс між децентралізацією, часом та накладними витратами
Гарантія фінальності не є миттєвою властивістю нового блоку; для фіналізації нового блоку потрібен час. Причина цього полягає в тому, що валідатори, які представляють щонайменше 2/3 від загальної кількості застейканих ETH у мережі, повинні проголосувати за блок («атестувати»), щоб він вважався фіналізованим. Кожен вузол-валідатор у мережі повинен обробляти атестації від інших вузлів, щоб знати, чи досяг блок цього порогу у 2/3.
Чим менше часу відводиться на досягнення фіналізації, тим більше обчислювальної потужності потрібно кожному вузлу, оскільки обробка атестацій має виконуватися швидше. Крім того, чим більше вузлів-валідаторів існує в мережі, тим більше атестацій потрібно обробити для кожного блоку, що також збільшує необхідну обчислювальну потужність. Чим більше обчислювальної потужності потрібно, тим менше людей можуть брати участь, оскільки для запуску кожного вузла-валідатора потрібне дорожче обладнання. Збільшення часу між блоками зменшує обчислювальну потужність, необхідну кожному вузлу, але також подовжує час до фінальності, оскільки атестації обробляються повільніше.
Тому існує компроміс між накладними витратами (обчислювальною потужністю), децентралізацією (кількістю вузлів, які можуть брати участь у валідації ланцюга) та часом до фінальності. Ідеальна система балансує між мінімальною обчислювальною потужністю, максимальною децентралізацією та мінімальним часом до фінальності.
Поточний механізм консенсусу Етеріуму збалансував ці три параметри шляхом:
- Встановлення мінімального стейку у 32 ETH. Це встановлює верхню межу кількості атестацій валідаторів, які повинні оброблятися окремими вузлами, і, отже, верхню межу обчислювальних вимог для кожного вузла.
- Встановлення часу до фінальності на рівні ~15 хвилин. Це дає достатньо часу валідаторам, запущеним на звичайних домашніх комп'ютерах, для безпечної обробки атестацій для кожного блоку.
З поточною конструкцією механізму, щоб скоротити час до фінальності, необхідно зменшити кількість валідаторів у мережі або збільшити вимоги до обладнання для кожного вузла. Однак існують покращення, які можна внести у спосіб обробки атестацій, що дозволять враховувати більше атестацій без збільшення накладних витрат на кожному вузлі. Більш ефективна обробка дозволить визначати фінальність в межах одного слота, а не протягом двох епох.
Шляхи до SSF
Поточний механізм консенсусу об'єднує атестації від кількох валідаторів, відомих як комітети, щоб зменшити кількість повідомлень, які кожен валідатор повинен обробити для валідації блоку. Кожен валідатор має можливість атестувати в кожній епосі (32 слоти), але в кожному слоті атестує лише підмножина валідаторів, відома як «комітет». Вони роблять це шляхом поділу на підмережі, в яких кілька валідаторів обираються як «агрегатори». Кожен з цих агрегаторів об'єднує всі підписи, які він бачить від інших валідаторів у своїй підмережі, в один сукупний підпис. Агрегатор, який включає найбільшу кількість індивідуальних внесків, передає свій сукупний підпис пропонувачу блоку, який включає його в блок разом із сукупним підписом від інших комітетів.
Цей процес забезпечує достатню пропускну здатність для того, щоб кожен валідатор міг проголосувати в кожній епосі, оскільки 32 slots * 64 committees * 256 validators per committee = 524,288 validators per epoch. На момент написання статті (лютий 2023 року) налічується ~513 000 активних валідаторів.
У цій схемі кожен валідатор може проголосувати за блок лише шляхом розподілу своїх атестацій по всій епосі. Однак потенційно існують способи покращити механізм так, щоб кожен валідатор мав можливість атестувати в кожному слоті.
З моменту розробки механізму консенсусу Етеріуму було виявлено, що схема агрегації підписів (BLS) є набагато більш масштабованою, ніж вважалося спочатку, а здатність клієнтів обробляти та перевіряти підписи також покращилася. Виявляється, що обробка атестацій від величезної кількості валідаторів насправді можлива в межах одного слота. Наприклад, якщо один мільйон валідаторів голосуватиме двічі в кожному слоті, а час слота буде скориговано до 16 секунд, вузлам потрібно буде перевіряти підписи з мінімальною швидкістю 125 000 агрегацій на секунду, щоб обробити всі 1 мільйон атестацій в межах слота. Насправді звичайному комп'ютеру потрібно близько 500 наносекунд для перевірки одного підпису, що означає, що 125 000 перевірок можна виконати за ~62,5 мс — що значно нижче порогу в одну секунду.
Подальшого підвищення ефективності можна було б досягти шляхом створення суперкомітетів, наприклад, зі 125 000 випадково обраних валідаторів на слот. Лише ці валідатори отримують право голосувати за блок, і тому лише ця підмножина валідаторів вирішує, чи буде блок фіналізований. Чи є це гарною ідеєю, залежить від того, наскільки дорогою, на думку спільноти, має бути успішна атака на Етеріум. Це пов'язано з тим, що замість того, щоб вимагати 2/3 від загальної кількості застейканого етеру, зловмисник міг би фіналізувати нечесний блок за допомогою 2/3 застейканого етеру у цьому суперкомітеті. Це все ще є активною сферою досліджень, але здається правдоподібним, що для набору валідаторів, достатньо великого, щоб взагалі вимагати суперкомітетів, вартість атаки на один з таких підкомітетів буде надзвичайно високою (наприклад, вартість атаки, деномінована в ETH, становитиме 2/3 * 125,000 * 32 = ~2.6 million ETH). Вартість атаки можна регулювати шляхом збільшення розміру набору валідаторів (наприклад, налаштувати розмір валідаторів так, щоб вартість атаки дорівнювала 1 мільйону етерів, 4 мільйонам етерів, 10 мільйонам етерів тощо). Попередні опитування (opens in a new tab) спільноти свідчать про те, що 1-2 мільйони етерів є прийнятною вартістю атаки, що передбачає ~65 536 - 97 152 валідаторів на суперкомітет.
Однак перевірка не є справжнім вузьким місцем — саме агрегація підписів створює реальні труднощі для вузлів-валідаторів. Для масштабування агрегації підписів, ймовірно, знадобиться збільшити кількість валідаторів у кожній підмережі, збільшити кількість підмереж або додати додаткові рівні агрегації (тобто впровадити комітети комітетів). Частиною рішення може бути дозвіл на використання спеціалізованих агрегаторів — подібно до того, як створення блоків і генерація зобов'язань для даних ролапів будуть передані спеціалізованим білдерам блоків у рамках розділення пропоузера та білдера (PBS) і данкшардингу.
Яка роль правила вибору форка в SSF?
Сьогоднішній механізм консенсусу покладається на тісний зв'язок між гаджетом фінальності (алгоритмом, який визначає, чи 2/3 валідаторів атестували певний ланцюг) і правилом вибору форка (алгоритмом, який вирішує, який ланцюг є правильним, коли є кілька варіантів). Алгоритм вибору форка розглядає лише блоки починаючи з останнього фіналізованого блоку. При SSF не було б жодних блоків для розгляду правилом вибору форка, оскільки фінальність настає в тому ж слоті, в якому пропонується блок. Це означає, що при SSF у будь-який момент часу буде активним або алгоритм вибору форка, або гаджет фінальності. Гаджет фінальності фіналізував би блоки, де 2/3 валідаторів були онлайн і чесно атестували. Якщо блок не може перевищити поріг у 2/3, правило вибору форка вступає в дію, щоб визначити, за яким ланцюгом слідувати. Це також створює можливість підтримувати механізм витоку через неактивність, який відновлює ланцюг, де >1/3 валідаторів переходять в офлайн, хоча і з деякими додатковими нюансами.
Невирішені проблеми
Проблема з масштабуванням агрегації шляхом збільшення кількості валідаторів на підмережу полягає в тому, що це призводить до більшого навантаження на однорангову мережу. Проблема з додаванням рівнів агрегації полягає в тому, що це досить складно спроєктувати і додає затримку (тобто пропонувачу блоку може знадобитися більше часу, щоб отримати відповідь від усіх агрегаторів підмережі). Також незрозуміло, як діяти за сценарієм, коли в мережі більше активних валідаторів, ніж можна реально обробити в кожному слоті, навіть з агрегацією BLS-підписів. Одне з потенційних рішень полягає в тому, що, оскільки всі валідатори атестують у кожному слоті і при SSF немає комітетів, обмеження у 32 ETH на ефективний баланс може бути повністю знято, що означає, що оператори, які керують кількома валідаторами, зможуть консолідувати свій стейк і запускати меншу їх кількість, зменшуючи кількість повідомлень, які вузли-валідатори повинні обробляти для врахування всього набору валідаторів. Це покладається на те, що великі стейкери погодяться консолідувати своїх валідаторів. Також можливо в будь-який час накласти фіксоване обмеження на кількість валідаторів або суму застейканих ETH. Однак це вимагає певного механізму для вирішення того, яким валідаторам дозволено брати участь, а яким ні, що може створити небажані вторинні ефекти.
Поточний прогрес
SSF перебуває на стадії дослідження. Очікується, що його не буде випущено ще кілька років, ймовірно, після інших суттєвих оновлень, таких як дерева Веркла та данкшардинг.
Додаткова література
- Віталік про SSF на EDCON 2022 (opens in a new tab)
- Нотатки Віталіка: Шляхи до однослотової фіналізації (opens in a new tab)
Останнє оновлення сторінки: 6 червня 2026 р.