Перейти до основного вмісту

Данкшардинг

Данкшардинг — це те, як Етеріум стає дійсно масштабованим блокчейном, але для цього потрібно кілька оновлень протоколу. Прото-данкшардинг — це проміжний крок на цьому шляху. Обидва оновлення мають на меті зробити транзакції на рівні 2 (l2) якомога дешевшими для користувачів і повинні масштабувати Етеріум до понад 100 000 транзакцій на секунду.

Що таке прото-данкшардинг?

Прото-данкшардинг, також відомий як EIP-4844 (opens in a new tab), — це спосіб для ролапів додавати дешевші дані до блоків. Назва походить від імен двох дослідників, які запропонували цю ідею: Protolambda та Dankrad Feist. Історично склалося так, що ролапи були обмежені в тому, наскільки дешевими вони можуть зробити транзакції користувачів, через те, що вони публікують свої транзакції в CALLDATA.

Це дорого, оскільки обробляється всіма вузлами Етеріуму і зберігається ончейн назавжди, хоча ролапам ці дані потрібні лише на короткий час. Прото-данкшардинг впроваджує блоби даних, які можна надсилати та прикріплювати до блоків. Дані в цих блобах недоступні для EVM і автоматично видаляються через фіксований період часу (на момент написання статті встановлено 4096 епох, або близько 18 днів). Це означає, що ролапи можуть надсилати свої дані набагато дешевше і передавати цю економію кінцевим користувачам у вигляді дешевших транзакцій.

Ролапи — це спосіб масштабування Етеріуму шляхом пакетування транзакцій позамережево з подальшою публікацією результатів в Етеріумі. Ролап по суті складається з двох частин: даних та перевірки виконання. Дані — це повна послідовність транзакцій, яка обробляється ролапом для створення зміни стану, що публікується в Етеріумі. Перевірка виконання — це повторне виконання цих транзакцій якимось чесним учасником («доводжувачем»), щоб переконатися, що запропонована зміна стану є правильною. Для виконання перевірки виконання дані транзакцій повинні бути доступними достатньо довго, щоб будь-хто міг їх завантажити та перевірити. Це означає, що будь-яка нечесна поведінка секвенсора ролапу може бути виявлена та оскаржена доводжувачем. Однак вони не повинні бути доступними назавжди.

Ролапи публікують фіксації своїх даних транзакцій ончейн, а також роблять фактичні дані доступними в блобах даних. Це означає, що доводжувачі можуть перевірити дійсність фіксацій або оскаржити дані, які вони вважають неправильними. На рівні вузла блоби даних зберігаються в клієнті консенсусу. Клієнти консенсусу засвідчують, що вони бачили дані і що вони були поширені в мережі. Якби дані зберігалися назавжди, ці клієнти розрослися б, що призвело б до високих вимог до апаратного забезпечення для запуску вузлів. Натомість дані автоматично видаляються з вузла кожні 18 днів. Засвідчення клієнта консенсусу демонструють, що у доводжувачів було достатньо можливостей для перевірки даних. Фактичні дані можуть зберігатися позамережево операторами ролапів, користувачами або іншими особами.

Як перевіряються дані блобу?

Ролапи публікують транзакції, які вони виконують, у блобах даних. Вони також публікують «фіксацію» даних. Вони роблять це шляхом підбору поліноміальної функції до даних. Потім цю функцію можна обчислити в різних точках. Наприклад, якщо ми визначимо надзвичайно просту функцію f(x) = 2x-1, то ми зможемо обчислити цю функцію для x = 1, x = 2, x = 3, отримавши результати 1, 3, 5. Доводжувач застосовує ту саму функцію до даних і обчислює її в тих самих точках. Якщо вихідні дані змінено, функція не буде ідентичною, а отже, не будуть ідентичними і значення, обчислені в кожній точці. Насправді фіксація та доказ є складнішими, оскільки вони загорнуті в криптографічні функції.

Що таке KZG?

KZG розшифровується як Kate-Zaverucha-Goldberg — імена трьох оригінальних авторів (opens in a new tab) схеми, яка зводить блоб даних до невеликої криптографічної «фіксації» (opens in a new tab). Блоб даних, надісланий ролапом, має бути перевірений, щоб переконатися, що ролап не поводиться зловмисно. Це передбачає повторне виконання доводжувачем транзакцій у блобі, щоб перевірити дійсність фіксації. Концептуально це те саме, як клієнти виконання перевіряють дійсність транзакцій Етеріуму на рівні 1 (l1) за допомогою доказів Меркла. KZG — це альтернативний доказ, який підбирає поліноміальне рівняння до даних. Фіксація обчислює поліном у деяких секретних точках даних. Доводжувач підбирає той самий поліном до даних і обчислює його за тими самими значеннями, перевіряючи, чи збігається результат. Це спосіб перевірки даних, сумісний з методами з нульовим розголошенням, які використовуються деякими ролапами, а згодом і іншими частинами протоколу Етеріум.

Чим була церемонія KZG?

Церемонія KZG була способом для багатьох людей зі спільноти Етеріуму колективно згенерувати секретний випадковий рядок чисел, який можна використовувати для перевірки деяких даних. Дуже важливо, щоб цей рядок чисел не був відомий і не міг бути відтворений будь-ким. Щоб забезпечити це, кожна особа, яка брала участь у церемонії, отримувала рядок від попереднього учасника. Потім вони створювали нові випадкові значення (наприклад, дозволяючи своєму браузеру вимірювати рух миші) і змішували їх з попереднім значенням. Після цього вони надсилали значення наступному учаснику і знищували його зі своєї локальної машини. За умови, що хоча б одна людина в церемонії зробила це чесно, кінцеве значення буде невідомим для зловмисника.

