Одна важлива технічна деталь, яку я забув згадати — це запропонований перехід від Casper FFG до Minimmit як механізму фінальності.
Щоб узагальнити: Casper FFG забезпечує двоетапну фінальність — кожен атестатор повинен підписати один раз, щоб «обґрунтувати» блок, і ще раз, щоб «фіналізувати» його. Minimmit вимагає лише одного етапу. В обмін на це стійкість Minimmit (у нашій параметризації) знижується до 17%, порівняно з 33% у Casper FFG.
У дискусіях щодо консенсусу Ethereum я завжди був прихильником строгих припущень щодо безпеки: я вимагав досягнення теоретичної межі в 49% стійкості до помилок за умов синхронності, постійно закликав до розробки механізмів відновлення після атаки 51%, запропонував DAS для створення перевірок доступності даних, стійких до домінування зловмисників тощо. Але я без проблем приймаю властивості Minimmit — навіть захоплений ними в деяких аспектах. У цьому дописі я поясню, чому.
Розглянемо точні властивості безпеки як 3SF (не поточної beacon-ланцюга, який у багатьох аспектах надто слабкий, а ідеального 3SF), так і Minimmit.
«Синхронна мережа» означає «затримку мережі менше ніж 1/4 слота», «асинхронна мережа» — «потенційно дуже високу затримку, навіть деякі ноди можуть бути офлайн годинами». Відсотки («атакуючий має <33%») стосуються відсотків активно зарезервованого ETH.
## Властивості 3SF
Випадок синхронної мережі:
* Атакуючий має p < 33%: нічого поганого не відбувається
* 33% < p < 50%: атакуючий може зупинити фінальність (за втрати величезних коштів через inactivity leak), але ланцюг продовжує нормально рухатися
* 50% < p 67%: атакуючий може фіналізувати все за бажанням, добросовісним учасникам набагато складніше зробити minority soft fork
Випадок асинхронної мережі:
* Атакуючий має p 33%: може скасувати фінальність, за втрату величезних коштів через slashing
## Властивості Minimmit
Випадок синхронної мережі:
* Атакуючий має p < 17%: нічого поганого не відбувається
* 17% < p < 50%: атакуючий може зупинити фінальність (за втрату величезних коштів через inactivity leak), але ланцюг продовжує нормально рухатися
* 50% < p 83%: атакуючий може фіналізувати все за бажанням, добросовісним учасникам набагато складніше зробити minority soft fork
Випадок асинхронної мережі:
* Атакуючий має p 17%: може скасувати фінальність, за втрату величезних коштів через slashing
На мою думку, це кращий компроміс. Ось моя логіка:
* Найгірший тип атаки — це не скасування фінальності, а цензура. Причина в тому, що скасування фінальності створює масову публічно доступну доказову базу, яку можна використати для миттєвого знищення мільйонів ETH (тобто мiliардів доларів) у шкоду атакуючого, тоді як цензура вимагає соціальної координації для обходу
* У обох випадках атака на цензуру вимагає 50%
* Атака на цензуру стає *значно складнішою* для координації, коли атакуючий, що цензурує, може самостійно фіналізувати (тобто >67% у 3SF, >83% у Minimmit). Якщо вони не можуть, то при протидії добросовісних учасників виникають два незавершені ланцюги, що борються протягом кількох днів, і користувачi можуть обрати один. Якщо ж вони можуть — немає природного шеллінг-пункту для координації soft fork
* У разі бага клієнта найгірше, що може статися — це фіналізація з багом. У 3SF достатньо, щоб 67% клієнтів мали цей баг, щоб вона відбулася; у Minimmit потрібно 83%
Суть у тому, що Minimmit максималізує кількість ситуацій, де «за замовчуванням виникають два ланцюги, що борються», і це насправді набагато здоровiший і набагато легше вилежуваний результат, нiж «фiналiзацiя неправильного стану».
Ми хочемо, щоб фiнальнiсть означала справжню фiнальнiсть. Тому у ситуацiях невизначеностi (чи то атак, чи програмних багiв) ми повиннi бути готовi до перiодiв у кiлька годин чи днiв, коли ланцюг не фiналiзується, а продовжує рухатися за правилом вибору форку. Це дає нам час подумати й переконатися, який ланцюг правильний.
Крiм того, я вважаю, що «33% slashing для скасування фiнальностi» у 3SF — надмiрний. Якщо навiть 15 мiльйонiв ETH зарезервовано, то це означає 5 мiльйонiв ($10 млрд), що будуть знищенi для скасування ланцюга один раз. Якщо у вас є $10 млрд і ви готовi вчинити безлад такого типу, що порушує закони про комп’ютернi злочини багатьох країн — існують набагато кращi способи витратити цей грош. Навiть якщо ваша мета — зруйнувати Ethereum — існують набагато кращi напрямки атак.
Отже, якщо ми маємо базову гарантiю того, що >=17% будуть знищенi для скасування фiнальностi (що забезпечує Minimmit), ми повиннi порiвнювати двi системи саме з цього рiвня — і за причинами, якими я пояснив вище, я вважаю, що Minimmit показує кращi результати.