Шардинг, пояснення
Що таке шардинг?
Шардинг — це форма розділення бази даних, також відома як горизонтальне розділення.
Процес передбачає поділ надзвичайно великої бази даних на менші, більш керовані сегменти з метою покращення продуктивності та зменшення часу відповіді на запити.
Шардинг — це не нова концепція, яка з’явилася в традиційному централізованому управлінні базами даних ще принаймні в кінці 1990-х років. Термін отримав популярність завдяки одній з перших багатокористувацьких онлайн-рольових ігор (MMORPG) — Ultima Online, де розробники розділили гравців на різні сервери (різні “світи” у грі), щоб впоратися з трафіком.
У бізнес-середовищі типовий приклад шардингу великої бази даних полягає в розділенні бази даних клієнтів за географічними місцеположеннями. Клієнти з одного місця об’єднуються та розміщуються на окремих серверах.
Що таке шардинг у контексті блокчейну?
Це, по суті, той самий процес.
Мережа блокчейну є базою даних, де вузли представляють окремі сервери даних. Застосування шардингу до блокчейну означає розбиття мережі блокчейну на окремі сегменти (або шари). Кожен шар буде містити унікальну групу смарт-контрактів і баланси акаунтів.
Вузли призначаються для окремих сегментів, щоб перевіряти транзакції та операції, замість того щоб всі вузли були відповідальні за перевірку кожної транзакції у всій мережі.
Ідея полягає в тому, що розбиття блокчейну на більш керовані сегменти повинно збільшити пропускну здатність транзакцій і, таким чином, розв’язати проблему масштабованості, з якою стикається більшість основних блокчейнів сьогодні. Це буде детально розглянуто далі.
Як працює шардинг?
Щоб пояснити шардинг, візьмемо блокчейн Ethereum як приклад.
Блокчейн Ethereum складається з тисяч комп’ютерів, також відомих як вузли, — наразі їх 8,622 (за даними ethernodes.org), — кожен з яких надає певну кількість обчислювальної потужності мережі. Ця потужність дозволяє працювати Ethereum Virtual Machine (EVM), тобто виконувати смарт-контракти та керувати децентралізованими додатками (DApps).
Наразі Ethereum працює за принципом послідовного виконання, коли кожен з цих вузлів має обчислити всі операції та обробити кожну транзакцію. Це означає, що перевірка транзакцій може займати тривалий час. Наразі Ethereum може обробляти приблизно 10 транзакцій за секунду (TPS) — для порівняння, Visa в середньому здійснює 24,000 TPS. Додавання більшої кількості комп’ютерів до мережі не обов’язково підвищує ефективність, адже весь реєстр зберігається на кожному комп’ютері, а ланцюг перевірок лише стає довшим.
Завдяки шардингу можна перейти від лінійної моделі виконання, де кожен вузол обчислює кожну операцію, до паралельної моделі, у якій вузли обробляють лише певні операції. Це дозволяє одночасно обробляти кілька транзакцій.
Блокчейн буде поділено на окремі шари (піддомени або “контейнери”). Вузлам доведеться виконувати лише ту частину реєстру, яка їм призначена, для обробки операцій і валідації транзакцій, замість утримання всього реєстру постійно.
Яку проблему може вирішити шардинг?
Шардинг може стати потенційним розв’язанням проблеми масштабованості блокчейну.
Як уже зазначалося, однією з найбільших проблем блокчейн-мереж є масштабованість. Чим популярнішою стає блокчейн-мережа, тим більше користувачів ініціюють транзакції, використовують децентралізовані додатки й виконують інші процеси в мережі.
Збільшення кількості транзакцій збільшує навантаження на вузли для перевірки цих транзакцій, і є загроза, що блокчейни можуть перевантажитися (як це сталося в мережі Ethereum під час ажіотажу CryptoKitties, коли гра становила 11% усіх транзакцій у мережі). Якщо це трапляється, швидкість транзакцій значно зменшується, що є неприйнятним для сталої блокчейн-інтеграції в довгостроковій перспективі.
Як зазначено вище, якщо розділити блокчейн на менші сегменти, де вузли відповідатимуть лише за свої сегменти, кожен вузол не зобов’язаний зберігати весь реєстр для обробки кожної операції. Валідація транзакцій може відбуватися паралельно, а не лінійно, що збільшує загальну швидкість мережі. Це вирішує проблеми масштабованості блокчейн-мереж і робить їх більш перспективними у довгостроковій перспективі.
Чи є недоліки у шардингу?
Основними викликами шардингу залишаються комунікація та безпека.
При розподілі блокчейну на ізольовані сегменти кожен шар виглядатиме як окрема мережева блокчейн-структура. Користувачі та додатки одного шару не можуть взаємодіяти з користувачами та додатками іншого шару без реалізації спеціального механізму взаємодії між шарами. Це додає розробникам додаткового рівня складності.
Безпека також є занепокоєнням, оскільки хакерам легше захопити один шар через зниження обчислювальної потужності, необхідної для контролю окремого сегмента. Таку атаку називають “захопленням одного шару” або атакою 1%. Наприклад, якщо сегмент було зламано, зловмисники можуть надіслати недійсні транзакції до основної мережі або зробити інформацію сегмента недійсною. Ethereum пропонує вирішити цей безпековий ризик шляхом випадкового призначення нотарів шарів для перевірки автентичності блоків.
Чи існують альтернативи шардингу?
Розробники запропонували два альтернативні підходи для підвищення продуктивності й швидкості транзакцій у блокчейнах.
…
“`
Продовження структурованого тексту можливе за необхідності.