Церемонія KZG для EIP-4844 була відкритою для громадськості, і десятки тисяч людей взяли в ній участь, щоб додати власну ентропію (випадковість). Загалом було зроблено понад 140 000 внесків, що робить її найбільшою у світі церемонією такого роду. Щоб церемонія була скомпрометована, 100% цих учасників повинні були б бути активно нечесними. З точки зору учасників, якщо вони знають, що були чесними, їм не потрібно довіряти нікому іншому, оскільки вони знають, що убезпечили церемонію (вони індивідуально задовольнили вимогу «1 з N чесних учасників»).

Коли ролап публікує дані в блобі, він надає «фіксацію», яку публікує ончейн. Ця фіксація є результатом обчислення полінома, підібраного до даних у певних точках. Ці точки визначаються випадковими числами, згенерованими під час церемонії KZG. Потім доводжувачі можуть обчислити поліном у тих самих точках, щоб перевірити дані — якщо вони отримають ті самі значення, то дані правильні.

Якщо хтось знає випадкові місця, використані для фіксації, йому легко згенерувати новий поліном, який підходить для цих конкретних точок (тобто «колізію»). Це означає, що вони могли б додавати або видаляти дані з блобу і при цьому надавати дійсний доказ. Щоб запобігти цьому, замість того, щоб надавати доводжувачам фактичні секретні місця, вони отримують місця, загорнуті в криптографічну «чорну скриньку» з використанням еліптичних кривих. Вони ефективно перемішують значення таким чином, що вихідні значення неможливо відновити, але за допомогою розумної алгебри доводжувачі та верифікатори все ще можуть обчислювати поліноми в точках, які вони представляють.
Ні данкшардинг, ні прото-данкшардинг не дотримуються традиційної моделі «шардингу», яка має на меті розділити блокчейн на кілька частин. Ланцюги шардів більше не є частиною дорожньої карти. Натомість данкшардинг використовує розподілену вибірку даних у блобах для масштабування Етеріуму. Це набагато простіше реалізувати. Цю модель іноді називають «шардингом даних».

Що таке данкшардинг?

Данкшардинг — це повна реалізація масштабування ролапів, яка почалася з прото-данкшардингу. Данкшардинг забезпечить величезні обсяги простору в Етеріумі для ролапів, щоб вони могли скидати свої стиснуті дані транзакцій. Це означає, що Етеріум зможе з легкістю підтримувати сотні окремих ролапів і зробить мільйони транзакцій на секунду реальністю.

Це працює шляхом розширення кількості блобів, прикріплених до блоків, з шести (6) у прото-данкшардингу до 64 у повному данкшардингу. Решта необхідних змін — це оновлення способу роботи клієнтів консенсусу, щоб вони могли обробляти нові великі блоби. Кілька з цих змін вже є в дорожній карті для інших цілей, незалежних від данкшардингу. Наприклад, данкшардинг вимагає впровадження розділення пропоузера та білдера (PBS). Це оновлення, яке розділяє завдання створення блоків і пропозиції блоків між різними валідаторами. Подібним чином, вибірка доступності даних (DAS) потрібна для данкшардингу, але вона також необхідна для розробки дуже легких клієнтів, які не зберігають багато історичних даних («клієнти без стану»).

Розділення пропоузера та білдера (PBS) необхідне для того, щоб окремим валідаторам не доводилося генерувати дорогі фіксації та докази для 32 МБ даних блобу. Це створило б занадто велике навантаження на домашніх стейкерів і вимагало б від них інвестицій у потужніше апаратне забезпечення, що шкодить децентралізації. Натомість спеціалізовані розробники блоків беруть на себе відповідальність за цю дорогу обчислювальну роботу. Потім вони роблять свої блоки доступними для пропонувачів блоку для трансляції. Пропонувач блоку просто вибирає блок, який є найбільш прибутковим. Будь-хто може дешево і швидко перевірити блоби, а це означає, що будь-який звичайний валідатор може перевірити, чи чесно поводяться розробники блоків. Це дозволяє обробляти великі блоби без шкоди для децентралізації. Розробники блоків, які поводяться зловмисно, можуть бути просто вилучені з мережі та піддані слешингу — на їхнє місце прийдуть інші, оскільки створення блоків є прибутковою діяльністю.

Вибірка доступності даних (DAS) необхідна валідаторам для швидкої та ефективної перевірки даних блобу. Використовуючи вибірку доступності даних, валідатори можуть бути дуже впевнені, що дані блобу були доступні та правильно зафіксовані. Кожен валідатор може випадковим чином вибрати лише кілька точок даних і створити доказ, що означає, що жодному валідатору не потрібно перевіряти весь блоб. Якщо якісь дані відсутні, це буде швидко виявлено, і блоб буде відхилено.

Поточний прогрес

До повного данкшардингу ще кілька років. Тим часом церемонія KZG завершилася з понад 140 000 внесків, а EIP (opens in a new tab) для прото-данкшардингу дозрів. Ця пропозиція була повністю реалізована у всіх тестових мережах і запрацювала в Головній мережі з оновленням мережі Cancun-Deneb («Денкун») у березні 2024 року.

Додаткова література