Визначення

Fork (від англ. «розвилка») — це розбіжність станів блокчейна, за якої різні ноди мають різне уявлення про те, який слот є останнім. У контексті Solana fork означає ситуацію, коли два або більше валідатори пропонують різні блоки для одного й того ж слота, і мережа тимчасово роздвоюється на конкуруючі гілки.

У гілці MEV та протоколу Solana fork — це не навмисне розгалуження правил (як-от хардфорк у Bitcoin), а природний наслідок високої пропускної здатності: лідер може транслювати блок не всім нодам одночасно, і частина мережі бачить одну версію слота, інша — іншу.

Як працює

Механізм fork у Solana базується на кількох принципах:

  • Лідерський слот. Кожен слот має призначеного лідера, який має ексклюзивне право запропонувати блок. Якщо лідер створює кілька різних версій блоку для одного слота (наприклад, через MEV-екстракцію), виникає fork.
  • Голосування валідаторів. Інші валідатори отримують обидві версії й голосують за ту, яку побачили першою або яку вважають коректною. Голоси прив'язуються до конкретної гілки.
  • Вибір найважчої гілки. Solana використовує принцип «найбільшого накопиченого стейку» — канонічною визнається гілка, за яку проголосувала найбільша сукупна вага стейку.
  • Фіналізація. Після досягнення достатньої кількості голосів (supermajority) гілка вважається фіналізованою, а альтернативна — відкидається.

У контексті MEV fork є ключовим інструментом: MEV-боти (наприклад, у екосистемі Jito) можуть створювати кілька версій блоку з різним порядком транзакцій і пропонувати їх різним валідаторам, щоб максимізувати extracted value.

Приклад

Лідер слота 12345 отримує великий обсяг транзакцій, серед яких є арбітражна можливість між двома DEX на Solana. Замість одного блоку лідер формує три версії:

  • Версія A: арбітражна транзакція йде першою, комісія за неї — висока.
  • Версія B: арбітражна транзакція йде другою, комісія — середня.
  • Версія C: арбітражна транзакція відсутня, але блок містить більше звичайних транзакцій.

Лідер надсилає різні версії різним підгрупам валідаторів. Ті, хто отримав версію A, голосують за неї. Якщо версія A набирає найбільшу сукупну вагу стейку, вона стає канонічною, а MEV-бот отримує максимальний прибуток. Версії B і C відкидаються — це й є розв'язання fork.

Типова помилка

Найпоширеніша помилка — плутати fork у Solana з навмисним протокольним хардфорком (як-от розгалуження Ethereum на ETH та ETC). У Solana fork у контексті MEV — це оперативна подія, що триває секунди або мілісекунди, і є частиною нормального роботи консенсусу, а не спробою змінити правила мережі. Інша помилка — вважати, що fork означає «збій мережі». Насправді це передбачуваний механізм вибору канонічної гілки, і мережа проектована так, щоб forks розв'язувалися швидко.

Пов'язані матеріали

Внутрішні переходи

  • Client diversity — як різноманітність клієнтів впливає на стійкість мережі під час fork-сценаріїв.
  • Turbine — протокол розповсюдження блоків у Solana, який зменшує ймовірність та тривалість fork.