Доступність даних: FAQ
Що таке доступність даних?
Доступність даних відповідає на запитання, чи були ці дані опубліковані? Зокрема, вузол перевірить доступність даних, коли отримає новий блок, який додається до ланцюга. Вузол спробує завантажити всі дані транзакцій для нового блоку, щоб перевірити доступність. Якщо вузол може завантажити всі дані транзакції, це означає, що доступність даних успішно перевірена, доводячи, що дані блоку дійсно були опубліковані в мережі.
Як ви можете бачити, модульні блокчейни, такі як Celestia, використовують інші примітиви, які дозволяють нодам ефективніше перевіряти доступність даних. Доступність даних має вирішальне значення для безпеки будь-якого блокчейну, оскільки вона гарантує, що будь-хто може перевірити реєстр транзакцій і верифікувати його. Доступність даних стає особливо проблематичною при масштабуванні блокчейнів. Оскільки блоки стають більшими, звичайним користувачам стає непрактично завантажувати всі дані, і тому користувачі більше не можуть перевірити ланцюг.
Що таке проблема доступності даних?
Проблема з доступністю даних виникає, коли дані транзакцій для нового запропонованого блоку неможливо завантажити та перевірити. Цей тип атаки виробника блоку називається атакою із затримкою даних, коли виробник блоку приховує дані транзакції нового блоку.
Оскільки дані транзакцій приховуються, вузли не можуть оновлюватися до останнього стану. Така атака може мати численні наслідки, від зупинки ланцюга до отримання можливості викрасти кошти. Серйозність наслідків залежатиме від типу блокчейну (L1 або L2) і від того, чи зберігається доступність даних у ланцюзі чи поза ним. Проблема доступності даних зазвичай виникає навколо рішень масштабування L2, таких як Rollup та валідіуми.
Як вузли Celestia перевіряють доступність даних?
У більшості блокчейнів вузли, які перевіряють доступність даних, роблять це шляхом завантаження всіх даних транзакцій для блоку. Якщо вони можуть завантажити всі дані, вони перевірили їх доступність. У Celestia Light Nodes мають доступ до нового механізму перевірки доступності даних без необхідності завантажувати всі дані для блоку. Цей новий примітив для перевірки доступності даних називається вибіркою доступності даних.
Що таке вибірка доступності даних?
Вибірка доступності даних (DAS) — це механізм для Light Nodes для перевірки доступності даних без необхідності завантажувати всі дані для блоку. Вибірка доступності даних (DAS) працює так, що Light Nodes проводять кілька раундів випадкової вибірки для невеликих порцій блокових даних. Оскільки Light Nodes виконують більше раундів вибірки для блокових даних, це підвищує їхню впевненість у доступності даних. Після того, як Light Nodes успішно досягнуть попередньо визначеного рівня достовірності (наприклад, 99%), дані блоку важатимуться доступними.
Хочете простіше пояснення? Перегляньте цей тред про те, як вибірка доступності даних схожа на підкидання монети.
Які припущення безпеки Celestia робить для вибірки доступності даних?
Celestia припускає, що існує мінімальна кількість Light Nodes, які здійснюють вибірку доступності даних для певного розміру блоку. Це припущення необхідне для того, щоб Full Node міг реконструювати цілий блок з частин даних, які Light Nodes відібрали і зберегли. Кількість необхідних Light Nodes залежатиме від розміру блоку - якщо розмір великий, працює більше Light Nodes.
Друге важливе припущення, зроблене Light Nodes, полягає в тому, що вони підключені принаймні до одного чесного Full Node. Це гарантує, що вони можуть отримати докази шахрайства для неправильно стертих кодованих блоків. Якщо Light Nodes не підключено до чесного Full Node, наприклад, під час атаки затемнення, вони не зможуть підтвердити, що блок сконструйовано неправильно.
Чому для безпеки потрібна реконструкція блоку?
У Celestia блоки мають бути закодовані для стирання, щоб були надлишкові дані, які допомагають процесу вибірки доступності даних. Однак вузли, на які покладено завдання кодування стирання даних, можуть робити це неправильно. Оскільки Celestia використовує докази фальсифікації, щоб перевірити, чи кодування стирання є неправильним, для створення доказу фальсифікації неправильного кодування потрібні дані повного блоку.
Може виникнути ситуація, коли валідатори надають дані лише Light Nodes, а не Full Nodes. Якщо Full Nodes не мають можливості реконструювати повний блок із частин даних, що зберігають Light Nodes, вони не зможуть створити доказ фальсифікації з поганим кодуванням.
Що таке зберігання даних?
Зберігання даних пов’язане з можливістю зберігати та отримувати доступ до даних минулих транзакцій.
Зберігання та пошук даних потрібні для багатьох цілей, наприклад:
- Читання інформації про попередню транзакцію;
- Синхронізація вузла;
- Індексація та обслуговування даних транзакцій;
- Отримання інформації NFT.
В чому полягає проблема зберігання даних?
Проблема зі збереженням даних полягає в тому, чи можна зберегти дані минулих транзакцій і успішно отримати їх пізніше. Неможливість отримати історичні дані про транзакції може спричинити проблеми, наприклад, користувачі не можуть отримати доступ до інформації про свої минулі транзакції або вузли, які не можуть синхронізуватися з початку. На щастя, припущення щодо зберігання та доступу до минулих даних є слабкими. Лише одна копія історії блокчейну повинна бути доступна для користувачів, щоб отримати доступ до історичних даних транзакцій. Іншими словами, безпека зберігання даних є припущенням чесності 1 з N.
В чому різниця між доступністю та зберіганням даних?
Доступність даних означає перевірку того, що дані транзакції для нового блоку є опублікованими та доступними. Навідміну, зберігання даних передбачає зберігання та доступ до даних минулих транзакцій зі старих блоків. Доступність даних є фундаментальною для безпеки блокчейну, оскільки вона вимагає припущення чесної більшості, тоді як для зберігання даних потрібно лише припущення 1 з N. Тому критично важливо вирішити проблему доступності даних, тоді як проблема зберігання даних менш критична для безпеки блокчейну.
Як з цим пов'язаний стан блокчейну?
Досі все зводилося до даних транзакцій, але стан блокчейну — це пов’язана тема. Стан відрізняється від даних транзакції. Зокрема, стан схожий на поточний знімок мережі, який містить інформацію про баланси облікового запису, баланси смарт-контрактів та інформацію про набір валідаторів. Проблеми, які виникають через розмір стану, відрізняються за своєю природою від проблем, пов’язаних із доступністю та можливістю пошуку даних.
Чому Celestia не стимулює зберігання історичних даних?
Більшість блокчейнів не стимулюють зберігання даних, тому що блокчейн не повинен нести відповідальність за гарантування вічності відновлення минулих даних. Крім того, проблема зберігання даних вимагає лише однієї сторони для зберігання та надання даних користувачам, що не є серйозною проблемою. Таким чином, метою Celestia є забезпечення безпечного та масштабованого способу перевірки доступності даних. Після перевірки доступності даних робота зі зберігання та отримання історичних даних залишається на плечі інших організацій, яким ці дані потрібні. На щастя, існують природні стимули для зовнішніх сторін зберігати та надавати історичні дані користувачам.
Хто може зберігати історичні дані, якщо немає винагород?
Є кілька типів виконавців, які можуть зберігати історичні дані. Деякі з них включають:
- Експлорери блоків, які надають доступ до даних минулих транзакцій.
- Індексатори, які надають запити API для минулих даних.
- Програми або rollup, які потребують історичні дані для певних процесів.
- Користувачі, які хочуть гарантувати, що матимуть доступ до своєї історії транзакцій.
Які речі можуть зробити блокчейни, щоб забезпечити сильніші гарантії отримання даних?
- Винагороджуйте вузли залежно від кількості даних транзакцій, які вони зберігають, і запитів на дані, які вони обслуговують (це стосується деяких блокчейнів зберігання даних, як-от Filecoin).
- Публікуйте дані транзакцій у блокчейні сховища даних, що стимулює зберігання та обслуговування запитів на історичні дані.
Українська спільнота
Приєднуйтесь до нашаго Telegram каналу, щоб читати всі новини та апдейти про Celestia українською. Також, підписуйтесь на наш Твіттер. Ми будемо раді Вас бачити!