Данкшардинг — це те, як Етеріум стає дійсно масштабованим блокчейном, але для цього потрібно кілька оновлень протоколу. Прото-данкшардинг — це проміжний крок на цьому шляху. Обидва оновлення мають на меті зробити транзакції на рівні 2 (l2) якомога дешевшими для користувачів і повинні масштабувати Етеріум до понад 100 000 транзакцій на секунду.
Що таке прото-данкшардинг?
Прото-данкшардинг, також відомий як EIP-4844 (opens in a new tab), — це спосіб для ролапів додавати дешевші дані до блоків. Назва походить від імен двох дослідників, які запропонували цю ідею: Protolambda та Dankrad Feist. Історично склалося так, що ролапи були обмежені в тому, наскільки дешевими вони можуть зробити транзакції користувачів, через те, що вони публікують свої транзакції в CALLDATA.
Це дорого, оскільки обробляється всіма вузлами Етеріуму і зберігається ончейн назавжди, хоча ролапам ці дані потрібні лише на короткий час. Прото-данкшардинг впроваджує блоби даних, які можна надсилати та прикріплювати до блоків. Дані в цих блобах недоступні для EVM і автоматично видаляються через фіксований період часу (на момент написання статті встановлено 4096 епох, або близько 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 чесних учасників»).
Що таке данкшардинг?
Данкшардинг — це повна реалізація масштабування ролапів, яка почалася з прото-данкшардингу. Данкшардинг забезпечить величезні обсяги простору в Етеріумі для ролапів, щоб вони могли скидати свої стиснуті дані транзакцій. Це означає, що Етеріум зможе з легкістю підтримувати сотні окремих ролапів і зробить мільйони транзакцій на секунду реальністю.
Це працює шляхом розширення кількості блобів, прикріплених до блоків, з шести (6) у прото-данкшардингу до 64 у повному данкшардингу. Решта необхідних змін — це оновлення способу роботи клієнтів консенсусу, щоб вони могли обробляти нові великі блоби. Кілька з цих змін вже є в дорожній карті для інших цілей, незалежних від данкшардингу. Наприклад, данкшардинг вимагає впровадження розділення пропоузера та білдера (PBS). Це оновлення, яке розділяє завдання створення блоків і пропозиції блоків між різними валідаторами. Подібним чином, вибірка доступності даних (DAS) потрібна для данкшардингу, але вона також необхідна для розробки дуже легких клієнтів, які не зберігають багато історичних даних («клієнти без стану»).
Поточний прогрес
До повного данкшардингу ще кілька років. Тим часом церемонія KZG завершилася з понад 140 000 внесків, а EIP (opens in a new tab) для прото-данкшардингу дозрів. Ця пропозиція була повністю реалізована у всіх тестових мережах і запрацювала в Головній мережі з оновленням мережі Cancun-Deneb («Денкун») у березні 2024 року.
Додаткова література
- Нотатки про прото-данкшардинг (opens in a new tab) — Віталік Бутерін
- Нотатки Данкрада про данкшардинг (opens in a new tab)
- Данкрад, Прото та Віталік обговорюють данкшардинг (opens in a new tab)
- Церемонія KZG (opens in a new tab)
- Виступ Карла Бікхейзена на Devcon про довірені налаштування (opens in a new tab)
- Більше про вибірку доступності даних для блобів (opens in a new tab)
- Данкрад Файст про фіксації та докази KZG (opens in a new tab)
- Поліноміальні фіксації KZG (opens in a new tab)