Це спростить життя розробників технологій, а також розробників допоміжної інфраструктури, як-от легких клієнтів.
Автор: Віталік Бутерін, ethresearch
Складач: Songxue, Golden Finance
Основна відмінність між Ethereum та більшістю інших (фінальних) систем підтвердження частки полягає в тому, що Ethereum намагається підтримувати дуже велику кількість об’єктів валідації: зараз ми маємо 895 000 об’єктів валідації, і простий аналіз закону Ципфа показує, що це відповідає десяткам тисячі об’єктів валідатора є унікальними особами/сутностями. Мета цього полягає в тому, щоб підтримати децентралізацію та навіть дозволити звичайним особам брати участь у стейкінгу, не вимагаючи від кожної особи відмовитися від своїх повноважень і передати контроль одному з кількох пулів стейкінгу.
Однак цей підхід вимагає, щоб ланцюжок Ethereum обробляв велику кількість підписів на слот (близько 28 000 сьогодні; 1 790 000 після SSF), що є дуже високим навантаженням. Підтримка цього навантаження вимагає значних технічних жертв:
На перший погляд система агрегування підписів може здатися розумною, але насправді вона створює системну складність, яка пронизує кожен аспект.
Більше того, він навіть не виконує свого призначення. Мінімальна вимога для стекінгу все ще становить 32 ETH, що для багатьох недоступне. Лише з логічного аналізу, у довгостроковій перспективі, здається неможливим, щоб система, де кожен авторизується, справді забезпечувала стейкинг для звичайних людей: якщо Ethereum має 500 мільйонів користувачів, і 10% з них беруть участь, то це означає, що є 100 мільйонів підписів на слот. З точки зору теорії інформації, скорочення обробки в цій конструкції вимагають принаймні 12,5 МБ вільного простору для даних на слот, приблизно стільки ж, скільки потрібно для повного daksharding (!!!). Можливо, це можливо, але вимагати, щоб сама ставка покладалася на вибірку доступності даних, призвела б до значного збільшення складності - навіть якщо це становить лише близько 0,6% населення світу, і це навіть не починає вникати в обчислювальні проблеми перевірки так багато підписів.
Тож замість того, щоб покладатися на криптографів у створенні чарівної кулі (або чарівного бронежилета), яка дає змогу мати постійно зростаючу кількість підписів у кожному часовому інтервалі, я пропоную зробити філософський зсув: відмовитися від таких очікувань у першість . Це значно розширило б простір дизайну PoS і дозволило б значно спростити техніку, зробивши його більш безпечним, дозволивши Helios SNARK безпосередньо на консенсусі Ethereum, і створивши навіть нудні довгострокові схеми підпису, такі як Winternitz. Це також може бути можливим для вирішити задачу про квантовий опір.
Багато блокчейнів, що не належать до Ethereum і стикаються саме з цією проблемою, використовують комітетський підхід до безпеки. У кожному часовому інтервалі вони випадковим чином обирають N валідаторів (наприклад, N приблизно дорівнює 1000), і ці валідатори відповідають за завершення цього часового інтервалу. Варто нагадати, чому цей підхід є неефективним: йому бракує підзвітності.
Щоб зрозуміти чому, уявіть атаку 51%. Це може бути остаточна атака або атака цензури. Щоб здійснити атаку, суб’єкт господарювання, який контролює більшу частину акцій, все одно повинен погодитися здійснити атаку, тобто запустити програмне забезпечення, яке бере участь в атаці, разом із усіма валідаторами, які в кінцевому підсумку обираються до комітету. Математика випадкової вибірки гарантує це. Однак штраф, який вони несуть за таку атаку, невеликий, оскільки більшість валідаторів, які погоджуються на атаку, в кінцевому підсумку залишаються непоміченими, тому що їх не обрали до комітету.
Зараз Ethereum займає протилежну крайність. У разі атаки 51% ставки більшості з усього набору валідаторів атаки будуть зменшені. Поточна вартість атаки становить приблизно 9 мільйонів ETH (приблизно 20 мільярдів доларів США), і це припускає, що мережева синхронізація порушена таким чином, що максимізує вигоду для зловмисника.
Я думаю, що це висока вартість, і це занадто висока вартість, і ми можемо чимось пожертвувати в цьому питанні. Навіть якщо вартість атаки становить 1-2 мільйони ETH, цього цілком достатньо. Крім того, основний ризик централізації, який зараз існує для Ethereum, лежить зовсім в іншому місці: якщо мінімальна сума ставок буде зменшена до нуля, різниця в силі великомасштабних пулів ставок буде невеликою.
Ось чому я пропоную скромне рішення: трохи пожертвуйте підзвітністю валідатора, але все одно зберігайте загальну кількість ETH, що скорочується, досить високою, і в обмін це дає нам менший набір валідаторів, щоб отримати більшість переваг.
Припускаючи традиційний двораундовий протокол консенсусу (подібний до того, який використовує Tendermint і неминуче використовує SSF), кожен валідатор вимагає двох підписів на часовий інтервал. Ми повинні обійти цю реальність. Я бачу три основні шляхи, якими ми можемо це зробити.
У Python є дуже важливий вислів:
Має бути один - бажано тільки один - очевидний спосіб зробити це.
Що стосується вирівнювання ставок, Ethereum наразі порушує це правило, оскільки ми одночасно реалізуємо дві різні стратегії для досягнення цієї мети: (i) невеликий індивідуальний стейкінг і (ii) використання децентралізованого пулу ставки за допомогою технології розподіленого валідатора (DVT). З огляду на наведені вище причини (i) можна підтримувати лише підмножину окремих стейкерів; завжди буде багато людей, чий мінімальний депозит занадто великий. Однак Ethereum сплачує дуже високі технічні витрати на підтримку (i).
Одне з можливих рішень — відмовитися від (i) і піти ва-банк на (ii). Ми можемо збільшити мінімальну суму ставки до 4096 ETH і встановити загальне обмеження в 4096 валідаторів (приблизно 16,7 мільйона ETH). Очікується, що малі стейкери приєднаються до пулу DVT: або надаючи кошти, або ставши операторами вузлів. Щоб запобігти зловживанням з боку зловмисників, роль оператора вузла має бути певним чином обмежена репутацією, і пули конкуруватимуть один з одним, пропонуючи різні варіанти в цьому відношенні. Фінансування буде бездозвільним.
Ми можемо зробити колективні ставки в цій моделі більш «пробачливими», наприклад, обмеживши штрафи. до 1/8 загальної наданої застави. Це зменшить довіру до операторів вузлів, хоча до цього варто підходити обережно через описані тут проблеми.
Ми створюємо два рівні ставок: «важкий» рівень, який потребує 4096 ETH для участі в фіналізації, і «легкий» рівень, який не має мінімальних вимог до ставок (також немає затримок депозиту та зняття коштів і немає ризику скорочення). що додає ще один рівень безпеки. Щоб блок був остаточним, і важкий рівень має завершити його, і легкий рівень потребує >= 50% онлайн-легких валідаторів, щоб підтвердити це.
Ця неоднорідність є корисною для стійкості до цензури та стійкості до атак, оскільки для успішної атаки мають бути пошкоджені як важкий, так і легкий шари. Якщо один шар пошкоджений, а інший ні, ланцюжок зупиниться; якщо пошкоджений важкий шар, його можна покарати.
Ще одна перевага цього підходу полягає в тому, що спрощений рівень може містити ETH, який також використовується як забезпечення в додатку. Головний недолік полягає в тому, що він робить ставки менш рівними, встановлюючи поділ між малими та великими стейкерами.
Наш підхід подібний до запропонованого тут дизайну суперкомітету: для кожного тимчасового інтервалу ми вибираємо 4096 активних валідаторів і ретельно коригуємо цей набір протягом кожного часового інтервалу, щоб забезпечити безпеку.
Однак ми вибрали кілька інших параметрів, щоб отримати «максимальну вигоду» в рамках цієї системи. Зокрема, ми дозволяємо валідаторам брати участь із довільно високими балансами, і якщо валідатор володіє більш ніж певною кількістю M ETH (яка має бути плаваючою), тоді вони беруть участь у комітеті кожної епохи. Якщо верифікатор має N <M ETH,那么他们有 N/M 在任何给定时间段内进入委员会的概率。
Цікавий важіль, який ми маємо тут, полягає в тому, щоб відокремити «вагу» для цілей заохочення від «ваги» для цілей консенсусу: винагорода для кожного валідатора в комітеті має бути однаковою (принаймні для валідаторів з ≤M ETH), щоб зберегти середня винагорода пропорційна. Ми все ще можемо виконати консенсусний підрахунок валідаторів у комітеті, використовуючи ETH як вагу. Це гарантує, що для порушення остаточності потрібна сума ETH, що дорівнює більше однієї третини загальної суми ETH у комітеті.
Аналіз закону Ципфа обчислить кількість ETH наступним чином:
На кожному квадратичному рівні загального балансу кількість валідаторів обернено пропорційна цьому рівню балансу, і загальний баланс цих валідаторів буде однаковим.
Таким чином, комітет матиме рівну кількість ETH для кожного рівня балансу, крім рівнів вище бар’єру M (валідатори завжди входять до комітету).
Таким чином, ми маємо рівень Log2(M) для кожного K валідаторів на вищевказаному рівні та K+K/2+…=2K валідаторів вище рівня. Отже, K=4096/Log2(M)+2.
Найбільший валідатор матиме M*k ETH. Ми можемо працювати у зворотному напрямку: якщо найбільший валідатор має 2^18=262144 ETH, це означає (приблизно) M = 1024 і k = 256.
Загальна сума закладеного ETH становить:
Усі права та інтереси найкращих 512 валідаторів (2^18*1+2^17*2+……+2^10*2^8=2359296)
Плюс менші ставки з випадкової вибірки (2^8*(2^9+2^8+2^7…) приблизно дорівнює 2^8*2^10=2^18)
Загалом ми отримали 2621440 ETH, або вартість атаки склала приблизно 900 тис. ETH.
Основним недоліком цього підходу є те, що він ускладнює протокол випадковим вибором валідаторів таким чином, що дозволяє нам досягти консенсусної безпеки, коли комітет змінюється.
Його головна перевага полягає в тому, що він зберігає впізнавану форму незалежного стекінгу, зберігає єдину систему і навіть дозволяє зменшити мінімальну суму ставки до дуже низьких рівнів (наприклад, 1 ETH).
Якщо ми визначимо, що за протоколом SSF, ми хочемо дотримуватися 8192 підписів, що спростить життя технічних розробників, а також розробників допоміжної інфраструктури, наприклад легких клієнтів. Будь-кому стає легше запускати консенсусний клієнт, і користувачі, ентузіасти стейкингу та інші можуть негайно працювати на цьому припущенні. Майбутнє навантаження протоколу Ethereum більше невідоме: його можна буде покращити в майбутньому за допомогою хардфорків, але лише якщо розробники переконаються, що технологія вдосконалилася достатньо, щоб мати змогу з такою ж легкістю обробляти більше підписів за часовий інтервал.
Залишається вирішити, який із трьох вищезазначених підходів ми хочемо застосувати, чи, можливо, зовсім інший підхід. Це буде питання про те, які компроміси ми готові, особливо як ми вирішуємо пов’язані проблеми, як-от ставка ліквідності, які, ймовірно, можна вирішити окремо від технічних проблем, які зараз стають легшими.